diff --git a/.github/workflows/publish-api-documentation.yml b/.github/workflows/publish-api-documentation.yml index 782e76fe..30beb62f 100644 --- a/.github/workflows/publish-api-documentation.yml +++ b/.github/workflows/publish-api-documentation.yml @@ -12,11 +12,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 ref: "gh-pages" - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v3 with: python-version: 3.7 - name: Merge changes from 3.0 branch @@ -24,13 +24,10 @@ jobs: git config user.name github-actions git config user.email github-actions@github.com git merge origin/3.0 -X theirs - - name: Install dependencies + - name: Install GNS3 server and dependencies run: | python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Install GNS3 server - run: | - python setup.py install + python -m pip install . - name: Generate the API documentation run: | cd scripts diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index aa78d289..01c4fdda 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 diff --git a/CHANGELOG b/CHANGELOG index 571c5931..7da94525 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,76 @@ # Change Log +## 3.0.0a4 18/10/2023 + +* Bundle web-ui v3.0.0a4 +* Do not enforce Compute.Audit and Template.Audit privileges due to current web-ui limitations +* Support to create empty disk images on the controller +* Fix issue with importlib.resources.files() and Python 3.9 +* New RBAC system with resource pools support. +* Use controller vars file to store version and appliance etag +* Pydantic v2 migration +* Allow connection to ws console over IPv6 +* Allow computes to be dynamically or manually allocated +* Add UEFI boot mode option for Qemu VMs +* Mark VMware and VirtualBox support as deprecated +* Make port name for custom adapters optional. Fixes https://github.com/GNS3/gns3-web-ui/issues/1430 +* Support for database schema migrations using alembic +* Add config option to change the server name. Ref #2149 +* Option to disable image discovery and do not scan parent directory +* Allow raw images by default. Fixes https://github.com/GNS3/gns3-server/issues/2097 +* Fix bug when creating Dynamips router with chassis setting +* Stricter checks to create/update an Ethernet switch and add tests +* Fix schema for removing WICs from Cisco routers. Fixes #3392 +* Fix some issues with HTTP notification streams +* API endpoint to get the locked status of a project +* Global project lock and unlock +* Require name for custom adapters. Fixes #2098 +* Allow empty adapter slots for Dynamips templates. Ref https://github.com/GNS3/gns3-gui/issues/3373 +* Custom adapters should not be in node (compute) properties returned to clients. Fixes https://github.com/GNS3/gns3-gui/issues/3366 +* Optionally allow Qemu raw images +* Ignore image detection for IOU user libraries in image directory +* Checks for valid hostname on server side for Dynamips, IOU, Qemu and Docker nodes +* Only check files (not directories) when looking for new images on file system. +* Support user defined loader/libraries to run IOU +* Remove explicit Response for VPCS endpoints returning HTTP 204 status code +* Remove explicit Response for endpoints returning HTTP 204 status code +* Make 'vendor_url' and 'maintainer_email' optional for template validation. +* Allow auth token to be passed as a URL param +* Add controller endpoints to get VirtualBox VMs, VMware VMs and Docker images +* Detect new images added to the default image directory. * Images can be present before the server starts or while it is running * Images are recorded in the database +* Support delete Qemu disk image from API Return the real disk image name in the 'hdx_disk_image_backed' property for Qemu VMs +* Fix ComputeConflictError import +* Handle creating Qemu disk images and resizing +* Finish to clean up local setting usage. Ref #1460 +* "Local" command line parameter is only for stopping a server that has been started by the desktop GUI +* Fix AsyncSession handling after breaking changes in FastAPI 0.74.0 See https://github.com/tiangolo/fastapi/releases/tag/0.74.0 for details. +* Detect image type instead of requesting it from user +* Add connect endpoint for computes Param to connect to compute after creation Report compute unauthorized HTTP errors to client +* Replace CORS origins by origin regex +* Allow empty compute_id. Ref #1657 +* Secure controller to compute communication using HTTP basic authentication +* Secure websocket endpoints +* Allocate compute when compute_id is unset +* Return the current controller hostname/IP from any compute +* Remove Qemu legacy networking support +* Appliance management refactoring: * Install an appliance based on selected version * Each template have unique name and version * Allow to download an appliance file +* Add isolate and unisolate endpoints. Ref https://github.com/GNS3/gns3-gui/issues/3190 +* Allow images to be stored in subdirs and used by templates. +* Use uuid5 to create new compute_id. Fixes #1641 #1887 +* Migrate PCAP streaming code to work with FastAPI. +* Refactor WebSocket console code to work with FastAPI. Fix endpoint routes. + + +## 2.2.43 19/09/2023 + +* Force English output for VBoxManage. Fixes #2266 +* Automatically add vboxnet and DHCP server if not present for VirtualBox GNS3 VM. Ref #2266 +* Fix issue with controller config saved before checking current version with previous one +* Prevent X11 socket file to be modified by Docker container +* Use the user data dir to store built-in appliances +* Catch ConnectionResetError exception when client disconnects +* Upgrade to PyQt 5.15.9 and pywin32 + ## 2.2.42 09/08/2023 * Bundle web-ui v2.2.42 diff --git a/dev-requirements.txt b/dev-requirements.txt index 5e29ebc7..b923b844 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,6 +1,7 @@ -pytest==7.4.0 -flake8==5.0.4 # v5.0.4 is the last to support Python 3.7 -pytest-timeout==2.1.0 +pytest==7.4.2 +flake8==6.1.0 +pytest-timeout==2.2.0 pytest-asyncio==0.21.1 requests==2.31.0 -httpx==0.24.1 +httpx==0.24.1 # version 0.24.1 is required by httpx_ws +httpx_ws==0.4.2 diff --git a/gns3server/api/routes/compute/__init__.py b/gns3server/api/routes/compute/__init__.py index 4628dfd8..1922e31a 100644 --- a/gns3server/api/routes/compute/__init__.py +++ b/gns3server/api/routes/compute/__init__.py @@ -199,14 +199,12 @@ compute_api.include_router( compute_api.include_router( docker_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/docker/nodes", tags=["Docker nodes"] ) compute_api.include_router( dynamips_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/dynamips/nodes", tags=["Dynamips nodes"] ) @@ -234,7 +232,6 @@ compute_api.include_router( compute_api.include_router( iou_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/iou/nodes", tags=["IOU nodes"]) @@ -247,28 +244,24 @@ compute_api.include_router( compute_api.include_router( qemu_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/qemu/nodes", tags=["Qemu nodes"] ) compute_api.include_router( virtualbox_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/virtualbox/nodes", tags=["VirtualBox nodes"] ) compute_api.include_router( vmware_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/vmware/nodes", tags=["VMware nodes"] ) compute_api.include_router( vpcs_nodes.router, - dependencies=[Depends(compute_authentication)], prefix="/projects/{project_id}/vpcs/nodes", tags=["VPCS nodes"] ) diff --git a/gns3server/api/routes/compute/dependencies/authentication.py b/gns3server/api/routes/compute/dependencies/authentication.py index 5efb9927..377a89dc 100644 --- a/gns3server/api/routes/compute/dependencies/authentication.py +++ b/gns3server/api/routes/compute/dependencies/authentication.py @@ -15,12 +15,17 @@ # along with this program. If not, see . import secrets +import base64 +import binascii +import logging -from fastapi import Depends, HTTPException, status +from fastapi import Depends, HTTPException, WebSocket, status from fastapi.security import HTTPBasic, HTTPBasicCredentials +from fastapi.security.utils import get_authorization_scheme_param from gns3server.config import Config -from typing import Optional +from typing import Optional, Union +log = logging.getLogger(__name__) security = HTTPBasic() @@ -35,3 +40,44 @@ def compute_authentication(credentials: Optional[HTTPBasicCredentials] = Depends detail="Invalid compute username or password", headers={"WWW-Authenticate": "Basic"}, ) + +async def ws_compute_authentication(websocket: WebSocket) -> Union[None, WebSocket]: + """ + """ + + await websocket.accept() + + # handle basic HTTP authentication + invalid_user_credentials_exc = HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Could not validate credentials", + headers={"WWW-Authenticate": "Basic"}, + ) + + try: + authorization = websocket.headers.get("Authorization") + scheme, param = get_authorization_scheme_param(authorization) + if not authorization or scheme.lower() != "basic": + raise invalid_user_credentials_exc + try: + data = base64.b64decode(param).decode("ascii") + except (ValueError, UnicodeDecodeError, binascii.Error): + raise invalid_user_credentials_exc + + username, separator, password = data.partition(":") + if not separator: + raise invalid_user_credentials_exc + + server_settings = Config.instance().settings.Server + username = secrets.compare_digest(username, server_settings.compute_username) + password = secrets.compare_digest(password, server_settings.compute_password.get_secret_value()) + if not (username and password): + raise invalid_user_credentials_exc + + except HTTPException as e: + err_msg = f"Could not authenticate while connecting to compute WebSocket: {e.detail}" + websocket_error = {"action": "log.error", "event": {"message": err_msg}} + await websocket.send_json(websocket_error) + log.error(err_msg) + return await websocket.close(code=1008) + return websocket diff --git a/gns3server/api/routes/compute/docker_nodes.py b/gns3server/api/routes/compute/docker_nodes.py index e9a1e29f..11a2cf65 100644 --- a/gns3server/api/routes/compute/docker_nodes.py +++ b/gns3server/api/routes/compute/docker_nodes.py @@ -20,15 +20,18 @@ API routes for Docker nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Body, Response, status +from fastapi import APIRouter, WebSocket, Depends, Body, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse from uuid import UUID +from typing import Union from gns3server import schemas from gns3server.compute.docker import Docker from gns3server.compute.docker.docker_vm import DockerVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or Docker node"}} router = APIRouter(responses=responses) @@ -49,6 +52,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> DockerVM: response_model=schemas.Docker, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create Docker node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_docker_node(project_id: UUID, node_data: schemas.DockerCreate) -> schemas.Docker: """ @@ -85,7 +89,11 @@ async def create_docker_node(project_id: UUID, node_data: schemas.DockerCreate) return container.asdict() -@router.get("/{node_id}", response_model=schemas.Docker) +@router.get( + "/{node_id}", + response_model=schemas.Docker, + dependencies=[Depends(compute_authentication)] +) def get_docker_node(node: DockerVM = Depends(dep_node)) -> schemas.Docker: """ Return a Docker node. @@ -94,7 +102,11 @@ def get_docker_node(node: DockerVM = Depends(dep_node)) -> schemas.Docker: return node.asdict() -@router.put("/{node_id}", response_model=schemas.Docker) +@router.put( + "/{node_id}", + response_model=schemas.Docker, + dependencies=[Depends(compute_authentication)] +) async def update_docker_node(node_data: schemas.DockerUpdate, node: DockerVM = Depends(dep_node)) -> schemas.Docker: """ Update a Docker node. @@ -131,7 +143,11 @@ async def update_docker_node(node_data: schemas.DockerUpdate, node: DockerVM = D return node.asdict() -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Start a Docker node. @@ -140,7 +156,11 @@ async def start_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Stop a Docker node. @@ -149,7 +169,11 @@ async def stop_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Suspend a Docker node. @@ -158,7 +182,11 @@ async def suspend_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.pause() -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Reload a Docker node. @@ -167,7 +195,11 @@ async def reload_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.restart() -@router.post("/{node_id}/pause", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/pause", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def pause_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Pause a Docker node. @@ -176,7 +208,11 @@ async def pause_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.pause() -@router.post("/{node_id}/unpause", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/unpause", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def unpause_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Unpause a Docker node. @@ -185,7 +221,11 @@ async def unpause_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.unpause() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_docker_node(node: DockerVM = Depends(dep_node)) -> None: """ Delete a Docker node. @@ -194,7 +234,12 @@ async def delete_docker_node(node: DockerVM = Depends(dep_node)) -> None: await node.delete() -@router.post("/{node_id}/duplicate", response_model=schemas.Docker, status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/duplicate", + response_model=schemas.Docker, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) async def duplicate_docker_node( destination_node_id: UUID = Body(..., embed=True), node: DockerVM = Depends(dep_node) @@ -211,6 +256,7 @@ async def duplicate_docker_node( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_docker_node_nio( adapter_number: int, port_number: int, nio_data: schemas.UDPNIO, node: DockerVM = Depends(dep_node) @@ -229,6 +275,7 @@ async def create_docker_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_docker_node_nio( adapter_number: int, port_number: int, nio_data: schemas.UDPNIO, node: DockerVM = Depends(dep_node) @@ -245,7 +292,11 @@ async def update_docker_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_docker_node_nio( adapter_number: int, port_number: int, @@ -259,7 +310,10 @@ async def delete_docker_node_nio( await node.adapter_remove_nio_binding(adapter_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_docker_node_capture( adapter_number: int, port_number: int, @@ -278,7 +332,8 @@ async def start_docker_node_capture( @router.post( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", - status_code=status.HTTP_204_NO_CONTENT + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_docker_node_capture( adapter_number: int, @@ -293,7 +348,10 @@ async def stop_docker_node_capture( await node.stop_capture(adapter_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int, @@ -310,15 +368,23 @@ async def stream_pcap_file( @router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: DockerVM = Depends(dep_node)) -> None: +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: DockerVM = Depends(dep_node) +) -> None: """ Console WebSocket. """ - await node.start_websocket_console(websocket) + if websocket: + await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: DockerVM = Depends(dep_node)) -> None: await node.reset_console() diff --git a/gns3server/api/routes/compute/dynamips_nodes.py b/gns3server/api/routes/compute/dynamips_nodes.py index 5f34f066..89be7f69 100644 --- a/gns3server/api/routes/compute/dynamips_nodes.py +++ b/gns3server/api/routes/compute/dynamips_nodes.py @@ -20,16 +20,18 @@ API routes for Dynamips nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Response, status +from fastapi import APIRouter, WebSocket, Depends, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse -from typing import List +from typing import List, Union from uuid import UUID from gns3server.compute.dynamips import Dynamips from gns3server.compute.dynamips.nodes.router import Router from gns3server import schemas +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or Dynamips node"}} router = APIRouter(responses=responses) @@ -53,6 +55,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> Router: response_model=schemas.Dynamips, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create Dynamips node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_router(project_id: UUID, node_data: schemas.DynamipsCreate) -> schemas.Dynamips: """ @@ -84,7 +87,11 @@ async def create_router(project_id: UUID, node_data: schemas.DynamipsCreate) -> return vm.asdict() -@router.get("/{node_id}", response_model=schemas.Dynamips) +@router.get( + "/{node_id}", + response_model=schemas.Dynamips, + dependencies=[Depends(compute_authentication)] +) def get_router(node: Router = Depends(dep_node)) -> schemas.Dynamips: """ Return Dynamips router. @@ -93,7 +100,11 @@ def get_router(node: Router = Depends(dep_node)) -> schemas.Dynamips: return node.asdict() -@router.put("/{node_id}", response_model=schemas.Dynamips) +@router.put( + "/{node_id}", + response_model=schemas.Dynamips, + dependencies=[Depends(compute_authentication)] +) async def update_router(node_data: schemas.DynamipsUpdate, node: Router = Depends(dep_node)) -> schemas.Dynamips: """ Update a Dynamips router. @@ -104,7 +115,11 @@ async def update_router(node_data: schemas.DynamipsUpdate, node: Router = Depend return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_router(node: Router = Depends(dep_node)) -> None: """ Delete a Dynamips router. @@ -113,7 +128,11 @@ async def delete_router(node: Router = Depends(dep_node)) -> None: await Dynamips.instance().delete_node(node.id) -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_router(node: Router = Depends(dep_node)) -> None: """ Start a Dynamips router. @@ -126,7 +145,11 @@ async def start_router(node: Router = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_router(node: Router = Depends(dep_node)) -> None: """ Stop a Dynamips router. @@ -135,13 +158,21 @@ async def stop_router(node: Router = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_router(node: Router = Depends(dep_node)) -> None: await node.suspend() -@router.post("/{node_id}/resume", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/resume", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def resume_router(node: Router = Depends(dep_node)) -> None: """ Resume a suspended Dynamips router. @@ -150,7 +181,11 @@ async def resume_router(node: Router = Depends(dep_node)) -> None: await node.resume() -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_router(node: Router = Depends(dep_node)) -> None: """ Reload a suspended Dynamips router. @@ -163,6 +198,7 @@ async def reload_router(node: Router = Depends(dep_node)) -> None: "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_nio( adapter_number: int, @@ -183,6 +219,7 @@ async def create_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_nio( adapter_number: int, @@ -201,7 +238,11 @@ async def update_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_nio(adapter_number: int, port_number: int, node: Router = Depends(dep_node)) -> None: """ Delete a NIO (Network Input/Output) from the node. @@ -211,7 +252,10 @@ async def delete_nio(adapter_number: int, port_number: int, node: Router = Depen await nio.delete() -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_capture( adapter_number: int, port_number: int, @@ -228,7 +272,9 @@ async def start_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_capture(adapter_number: int, port_number: int, node: Router = Depends(dep_node)) -> None: """ @@ -238,7 +284,10 @@ async def stop_capture(adapter_number: int, port_number: int, node: Router = Dep await node.stop_capture(adapter_number, port_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int, @@ -253,7 +302,10 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.get("/{node_id}/idlepc_proposals") +@router.get( + "/{node_id}/idlepc_proposals", + dependencies=[Depends(compute_authentication)] +) async def get_idlepcs(node: Router = Depends(dep_node)) -> List[str]: """ Retrieve Dynamips idle-pc proposals @@ -263,7 +315,10 @@ async def get_idlepcs(node: Router = Depends(dep_node)) -> List[str]: return await node.get_idle_pc_prop() -@router.get("/{node_id}/auto_idlepc") +@router.get( + "/{node_id}/auto_idlepc", + dependencies=[Depends(compute_authentication)] +) async def get_auto_idlepc(node: Router = Depends(dep_node)) -> dict: """ Get an automatically guessed best idle-pc value. @@ -273,7 +328,12 @@ async def get_auto_idlepc(node: Router = Depends(dep_node)) -> dict: return {"idlepc": idlepc} -@router.post("/{node_id}/duplicate", response_model=schemas.Dynamips, status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/duplicate", + response_model=schemas.Dynamips, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) async def duplicate_router(destination_node_id: UUID, node: Router = Depends(dep_node)) -> schemas.Dynamips: """ Duplicate a router. @@ -284,15 +344,24 @@ async def duplicate_router(destination_node_id: UUID, node: Router = Depends(dep @router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: Router = Depends(dep_node)) -> None: +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: Router = Depends(dep_node) + +) -> None: """ Console WebSocket. """ - await node.start_websocket_console(websocket) + if websocket: + await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: Router = Depends(dep_node)) -> None: await node.reset_console() diff --git a/gns3server/api/routes/compute/iou_nodes.py b/gns3server/api/routes/compute/iou_nodes.py index 5b74acc9..1b456a97 100644 --- a/gns3server/api/routes/compute/iou_nodes.py +++ b/gns3server/api/routes/compute/iou_nodes.py @@ -30,6 +30,8 @@ from gns3server import schemas from gns3server.compute.iou import IOU from gns3server.compute.iou.iou_vm import IOUVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or IOU node"}} router = APIRouter(responses=responses) @@ -50,6 +52,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> IOUVM: response_model=schemas.IOU, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create IOU node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_iou_node(project_id: UUID, node_data: schemas.IOUCreate) -> schemas.IOU: """ @@ -82,7 +85,11 @@ async def create_iou_node(project_id: UUID, node_data: schemas.IOUCreate) -> sch return vm.asdict() -@router.get("/{node_id}", response_model=schemas.IOU) +@router.get( + "/{node_id}", + response_model=schemas.IOU, + dependencies=[Depends(compute_authentication)] +) def get_iou_node(node: IOUVM = Depends(dep_node)) -> schemas.IOU: """ Return an IOU node. @@ -91,7 +98,11 @@ def get_iou_node(node: IOUVM = Depends(dep_node)) -> schemas.IOU: return node.asdict() -@router.put("/{node_id}", response_model=schemas.IOU) +@router.put( + "/{node_id}", + response_model=schemas.IOU, + dependencies=[Depends(compute_authentication)] +) async def update_iou_node(node_data: schemas.IOUUpdate, node: IOUVM = Depends(dep_node)) -> schemas.IOU: """ Update an IOU node. @@ -112,7 +123,11 @@ async def update_iou_node(node_data: schemas.IOUUpdate, node: IOUVM = Depends(de return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_iou_node(node: IOUVM = Depends(dep_node)) -> None: """ Delete an IOU node. @@ -121,7 +136,12 @@ async def delete_iou_node(node: IOUVM = Depends(dep_node)) -> None: await IOU.instance().delete_node(node.id) -@router.post("/{node_id}/duplicate", response_model=schemas.IOU, status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/duplicate", + response_model=schemas.IOU, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) async def duplicate_iou_node( destination_node_id: UUID = Body(..., embed=True), node: IOUVM = Depends(dep_node) @@ -134,7 +154,11 @@ async def duplicate_iou_node( return new_node.asdict() -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_iou_node(start_data: schemas.IOUStart, node: IOUVM = Depends(dep_node)) -> None: """ Start an IOU node. @@ -148,7 +172,11 @@ async def start_iou_node(start_data: schemas.IOUStart, node: IOUVM = Depends(dep await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_iou_node(node: IOUVM = Depends(dep_node)) -> None: """ Stop an IOU node. @@ -157,7 +185,11 @@ async def stop_iou_node(node: IOUVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) def suspend_iou_node(node: IOUVM = Depends(dep_node)) -> None: """ Suspend an IOU node. @@ -167,7 +199,11 @@ def suspend_iou_node(node: IOUVM = Depends(dep_node)) -> None: pass -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_iou_node(node: IOUVM = Depends(dep_node)) -> None: """ Reload an IOU node. @@ -180,6 +216,7 @@ async def reload_iou_node(node: IOUVM = Depends(dep_node)) -> None: "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO], + dependencies=[Depends(compute_authentication)] ) async def create_iou_node_nio( adapter_number: int, @@ -200,6 +237,7 @@ async def create_iou_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO], + dependencies=[Depends(compute_authentication)] ) async def update_iou_node_nio( adapter_number: int, @@ -218,7 +256,11 @@ async def update_iou_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_iou_node_nio(adapter_number: int, port_number: int, node: IOUVM = Depends(dep_node)) -> None: """ Delete a NIO (Network Input/Output) from the node. @@ -227,7 +269,10 @@ async def delete_iou_node_nio(adapter_number: int, port_number: int, node: IOUVM await node.adapter_remove_nio_binding(adapter_number, port_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_iou_node_capture( adapter_number: int, port_number: int, @@ -244,7 +289,9 @@ async def start_iou_node_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_iou_node_capture(adapter_number: int, port_number: int, node: IOUVM = Depends(dep_node)) -> None: """ @@ -254,7 +301,10 @@ async def stop_iou_node_capture(adapter_number: int, port_number: int, node: IOU await node.stop_capture(adapter_number, port_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int, @@ -269,16 +319,26 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: IOUVM = Depends(dep_node)) -> None: +@router.websocket( + "/{node_id}/console/ws", +) +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: IOUVM = Depends(dep_node) +) -> None: """ Console WebSocket. """ - await node.start_websocket_console(websocket) + if websocket: + await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: IOUVM = Depends(dep_node)) -> None: await node.reset_console() diff --git a/gns3server/api/routes/compute/notifications.py b/gns3server/api/routes/compute/notifications.py index 26a04b61..47b30f00 100644 --- a/gns3server/api/routes/compute/notifications.py +++ b/gns3server/api/routes/compute/notifications.py @@ -18,14 +18,13 @@ API routes for compute notifications. """ -import base64 -import binascii -from fastapi import APIRouter, WebSocket, WebSocketDisconnect, status, HTTPException -from fastapi.security.utils import get_authorization_scheme_param +from fastapi import APIRouter, Depends, WebSocket, WebSocketDisconnect +from typing import Union from websockets.exceptions import ConnectionClosed, WebSocketException from gns3server.compute.notification_manager import NotificationManager +from .dependencies.authentication import ws_compute_authentication import logging @@ -35,53 +34,27 @@ router = APIRouter() @router.websocket("/notifications/ws") -async def project_ws_notifications(websocket: WebSocket) -> None: +async def project_ws_notifications(websocket: Union[None, WebSocket] = Depends(ws_compute_authentication)) -> None: """ Receive project notifications about the project from WebSocket. """ - await websocket.accept() - - # handle basic HTTP authentication - invalid_user_credentials_exc = HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="Invalid authentication credentials", - headers={"WWW-Authenticate": "Basic"}, - ) - - try: - authorization = websocket.headers.get("Authorization") - scheme, param = get_authorization_scheme_param(authorization) - if not authorization or scheme.lower() != "basic": - raise invalid_user_credentials_exc + if websocket: + log.info(f"New client {websocket.client.host}:{websocket.client.port} has connected to compute WebSocket") try: - data = base64.b64decode(param).decode("ascii") - except (ValueError, UnicodeDecodeError, binascii.Error): - raise invalid_user_credentials_exc - username, separator, password = data.partition(":") - if not separator: - raise invalid_user_credentials_exc - except invalid_user_credentials_exc as e: - websocket_error = {"action": "log.error", "event": {"message": f"Could not authenticate while connecting to " - f"compute WebSocket: {e.detail}"}} - await websocket.send_json(websocket_error) - return await websocket.close(code=1008) - - log.info(f"New client {websocket.client.host}:{websocket.client.port} has connected to compute WebSocket") - try: - with NotificationManager.instance().queue() as queue: - while True: - notification = await queue.get_json(5) - await websocket.send_text(notification) - except (ConnectionClosed, WebSocketDisconnect): - log.info(f"Client {websocket.client.host}:{websocket.client.port} has disconnected from compute WebSocket") - except WebSocketException as e: - log.warning(f"Error while sending to controller event to WebSocket client: {e}") - finally: - try: - await websocket.close() - except OSError: - pass # ignore OSError: [Errno 107] Transport endpoint is not connected + with NotificationManager.instance().queue() as queue: + while True: + notification = await queue.get_json(5) + await websocket.send_text(notification) + except (ConnectionClosed, WebSocketDisconnect): + log.info(f"Client {websocket.client.host}:{websocket.client.port} has disconnected from compute WebSocket") + except WebSocketException as e: + log.warning(f"Error while sending to controller event to WebSocket client: {e}") + finally: + try: + await websocket.close() + except OSError: + pass # ignore OSError: [Errno 107] Transport endpoint is not connected if __name__ == "__main__": diff --git a/gns3server/api/routes/compute/qemu_nodes.py b/gns3server/api/routes/compute/qemu_nodes.py index b1b95417..1689fabe 100644 --- a/gns3server/api/routes/compute/qemu_nodes.py +++ b/gns3server/api/routes/compute/qemu_nodes.py @@ -20,15 +20,17 @@ API routes for Qemu nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Body, Path, Response, status +from fastapi import APIRouter, WebSocket, Depends, Body, Path, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse +from typing import Union from uuid import UUID from gns3server import schemas from gns3server.compute.qemu import Qemu from gns3server.compute.qemu.qemu_vm import QemuVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or Qemu node"}} @@ -50,6 +52,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> QemuVM: response_model=schemas.Qemu, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create Qemu node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_qemu_node(project_id: UUID, node_data: schemas.QemuCreate) -> schemas.Qemu: """ @@ -78,7 +81,11 @@ async def create_qemu_node(project_id: UUID, node_data: schemas.QemuCreate) -> s return vm.asdict() -@router.get("/{node_id}", response_model=schemas.Qemu) +@router.get( + "/{node_id}", + response_model=schemas.Qemu, + dependencies=[Depends(compute_authentication)] +) def get_qemu_node(node: QemuVM = Depends(dep_node)) -> schemas.Qemu: """ Return a Qemu node. @@ -87,7 +94,11 @@ def get_qemu_node(node: QemuVM = Depends(dep_node)) -> schemas.Qemu: return node.asdict() -@router.put("/{node_id}", response_model=schemas.Qemu) +@router.put( + "/{node_id}", + response_model=schemas.Qemu, + dependencies=[Depends(compute_authentication)] +) async def update_qemu_node(node_data: schemas.QemuUpdate, node: QemuVM = Depends(dep_node)) -> schemas.Qemu: """ Update a Qemu node. @@ -103,7 +114,11 @@ async def update_qemu_node(node_data: schemas.QemuUpdate, node: QemuVM = Depends return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Delete a Qemu node. @@ -112,7 +127,12 @@ async def delete_qemu_node(node: QemuVM = Depends(dep_node)) -> None: await Qemu.instance().delete_node(node.id) -@router.post("/{node_id}/duplicate", response_model=schemas.Qemu, status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/duplicate", + response_model=schemas.Qemu, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) async def duplicate_qemu_node( destination_node_id: UUID = Body(..., embed=True), node: QemuVM = Depends(dep_node) @@ -127,7 +147,8 @@ async def duplicate_qemu_node( @router.post( "/{node_id}/disk_image/{disk_name}", - status_code=status.HTTP_204_NO_CONTENT + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def create_qemu_disk_image( disk_name: str, @@ -144,7 +165,8 @@ async def create_qemu_disk_image( @router.put( "/{node_id}/disk_image/{disk_name}", - status_code=status.HTTP_204_NO_CONTENT + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def update_qemu_disk_image( disk_name: str, @@ -161,7 +183,8 @@ async def update_qemu_disk_image( @router.delete( "/{node_id}/disk_image/{disk_name}", - status_code=status.HTTP_204_NO_CONTENT + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def delete_qemu_disk_image( disk_name: str, @@ -174,7 +197,11 @@ async def delete_qemu_disk_image( node.delete_disk_image(disk_name) -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Start a Qemu node. @@ -183,7 +210,11 @@ async def start_qemu_node(node: QemuVM = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Stop a Qemu node. @@ -192,7 +223,11 @@ async def stop_qemu_node(node: QemuVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Reload a Qemu node. @@ -201,7 +236,11 @@ async def reload_qemu_node(node: QemuVM = Depends(dep_node)) -> None: await node.reload() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Suspend a Qemu node. @@ -210,7 +249,11 @@ async def suspend_qemu_node(node: QemuVM = Depends(dep_node)) -> None: await node.suspend() -@router.post("/{node_id}/resume", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/resume", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def resume_qemu_node(node: QemuVM = Depends(dep_node)) -> None: """ Resume a Qemu node. @@ -223,6 +266,7 @@ async def resume_qemu_node(node: QemuVM = Depends(dep_node)) -> None: "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_qemu_node_nio( *, @@ -245,6 +289,7 @@ async def create_qemu_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_qemu_node_nio( *, @@ -267,7 +312,11 @@ async def update_qemu_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_qemu_node_nio( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -281,7 +330,10 @@ async def delete_qemu_node_nio( await node.adapter_remove_nio_binding(adapter_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_qemu_node_capture( *, adapter_number: int, @@ -300,7 +352,9 @@ async def start_qemu_node_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_qemu_node_capture( adapter_number: int, @@ -315,7 +369,10 @@ async def stop_qemu_node_capture( await node.stop_capture(adapter_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -330,16 +387,26 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: QemuVM = Depends(dep_node)) -> None: +@router.websocket( + "/{node_id}/console/ws" +) +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: QemuVM = Depends(dep_node) +) -> None: """ Console WebSocket. """ - await node.start_websocket_console(websocket) + if websocket: + await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: QemuVM = Depends(dep_node)) -> None: await node.reset_console() diff --git a/gns3server/api/routes/compute/virtualbox_nodes.py b/gns3server/api/routes/compute/virtualbox_nodes.py index f457cbff..f676025e 100644 --- a/gns3server/api/routes/compute/virtualbox_nodes.py +++ b/gns3server/api/routes/compute/virtualbox_nodes.py @@ -20,16 +20,19 @@ API routes for VirtualBox nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Path, Response, status +from fastapi import APIRouter, WebSocket, Depends, Path, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse from uuid import UUID +from typing import Union from gns3server import schemas from gns3server.compute.virtualbox import VirtualBox from gns3server.compute.virtualbox.virtualbox_error import VirtualBoxError from gns3server.compute.virtualbox.virtualbox_vm import VirtualBoxVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or VirtualBox node"}} router = APIRouter(responses=responses, deprecated=True) @@ -50,6 +53,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> VirtualBoxVM: response_model=schemas.VirtualBox, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create VirtualBox node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_virtualbox_node(project_id: UUID, node_data: schemas.VirtualBoxCreate) -> schemas.VirtualBox: """ @@ -82,7 +86,11 @@ async def create_virtualbox_node(project_id: UUID, node_data: schemas.VirtualBox return vm.asdict() -@router.get("/{node_id}", response_model=schemas.VirtualBox) +@router.get( + "/{node_id}", + response_model=schemas.VirtualBox, + dependencies=[Depends(compute_authentication)] +) def get_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> schemas.VirtualBox: """ Return a VirtualBox node. @@ -91,7 +99,11 @@ def get_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> schemas.Virtu return node.asdict() -@router.put("/{node_id}", response_model=schemas.VirtualBox) +@router.put( + "/{node_id}", + response_model=schemas.VirtualBox, + dependencies=[Depends(compute_authentication)] +) async def update_virtualbox_node( node_data: schemas.VirtualBoxUpdate, node: VirtualBoxVM = Depends(dep_node) @@ -136,7 +148,11 @@ async def update_virtualbox_node( return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Delete a VirtualBox node. @@ -145,7 +161,11 @@ async def delete_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None await VirtualBox.instance().delete_node(node.id) -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Start a VirtualBox node. @@ -154,7 +174,11 @@ async def start_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Stop a VirtualBox node. @@ -163,7 +187,11 @@ async def stop_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Suspend a VirtualBox node. @@ -172,7 +200,11 @@ async def suspend_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> Non await node.suspend() -@router.post("/{node_id}/resume", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/resume", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def resume_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Resume a VirtualBox node. @@ -181,7 +213,11 @@ async def resume_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None await node.resume() -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None: """ Reload a VirtualBox node. @@ -194,6 +230,7 @@ async def reload_virtualbox_node(node: VirtualBoxVM = Depends(dep_node)) -> None "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_virtualbox_node_nio( *, @@ -216,6 +253,7 @@ async def create_virtualbox_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_virtualbox_node_nio( *, @@ -238,7 +276,11 @@ async def update_virtualbox_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_virtualbox_node_nio( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -252,7 +294,10 @@ async def delete_virtualbox_node_nio( await node.adapter_remove_nio_binding(adapter_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_virtualbox_node_capture( *, adapter_number: int, @@ -271,7 +316,9 @@ async def start_virtualbox_node_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_virtualbox_node_capture( adapter_number: int, @@ -286,7 +333,10 @@ async def stop_virtualbox_node_capture( await node.stop_capture(adapter_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -302,8 +352,13 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: VirtualBoxVM = Depends(dep_node)) -> None: +@router.websocket( + "/{node_id}/console/ws" +) +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: VirtualBoxVM = Depends(dep_node) +) -> None: """ Console WebSocket. """ @@ -311,7 +366,11 @@ async def console_ws(websocket: WebSocket, node: VirtualBoxVM = Depends(dep_node await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: VirtualBoxVM = Depends(dep_node)) -> None: await node.reset_console() diff --git a/gns3server/api/routes/compute/vmware_nodes.py b/gns3server/api/routes/compute/vmware_nodes.py index d7c38844..f1e3752c 100644 --- a/gns3server/api/routes/compute/vmware_nodes.py +++ b/gns3server/api/routes/compute/vmware_nodes.py @@ -20,16 +20,18 @@ API routes for VMware nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Path, Response, status +from fastapi import APIRouter, WebSocket, Depends, Path, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse from uuid import UUID +from typing import Union from gns3server import schemas from gns3server.compute.vmware import VMware -from gns3server.compute.project_manager import ProjectManager from gns3server.compute.vmware.vmware_vm import VMwareVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or VMware node"}} router = APIRouter(responses=responses, deprecated=True) @@ -50,6 +52,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> VMwareVM: response_model=schemas.VMware, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create VMware node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_vmware_node(project_id: UUID, node_data: schemas.VMwareCreate) -> schemas.VMware: """ @@ -76,7 +79,11 @@ async def create_vmware_node(project_id: UUID, node_data: schemas.VMwareCreate) return vm.asdict() -@router.get("/{node_id}", response_model=schemas.VMware) +@router.get( + "/{node_id}", + response_model=schemas.VMware, + dependencies=[Depends(compute_authentication)] +) def get_vmware_node(node: VMwareVM = Depends(dep_node)) -> schemas.VMware: """ Return a VMware node. @@ -85,7 +92,11 @@ def get_vmware_node(node: VMwareVM = Depends(dep_node)) -> schemas.VMware: return node.asdict() -@router.put("/{node_id}", response_model=schemas.VMware) +@router.put( + "/{node_id}", + response_model=schemas.VMware, + dependencies=[Depends(compute_authentication)] +) def update_vmware_node(node_data: schemas.VMwareUpdate, node: VMwareVM = Depends(dep_node)) -> schemas.VMware: """ Update a VMware node. @@ -102,7 +113,11 @@ def update_vmware_node(node_data: schemas.VMwareUpdate, node: VMwareVM = Depends return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Delete a VMware node. @@ -111,7 +126,11 @@ async def delete_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: await VMware.instance().delete_node(node.id) -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Start a VMware node. @@ -120,7 +139,11 @@ async def start_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Stop a VMware node. @@ -129,7 +152,11 @@ async def stop_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Suspend a VMware node. @@ -138,7 +165,11 @@ async def suspend_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: await node.suspend() -@router.post("/{node_id}/resume", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/resume", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def resume_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Resume a VMware node. @@ -147,7 +178,11 @@ async def resume_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: await node.resume() -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: """ Reload a VMware node. @@ -160,6 +195,7 @@ async def reload_vmware_node(node: VMwareVM = Depends(dep_node)) -> None: "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_vmware_node_nio( *, @@ -182,6 +218,7 @@ async def create_vmware_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_vmware_node_nio( *, @@ -202,7 +239,11 @@ async def update_vmware_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_vmware_node_nio( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -216,7 +257,10 @@ async def delete_vmware_node_nio( await node.adapter_remove_nio_binding(adapter_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_vmware_node_capture( *, adapter_number: int, @@ -235,7 +279,9 @@ async def start_vmware_node_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_vmware_node_capture( adapter_number: int, @@ -250,7 +296,10 @@ async def stop_vmware_node_capture( await node.stop_capture(adapter_number) -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( adapter_number: int, port_number: int = Path(..., ge=0, le=0), @@ -266,7 +315,11 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.post("/{node_id}/interfaces/vmnet", status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/interfaces/vmnet", + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) def allocate_vmnet(node: VMwareVM = Depends(dep_node)) -> dict: """ Allocate a VMware VMnet interface on the server. @@ -280,16 +333,23 @@ def allocate_vmnet(node: VMwareVM = Depends(dep_node)) -> dict: @router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: VMwareVM = Depends(dep_node)) -> None: +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: VMwareVM = Depends(dep_node) +) -> None: """ Console WebSocket. """ - await node.start_websocket_console(websocket) + if websocket: + await node.start_websocket_console(websocket) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reset_console(node: VMwareVM = Depends(dep_node)) -> None: await node.reset_console() - diff --git a/gns3server/api/routes/compute/vpcs_nodes.py b/gns3server/api/routes/compute/vpcs_nodes.py index df4f82c3..143ceef8 100644 --- a/gns3server/api/routes/compute/vpcs_nodes.py +++ b/gns3server/api/routes/compute/vpcs_nodes.py @@ -20,15 +20,18 @@ API routes for VPCS nodes. import os -from fastapi import APIRouter, WebSocket, Depends, Body, Path, Response, status +from fastapi import APIRouter, WebSocket, Depends, Body, Path, status from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse +from typing import Union from uuid import UUID from gns3server import schemas from gns3server.compute.vpcs import VPCS from gns3server.compute.vpcs.vpcs_vm import VPCSVM +from .dependencies.authentication import compute_authentication, ws_compute_authentication + responses = {404: {"model": schemas.ErrorMessage, "description": "Could not find project or VMware node"}} router = APIRouter(responses=responses) @@ -49,6 +52,7 @@ def dep_node(project_id: UUID, node_id: UUID) -> VPCSVM: response_model=schemas.VPCS, status_code=status.HTTP_201_CREATED, responses={409: {"model": schemas.ErrorMessage, "description": "Could not create VMware node"}}, + dependencies=[Depends(compute_authentication)] ) async def create_vpcs_node(project_id: UUID, node_data: schemas.VPCSCreate) -> schemas.VPCS: """ @@ -69,7 +73,11 @@ async def create_vpcs_node(project_id: UUID, node_data: schemas.VPCSCreate) -> s return vm.asdict() -@router.get("/{node_id}", response_model=schemas.VPCS) +@router.get( + "/{node_id}", + response_model=schemas.VPCS, + dependencies=[Depends(compute_authentication)] +) def get_vpcs_node(node: VPCSVM = Depends(dep_node)) -> schemas.VPCS: """ Return a VPCS node. @@ -78,7 +86,11 @@ def get_vpcs_node(node: VPCSVM = Depends(dep_node)) -> schemas.VPCS: return node.asdict() -@router.put("/{node_id}", response_model=schemas.VPCS) +@router.put( + "/{node_id}", + response_model=schemas.VPCS, + dependencies=[Depends(compute_authentication)] +) def update_vpcs_node(node_data: schemas.VPCSUpdate, node: VPCSVM = Depends(dep_node)) -> schemas.VPCS: """ Update a VPCS node. @@ -92,7 +104,11 @@ def update_vpcs_node(node_data: schemas.VPCSUpdate, node: VPCSVM = Depends(dep_n return node.asdict() -@router.delete("/{node_id}", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: """ Delete a VPCS node. @@ -101,7 +117,12 @@ async def delete_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: await VPCS.instance().delete_node(node.id) -@router.post("/{node_id}/duplicate", response_model=schemas.VPCS, status_code=status.HTTP_201_CREATED) +@router.post( + "/{node_id}/duplicate", + response_model=schemas.VPCS, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(compute_authentication)] +) async def duplicate_vpcs_node( destination_node_id: UUID = Body(..., embed=True), node: VPCSVM = Depends(dep_node)) -> None: @@ -113,7 +134,11 @@ async def duplicate_vpcs_node( return new_node.asdict() -@router.post("/{node_id}/start", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/start", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def start_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: """ Start a VPCS node. @@ -122,7 +147,11 @@ async def start_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: await node.start() -@router.post("/{node_id}/stop", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def stop_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: """ Stop a VPCS node. @@ -131,7 +160,11 @@ async def stop_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: await node.stop() -@router.post("/{node_id}/suspend", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/suspend", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def suspend_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: """ Suspend a VPCS node. @@ -141,7 +174,11 @@ async def suspend_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: pass -@router.post("/{node_id}/reload", status_code=status.HTTP_204_NO_CONTENT) +@router.post( + "/{node_id}/reload", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def reload_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: """ Reload a VPCS node. @@ -154,6 +191,7 @@ async def reload_vpcs_node(node: VPCSVM = Depends(dep_node)) -> None: "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def create_vpcs_node_nio( *, @@ -176,6 +214,7 @@ async def create_vpcs_node_nio( "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_201_CREATED, response_model=schemas.UDPNIO, + dependencies=[Depends(compute_authentication)] ) async def update_vpcs_node_nio( *, @@ -196,7 +235,11 @@ async def update_vpcs_node_nio( return nio.asdict() -@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", status_code=status.HTTP_204_NO_CONTENT) +@router.delete( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) async def delete_vpcs_node_nio( *, adapter_number: int = Path(..., ge=0, le=0), @@ -211,7 +254,10 @@ async def delete_vpcs_node_nio( await node.port_remove_nio_binding(port_number) -@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start") +@router.post( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start", + dependencies=[Depends(compute_authentication)] +) async def start_vpcs_node_capture( *, adapter_number: int = Path(..., ge=0, le=0), @@ -230,7 +276,9 @@ async def start_vpcs_node_capture( @router.post( - "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", status_code=status.HTTP_204_NO_CONTENT + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] ) async def stop_vpcs_node_capture( *, @@ -246,13 +294,10 @@ async def stop_vpcs_node_capture( await node.stop_capture(port_number) -@router.post("/{node_id}/console/reset", status_code=status.HTTP_204_NO_CONTENT) -async def reset_console(node: VPCSVM = Depends(dep_node)) -> None: - - await node.reset_console() - - -@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream") +@router.get( + "/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream", + dependencies=[Depends(compute_authentication)] +) async def stream_pcap_file( *, adapter_number: int = Path(..., ge=0, le=0), @@ -269,10 +314,24 @@ async def stream_pcap_file( return StreamingResponse(stream, media_type="application/vnd.tcpdump.pcap") -@router.websocket("/{node_id}/console/ws") -async def console_ws(websocket: WebSocket, node: VPCSVM = Depends(dep_node)) -> None: +@router.websocket( + "/{node_id}/console/ws" +) +async def console_ws( + websocket: Union[None, WebSocket] = Depends(ws_compute_authentication), + node: VPCSVM = Depends(dep_node)) -> None: """ Console WebSocket. """ await node.start_websocket_console(websocket) + + +@router.post( + "/{node_id}/console/reset", + status_code=status.HTTP_204_NO_CONTENT, + dependencies=[Depends(compute_authentication)] +) +async def reset_console(node: VPCSVM = Depends(dep_node)) -> None: + + await node.reset_console() diff --git a/gns3server/api/routes/controller/acl.py b/gns3server/api/routes/controller/acl.py index cef43bf2..ea33d46e 100644 --- a/gns3server/api/routes/controller/acl.py +++ b/gns3server/api/routes/controller/acl.py @@ -78,9 +78,16 @@ async def endpoints( for project in projects: add_to_endpoints(f"/projects/{project.id}", f'Project "{project.name}"', "project") + if project.status == "closed": + nodes = project.nodes.values() + links = project.links.values() + else: + nodes = [v.asdict() for v in project.nodes.values()] + links = [v.asdict() for v in project.links.values()] + # nodes add_to_endpoints(f"/projects/{project.id}/nodes", f'All nodes in project "{project.name}"', "node") - for node in project.nodes.values(): + for node in nodes: add_to_endpoints( f"/projects/{project.id}/nodes/{node['node_id']}", f'Node "{node["name"]}" in project "{project.name}"', @@ -89,7 +96,7 @@ async def endpoints( # links add_to_endpoints(f"/projects/{project.id}/links", f'All links in project "{project.name}"', "link") - for link in project.links.values(): + for link in links: node_id_1 = link["nodes"][0]["node_id"] node_id_2 = link["nodes"][1]["node_id"] node_name_1 = project.nodes[node_id_1]["name"] @@ -183,7 +190,7 @@ async def create_ace( route_path = re.sub(r"/{[\w:]+}", r"/\\w+", route_path) if re.fullmatch(route_path, ace_create.path): - log.info("Creating ACE for route path", ace_create.path, route_path) + log.info(f"Creating ACE for route path {route_path}") return await rbac_repo.create_ace(ace_create) raise ControllerBadRequestError(f"Path '{ace_create.path}' doesn't match any existing endpoint") diff --git a/gns3server/api/routes/controller/computes.py b/gns3server/api/routes/controller/computes.py index e9619d0b..ca86e912 100644 --- a/gns3server/api/routes/controller/computes.py +++ b/gns3server/api/routes/controller/computes.py @@ -64,7 +64,7 @@ async def create_compute( @router.post( "/{compute_id}/connect", status_code=status.HTTP_204_NO_CONTENT, - dependencies=[Depends(has_privilege("Compute.Audit"))] + #dependencies=[Depends(has_privilege("Compute.Audit"))] # FIXME: this is a temporary workaround due to a bug in the web-ui ) async def connect_compute(compute_id: Union[str, UUID]) -> None: """ @@ -82,7 +82,7 @@ async def connect_compute(compute_id: Union[str, UUID]) -> None: "/{compute_id}", response_model=schemas.Compute, response_model_exclude_unset=True, - dependencies=[Depends(has_privilege("Compute.Audit"))] + #dependencies=[Depends(has_privilege("Compute.Audit"))] # FIXME: this is a temporary workaround due to a bug in the web-ui ) async def get_compute( compute_id: Union[str, UUID], computes_repo: ComputesRepository = Depends(get_repository(ComputesRepository)) @@ -100,7 +100,7 @@ async def get_compute( "", response_model=List[schemas.Compute], response_model_exclude_unset=True, - dependencies=[Depends(has_privilege("Compute.Audit"))] + #dependencies=[Depends(has_privilege("Compute.Audit"))] # FIXME: this is a temporary workaround due to a bug in the web-ui ) async def get_computes( computes_repo: ComputesRepository = Depends(get_repository(ComputesRepository)), diff --git a/gns3server/api/routes/controller/dependencies/authentication.py b/gns3server/api/routes/controller/dependencies/authentication.py index ce49ab0a..05e4d4ae 100644 --- a/gns3server/api/routes/controller/dependencies/authentication.py +++ b/gns3server/api/routes/controller/dependencies/authentication.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import re +import logging from fastapi import Request, Query, Depends, HTTPException, WebSocket, status from fastapi.security import OAuth2PasswordBearer @@ -26,6 +26,7 @@ from gns3server.db.repositories.rbac import RbacRepository from gns3server.services import auth_service from .database import get_repository +log = logging.getLogger(__name__) oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/v3/access/users/login", auto_error=False) @@ -108,7 +109,9 @@ async def get_current_active_user_from_websocket( return user except HTTPException as e: - websocket_error = {"action": "log.error", "event": {"message": f"Could not authenticate while connecting to " - f"WebSocket: {e.detail}"}} + err_msg = f"Could not authenticate while connecting to controller WebSocket: {e.detail}" + websocket_error = {"action": "log.error", "event": {"message": err_msg}} await websocket.send_json(websocket_error) - await websocket.close(code=1008) + log.error(err_msg) + return await websocket.close(code=1008) + diff --git a/gns3server/api/routes/controller/drawings.py b/gns3server/api/routes/controller/drawings.py index 22ca1b95..1d8c47f1 100644 --- a/gns3server/api/routes/controller/drawings.py +++ b/gns3server/api/routes/controller/drawings.py @@ -49,6 +49,9 @@ async def get_drawings(project_id: UUID) -> List[schemas.Drawing]: """ project = await Controller.instance().get_loaded_project(str(project_id)) + if project.status == "closed": + # allow to retrieve drawings from a closed project + return project.drawings.values() return [v.asdict() for v in project.drawings.values()] diff --git a/gns3server/api/routes/controller/images.py b/gns3server/api/routes/controller/images.py index f4780db0..afd592de 100644 --- a/gns3server/api/routes/controller/images.py +++ b/gns3server/api/routes/controller/images.py @@ -23,13 +23,15 @@ import logging import urllib.parse from fastapi import APIRouter, Request, Depends, status +from fastapi.encoders import jsonable_encoder from starlette.requests import ClientDisconnect from sqlalchemy.orm.exc import MultipleResultsFound from typing import List, Optional from gns3server import schemas from gns3server.config import Config -from gns3server.utils.images import InvalidImageError, write_image +from gns3server.compute.qemu import Qemu +from gns3server.utils.images import InvalidImageError, write_image, read_image_info, default_images_directory from gns3server.db.repositories.images import ImagesRepository from gns3server.db.repositories.templates import TemplatesRepository from gns3server.db.repositories.rbac import RbacRepository @@ -50,6 +52,53 @@ log = logging.getLogger(__name__) router = APIRouter() +@router.post( + "/qemu/{image_path:path}", + response_model=schemas.Image, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(has_privilege("Image.Allocate"))] +) +async def create_qemu_image( + image_path: str, + image_data: schemas.QemuDiskImageCreate, + images_repo: ImagesRepository = Depends(get_repository(ImagesRepository)), + +) -> schemas.Image: + """ + Create a new blank Qemu image. + + Required privilege: Image.Allocate + """ + + allow_raw_image = Config.instance().settings.Server.allow_raw_images + if image_data.format == schemas.QemuDiskImageFormat.raw and not allow_raw_image: + raise ControllerBadRequestError("Raw images are not allowed") + + disk_image_path = urllib.parse.unquote(image_path) + image_dir, image_name = os.path.split(disk_image_path) + # check if the path is within the default images directory + base_images_directory = os.path.expanduser(Config.instance().settings.Server.images_path) + full_path = os.path.abspath(os.path.join(base_images_directory, image_dir, image_name)) + if os.path.commonprefix([base_images_directory, full_path]) != base_images_directory: + raise ControllerForbiddenError(f"Cannot write disk image, '{disk_image_path}' is forbidden") + + if not image_dir: + # put the image in the default images directory for Qemu + directory = default_images_directory(image_type="qemu") + os.makedirs(directory, exist_ok=True) + disk_image_path = os.path.abspath(os.path.join(directory, disk_image_path)) + + if await images_repo.get_image(disk_image_path): + raise ControllerBadRequestError(f"Disk image '{disk_image_path}' already exists") + + options = jsonable_encoder(image_data, exclude_unset=True) + # FIXME: should we have the create_disk_image in the compute code since + # this code is used to create images on the controller? + await Qemu.instance().create_disk_image(disk_image_path, options) + + image_info = await read_image_info(disk_image_path, "qemu") + return await images_repo.add_image(**image_info) + @router.get( "", response_model=List[schemas.Image], diff --git a/gns3server/api/routes/controller/links.py b/gns3server/api/routes/controller/links.py index 28743b75..618ea198 100644 --- a/gns3server/api/routes/controller/links.py +++ b/gns3server/api/routes/controller/links.py @@ -70,6 +70,9 @@ async def get_links(project_id: UUID) -> List[schemas.Link]: """ project = await Controller.instance().get_loaded_project(str(project_id)) + if project.status == "closed": + # allow to retrieve links from a closed project + return project.links.values() return [v.asdict() for v in project.links.values()] diff --git a/gns3server/api/routes/controller/nodes.py b/gns3server/api/routes/controller/nodes.py index b096b634..13e84450 100644 --- a/gns3server/api/routes/controller/nodes.py +++ b/gns3server/api/routes/controller/nodes.py @@ -29,6 +29,7 @@ from typing import List, Callable from uuid import UUID from gns3server.controller import Controller +from gns3server.config import Config from gns3server.controller.node import Node from gns3server.controller.project import Project from gns3server.utils import force_unix_path @@ -141,6 +142,9 @@ def get_nodes(project: Project = Depends(dep_project)) -> List[schemas.Node]: Required privilege: Node.Audit """ + if project.status == "closed": + # allow to retrieve nodes from a closed project + return project.nodes.values() return [v.asdict() for v in project.nodes.values()] @@ -507,16 +511,22 @@ async def post_file(file_path: str, request: Request, node: Node = Depends(dep_n # FIXME: response with correct status code (from compute) -@router.websocket("/{node_id}/console/ws", dependencies=[Depends(has_privilege_on_websocket("Node.Console"))]) -async def ws_console(websocket: WebSocket, node: Node = Depends(dep_node)) -> None: +@router.websocket("/{node_id}/console/ws") +async def ws_console( + websocket: WebSocket, + current_user: schemas.User = Depends(has_privilege_on_websocket("Node.Console")), + node: Node = Depends(dep_node) +) -> None: """ WebSocket console. Required privilege: Node.Console """ + if current_user is None: + return + compute = node.compute - await websocket.accept() log.info( f"New client {websocket.client.host}:{websocket.client.port} has connected to controller console WebSocket" ) @@ -554,9 +564,20 @@ async def ws_console(websocket: WebSocket, node: Node = Depends(dep_node)) -> No try: # receive WebSocket data from compute console WebSocket and forward to client. - async with HTTPClient.get_client().ws_connect(ws_console_compute_url) as ws_console_compute: - asyncio.ensure_future(ws_receive(ws_console_compute)) - async for msg in ws_console_compute: + log.info(f"Forwarding console WebSocket to '{ws_console_compute_url}'") + server_config = Config.instance().settings.Server + user = server_config.compute_username + password = server_config.compute_password + if not user: + raise ControllerForbiddenError("Compute username is not set") + user = user.strip() + if user and password: + auth = aiohttp.BasicAuth(user, password.get_secret_value(), "utf-8") + else: + auth = aiohttp.BasicAuth(user, "") + async with HTTPClient.get_client().ws_connect(ws_console_compute_url, auth=auth) as ws: + asyncio.ensure_future(ws_receive(ws)) + async for msg in ws: if msg.type == aiohttp.WSMsgType.TEXT: await websocket.send_text(msg.data) elif msg.type == aiohttp.WSMsgType.BINARY: diff --git a/gns3server/api/routes/controller/pools.py b/gns3server/api/routes/controller/pools.py index 17e1c17c..6c8e865f 100644 --- a/gns3server/api/routes/controller/pools.py +++ b/gns3server/api/routes/controller/pools.py @@ -191,6 +191,7 @@ async def add_resource_to_pool( if not resource_pool: raise ControllerNotFoundError(f"Resource pool '{resource_pool_id}' not found") + # TODO: consider if a resource can belong to multiple pools resources = await pools_repo.get_pool_resources(resource_pool_id) for resource in resources: if resource.resource_id == resource_id: @@ -198,8 +199,13 @@ async def add_resource_to_pool( # we only support projects in resource pools for now project = Controller.instance().get_project(str(resource_id)) - resource_create = schemas.ResourceCreate(resource_id=resource_id, resource_type="project", name=project.name) - resource = await pools_repo.create_resource(resource_create) + + resource = await pools_repo.get_resource(resource_id) + if not resource: + # the resource is not in the database yet, create it + resource_create = schemas.ResourceCreate(resource_id=resource_id, resource_type="project", name=project.name) + resource = await pools_repo.create_resource(resource_create) + await pools_repo.add_resource_to_pool(resource_pool_id, resource) @@ -226,3 +232,8 @@ async def remove_resource_from_pool( resource_pool = await pools_repo.remove_resource_from_pool(resource_pool_id, resource) if not resource_pool: raise ControllerNotFoundError(f"Resource pool '{resource_pool_id}' not found") + + # TODO: consider if a resource can belong to multiple pools + success = await pools_repo.delete_resource(resource.resource_id) + if not success: + raise ControllerError(f"Resource '{resource_id}' could not be deleted") diff --git a/gns3server/api/routes/controller/symbols.py b/gns3server/api/routes/controller/symbols.py index 6d73c623..c6dee131 100644 --- a/gns3server/api/routes/controller/symbols.py +++ b/gns3server/api/routes/controller/symbols.py @@ -39,7 +39,10 @@ log = logging.getLogger(__name__) router = APIRouter() -@router.get("", dependencies=[Depends(has_privilege("Symbol.Audit"))]) +@router.get( + "", + dependencies=[Depends(has_privilege("Symbol.Audit"))] +) def get_symbols() -> List[dict]: """ Return all symbols. @@ -54,7 +57,8 @@ def get_symbols() -> List[dict]: @router.get( "/{symbol_id:path}/raw", responses={404: {"model": schemas.ErrorMessage, "description": "Could not find symbol"}}, - dependencies=[Depends(has_privilege("Symbol.Audit"))] + # FIXME: this is a temporary workaround due to a bug in the web-ui: https://github.com/GNS3/gns3-web-ui/issues/1466 + # dependencies=[Depends(has_privilege("Symbol.Audit"))] ) async def get_symbol(symbol_id: str) -> FileResponse: """ diff --git a/gns3server/api/routes/controller/templates.py b/gns3server/api/routes/controller/templates.py index 9d67a74d..cd5aae17 100644 --- a/gns3server/api/routes/controller/templates.py +++ b/gns3server/api/routes/controller/templates.py @@ -68,7 +68,8 @@ async def create_template( "/{template_id}", response_model=schemas.Template, response_model_exclude_unset=True, - dependencies=[Depends(has_privilege("Template.Audit"))] + dependencies=[Depends(get_current_active_user)], + #dependencies=[Depends(has_privilege("Template.Audit"))] # FIXME: this is a temporary workaround due to a bug in the web-ui ) async def get_template( template_id: UUID, @@ -141,7 +142,8 @@ async def delete_template( "", response_model=List[schemas.Template], response_model_exclude_unset=True, - dependencies=[Depends(has_privilege("Template.Audit"))] + dependencies=[Depends(get_current_active_user)], + #dependencies=[Depends(has_privilege("Template.Audit"))] # FIXME: this is a temporary workaround due to a bug in the web-ui ) async def get_templates( templates_repo: TemplatesRepository = Depends(get_repository(TemplatesRepository)), diff --git a/gns3server/appliances/almalinux.gns3a b/gns3server/appliances/almalinux.gns3a index 56e3f9cf..f0ad0526 100644 --- a/gns3server/appliances/almalinux.gns3a +++ b/gns3server/appliances/almalinux.gns3a @@ -21,7 +21,8 @@ "hda_disk_interface": "sata", "arch": "x86_64", "console_type": "telnet", - "kvm": "allow" + "kvm": "allow", + "options": "-cpu host -nographic" }, "images": [ { diff --git a/gns3server/appliances/alpine-linux-virt.gns3a b/gns3server/appliances/alpine-linux-virt.gns3a index fcfc7bf6..8b5752ba 100644 --- a/gns3server/appliances/alpine-linux-virt.gns3a +++ b/gns3server/appliances/alpine-linux-virt.gns3a @@ -25,6 +25,14 @@ "kvm": "allow" }, "images": [ + { + "filename": "alpine-virt-3.18.4.qcow2", + "version": "3.18.4", + "md5sum": "99d393c16c870e12c4215aadd82ca998", + "filesize": 51066880, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/alpine-virt-3.18.4.qcow2/download" + }, { "filename": "alpine-virt-3.16.img", "version": "3.16", @@ -35,6 +43,12 @@ } ], "versions": [ + { + "name": "3.18.4", + "images": { + "hda_disk_image": "alpine-virt-3.18.4.qcow2" + } + }, { "name": "3.16", "images": { diff --git a/gns3server/appliances/alpine-linux.gns3a b/gns3server/appliances/alpine-linux.gns3a index 4ad16883..c5a207d0 100644 --- a/gns3server/appliances/alpine-linux.gns3a +++ b/gns3server/appliances/alpine-linux.gns3a @@ -5,6 +5,7 @@ "description": "Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.", "vendor_name": "Alpine Linux Development Team", "vendor_url": "http://alpinelinux.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Alpine Linux.png", "documentation_url": "http://wiki.alpinelinux.org", "product_name": "Alpine Linux", "registry_version": 4, diff --git a/gns3server/appliances/bird2.gns3a b/gns3server/appliances/bird2.gns3a index 4d573e11..4a076d78 100644 --- a/gns3server/appliances/bird2.gns3a +++ b/gns3server/appliances/bird2.gns3a @@ -29,7 +29,7 @@ "md5sum": "435218a2e90cba921cc7fde1d64a9419", "filesize": 287965184, "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", - "direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2" + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2" } ], "versions": [ diff --git a/gns3server/appliances/centos-cloud.gns3a b/gns3server/appliances/centos-cloud.gns3a index c9666c40..74c645ff 100644 --- a/gns3server/appliances/centos-cloud.gns3a +++ b/gns3server/appliances/centos-cloud.gns3a @@ -12,7 +12,7 @@ "status": "stable", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Username: centos\nPassword: centos", + "usage": "Username: centos or cloud-user\nPassword: centos", "port_name_format": "Ethernet{0}", "qemu": { "adapter_type": "virtio-net-pci", @@ -23,16 +23,16 @@ "console_type": "telnet", "boot_priority": "c", "kvm": "require", - "options": "-nographic" + "options": "-cpu host -nographic" }, "images": [ { - "filename": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2", - "version": "Stream-9 (20230727.1)", - "md5sum": "b66b7e4951cb5491ae44d5616d56b7cf", - "filesize": 1128764416, + "filename": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2", + "version": "Stream-9 (20230704.1)", + "md5sum": "e04511e019325a97837edd9eafe02b48", + "filesize": 1087868416, "download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images", - "direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2" + "direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2" }, { "filename": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2", @@ -77,9 +77,9 @@ ], "versions": [ { - "name": "Stream-9 (20230727.1)", + "name": "Stream-9 (20230704.1)", "images": { - "hda_disk_image": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2", + "hda_disk_image": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2", "cdrom_image": "centos-cloud-init-data.iso" } }, diff --git a/gns3server/appliances/chromium.gns3a b/gns3server/appliances/chromium.gns3a index 1b3d0e80..e9b8d140 100644 --- a/gns3server/appliances/chromium.gns3a +++ b/gns3server/appliances/chromium.gns3a @@ -5,6 +5,7 @@ "description": "The chromium browser", "vendor_name": "Chromium", "vendor_url": "https://www.chromium.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Chromium.jpg", "product_name": "Chromium", "registry_version": 4, "status": "stable", diff --git a/gns3server/appliances/cloudrouter.gns3a b/gns3server/appliances/cloudrouter.gns3a index 20c72ca2..2ee29033 100644 --- a/gns3server/appliances/cloudrouter.gns3a +++ b/gns3server/appliances/cloudrouter.gns3a @@ -5,6 +5,7 @@ "description": "The CloudRouter Project is a collaborative open source project focused on developing a powerful, easy to use router designed for the cloud.\nCompute resources are rapidly migrating from physical infrastructure to a combination of physical, virtual and cloud environments. A similar transition is emerging in the networking space, with network control logic shifting from proprietary hardware-based platforms to open source software-based platforms. CloudRouter is a software-based router distribution designed to run on physical, virtual and cloud environments, supporting software-defined networking infrastructure. It includes the features of traditional hardware routers, as well as support for emerging technologies such as containers and software-defined interconnection. CloudRouter aims to facilitate migration to the cloud without giving up control over network routing and governance.", "vendor_name": "CloudRouter Community", "vendor_url": "https://cloudrouter.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/CloudRouter.png", "documentation_url": "https://cloudrouter.atlassian.net/wiki/display/CPD/CloudRouter+Project+Information", "product_name": "CloudRouter", "product_url": "https://cloudrouter.org/about/", diff --git a/gns3server/appliances/coreos.gns3a b/gns3server/appliances/coreos.gns3a index cdd5d0cf..16dc7d45 100644 --- a/gns3server/appliances/coreos.gns3a +++ b/gns3server/appliances/coreos.gns3a @@ -5,6 +5,7 @@ "description": "CoreOS is designed for security, consistency, and reliability. Instead of installing packages via yum or apt, CoreOS uses Linux containers to manage your services at a higher level of abstraction. A single service's code and all dependencies are packaged within a container that can be run on one or many CoreOS machines.", "vendor_name": "CoreOS, Inc", "vendor_url": "https://coreos.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/CoreOS.png", "documentation_url": "https://coreos.com/docs/", "product_name": "CoreOS", "registry_version": 4, diff --git a/gns3server/appliances/cumulus-vx.gns3a b/gns3server/appliances/cumulus-vx.gns3a index 8183d425..9732c282 100644 --- a/gns3server/appliances/cumulus-vx.gns3a +++ b/gns3server/appliances/cumulus-vx.gns3a @@ -5,6 +5,7 @@ "description": "Cumulus VX is a community-supported virtual appliance that enables cloud admins and network engineers to preview and test Cumulus Networks technology at zero cost. You can build sandbox environments to learn Open Networking concepts, prototype network operations and script & develop applications risk-free. With Cumulus VX, you can get started with Open Networking at your pace, on your time, and in your environment!", "vendor_name": "Cumulus Network", "vendor_url": "https://www.cumulusnetworks.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Cumulus VX.jpg", "documentation_url": "http://docs.cumulusnetworks.com/", "product_name": "Cumulus VX", "product_url": "https://cumulusnetworks.com/cumulus-vx/", diff --git a/gns3server/appliances/debian.gns3a b/gns3server/appliances/debian.gns3a index bb3909f4..91525a42 100644 --- a/gns3server/appliances/debian.gns3a +++ b/gns3server/appliances/debian.gns3a @@ -10,7 +10,7 @@ "status": "experimental", "maintainer": "Bernhard Ehlers", "maintainer_email": "dev-ehlers@mailbox.org", - "usage": "Username:\tdebian\nPassword:\tdebian\nTo become root, use \"sudo -s\".\n\nNetwork configuration:\n- In \"/etc/network/interfaces\" comment out \"source-directory /run/network/interfaces.d\"\n- Remove \"/etc/network/interfaces.d/50-cloud-init\"\n- Create \"/etc/network/interfaces.d/10-ens4\", for example:\n\nauto ens4\n#iface ens4 inet dhcp\niface ens4 inet static\n address 10.1.1.100/24\n gateway 10.1.1.1\n dns-nameservers 10.1.1.1\n", + "usage": "Username:\tdebian\nPassword:\tdebian\nTo become root, use \"sudo -s\".\n", "symbol": "linux_guest.svg", "port_name_format": "ens{port4}", "qemu": { @@ -24,58 +24,33 @@ }, "images": [ { - "filename": "debian-12-genericcloud-amd64-20230723-1450.qcow2", - "version": "12.1", - "md5sum": "6d1efcaa206de01eeeb590d773421c5c", - "filesize": 280166400, - "download_url": "https://cloud.debian.org/images/cloud/bookworm/", - "direct_download_url": "https://cloud.debian.org/images/cloud/bookworm/20230723-1450/debian-12-genericcloud-amd64-20230723-1450.qcow2" + "filename": "debian-12.2.qcow2", + "version": "12.2", + "md5sum": "adf7716ec4a4e4e9e5ccfc7a1d7bd103", + "filesize": 286654464, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.2.qcow2" }, { - "filename": "debian-11-genericcloud-amd64-20230601-1398.qcow2", - "version": "11.7", - "md5sum": "1b24a841dc5ca9bcf40b94ad4b4775d4", - "filesize": 259063808, - "download_url": "https://cloud.debian.org/images/cloud/bullseye/", - "direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20230601-1398/debian-11-genericcloud-amd64-20230601-1398.qcow2" - }, - { - "filename": "debian-10-genericcloud-amd64-20230601-1398.qcow2", - "version": "10.13", - "md5sum": "ca799fb4011712f4686c422c1a9731cf", - "filesize": 228130816, - "download_url": "https://cloud.debian.org/images/cloud/buster/", - "direct_download_url": "https://cloud.debian.org/images/cloud/buster/20230601-1398/debian-10-genericcloud-amd64-20230601-1398.qcow2" - }, - { - "filename": "debian-cloud-init-data.iso", - "version": "1.0", - "md5sum": "43f6bf70c178a9d3c270b5c24971e578", - "filesize": 374784, - "download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/Debian", - "direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/Debian/debian-cloud-init-data.iso" + "filename": "debian-11.8.qcow2", + "version": "11.8", + "md5sum": "95bf44716c7fa1a1da290fd3c98591f2", + "filesize": 264933376, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-11.8.qcow2" } ], "versions": [ { - "name": "12.1", + "name": "12.2", "images": { - "hda_disk_image": "debian-12-genericcloud-amd64-20230723-1450.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" + "hda_disk_image": "debian-12.2.qcow2" } }, { - "name": "11.7", + "name": "11.8", "images": { - "hda_disk_image": "debian-11-genericcloud-amd64-20230601-1398.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" - } - }, - { - "name": "10.13", - "images": { - "hda_disk_image": "debian-10-genericcloud-amd64-20230601-1398.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" + "hda_disk_image": "debian-11.8.qcow2" } } ] diff --git a/gns3server/appliances/empty-vm.gns3a b/gns3server/appliances/empty-vm.gns3a index 52f73331..d0575449 100644 --- a/gns3server/appliances/empty-vm.gns3a +++ b/gns3server/appliances/empty-vm.gns3a @@ -33,6 +33,22 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty8G.qcow2/download" }, + { + "filename": "empty10G.qcow2", + "version": "10G", + "md5sum": "1d4589798b8a63a6afa7150492ca3193", + "filesize": 196768, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty10G.qcow2/download" + }, + { + "filename": "empty20G.qcow2", + "version": "20G", + "md5sum": "df9e4a1169c597117fd8999f0bc3de91", + "filesize": 196928, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty20G.qcow2/download" + }, { "filename": "empty30G.qcow2", "version": "30G", @@ -41,6 +57,22 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" }, + { + "filename": "empty40G.qcow2", + "version": "40G", + "md5sum": "4a9e538aa1946a27d91a8d53a8dbc546", + "filesize": 197248, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty50G.qcow2/download" + }, + { + "filename": "empty50G.qcow2", + "version": "50G", + "md5sum": "9a17e67e685907fbc0c351689ab289b2", + "filesize": 197408, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty40G.qcow2/download" + }, { "filename": "empty100G.qcow2", "version": "100G", @@ -49,6 +81,14 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" }, + { + "filename": "empty150G.qcow2", + "version": "150G", + "md5sum": "7db590ad39f84fdfc91516d162af26f6", + "filesize": 199008, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty150G.qcow2/download" + }, { "filename": "empty200G.qcow2", "version": "200G", @@ -56,6 +96,30 @@ "filesize": 200192, "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty200G.qcow2/download" + }, + { + "filename": "empty250G.qcow2", + "version": "250G", + "md5sum": "7d7272f02edd189aafd81f9c29a35255", + "filesize": 200608, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty250G.qcow2/download" + }, + { + "filename": "empty500G.qcow2", + "version": "500G", + "md5sum": "658c825441b9b3080ba00f9eec002eaa", + "filesize": 204608, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty500G.qcow2/download" + }, + { + "filename": "empty1T.qcow2", + "version": "1T", + "md5sum": "34997a22f618827aaa62bcfd5b8ce2bb", + "filesize": 212992, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty1T.qcow2/download" } ], "versions": [ @@ -65,23 +129,71 @@ "hda_disk_image": "empty8G.qcow2" } }, + { + "name": "10G", + "images": { + "hda_disk_image": "empty10G.qcow2" + } + }, + { + "name": "20G", + "images": { + "hda_disk_image": "empty20G.qcow2" + } + }, { "name": "30G", "images": { "hda_disk_image": "empty30G.qcow2" } }, + { + "name": "40G", + "images": { + "hda_disk_image": "empty40G.qcow2" + } + }, + { + "name": "50G", + "images": { + "hda_disk_image": "empty50G.qcow2" + } + }, { "name": "100G", "images": { "hda_disk_image": "empty100G.qcow2" } }, + { + "name": "150G", + "images": { + "hda_disk_image": "empty150G.qcow2" + } + }, { "name": "200G", "images": { "hda_disk_image": "empty200G.qcow2" } + }, + { + "name": "250G", + "images": { + "hda_disk_image": "empty250G.qcow2" + } + }, + { + "name": "500G", + "images": { + "hda_disk_image": "empty500G.qcow2" + } + }, + { + "name": "1T", + "images": { + "hda_disk_image": "empty1T.qcow2" + } } ] } diff --git a/gns3server/appliances/extreme-networks-voss.gns3a b/gns3server/appliances/extreme-networks-voss.gns3a index abe36275..a5ef0a64 100644 --- a/gns3server/appliances/extreme-networks-voss.gns3a +++ b/gns3server/appliances/extreme-networks-voss.gns3a @@ -5,6 +5,7 @@ "description": "The VOSS VM is a software emulation of a VSP8K switch.", "vendor_name": "Extreme Networks", "vendor_url": "http://www.extremenetworks.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/VOSS VM.jpeg", "documentation_url": "http://www.extremenetworks.com/support/documentation", "product_name": "VOSS_VM", "registry_version": 4, diff --git a/gns3server/appliances/firefox.gns3a b/gns3server/appliances/firefox.gns3a index 8e43cfd6..071f6984 100644 --- a/gns3server/appliances/firefox.gns3a +++ b/gns3server/appliances/firefox.gns3a @@ -5,6 +5,7 @@ "description": "A light Linux based on TinyCore Linux with Firefox preinstalled", "vendor_name": "Mozilla Foundation", "vendor_url": "http://www.mozilla.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Firefox.png", "documentation_url": "https://support.mozilla.org", "product_name": "Firefox", "product_url": "https://www.mozilla.org/firefox", diff --git a/gns3server/appliances/fortianalyzer.gns3a b/gns3server/appliances/fortianalyzer.gns3a index 57f14c9b..58486e57 100644 --- a/gns3server/appliances/fortianalyzer.gns3a +++ b/gns3server/appliances/fortianalyzer.gns3a @@ -5,6 +5,7 @@ "description": "FortiAnalyzer Network Security Logging, Analysis, and Reporting Appliances securely aggregate log data from Fortinet Security Appliances. A comprehensive suite of easily customable reports allows you to quickly analyze and visualize network threats, inefficiencies and usage.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiAnalyzer.jpg", "documentation_url": "http://docs.fortinet.com/fortianalyzer/", "product_name": "FortiAnalyzer", "product_url": "https://www.fortinet.com/products-services/products/management-reporting/fortianalyzer.html", diff --git a/gns3server/appliances/fortiauthenticator.gns3a b/gns3server/appliances/fortiauthenticator.gns3a index 24ec0f4b..6ce0bb96 100644 --- a/gns3server/appliances/fortiauthenticator.gns3a +++ b/gns3server/appliances/fortiauthenticator.gns3a @@ -5,6 +5,7 @@ "description": "FortiAuthenticator user identity management appliances strengthen enterprise security by simplifying and centralizing the management and storage of user identity information.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiAuthenticator.jpg", "documentation_url": "http://docs.fortinet.com/fortiauthenticator/admin-guides", "product_name": "FortiAuthenticator", "product_url": "https://www.fortinet.com/products/identity-access-management/fortiauthenticator.html", diff --git a/gns3server/appliances/forticache.gns3a b/gns3server/appliances/forticache.gns3a index c41ae745..9638b0fc 100644 --- a/gns3server/appliances/forticache.gns3a +++ b/gns3server/appliances/forticache.gns3a @@ -5,6 +5,7 @@ "description": "FortiCache VM high performance Web Caching virtual appliances address bandwidth saturation, high latency, and poor performance caused by caching popular internet content locally for carriers, service providers, enterprises and educational networks. FortiCache VM appliances reduce the cost and impact of cached content on the network, while increasing performance and end- user satisfaction by improving the speed of delivery of popular repeated content.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiCache.jpg", "documentation_url": "http://docs.fortinet.com/forticache/admin-guides", "product_name": "FortiCache", "product_url": "https://www.fortinet.com/products-services/products/wan-appliances/forticache.html", diff --git a/gns3server/appliances/fortigate.gns3a b/gns3server/appliances/fortigate.gns3a index c730d176..9f85fd5e 100644 --- a/gns3server/appliances/fortigate.gns3a +++ b/gns3server/appliances/fortigate.gns3a @@ -5,6 +5,7 @@ "description": "FortiGate Virtual Appliance offers the same level of advanced threat prevention features like the physical appliances in private, hybrid and public cloud deployment.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiGate.jpg", "documentation_url": "http://docs.fortinet.com/p/inside-fortios", "product_name": "FortiGate", "product_url": "http://www.fortinet.com/products/fortigate/virtual-appliances.html", diff --git a/gns3server/appliances/fortimail.gns3a b/gns3server/appliances/fortimail.gns3a index 774b17b5..a29f740d 100644 --- a/gns3server/appliances/fortimail.gns3a +++ b/gns3server/appliances/fortimail.gns3a @@ -5,6 +5,7 @@ "description": "FortiMail is a complete Secure Email Gateway offering suitable for any size organization. It provides a single solution to protect against inbound attacks - including advanced malware -, as well as outbound threats and data loss with a wide range of top-rated security capabilities.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiMail.jpg", "documentation_url": "http://docs.fortinet.com/fortimail/admin-guides", "product_name": "FortiMail", "product_url": "http://www.fortinet.com/products/fortimail/index.html", diff --git a/gns3server/appliances/fortimanager.gns3a b/gns3server/appliances/fortimanager.gns3a index a8333452..636bb14d 100644 --- a/gns3server/appliances/fortimanager.gns3a +++ b/gns3server/appliances/fortimanager.gns3a @@ -5,6 +5,7 @@ "description": "FortiManager Security Management appliances allow you to centrally manage any number of Fortinet Network Security devices, from several to thousands, including FortiGate, FortiWiFi, and FortiCarrier.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiManager.jpg", "documentation_url": "http://docs.fortinet.com/p/inside-fortios", "product_name": "FortiManager", "product_url": "http://www.fortinet.com/products/fortimanager/virtual-security-management.html", diff --git a/gns3server/appliances/fortisandbox.gns3a b/gns3server/appliances/fortisandbox.gns3a index 7173fba2..ddc3f055 100644 --- a/gns3server/appliances/fortisandbox.gns3a +++ b/gns3server/appliances/fortisandbox.gns3a @@ -5,6 +5,7 @@ "description": "Today's threats are increasingly sophisticated and often bypass traditional malware security by masking their malicious activity. A sandbox augments your security architecture by validating threats in a separate, secure environment. FortiSandbox offers a powerful combination of advanced detection, automated mitigation, actionable insight, and flexible deployment to stop targeted attacks and subsequent data loss. It's also a key component of our Advanced Threat Protection solution.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiSandbox.jpg", "documentation_url": "http://docs.fortinet.com/fortisandbox/admin-guides", "product_name": "FortiSandbox", "product_url": "https://www.fortinet.com/products/sandbox/fortisandbox.html", diff --git a/gns3server/appliances/fortisiem-super_worker.gns3a b/gns3server/appliances/fortisiem-super_worker.gns3a index 4500c4bf..fd066541 100644 --- a/gns3server/appliances/fortisiem-super_worker.gns3a +++ b/gns3server/appliances/fortisiem-super_worker.gns3a @@ -5,6 +5,7 @@ "description": "Breaches to network security continue to occur across all industry verticals, even to the most respected brands. The time it takes to discover, isolate, and remediate the incident continues to be measured in hundreds of days-having material impacts on security and compliance standards. It is no wonder that many organizations are struggling. As recent surveys have shown, enterprises have an average of 32 different vendors' devices in their network, with no automated ability to cross-correlate the data that each is collecting. It is also easy to see why organizations are strapped for the cyber security personnel they need to manage all the data in these complex environments.\n\nFrom its inception, FortiSIEM was built to reduce complexity in managing network and security operations. FortiSIEM provides organizations of all sizes with a comprehensive, holistic, and scalable solution for managing security, performance, and compliance from IoT to the cloud.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiSIEM.jpg", "documentation_url": "http://docs.fortinet.com/fortisiem/admin-guides", "product_name": "FortiSIEM", "product_url": "https://www.fortinet.com/products/siem/fortisiem.html", diff --git a/gns3server/appliances/fortiweb.gns3a b/gns3server/appliances/fortiweb.gns3a index 451ce1dc..1c322a6b 100644 --- a/gns3server/appliances/fortiweb.gns3a +++ b/gns3server/appliances/fortiweb.gns3a @@ -5,6 +5,7 @@ "description": "FortiWeb Web Application Firewalls provide specialized, layered web application threat protection for medium/large enterprises, application service providers, and SaaS providers.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiWeb.jpg", "documentation_url": "http://docs.fortinet.com/fortiweb", "product_name": "FortiWeb", "product_url": "http://www.fortinet.com/products/fortiweb/index.html", diff --git a/gns3server/appliances/freebsd.gns3a b/gns3server/appliances/freebsd.gns3a index ad1821d5..c85f8f95 100644 --- a/gns3server/appliances/freebsd.gns3a +++ b/gns3server/appliances/freebsd.gns3a @@ -5,6 +5,7 @@ "description": "FreeBSD is an advanced computer operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.", "vendor_name": "FreeBSD", "vendor_url": "http://www.freebsd.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FreeBSD.jpg", "documentation_url": "https://www.freebsd.org/docs.html", "product_name": "FreeBSD", "registry_version": 4, diff --git a/gns3server/appliances/hp-vsr1001.gns3a b/gns3server/appliances/hp-vsr1001.gns3a index ccbc2c9c..5c876b52 100644 --- a/gns3server/appliances/hp-vsr1001.gns3a +++ b/gns3server/appliances/hp-vsr1001.gns3a @@ -5,6 +5,7 @@ "description": "The HPE VSR1000 Virtual Services Router Series is a software application, running on a server, which provides functionality similar to that of a physical router: robust routing between networked devices using a number of popular routing protocols. It also delivers the critical network services associated with today's enterprise routers such as VPN gateway, firewall and other security and traffic management functions.\n\nThe virtual services router (VSR) application runs on a hypervqcor on the server, and supports VMware vSphere and Linux KVM hypervqcors. From one to eight virtual CPUs are supported, depending on license.\n\nBecause the VSR1000 Series application runs the same HPE Comware version 7 operating system as HPE switches and routers, it enables significant operational savings. And being virtual, additional agility and ease of deployment is realized, as resources on the VSR can be dynamically allocated and upgraded upon demand as performance requirements grow.\n\nA variety of deployment models are supported including enterprise branch CPE routing, and cloud offload for small to medium workloads.", "vendor_name": "HPE", "vendor_url": "http://www.hpe.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/HPE VSR1001.jpg", "documentation_url": "https://support.hpe.com/hpesc/public/home/documentHome?document_type=135&sp4ts.oid=5195141", "product_name": "VSR1001", "product_url": "https://www.hpe.com/us/en/product-catalog/networking/networking-routers/pip.hpe-flexnetwork-vsr1000-virtual-services-router-series.5443163.html", diff --git a/gns3server/appliances/kerio-connect.gns3a b/gns3server/appliances/kerio-connect.gns3a index 0e9f168e..98da7e62 100644 --- a/gns3server/appliances/kerio-connect.gns3a +++ b/gns3server/appliances/kerio-connect.gns3a @@ -5,6 +5,7 @@ "description": "Kerio Connect makes email, calendars, contacts and task management easy and affordable. With Kerio Connect, you have immediate, secure access to your communications anytime, anywhere, on any device - without complexity or expensive overhead.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Connect.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-connect/", "product_name": "Kerio Connect", "product_url": "http://www.kerio.com/products/kerio-connect", diff --git a/gns3server/appliances/kerio-control.gns3a b/gns3server/appliances/kerio-control.gns3a index 440a0a46..3a64daa1 100644 --- a/gns3server/appliances/kerio-control.gns3a +++ b/gns3server/appliances/kerio-control.gns3a @@ -5,6 +5,7 @@ "description": "Protect your network from viruses, malware and malicious activity with Kerio Control, the easy-to-administer yet powerful all-in-one security solution.\nKerio Control brings together next-generation firewall capabilities - including a network firewall and router, intrusion detection and prevention (IPS), gateway anti-virus, VPN, and web content and application filtering. These comprehensive capabilities and unmatched deployment flexibility make Kerio Control the ideal choice for small and mid-sized businesses.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Control.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-control/", "product_name": "Kerio Control", "product_url": "http://www.kerio.com/products/kerio-control", diff --git a/gns3server/appliances/kerio-operator.gns3a b/gns3server/appliances/kerio-operator.gns3a index 3733c12b..332c2ef4 100644 --- a/gns3server/appliances/kerio-operator.gns3a +++ b/gns3server/appliances/kerio-operator.gns3a @@ -5,6 +5,7 @@ "description": "Stay connected to your customers and colleagues without being chained to your desk.\nKerio Operator is a VoIP based phone system that provides powerful yet affordable enterprise-class voice and video communication capabilities for small and mid-sized businesses globally.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Operator.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-operator/", "product_name": "Kerio Operator", "product_url": "http://www.kerio.com/products/kerio-operator", diff --git a/gns3server/appliances/mikrotik-chr.gns3a b/gns3server/appliances/mikrotik-chr.gns3a index b3970598..54806d22 100644 --- a/gns3server/appliances/mikrotik-chr.gns3a +++ b/gns3server/appliances/mikrotik-chr.gns3a @@ -27,6 +27,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-7.11.2.img", + "version": "7.11.2", + "md5sum": "fbffd097d2c5df41fc3335c3977f782c", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download.mikrotik.com/routeros/7.11.2/chr-7.11.2.img.zip", + "compression": "zip" + }, { "filename": "chr-7.10.1.img", "version": "7.10.1", @@ -72,6 +81,15 @@ "direct_download_url": "https://download.mikrotik.com/routeros/7.1.5/chr-7.1.5.img.zip", "compression": "zip" }, + { + "filename": "chr-6.49.10.img", + "version": "6.49.10", + "md5sum": "49ae1ecfe310aea1df37b824aa13cf84", + "filesize": 67108864, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download.mikrotik.com/routeros/6.49.10/chr-6.49.10.img.zip", + "compression": "zip" + }, { "filename": "chr-6.49.6.img", "version": "6.49.6", @@ -92,6 +110,12 @@ } ], "versions": [ + { + "name": "7.11.2", + "images": { + "hda_disk_image": "chr-7.11.2.img" + } + }, { "name": "7.10.1", "images": { @@ -122,6 +146,12 @@ "hda_disk_image": "chr-7.1.5.img" } }, + { + "name": "6.49.10", + "images": { + "hda_disk_image": "chr-6.49.10.img" + } + }, { "name": "6.49.6", "images": { diff --git a/gns3server/appliances/ntopng.gns3a b/gns3server/appliances/ntopng.gns3a index c54cc217..3d13352b 100644 --- a/gns3server/appliances/ntopng.gns3a +++ b/gns3server/appliances/ntopng.gns3a @@ -5,6 +5,7 @@ "description": "ntopng is the next generation version of the original ntop, a network traffic probe that shows the network usage, similar to what the popular top Unix command does. ntopng is based on libpcap and it has been written in a portable way in order to virtually run on every Unix platform, MacOSX and on Windows as well. ntopng users can use a a web browser to navigate through ntop (that acts as a web server) traffic information and get a dump of the network status. In the latter case, ntopng can be seen as a simple RMON-like agent with an embedded web interface.", "vendor_name": "ntop", "vendor_url": "https://www.ntop.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/ntopng.jpg", "documentation_url": "https://www.ntop.org/guides/ntopng/", "product_name": "ntopng", "registry_version": 4, diff --git a/gns3server/appliances/op5-monitor.gns3a b/gns3server/appliances/op5-monitor.gns3a index 32881514..9bfeab89 100644 --- a/gns3server/appliances/op5-monitor.gns3a +++ b/gns3server/appliances/op5-monitor.gns3a @@ -5,6 +5,7 @@ "description": "Over 200,000 IT staff across medium to large enterprises worldwide are currently using OP5 Monitor as their preferred network monitoring software.\nOP5 Monitor allows you to take control of your IT, enabling your network to be more responsive, more reliable and even faster than ever before. With unparalleled scalability, OP5 Monitor grows as your company grows, so you'll understand why we say this is the last network monitor you'll ever need to purchase.", "vendor_name": "OP5", "vendor_url": "https://www.op5.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/OP5 Monitor.jpg", "documentation_url": "https://kb.op5.com/display/MAN/Documentation+Home#sthash.pohb5bis.dpbs", "product_name": "OP5 Monitor", "product_url": "https://www.op5.com/op5-monitor/", diff --git a/gns3server/appliances/open-media-vault.gns3a b/gns3server/appliances/open-media-vault.gns3a index 262a8db0..9b634b93 100644 --- a/gns3server/appliances/open-media-vault.gns3a +++ b/gns3server/appliances/open-media-vault.gns3a @@ -26,6 +26,14 @@ "kvm": "require" }, "images": [ + { + "filename": "openmediavault_6.5.0-amd64.iso", + "version": "6.5.0", + "md5sum": "aa40e5ca50748b139cba2f4ac704a72d", + "filesize": 941621248, + "download_url": "https://www.openmediavault.org/download.html", + "direct_download_url": "https://sourceforge.net/projects/openmediavault/files/6.5.0/openmediavault_6.5.0-amd64.iso" + }, { "filename": "openmediavault_6.0.24-amd64.iso", "version": "6.0.24", @@ -60,6 +68,14 @@ } ], "versions": [ + { + "name": "6.5.0", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "openmediavault_6.5.0-amd64.iso" + } + }, { "name": "6.0.24", "images": { diff --git a/gns3server/appliances/opensuse.gns3a b/gns3server/appliances/opensuse.gns3a index 8c1d8731..b254cfd9 100644 --- a/gns3server/appliances/opensuse.gns3a +++ b/gns3server/appliances/opensuse.gns3a @@ -5,6 +5,7 @@ "description": "openSUSE is a free and Linux-based operating system for PC, Laptop or Server. The openSUSE project is a community program sponsored by Novell. It is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE and a number of other companies.", "vendor_name": "SUSE LLC.", "vendor_url": "https://www.opensuse.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/openSUSE.png", "documentation_url": "https://en.opensuse.org/Main_Page", "product_name": "openSUSE", "product_url": "https://www.opensuse.org/#Leap", diff --git a/gns3server/appliances/openvswitch.gns3a b/gns3server/appliances/openvswitch.gns3a index 14c35d2c..f3e19b9f 100644 --- a/gns3server/appliances/openvswitch.gns3a +++ b/gns3server/appliances/openvswitch.gns3a @@ -5,6 +5,7 @@ "description": "Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to support distribution across multiple physical servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.", "vendor_name": "Open vSwitch", "vendor_url": "http://openvswitch.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Open vSwitch.jpg", "documentation_url": "http://openvswitch.org/support/", "product_name": "Open vSwitch", "product_url": "http://openvswitch.org/", diff --git a/gns3server/appliances/openwrt.gns3a b/gns3server/appliances/openwrt.gns3a index e6428658..add7eb58 100644 --- a/gns3server/appliances/openwrt.gns3a +++ b/gns3server/appliances/openwrt.gns3a @@ -23,6 +23,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "openwrt-23.05.0-x86-64-generic-ext4-combined.img", + "version": "23.05.0", + "md5sum": "8d53c7aa2605a8848b0b2ca759fc924f", + "filesize": 126353408, + "download_url": "https://downloads.openwrt.org/releases/23.05.0/targets/x86/64/", + "direct_download_url": "https://downloads.openwrt.org/releases/23.05.0/targets/x86/64/openwrt-23.05.0-x86-64-generic-ext4-combined.img.gz", + "compression": "gzip" + }, { "filename": "openwrt-22.03.0-x86-64-generic-ext4-combined.img", "version": "22.03.0", @@ -170,7 +179,7 @@ { "filename": "openwrt-18.06.5-x86-64-combined-ext4.img", "version": "18.06.5", - "md5sum": "6fce24c15f0bc75af16c133b839aea30", + "md5sum": "a0f72f4e75e15bef06396fa31eb1bc82", "filesize": 285736960, "download_url": "https://downloads.openwrt.org/releases/18.06.5/targets/x86/64/", "direct_download_url": "https://downloads.openwrt.org/releases/18.06.5/targets/x86/64/openwrt-18.06.5-x86-64-combined-ext4.img.gz", @@ -179,7 +188,7 @@ { "filename": "openwrt-18.06.2-x86-64-combined-ext4.img", "version": "18.06.2", - "md5sum": "d112cd432bf51e2ddadbf9513f272fd9", + "md5sum": "9996a3c070b3e2ea582d28293bd78055", "filesize": 285736960, "download_url": "https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/", "direct_download_url": "https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/openwrt-18.06.2-x86-64-combined-ext4.img.gz", @@ -214,6 +223,12 @@ } ], "versions": [ + { + "name": "23.05.0", + "images": { + "hda_disk_image": "openwrt-23.05.0-x86-64-generic-ext4-combined.img" + } + }, { "name": "22.03.0", "images": { diff --git a/gns3server/appliances/oracle-linux-cloud.gns3a b/gns3server/appliances/oracle-linux-cloud.gns3a index a9709bcc..f4517beb 100644 --- a/gns3server/appliances/oracle-linux-cloud.gns3a +++ b/gns3server/appliances/oracle-linux-cloud.gns3a @@ -26,6 +26,14 @@ "options": "-cpu host -nographic" }, "images": [ + { + "filename": "OL9U2_x86_64-kvm-b197.qcow", + "version": "9.2", + "md5sum": "2ff3d0bc8a243ad89c96215f303f1c73", + "filesize": 560791552, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u2/x86_64/OL9U2_x86_64-kvm-b197.qcow" + }, { "filename": "OL9U1_x86_64-kvm-b158.qcow", "version": "9.1", @@ -34,6 +42,14 @@ "download_url": "https://yum.oracle.com/oracle-linux-templates.html", "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u1/x86_64/OL9U1_x86_64-kvm-b158.qcow" }, + { + "filename": "OL8U8_x86_64-kvm-b198.qcow", + "version": "8.8", + "md5sum": "717622f373d77349cc102a3a325efbd3", + "filesize": 934215680, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u8/x86_64/OL8U8_x86_64-kvm-b198.qcow" + }, { "filename": "OL8U7_x86_64-kvm-b148.qcow", "version": "8.7", @@ -42,6 +58,14 @@ "download_url": "https://yum.oracle.com/oracle-linux-templates.html", "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u7/x86_64/OL8U7_x86_64-kvm-b148.qcow" }, + { + "filename": "OL7U9_x86_64-kvm-b145.qcow", + "version": "7.9", + "md5sum": "e60d4145a69b34026db6121109ca9131", + "filesize": 725221376, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b145.qcow" + }, { "filename": "oracle-cloud-init-data.iso", "version": "1.1", @@ -52,6 +76,13 @@ } ], "versions": [ +{ + "name": "9.2", + "images": { + "hda_disk_image": "OL9U2_x86_64-kvm-b197.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } + }, { "name": "9.1", "images": { @@ -59,12 +90,26 @@ "cdrom_image": "oracle-cloud-init-data.iso" } }, + { + "name": "8.8", + "images": { + "hda_disk_image": "OL8U8_x86_64-kvm-b198.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } + }, { "name": "8.7", "images": { "hda_disk_image": "OL8U7_x86_64-kvm-b148.qcow", "cdrom_image": "oracle-cloud-init-data.iso" } + }, + { + "name": "7.9", + "images": { + "hda_disk_image": "OL7U9_x86_64-kvm-b145.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } } ] } diff --git a/gns3server/appliances/ostinato.gns3a b/gns3server/appliances/ostinato.gns3a index fe00eddf..ec9a991b 100644 --- a/gns3server/appliances/ostinato.gns3a +++ b/gns3server/appliances/ostinato.gns3a @@ -5,6 +5,7 @@ "description": "Packet crafter and traffic generator for network engineers", "vendor_name": "Ostinato", "vendor_url": "https://ostinato.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ostinato.png", "documentation_url": "https://ostinato.org/docs", "product_name": "Ostinato", "product_url": "https://ostinato.org/", diff --git a/gns3server/appliances/packetfence-zen.gns3a b/gns3server/appliances/packetfence-zen.gns3a index 06cedbe8..68394f5e 100644 --- a/gns3server/appliances/packetfence-zen.gns3a +++ b/gns3server/appliances/packetfence-zen.gns3a @@ -5,6 +5,7 @@ "description": "PacketFence is a fully supported, trusted, Free and Open Source network access control (NAC) solution. Boasting an impressive feature set including a captive-portal for registration and remediation, centralized wired and wireless management, 802.1X support, layer-2 isolation of problematic devices, integration with the Snort IDS and the Nessus vulnerability scanner; PacketFence can be used to effectively secure networks - from small to very large heterogeneous networks.", "vendor_name": "Inverse inc.", "vendor_url": "https://packetfence.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/PacketFence ZEN.jpg", "documentation_url": "https://packetfence.org/support/index.html#/documentation", "product_name": "PacketFence ZEN", "product_url": "https://packetfence.org/about.html", diff --git a/gns3server/appliances/rhel.gns3a b/gns3server/appliances/rhel.gns3a index cff50307..291802b5 100644 --- a/gns3server/appliances/rhel.gns3a +++ b/gns3server/appliances/rhel.gns3a @@ -23,7 +23,7 @@ "console_type": "telnet", "boot_priority": "c", "kvm": "require", - "options": "-nographic" + "options": "-cpu host -nographic" }, "images": [ { diff --git a/gns3server/appliances/rockylinux.gns3a b/gns3server/appliances/rockylinux.gns3a index 2dd3fd1b..fcbfad71 100644 --- a/gns3server/appliances/rockylinux.gns3a +++ b/gns3server/appliances/rockylinux.gns3a @@ -27,12 +27,20 @@ }, "images": [ { - "filename": "Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2", - "version": "8.5", - "md5sum": "44982ddace75a1dba17942401086d72c", - "filesize": 1502701568, - "download_url": "https://download.rockylinux.org/pub/rocky/8/images/", - "direct_download_url": "https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2" + "filename": "Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2", + "version": "9.2", + "md5sum": "2022bdb49a691119f1fd3cc76de0a846", + "filesize": 989265920, + "download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/", + "direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2" + }, + { + "filename": "Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2", + "version": "8.8", + "md5sum": "3ad7d355909cc37100c037562e4b3b6d", + "filesize": 1800536064, + "download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/", + "direct_download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2" }, { "filename": "rocky-cloud-init-data.iso", @@ -45,9 +53,16 @@ ], "versions": [ { - "name": "8.5", + "name": "9.2", "images": { - "hda_disk_image": "Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2", + "hda_disk_image": "Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2", + "cdrom_image": "rocky-cloud-init-data.iso" + } + }, + { + "name": "8.8", + "images": { + "hda_disk_image": "Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2", "cdrom_image": "rocky-cloud-init-data.iso" } } diff --git a/gns3server/appliances/security-onion.gns3a b/gns3server/appliances/security-onion.gns3a index cccca609..f4f6cf1a 100644 --- a/gns3server/appliances/security-onion.gns3a +++ b/gns3server/appliances/security-onion.gns3a @@ -5,6 +5,7 @@ "description": "Security Onion is a Linux distro for intrusion detection, network security monitoring, and log management. It's based on Ubuntu and contains Snort, Suricata, Bro, OSSEC, Sguil, Squert, ELSA, Xplico, NetworkMiner, and many other security tools. The easy-to-use Setup wizard allows you to build an army of distributed sensors for your enterprise in minutes!", "vendor_name": "Security Onion Solutions, LLC", "vendor_url": "https://securityonion.net/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Security Onion.png", "documentation_url": "https://github.com/Security-Onion-Solutions/security-onion/wiki", "product_name": "Security Onion", "product_url": "https://securityonion.net/", diff --git a/gns3server/appliances/ubuntu-cloud.gns3a b/gns3server/appliances/ubuntu-cloud.gns3a index 49d007cf..a9496741 100644 --- a/gns3server/appliances/ubuntu-cloud.gns3a +++ b/gns3server/appliances/ubuntu-cloud.gns3a @@ -5,6 +5,7 @@ "description": "The term 'Ubuntu Cloud Guest' refers to the Official Ubuntu images that are available at http://cloud-images.ubuntu.com . These images are built by Canonical. They are then registered on EC2, and compressed tarfiles are made also available for download. For using those images on a public cloud such as Amazon EC2, you simply choose an image and launch it. To use those images on a private cloud, or to run the image on a local hypervisor (such as KVM) you would need to download those images and either publish them to your private cloud, or launch them directly on a hypervisor. The following sections explain in more details how to perform each of those actions", "vendor_name": "Canonical Inc.", "vendor_url": "https://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Cloud Guest.png", "documentation_url": "https://help.ubuntu.com/community/UEC/Images", "product_name": "Ubuntu Cloud Guest", "product_url": "https://www.ubuntu.com/cloud", diff --git a/gns3server/appliances/ubuntu-docker.gns3a b/gns3server/appliances/ubuntu-docker.gns3a index bd6dcca7..110fba40 100644 --- a/gns3server/appliances/ubuntu-docker.gns3a +++ b/gns3server/appliances/ubuntu-docker.gns3a @@ -5,6 +5,7 @@ "description": "Ubuntu is a Debian-based Linux operating system, with Unity as its default desktop environment. It is based on free software and named after the Southern African philosophy of ubuntu (literally, \"human-ness\"), which often is translated as \"humanity towards others\" or \"the belief in a universal bond of sharing that connects all humanity\".", "vendor_name": "Canonical", "vendor_url": "http://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Docker Guest.png", "product_name": "Ubuntu", "registry_version": 4, "status": "stable", diff --git a/gns3server/appliances/ubuntu-gui.gns3a b/gns3server/appliances/ubuntu-gui.gns3a index fc1e5d2d..9e31f420 100644 --- a/gns3server/appliances/ubuntu-gui.gns3a +++ b/gns3server/appliances/ubuntu-gui.gns3a @@ -5,6 +5,7 @@ "description": "Ubuntu is a full-featured Linux operating system which is based on Debian distribution and freely available with both community and professional support, it comes with Unity as its default desktop environment. There are other flavors of Ubuntu available with other desktops as default like Ubuntu Gnome, Lubuntu, Xubuntu, and so on. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away. A default installation of Ubuntu contains a wide range of software that includes LibreOffice, Firefox, Empathy, Transmission, etc.", "vendor_name": "Canonical Inc.", "vendor_url": "https://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Desktop Guest.png", "documentation_url": "https://help.ubuntu.com", "product_name": "Ubuntu", "product_url": "https://www.ubuntu.com/desktop", diff --git a/gns3server/appliances/untangle.gns3a b/gns3server/appliances/untangle.gns3a index cdf0bbad..8612469a 100644 --- a/gns3server/appliances/untangle.gns3a +++ b/gns3server/appliances/untangle.gns3a @@ -5,6 +5,7 @@ "description": "Untangle's NG Firewall enables you to quickly and easily create the network policies that deliver the perfect balance between security and productivity. Untangle combines Unified Threat Management (UTM)-to address all of the key network threats-with policy management tools that enable you to define access and control by individuals, groups or company-wide. And with industry-leading reports, you'll have complete visibility into and control over everything that's happening on your network.", "vendor_name": "Untangle", "vendor_url": "https://www.untangle.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Untangle NG.jpg", "documentation_url": "http://wiki.untangle.com/index.php/Main_Page", "product_name": "Untangle NG", "product_url": "https://www.untangle.com/untangle-ng-firewall/", diff --git a/gns3server/appliances/vyos.gns3a b/gns3server/appliances/vyos.gns3a index fd6f97f1..925e39ef 100644 --- a/gns3server/appliances/vyos.gns3a +++ b/gns3server/appliances/vyos.gns3a @@ -60,7 +60,7 @@ "md5sum": "3fece6363f9766f862e26d292d0ed5a3", "filesize": 430964736, "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-generic-iso-image", - "direct_download_url": "https://s3-us.vyos.io/1.2.9-S1/vyos-1.2.9-S1-amd64.iso" + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9-S1/vyos-1.2.9-S1-amd64.iso" }, { "filename": "vyos-1.2.9-S1-10G-qemu.qcow2", @@ -68,7 +68,7 @@ "md5sum": "0a70d78b80a3716d42487c02ef44f41f", "filesize": 426967040, "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-for-kvm", - "direct_download_url": "https://s3-us.vyos.io/1.2.9-S1/vyos-1.2.9-S1-10G-qemu.qcow2" + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9-S1/vyos-1.2.9-S1-10G-qemu.qcow2" }, { "filename": "vyos-1.2.9-amd64.iso", @@ -76,7 +76,7 @@ "md5sum": "586be23b6256173e174c82d8f1f699a1", "filesize": 430964736, "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-generic-iso-image", - "direct_download_url": "https://s3-us.vyos.io/1.2.9/vyos-1.2.9-amd64.iso" + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9/vyos-1.2.9-amd64.iso" }, { "filename": "vyos-1.2.9-10G-qemu.qcow2", @@ -84,7 +84,7 @@ "md5sum": "76871c7b248c32f75177c419128257ac", "filesize": 427360256, "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-10g-qemu-qcow2", - "direct_download_url": "https://s3-us.vyos.io/1.2.9/vyos-1.2.9-10G-qemu.qcow2" + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9/vyos-1.2.9-10G-qemu.qcow2" }, { "filename": "vyos-1.2.8-amd64.iso", @@ -98,7 +98,7 @@ "version": "1.1.8", "md5sum": "95a141d4b592b81c803cdf7e9b11d8ea", "filesize": 241172480, - "direct_download_url": "https://s3-us.vyos.io/vyos-1.1.8-amd64.iso" + "direct_download_url": "https://legacy-lts-images.vyos.io/vyos-1.1.8-amd64.iso" }, { "filename": "empty8G.qcow2", diff --git a/gns3server/appliances/windows-11-dev-env.gns3a b/gns3server/appliances/windows-11-dev-env.gns3a index b0888e46..b9b453e8 100644 --- a/gns3server/appliances/windows-11-dev-env.gns3a +++ b/gns3server/appliances/windows-11-dev-env.gns3a @@ -29,6 +29,14 @@ "kvm": "require" }, "images": [ + { + "filename": "WinDev2308Eval-disk1.vmdk", + "version": "2308", + "md5sum": "6a9b4ed6d7481f7bbf8a054c797b1eee", + "filesize": 24945341952, + "download_url": "https://download.microsoft.com/download/7/1/3/7135f2ab-8528-49fc-9252-8d5d94c697ef/WinDev2308Eval.VMWare.zip", + "compression": "zip" + }, { "filename": "WinDev2212Eval-disk1.vmdk", "version": "2212", @@ -48,6 +56,13 @@ } ], "versions": [ + { + "name": "2308", + "images": { + "bios_image": "OVMF-edk2-stable202305.fd", + "hda_disk_image": "WinDev2308Eval-disk1.vmdk" + } + }, { "name": "2212", "images": { diff --git a/gns3server/appliances/windows.gns3a b/gns3server/appliances/windows.gns3a index 98c41571..1f0f111c 100644 --- a/gns3server/appliances/windows.gns3a +++ b/gns3server/appliances/windows.gns3a @@ -5,6 +5,7 @@ "description": "Microsoft Windows, or simply Windows, is a metafamily of graphical operating systems developed, marketed, and sold by Microsoft. It consists of several families of operating systems, each of which cater to a certain sector of the computing industry with the OS typically associated with IBM PC compatible architecture.", "vendor_name": "Microsoft", "vendor_url": "http://www.microsoft.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Windows.jpg", "documentation_url": "https://technet.microsoft.com/en-us/library/cc498727.aspx", "product_name": "Windows", "product_url": "https://www.microsoft.com/en-us/windows", diff --git a/gns3server/appliances/windows_server.gns3a b/gns3server/appliances/windows_server.gns3a index fec9bcf0..6fe23e68 100644 --- a/gns3server/appliances/windows_server.gns3a +++ b/gns3server/appliances/windows_server.gns3a @@ -5,6 +5,7 @@ "description": "Microsoft Windows, or simply Windows, is a metafamily of graphical operating systems developed, marketed, and sold by Microsoft. It consists of several families of operating systems, each of which cater to a certain sector of the computing industry with the OS typically associated with IBM PC compatible architecture.", "vendor_name": "Microsoft", "vendor_url": "http://www.microsoft.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Windows Server.jpg", "documentation_url": "https://technet.microsoft.com/en-us/library/cc498727.aspx", "product_name": "Windows Server", "product_url": "https://www.microsoft.com/en-us/windows", diff --git a/gns3server/compute/base_node.py b/gns3server/compute/base_node.py index c877f5ff..20f437be 100644 --- a/gns3server/compute/base_node.py +++ b/gns3server/compute/base_node.py @@ -485,6 +485,11 @@ class BaseNode: :param ws: Websocket object """ + log.info( + f"New client {websocket.client.host}:{websocket.client.port} has connected to compute" + f" console WebSocket" + ) + if self.status != "started": raise NodeError(f"Node {self.name} is not started") @@ -492,20 +497,13 @@ class BaseNode: raise NodeError(f"Node {self.name} console type is not telnet") try: - (telnet_reader, telnet_writer) = await asyncio.open_connection( - self._manager.port_manager.console_host, self.console - ) + host = self._manager.port_manager.console_host + port = self.console + (telnet_reader, telnet_writer) = await asyncio.open_connection(host, port) + log.info(f"Connected to local Telnet server {host}:{port}") except ConnectionError as e: raise NodeError(f"Cannot connect to node {self.name} telnet server: {e}") - log.info("Connected to Telnet server") - - await websocket.accept() - log.info( - f"New client {websocket.client.host}:{websocket.client.port} has connected to compute" - f" console WebSocket" - ) - async def ws_forward(telnet_writer): try: diff --git a/gns3server/compute/qemu/__init__.py b/gns3server/compute/qemu/__init__.py index e98bb9a8..a9fe0553 100644 --- a/gns3server/compute/qemu/__init__.py +++ b/gns3server/compute/qemu/__init__.py @@ -21,6 +21,8 @@ Qemu server module. import asyncio import os import platform +import shutil +import shlex import sys import re import subprocess @@ -159,6 +161,44 @@ class Qemu(BaseManager): return qemus + @staticmethod + async def create_disk_image(disk_image_path, options): + """ + Create a Qemu disk (used by the controller to create empty disk images) + + :param disk_image_path: disk image path + :param options: disk creation options + """ + + qemu_img_path = shutil.which("qemu-img") + if not qemu_img_path: + raise QemuError(f"Could not find qemu-img binary") + + try: + if os.path.exists(disk_image_path): + raise QemuError(f"Could not create disk image '{disk_image_path}', file already exists") + except UnicodeEncodeError: + raise QemuError( + f"Could not create disk image '{disk_image_path}', " + "Disk image name contains characters not supported by the filesystem" + ) + + img_format = options.pop("format") + img_size = options.pop("size") + command = [qemu_img_path, "create", "-f", img_format] + for option in sorted(options.keys()): + command.extend(["-o", f"{option}={options[option]}"]) + command.append(disk_image_path) + command.append(f"{img_size}M") + command_string = " ".join(shlex.quote(s) for s in command) + output = "" + try: + log.info(f"Executing qemu-img with: {command_string}") + output = await subprocess_check_output(*command, stderr=True) + log.info(f"Qemu disk image'{disk_image_path}' created") + except (OSError, subprocess.SubprocessError) as e: + raise QemuError(f"Could not create '{disk_image_path}' disk image: {e}\n{output}") + @staticmethod async def get_qemu_version(qemu_path): """ @@ -178,25 +218,6 @@ class Qemu(BaseManager): except (OSError, subprocess.SubprocessError) as e: raise QemuError(f"Error while looking for the Qemu version: {e}") - @staticmethod - async def _get_qemu_img_version(qemu_img_path): - """ - Gets the Qemu-img version. - - :param qemu_img_path: path to Qemu-img executable. - """ - - try: - output = await subprocess_check_output(qemu_img_path, "--version") - match = re.search(r"version\s+([0-9a-z\-\.]+)", output) - if match: - version = match.group(1) - return version - else: - raise QemuError("Could not determine the Qemu-img version for '{}'".format(qemu_img_path)) - except (OSError, subprocess.SubprocessError) as e: - raise QemuError("Error while looking for the Qemu-img version: {}".format(e)) - @staticmethod async def get_swtpm_version(swtpm_path): """ diff --git a/gns3server/compute/virtualbox/__init__.py b/gns3server/compute/virtualbox/__init__.py index 628a24c2..5627fb5e 100644 --- a/gns3server/compute/virtualbox/__init__.py +++ b/gns3server/compute/virtualbox/__init__.py @@ -100,9 +100,14 @@ class VirtualBox(BaseManager): command.extend(args) command_string = " ".join(command) log.info(f"Executing VBoxManage with command: {command_string}") + env = os.environ.copy() + env["LANG"] = "en" # force english output because we rely on it to parse the output try: process = await asyncio.create_subprocess_exec( - *command, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE + *command, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=env ) except (OSError, subprocess.SubprocessError) as e: raise VirtualBoxError(f"Could not execute VBoxManage: {e}") diff --git a/gns3server/configs/iou_l2_base_startup-config.txt b/gns3server/configs/iou_l2_base_startup-config.txt index 501355f6..4a09db82 100644 --- a/gns3server/configs/iou_l2_base_startup-config.txt +++ b/gns3server/configs/iou_l2_base_startup-config.txt @@ -13,7 +13,8 @@ logging console discriminator EXCESS ! no ip icmp rate-limit unreachable ! -ip cef +! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work +no ip cef no ip domain-lookup ! ! diff --git a/gns3server/configs/iou_l3_base_startup-config.txt b/gns3server/configs/iou_l3_base_startup-config.txt index 81d574ff..67628f77 100644 --- a/gns3server/configs/iou_l3_base_startup-config.txt +++ b/gns3server/configs/iou_l3_base_startup-config.txt @@ -12,7 +12,8 @@ no ip icmp rate-limit unreachable ! ! ! -ip cef +! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work +no ip cef no ip domain-lookup ! ! diff --git a/gns3server/controller/__init__.py b/gns3server/controller/__init__.py index 4ecc9f08..ab3bb0b0 100644 --- a/gns3server/controller/__init__.py +++ b/gns3server/controller/__init__.py @@ -315,7 +315,7 @@ class Controller: if not os.path.exists(os.path.join(dst_path, filename)): shutil.copy(os.path.join(resource_path, filename), os.path.join(dst_path, filename)) else: - for entry in importlib_resources.files(f'gns3server.{resource_name}').iterdir(): + for entry in importlib_resources.files('gns3server').joinpath(resource_name).iterdir(): full_path = os.path.join(dst_path, entry.name) if entry.is_file() and not os.path.exists(full_path): log.debug(f'Installing {resource_name} resource file "{entry.name}" to "{full_path}"') diff --git a/gns3server/controller/gns3vm/virtualbox_gns3_vm.py b/gns3server/controller/gns3vm/virtualbox_gns3_vm.py index 06ca5370..79d97d94 100644 --- a/gns3server/controller/gns3vm/virtualbox_gns3_vm.py +++ b/gns3server/controller/gns3vm/virtualbox_gns3_vm.py @@ -15,11 +15,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import re import sys import aiohttp import logging import asyncio import socket +import ipaddress from .base_gns3_vm import BaseGNS3VM from .gns3_vm_error import GNS3VMError @@ -77,9 +79,6 @@ class VirtualBoxGNS3VM(BaseGNS3VM): except ValueError: continue self._system_properties[name.strip()] = value.strip() - if "API Version" in self._system_properties: - # API version is not consistent between VirtualBox versions, the key is named "API Version" in VirtualBox 7 - self._system_properties["API version"] = self._system_properties.pop("API Version") async def _check_requirements(self): """ @@ -164,6 +163,44 @@ class VirtualBoxGNS3VM(BaseGNS3VM): return True return False + async def _add_dhcp_server(self, vboxnet): + """ + Add a DHCP server for vboxnet. + + :param vboxnet: vboxnet name + """ + + hostonlyifs = await self._execute("list", ["hostonlyifs"]) + pattern = r"IPAddress:\s+(\d+\.\d+\.\d+\.\d+)\nNetworkMask:\s+(\d+\.\d+\.\d+\.\d+)" + match = re.search(pattern, hostonlyifs) + + if match: + ip_address = match.group(1) + netmask = match.group(2) + else: + raise GNS3VMError("Could not find IP address and netmask for vboxnet {}".format(vboxnet)) + + try: + interface = ipaddress.IPv4Interface(f"{ip_address}/{netmask}") + subnet = ipaddress.IPv4Network(str(interface.network)) + dhcp_server_ip = str(interface.ip + 1) + netmask = str(subnet.netmask) + lower_ip = str(interface.ip + 2) + upper_ip = str(subnet.network_address + subnet.num_addresses - 2) + except ValueError: + raise GNS3VMError("Invalid IP address and netmask for vboxnet {}: {}/{}".format(vboxnet, ip_address, netmask)) + + dhcp_server_args = [ + "add", + "--network=HostInterfaceNetworking-{}".format(vboxnet), + "--server-ip={}".format(dhcp_server_ip), + "--netmask={}".format(netmask), + "--lower-ip={}".format(lower_ip), + "--upper-ip={}".format(upper_ip), + "--enable" + ] + await self._execute("dhcpserver", dhcp_server_args) + async def _check_vboxnet_exists(self, vboxnet, vboxnet_type): """ Check if the vboxnet interface exists @@ -266,12 +303,20 @@ class VirtualBoxGNS3VM(BaseGNS3VM): await self.set_hostonly_network(interface_number, first_available_vboxnet) vboxnet = first_available_vboxnet else: - raise GNS3VMError('VirtualBox host-only network "{}" does not exist, please make the sure the network adapter {} configuration is valid for "{}"'.format(vboxnet, - interface_number, - self._vmname)) + try: + await self._execute("hostonlyif", ["create"]) + except GNS3VMError: + raise GNS3VMError('VirtualBox host-only network "{}" does not exist and could not be automatically created, please make the sure the network adapter {} configuration is valid for "{}"'.format( + vboxnet, + interface_number, + self._vmname + )) if backend_type == "hostonlyadapter" and not (await self._check_dhcp_server(vboxnet)): - raise GNS3VMError('DHCP must be enabled on VirtualBox host-only network "{}"'.format(vboxnet)) + try: + await self._add_dhcp_server(vboxnet) + except GNS3VMError as e: + raise GNS3VMError("Could not add DHCP server for vboxnet {}: {}, please configure manually".format(vboxnet, e)) vm_state = await self._get_state() log.info(f'"{self._vmname}" state is {vm_state}') diff --git a/gns3server/controller/node.py b/gns3server/controller/node.py index 68da72a7..839f36c4 100644 --- a/gns3server/controller/node.py +++ b/gns3server/controller/node.py @@ -559,7 +559,7 @@ class Node: # None properties are not be sent because it can mean the emulator doesn't support it for key in list(data.keys()): - if data[key] is None or data[key] is {} or key in self.CONTROLLER_ONLY_PROPERTIES: + if data[key] is None or data[key] == {} or key in self.CONTROLLER_ONLY_PROPERTIES: del data[key] return data diff --git a/gns3server/controller/ports/port_factory.py b/gns3server/controller/ports/port_factory.py index efa97350..070e391c 100644 --- a/gns3server/controller/ports/port_factory.py +++ b/gns3server/controller/ports/port_factory.py @@ -42,7 +42,7 @@ PORTS = { class PortFactory: """ - Factory to create an Port object based on the type + Factory to create a Port object based on the type """ def __new__(cls, name, interface_number, adapter_number, port_number, port_type, **kwargs): diff --git a/gns3server/crash_report.py b/gns3server/crash_report.py index a529d78f..3ccd6cc1 100644 --- a/gns3server/crash_report.py +++ b/gns3server/crash_report.py @@ -58,7 +58,7 @@ class CrashReport: Report crash to a third party service """ - DSN = "https://45f39fa6ea64493b8966a263049e844c@o19455.ingest.sentry.io/38482" + DSN = "https://c6696321127aaa1b5bfd332536eb3676@o19455.ingest.sentry.io/38482" _instance = None def __init__(self): diff --git a/gns3server/db/repositories/pools.py b/gns3server/db/repositories/pools.py index ff95fc0f..e32c94fb 100644 --- a/gns3server/db/repositories/pools.py +++ b/gns3server/db/repositories/pools.py @@ -80,6 +80,18 @@ class ResourcePoolsRepository(BaseRepository): await self._db_session.commit() return result.rowcount > 0 + async def get_resource_memberships(self, resource_id: UUID) -> List[models.UserGroup]: + """ + Get all resource memberships in resource pools. + """ + + query = select(models.ResourcePool).\ + join(models.ResourcePool.resources).\ + filter(models.Resource.resource_id == resource_id) + + result = await self._db_session.execute(query) + return result.scalars().all() + async def get_resource_pool(self, resource_pool_id: UUID) -> Optional[models.ResourcePool]: """ Get a resource pool by its ID. diff --git a/gns3server/schemas/__init__.py b/gns3server/schemas/__init__.py index d38b31d3..d331de54 100644 --- a/gns3server/schemas/__init__.py +++ b/gns3server/schemas/__init__.py @@ -82,4 +82,4 @@ from .compute.vmware_nodes import VMwareCreate, VMwareUpdate, VMware from .compute.virtualbox_nodes import VirtualBoxCreate, VirtualBoxUpdate, VirtualBox # Schemas for both controller and compute -from .qemu_disk_image import QemuDiskImageCreate, QemuDiskImageUpdate +from .qemu_disk_image import QemuDiskImageFormat, QemuDiskImageCreate, QemuDiskImageUpdate diff --git a/gns3server/schemas/compute/qemu_nodes.py b/gns3server/schemas/compute/qemu_nodes.py index ec007edf..8d7e23dd 100644 --- a/gns3server/schemas/compute/qemu_nodes.py +++ b/gns3server/schemas/compute/qemu_nodes.py @@ -124,6 +124,7 @@ class QemuAdapterType(str, Enum): i82559er = "i82559er" i82562 = "i82562" i82801 = "i82801" + igb = "igb" ne2k_pci = "ne2k_pci" pcnet = "pcnet" rocker = "rocker" diff --git a/gns3server/schemas/controller/appliances.py b/gns3server/schemas/controller/appliances.py index cfece410..e88a7339 100644 --- a/gns3server/schemas/controller/appliances.py +++ b/gns3server/schemas/controller/appliances.py @@ -170,6 +170,7 @@ class AdapterType(str, Enum): i82559er = 'i82559er' i82562 = 'i82562' i82801 = 'i82801' + igb = 'igb' ne2k_pci = 'ne2k_pci' pcnet = 'pcnet' rocker = 'rocker' diff --git a/gns3server/schemas/controller/nodes.py b/gns3server/schemas/controller/nodes.py index c05014bc..d732c80a 100644 --- a/gns3server/schemas/controller/nodes.py +++ b/gns3server/schemas/controller/nodes.py @@ -134,19 +134,6 @@ class NodeBase(BaseModel): first_port_name: Optional[str] = Field(None, description="Name of the first port") custom_adapters: Optional[List[CustomAdapter]] = None - @model_validator(mode='before') - @classmethod - def set_default_port_name_format_and_port_segment_size(cls, data: Any) -> Any: - - if "port_name_format" not in data: - if data.get('node_type') == NodeType.iou: - data['port_name_format'] = "Ethernet{segment0}/{port0}" - data['port_segment_size'] = 4 - else: - data['port_name_format'] = "Ethernet{0}" - data['port_segment_size'] = 0 - return data - class NodeCreate(NodeBase): diff --git a/gns3server/server.py b/gns3server/server.py index 6673d81c..f7f1d89e 100644 --- a/gns3server/server.py +++ b/gns3server/server.py @@ -267,9 +267,9 @@ class Server: else: log.info(f"Compute authentication is enabled with username '{config.Server.compute_username}'") - # we only support Python 3 version >= 3.7 - if sys.version_info < (3, 7, 0): - raise SystemExit("Python 3.7 or higher is required") + # we only support Python 3 version >= 3.8 + if sys.version_info < (3, 8, 0): + raise SystemExit("Python 3.8 or higher is required") log.info( "Running with Python {major}.{minor}.{micro} and has PID {pid}".format( diff --git a/gns3server/static/web-ui/26.49028ab13de5de406c90.js b/gns3server/static/web-ui/26.49028ab13de5de406c90.js deleted file mode 100644 index 0c692c06..00000000 --- a/gns3server/static/web-ui/26.49028ab13de5de406c90.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[26],{91026:function(W,g,a){a.r(g),a.d(g,{TopologySummaryComponent:function(){return U}});var t=a(38999),_=a(96852),h=a(14200),f=a(36889),v=a(3941),y=a(15132),p=a(40098),x=a(39095),c=a(88802),S=a(73044),d=a(59412),T=a(93386);function C(i,e){if(1&i){var o=t.EpF();t.TgZ(0,"div",2),t.NdJ("mousemove",function(r){return t.CHM(o),t.oxw().dragWidget(r)},!1,t.evT)("mouseup",function(){return t.CHM(o),t.oxw().toggleDragging(!1)},!1,t.evT),t.qZA()}}function b(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",29),t.qZA())}function E(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",30),t.qZA())}function Z(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",31),t.qZA())}function O(i,e){if(1&i&&(t.TgZ(0,"div"),t._uU(1),t.qZA()),2&i){var o=t.oxw().$implicit;t.xp6(1),t.lnq(" ",o.console_type,"://",o.console_host,":",o.console," ")}}function P(i,e){1&i&&(t.TgZ(0,"div"),t._uU(1," none "),t.qZA())}function M(i,e){if(1&i&&(t.TgZ(0,"div",25),t.TgZ(1,"div"),t.YNc(2,b,2,0,"svg",26),t.YNc(3,E,2,0,"svg",26),t.YNc(4,Z,2,0,"svg",26),t._uU(5),t.qZA(),t.YNc(6,O,2,3,"div",27),t.YNc(7,P,2,0,"div",27),t.qZA()),2&i){var o=e.$implicit;t.xp6(2),t.Q6J("ngIf","started"===o.status),t.xp6(1),t.Q6J("ngIf","suspended"===o.status),t.xp6(1),t.Q6J("ngIf","stopped"===o.status),t.xp6(1),t.hij(" ",o.name," "),t.xp6(1),t.Q6J("ngIf",null!=o.console&&null!=o.console&&"none"!=o.console_type),t.xp6(1),t.Q6J("ngIf",null==o.console||"none"===o.console_type)}}function w(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",29),t.qZA())}function A(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",31),t.qZA())}function F(i,e){if(1&i&&(t.TgZ(0,"div",25),t.TgZ(1,"div"),t.YNc(2,w,2,0,"svg",26),t.YNc(3,A,2,0,"svg",26),t._uU(4),t.qZA(),t.TgZ(5,"div"),t._uU(6),t.qZA(),t.TgZ(7,"div"),t._uU(8),t.qZA(),t.qZA()),2&i){var o=e.$implicit,s=t.oxw(2);t.xp6(2),t.Q6J("ngIf",o.connected),t.xp6(1),t.Q6J("ngIf",!o.connected),t.xp6(1),t.hij(" ",o.name," "),t.xp6(2),t.hij(" ",o.host," "),t.xp6(2),t.hij(" ",s.server.location," ")}}var I=function(i){return{lightTheme:i}},D=function(){return{right:!0,left:!0,bottom:!0,top:!0}};function N(i,e){if(1&i){var o=t.EpF();t.TgZ(0,"div",3),t.NdJ("mousedown",function(){return t.CHM(o),t.oxw().toggleDragging(!0)})("resizeStart",function(){return t.CHM(o),t.oxw().toggleDragging(!1)})("resizeEnd",function(n){return t.CHM(o),t.oxw().onResizeEnd(n)}),t.TgZ(1,"div",4),t.TgZ(2,"mat-tab-group"),t.TgZ(3,"mat-tab",5),t.NdJ("click",function(){return t.CHM(o),t.oxw().toggleTopologyVisibility(!0)}),t.TgZ(4,"div",6),t.TgZ(5,"div",7),t.TgZ(6,"mat-select",8),t.TgZ(7,"mat-optgroup",9),t.TgZ(8,"mat-option",10),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("started")}),t._uU(9,"started"),t.qZA(),t.TgZ(10,"mat-option",11),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("suspended")}),t._uU(11,"suspended"),t.qZA(),t.TgZ(12,"mat-option",12),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("stopped")}),t._uU(13,"stopped"),t.qZA(),t.qZA(),t.TgZ(14,"mat-optgroup",13),t.TgZ(15,"mat-option",14),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyCaptureFilter("capture")}),t._uU(16,"active capture(s)"),t.qZA(),t.TgZ(17,"mat-option",15),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyCaptureFilter("packet")}),t._uU(18,"active packet captures"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(19,"div",16),t.TgZ(20,"mat-select",17),t.NdJ("selectionChange",function(){return t.CHM(o),t.oxw().setSortingOrder()})("valueChange",function(n){return t.CHM(o),t.oxw().sortingOrder=n}),t.TgZ(21,"mat-option",18),t._uU(22,"sort by name ascending"),t.qZA(),t.TgZ(23,"mat-option",19),t._uU(24,"sort by name descending"),t.qZA(),t.qZA(),t.qZA(),t._UZ(25,"mat-divider",20),t.TgZ(26,"div",21),t.YNc(27,M,8,6,"div",22),t.qZA(),t.qZA(),t.qZA(),t.TgZ(28,"mat-tab",23),t.NdJ("click",function(){return t.CHM(o),t.oxw().toggleTopologyVisibility(!1)}),t.TgZ(29,"div",6),t.TgZ(30,"div",24),t.YNc(31,F,9,5,"div",22),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&i){var s=t.oxw();t.Q6J("ngStyle",s.style)("ngClass",t.VKq(9,I,s.isLightThemeEnabled))("validateResize",s.validate)("resizeEdges",t.DdM(11,D))("enableGhostResize",!0),t.xp6(20),t.Q6J("value",s.sortingOrder),t.xp6(6),t.Q6J("ngStyle",s.styleInside),t.xp6(1),t.Q6J("ngForOf",s.filteredNodes),t.xp6(4),t.Q6J("ngForOf",s.computes)}}var U=function(){function i(e,o,s,r,n){this.nodesDataSource=e,this.projectService=o,this.computeService=s,this.linksDataSource=r,this.themeService=n,this.closeTopologySummary=new t.vpe,this.style={},this.styleInside={height:"280px"},this.subscriptions=[],this.nodes=[],this.filteredNodes=[],this.sortingOrder="asc",this.startedStatusFilterEnabled=!1,this.suspendedStatusFilterEnabled=!1,this.stoppedStatusFilterEnabled=!1,this.captureFilterEnabled=!1,this.packetFilterEnabled=!1,this.computes=[],this.isTopologyVisible=!0,this.isDraggingEnabled=!1,this.isLightThemeEnabled=!1}return i.prototype.ngOnInit=function(){var e=this;this.isLightThemeEnabled="light"===this.themeService.getActualTheme(),this.subscriptions.push(this.nodesDataSource.changes.subscribe(function(o){e.nodes=o,e.nodes.forEach(function(s){("0.0.0.0"===s.console_host||"0:0:0:0:0:0:0:0"===s.console_host||"::"===s.console_host)&&(s.console_host=e.server.host)}),e.filteredNodes=o.sort("asc"===e.sortingOrder?e.compareAsc:e.compareDesc)})),this.projectService.getStatistics(this.server,this.project.project_id).subscribe(function(o){e.projectsStatistics=o}),this.computeService.getComputes(this.server).subscribe(function(o){e.computes=o}),this.revertPosition()},i.prototype.revertPosition=function(){var e=localStorage.getItem("leftPosition"),o=localStorage.getItem("rightPosition"),s=localStorage.getItem("topPosition"),r=localStorage.getItem("widthOfWidget"),n=localStorage.getItem("heightOfWidget");this.style=s?{position:"fixed",left:+e+"px",right:+o+"px",top:+s+"px",width:+r+"px",height:+n+"px"}:{top:"60px",right:"0px",width:"320px",height:"400px"}},i.prototype.toggleDragging=function(e){this.isDraggingEnabled=e},i.prototype.dragWidget=function(e){var o=Number(e.movementX),s=Number(e.movementY),r=Number(this.style.width.split("px")[0]),n=Number(this.style.height.split("px")[0]),l=Number(this.style.top.split("px")[0])+s;if(this.style.left){var u=Number(this.style.left.split("px")[0])+o;this.style={position:"fixed",left:u+"px",top:l+"px",width:r+"px",height:n+"px"},localStorage.setItem("leftPosition",u.toString()),localStorage.setItem("topPosition",l.toString()),localStorage.setItem("widthOfWidget",r.toString()),localStorage.setItem("heightOfWidget",n.toString())}else{var m=Number(this.style.right.split("px")[0])-o;this.style={position:"fixed",right:m+"px",top:l+"px",width:r+"px",height:n+"px"},localStorage.setItem("rightPosition",m.toString()),localStorage.setItem("topPosition",l.toString()),localStorage.setItem("widthOfWidget",r.toString()),localStorage.setItem("heightOfWidget",n.toString())}},i.prototype.validate=function(e){return!(e.rectangle.width&&e.rectangle.height&&(e.rectangle.width<290||e.rectangle.height<260))},i.prototype.onResizeEnd=function(e){this.style={position:"fixed",left:e.rectangle.left+"px",top:e.rectangle.top+"px",width:e.rectangle.width+"px",height:e.rectangle.height+"px"},this.styleInside={height:e.rectangle.height-120+"px"}},i.prototype.toggleTopologyVisibility=function(e){this.isTopologyVisible=e,this.revertPosition()},i.prototype.compareAsc=function(e,o){return e.name - + @@ -46,6 +46,6 @@ gtag('config', 'G-5D6FZL9923'); - + \ No newline at end of file diff --git a/gns3server/static/web-ui/main.123149e4bf7e0712.js b/gns3server/static/web-ui/main.123149e4bf7e0712.js new file mode 100644 index 00000000..aa183298 --- /dev/null +++ b/gns3server/static/web-ui/main.123149e4bf7e0712.js @@ -0,0 +1 @@ +(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{5735:function(Ae,K,m){"use strict";m.d(K,{o:function(){return P}});var G=m(5671),W=m(3144),A=m(591),H=m(8929),P=function(){function I(){(0,G.Z)(this,I),this.data=[],this.dataChange=new A.X([]),this.itemUpdated=new H.xQ}return(0,W.Z)(I,[{key:"getItems",value:function(){return this.data}},{key:"add",value:function(E){this.findIndex(E)>=0?this.update(E):(this.data.push(E),this.dataChange.next(this.data))}},{key:"set",value:function(E){var j=this;E.forEach(function(v){var x=j.findIndex(v);if(x>=0){var w=Object.assign(j.data[x],v);j.data[x]=w}else j.data.push(v)}),this.data.filter(function(v){return 0===E.filter(function(x){return j.getItemKey(x)===j.getItemKey(v)}).length}).forEach(function(v){return j.remove(v)}),this.dataChange.next(this.data)}},{key:"get",value:function(E){var j=this,R=this.data.findIndex(function(v){return j.getItemKey(v)===E});if(R>=0)return this.data[R]}},{key:"update",value:function(E){var j=this.findIndex(E);if(j>=0){var R=Object.assign(this.data[j],E);this.data[j]=R,this.dataChange.next(this.data),this.itemUpdated.next(R)}}},{key:"remove",value:function(E){var j=this.findIndex(E);j>=0&&(this.data.splice(j,1),this.dataChange.next(this.data))}},{key:"changes",get:function(){return this.dataChange}},{key:"itemChanged",get:function(){return this.itemUpdated}},{key:"clear",value:function(){this.data=[],this.dataChange.next(this.data)}},{key:"findIndex",value:function(E){var j=this;return this.data.findIndex(function(R){return j.getItemKey(R)===j.getItemKey(E)})}}]),I}()},6215:function(Ae,K,m){"use strict";m.d(K,{F:function(){return T}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),P=m(5735),I=m(5e3),T=function(E){(0,A.Z)(R,E);var j=(0,H.Z)(R);function R(){return(0,G.Z)(this,R),j.apply(this,arguments)}return(0,W.Z)(R,[{key:"getItemKey",value:function(x){return x.link_id}}]),R}(P.o);T.\u0275fac=function(){var E;return function(R){return(E||(E=I.n5z(T)))(R||T)}}(),T.\u0275prov=I.Yz7({token:T,factory:T.\u0275fac})},5366:function(Ae,K,m){"use strict";m.d(K,{G:function(){return T}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),P=m(5735),I=m(5e3),T=function(E){(0,A.Z)(R,E);var j=(0,H.Z)(R);function R(){return(0,G.Z)(this,R),j.apply(this,arguments)}return(0,W.Z)(R,[{key:"getItemKey",value:function(x){return x.node_id}}]),R}(P.o);T.\u0275fac=function(){var E;return function(R){return(E||(E=I.n5z(T)))(R||T)}}(),T.\u0275prov=I.Yz7({token:T,factory:T.\u0275fac})},5542:function(Ae,K,m){"use strict";m.d(K,{X:function(){return I}});var G=m(5671),W=m(3144),A=m(4766),H=m(5e3),P=m(2437),I=function(){function T(E){(0,G.Z)(this,T),this.httpController=E}return(0,W.Z)(T,[{key:"getComputes",value:function(j){return this.httpController.get(j,"/computes")}},{key:"getUploadPath",value:function(j,R,v){return"".concat(j.protocol,"//").concat(j.host,":").concat(j.port,"/").concat(A.N.current_version,"/").concat(R,"/images/").concat(v)}},{key:"getStatistics",value:function(j){return this.httpController.get(j,"/statistics")}}]),T}();I.\u0275fac=function(E){return new(E||I)(H.LFG(P.zw))},I.\u0275prov=H.Yz7({token:I,factory:I.\u0275fac})},2437:function(Ae,K,m){"use strict";m.d(K,{CJ:function(){return x},zw:function(){return w}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),P=m(5724),I=m(5e3),T=m(4766),E=m(1737),j=m(7221),R=m(520),v=function(Z){(0,A.Z)(b,Z);var D=(0,H.Z)(b);function b(S){return(0,G.Z)(this,b),D.call(this,S)}return(0,W.Z)(b,null,[{key:"fromError",value:function(k,M){var N=new b(k);return N.originalError=M,N}}]),b}((0,P.Z)(Error)),x=function(){function Z(){(0,G.Z)(this,Z)}return(0,W.Z)(Z,[{key:"handleError",value:function(b){var S=b;return"HttpErrorResponse"===b.name&&0===b.status&&(S=v.fromError("Controller is unreachable",b)),401===b.status&&window.location.reload(),(0,E._)(S)}}]),Z}();x.\u0275fac=function(D){return new(D||x)},x.\u0275prov=I.Yz7({token:x,factory:x.\u0275fac});var w=function(){function Z(D,b){(0,G.Z)(this,Z),this.http=D,this.errorHandler=b,this.requestsNotificationEmitter=new I.vpe}return(0,W.Z)(Z,[{key:"get",value:function(b,S,k){k=this.getJsonOptions(k);var M=this.getOptionsForController(b,S,k);return this.requestsNotificationEmitter.emit("GET ".concat(M.url)),this.http.get(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getText",value:function(b,S,k){k=this.getTextOptions(k);var M=this.getOptionsForController(b,S,k);return this.requestsNotificationEmitter.emit("GET ".concat(M.url)),this.http.get(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getBlob",value:function(b,S,k){k=this.getBlobOptions(k);var M=this.getOptionsForController(b,S,k);return this.requestsNotificationEmitter.emit("GET ".concat(M.url)),this.http.get(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"post",value:function(b,S,k,M){M=this.getJsonOptions(M);var N=this.getOptionsForController(b,S,M);return this.requestsNotificationEmitter.emit("POST ".concat(N.url)),this.http.post(N.url,k,N.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"put",value:function(b,S,k,M){M=this.getJsonOptions(M);var N=this.getOptionsForController(b,S,M);return this.requestsNotificationEmitter.emit("PUT ".concat(N.url)),this.http.put(N.url,k,N.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"delete",value:function(b,S,k){k=this.getJsonOptions(k);var M=this.getOptionsForController(b,S,k);return this.requestsNotificationEmitter.emit("DELETE ".concat(M.url)),this.http.delete(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"patch",value:function(b,S,k,M){M=this.getJsonOptions(M);var N=this.getOptionsForController(b,S,M);return this.http.patch(N.url,k,N.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"head",value:function(b,S,k){k=this.getJsonOptions(k);var M=this.getOptionsForController(b,S,k);return this.http.head(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"options",value:function(b,S,k){k=this.getJsonOptions(k);var M=this.getOptionsForController(b,S,k);return this.http.options(M.url,M.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getJsonOptions",value:function(b){return b||{responseType:"json"}}},{key:"getTextOptions",value:function(b){return b||{responseType:"text"}}},{key:"getBlobOptions",value:function(b){return b||{responseType:"blob"}}},{key:"getOptionsForController",value:function(b,S,k){return b&&b.host&&b.port?(b.protocol||(b.protocol=location.protocol),S="".concat(b.protocol,"//").concat(b.host,":").concat(b.port,"/").concat(T.N.current_version).concat(S)):S="/".concat(T.N.current_version).concat(S),k.headers||(k.headers={}),b&&b.authToken&&!b.tokenExpired&&(k.headers.Authorization="Bearer ".concat(b.authToken)),{url:S,options:k}}}]),Z}();w.\u0275fac=function(D){return new(D||w)(I.LFG(R.eN),I.LFG(x))},w.\u0275prov=I.Yz7({token:w,factory:w.\u0275fac})},9971:function(Ae,K,m){"use strict";m.d(K,{Y:function(){return j}});var G=m(5671),W=m(3144),A=m(4766),H=m(8929),P=m(5e3),I=m(2437),T=m(9449),E=m(9740),j=function(){function R(v,x,w){(0,G.Z)(this,R),this.httpController=v,this.settingsService=x,this.recentlyOpenedProjectService=w,this.compression_methods=[{id:1,value:"none",name:"None"},{id:2,value:"zip",name:"Zip compression (deflate)"},{id:3,value:"bzip2",name:"Bzip2 compression"},{id:4,value:"lzma",name:"Lzma compression"},{id:5,value:"zstd",name:"Zstandard compression"}],this.compression_level_default_value=[{id:1,name:"none",value:"",selectionValues:[]},{id:2,name:"zip",value:6,selectionValues:[0,1,2,3,4,5,6,7,8,9]},{id:3,name:"bzip2",value:9,selectionValues:[1,2,3,4,5,6,7,8,9]},{id:4,name:"lzma",value:" ",selectionValues:[]},{id:5,name:"zstd",value:3,selectionValues:[1,2,3,4,5,6,7,8,9.1,11,12,13,14,15,16,17,18,19,20,21,22]}],this.projectListSubject=new H.xQ,this.projectLockIconSubject=new H.xQ}return(0,W.Z)(R,[{key:"projectListUpdated",value:function(){this.projectListSubject.next(!0)}},{key:"getReadmeFile",value:function(x,w){return this.httpController.getText(x,"/projects/".concat(w,"/files/README.txt"))}},{key:"postReadmeFile",value:function(x,w,Z){return this.httpController.post(x,"/projects/".concat(w,"/files/README.txt"),Z)}},{key:"get",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w))}},{key:"open",value:function(x,w){return this.httpController.post(x,"/projects/".concat(w,"/open"),{})}},{key:"close",value:function(x,w){return this.recentlyOpenedProjectService.removeData(),this.httpController.post(x,"/projects/".concat(w,"/close"),{})}},{key:"list",value:function(x){return this.httpController.get(x,"/projects")}},{key:"nodes",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w,"/nodes"))}},{key:"links",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w,"/links"))}},{key:"drawings",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w,"/drawings"))}},{key:"add",value:function(x,w,Z){return this.httpController.post(x,"/projects",{name:w,project_id:Z})}},{key:"update",value:function(x,w){return this.httpController.put(x,"/projects/".concat(w.project_id),{auto_close:w.auto_close,auto_open:w.auto_open,auto_start:w.auto_start,drawing_grid_size:w.drawing_grid_size,grid_size:w.grid_size,name:w.name,scene_width:w.scene_width,scene_height:w.scene_height,show_interface_labels:w.show_interface_labels})}},{key:"delete",value:function(x,w){return this.httpController.delete(x,"/projects/".concat(w))}},{key:"getUploadPath",value:function(x,w,Z){return"".concat(x.protocol,"//").concat(x.host,":").concat(x.port,"/").concat(A.N.current_version,"/projects/").concat(w,"/import?name=").concat(Z)}},{key:"getExportPath",value:function(x,w){return"".concat(x.protocol,"//").concat(x.host,":").concat(x.port,"/").concat(A.N.current_version,"/projects/").concat(w.project_id,"/export")}},{key:"export",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w,"/export"))}},{key:"getStatistics",value:function(x,w){return this.httpController.get(x,"/projects/".concat(w,"/stats"))}},{key:"duplicate",value:function(x,w,Z){return this.httpController.post(x,"/projects/".concat(w,"/duplicate"),{name:Z})}},{key:"isReadOnly",value:function(x){return!!x.readonly&&x.readonly}},{key:"getCompression",value:function(){return this.compression_methods}},{key:"getCompressionLevel",value:function(){return this.compression_level_default_value}},{key:"getexportPortableProjectPath",value:function(x,w){var Z=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null!=Z.compression_level&&""!=Z.compression_level?"".concat(x.protocol,"//").concat(x.host,":").concat(x.port,"/").concat(A.N.current_version,"/projects/").concat(w,"/export?include_snapshots=").concat(Z.include_snapshots,"&include_images=").concat(Z.include_base_image,"&reset_mac_addresses=").concat(Z.reset_mac_address,"&compression=").concat(Z.compression,"&compression_level=").concat(Z.compression_level,"&token=").concat(x.authToken):"".concat(x.protocol,"//").concat(x.host,":").concat(x.port,"/").concat(A.N.current_version,"/projects/").concat(w,"/export?include_snapshots=").concat(Z.include_snapshots,"&include_images=").concat(Z.include_base_image,"&reset_mac_addresses=").concat(Z.reset_mac_address,"&compression=").concat(Z.compression,"&token=").concat(x.authToken)}},{key:"getProjectStatus",value:function(x,w){return this.get(x,"".concat(w,"/locked"))}},{key:"projectUpdateLockIcon",value:function(){this.projectLockIconSubject.next(!0)}}]),R}();j.\u0275fac=function(v){return new(v||j)(P.LFG(I.zw),P.LFG(T.g),P.LFG(E.p))},j.\u0275prov=P.Yz7({token:j,factory:j.\u0275fac})},9740:function(Ae,K,m){"use strict";m.d(K,{p:function(){return H}});var G=m(5671),W=m(3144),A=m(5e3),H=function(){function P(){(0,G.Z)(this,P)}return(0,W.Z)(P,[{key:"setcontrollerId",value:function(T){this.controllerId=T}},{key:"setProjectId",value:function(T){this.projectId=T}},{key:"setcontrollerIdProjectList",value:function(T){this.controllerIdProjectList=T}},{key:"getcontrollerId",value:function(){return this.controllerId}},{key:"getProjectId",value:function(){return this.projectId}},{key:"getcontrollerIdProjectList",value:function(){return this.controllerIdProjectList}},{key:"removeData",value:function(){this.controllerId="",this.projectId=""}}]),P}();H.\u0275fac=function(I){return new(I||H)},H.\u0275prov=A.Yz7({token:H,factory:H.\u0275fac})},9449:function(Ae,K,m){"use strict";m.d(K,{g:function(){return H}});var G=m(5671),W=m(3144),A=m(5e3),H=function(){function P(){(0,G.Z)(this,P),this.settings={crash_reports:!0,console_command:void 0,anonymous_statistics:!0},this.reportsSettings="crash_reports",this.consoleSettings="console_command",this.statisticsSettings="statistics_command",this.getItem(this.reportsSettings)&&(this.settings.crash_reports="true"===this.getItem(this.reportsSettings)),this.getItem(this.consoleSettings)&&(this.settings.console_command=this.getItem(this.consoleSettings)),this.getItem(this.statisticsSettings)&&(this.settings.anonymous_statistics="true"===this.getItem(this.statisticsSettings))}return(0,W.Z)(P,[{key:"setReportsSettings",value:function(T){this.settings.crash_reports=T,this.removeItem(this.reportsSettings),T?this.setItem(this.reportsSettings,"true"):this.setItem(this.reportsSettings,"false")}},{key:"setStatisticsSettings",value:function(T){this.settings.anonymous_statistics=T,this.removeItem(this.statisticsSettings),T?this.setItem(this.statisticsSettings,"true"):this.setItem(this.statisticsSettings,"false")}},{key:"getReportsSettings",value:function(){return"true"===this.getItem(this.reportsSettings)}},{key:"getStatisticsSettings",value:function(){return"true"===this.getItem(this.statisticsSettings)}},{key:"setConsoleSettings",value:function(T){this.settings.console_command=T,this.removeItem(this.consoleSettings),this.setItem(this.consoleSettings,T)}},{key:"getConsoleSettings",value:function(){return this.getItem(this.consoleSettings)}},{key:"removeItem",value:function(T){localStorage.removeItem(T)}},{key:"setItem",value:function(T,E){localStorage.setItem(T,E)}},{key:"getItem",value:function(T){return localStorage.getItem(T)}},{key:"getAll",value:function(){return this.settings}},{key:"setAll",value:function(T){this.settings=T,this.setConsoleSettings(T.console_command),this.setReportsSettings(T.crash_reports),this.setStatisticsSettings(T.anonymous_statistics)}}]),P}();H.\u0275fac=function(I){return new(I||H)},H.\u0275prov=A.Yz7({token:H,factory:H.\u0275fac,providedIn:"root"})},4068:function(Ae,K,m){"use strict";m.d(K,{f:function(){return P}});var G=m(5671),W=m(3144),A=m(5e3),H=m(591),P=function(){function I(){(0,G.Z)(this,I),this._darkMode$=new H.X(!1),this.darkMode$=this._darkMode$.asObservable(),this.themeChanged=new A.vpe,this.savedTheme="dark",localStorage.getItem("theme")||localStorage.setItem("theme","dark"),this.savedTheme=localStorage.getItem("theme")}return(0,W.Z)(I,[{key:"getActualTheme",value:function(){return this.savedTheme}},{key:"setDarkMode",value:function(E){E?(this.savedTheme="dark",this.themeChanged.emit("dark-theme"),localStorage.setItem("theme","dark")):(this.savedTheme="light",this.themeChanged.emit("light-theme"),localStorage.setItem("theme","light"))}}]),I}();P.\u0275fac=function(T){return new(T||P)},P.\u0275prov=A.Yz7({token:P,factory:P.\u0275fac,providedIn:"root"})},4766:function(Ae,K,m){"use strict";m.d(K,{N:function(){return G}});var G={production:!0,electron:!1,githubio:!1,solarputty_download_url:"",current_version:"v3",compute_id:"local"}},9189:function(Ae,K,m){"use strict";var G={};m.r(G),m.d(G,{active:function(){return kSe},arc:function(){return f1e},area:function(){return wee},areaRadial:function(){return See},ascending:function(){return $y},axisBottom:function(){return pce},axisLeft:function(){return hce},axisRight:function(){return fce},axisTop:function(){return dce},bisect:function(){return X1},bisectLeft:function(){return Hue},bisectRight:function(){return JY},bisector:function(){return w7},brush:function(){return Spe},brushSelection:function(){return kpe},brushX:function(){return Tpe},brushY:function(){return Mpe},chord:function(){return xpe},clientPoint:function(){return kN},cluster:function(){return nge},color:function(){return iZ},contourDensity:function(){return phe},contours:function(){return Lq},create:function(){return NCe},creator:function(){return CN},cross:function(){return Gue},csvFormat:function(){return whe},csvFormatRows:function(){return khe},csvParse:function(){return bhe},csvParseRows:function(){return Che},cubehelix:function(){return Pq},curveBasis:function(){return O1e},curveBasisClosed:function(){return I1e},curveBasisOpen:function(){return P1e},curveBundle:function(){return R1e},curveCardinal:function(){return L1e},curveCardinalClosed:function(){return Z1e},curveCardinalOpen:function(){return N1e},curveCatmullRom:function(){return B1e},curveCatmullRomClosed:function(){return F1e},curveCatmullRomOpen:function(){return U1e},curveLinear:function(){return SN},curveLinearClosed:function(){return H1e},curveMonotoneX:function(){return j1e},curveMonotoneY:function(){return G1e},curveNatural:function(){return z1e},curveStep:function(){return W1e},curveStepAfter:function(){return Y1e},curveStepBefore:function(){return V1e},customEvent:function(){return ICe},descending:function(){return zue},deviation:function(){return $Y},dispatch:function(){return t0},drag:function(){return gg},dragDisable:function(){return ZL},dragEnable:function(){return NL},dsvFormat:function(){return b9},easeBack:function(){return Wq},easeBackIn:function(){return qhe},easeBackInOut:function(){return Wq},easeBackOut:function(){return Jhe},easeBounce:function(){return ax},easeBounceIn:function(){return Yhe},easeBounceInOut:function(){return Khe},easeBounceOut:function(){return ax},easeCircle:function(){return zq},easeCircleIn:function(){return Nhe},easeCircleInOut:function(){return zq},easeCircleOut:function(){return Bhe},easeCubic:function(){return QL},easeCubicIn:function(){return fpe},easeCubicInOut:function(){return QL},easeCubicOut:function(){return ppe},easeElastic:function(){return Vq},easeElasticIn:function(){return Qhe},easeElasticInOut:function(){return Xhe},easeElasticOut:function(){return Vq},easeExp:function(){return Gq},easeExpIn:function(){return Lhe},easeExpInOut:function(){return Gq},easeExpOut:function(){return Zhe},easeLinear:function(){return xhe},easePoly:function(){return Fq},easePolyIn:function(){return Ohe},easePolyInOut:function(){return Fq},easePolyOut:function(){return Ihe},easeQuad:function(){return Bq},easeQuadIn:function(){return Dhe},easeQuadInOut:function(){return Bq},easeQuadOut:function(){return Ahe},easeSin:function(){return jq},easeSinIn:function(){return Phe},easeSinInOut:function(){return jq},easeSinOut:function(){return Rhe},entries:function(){return Gpe},event:function(){return sm},extent:function(){return k7},forceCenter:function(){return $he},forceCollide:function(){return vme},forceLink:function(){return bme},forceManyBody:function(){return Sme},forceRadial:function(){return Eme},forceSimulation:function(){return Mme},forceX:function(){return xme},forceY:function(){return Dme},format:function(){return nJ},formatDefaultLocale:function(){return iJ},formatLocale:function(){return tJ},formatPrefix:function(){return rJ},formatSpecifier:function(){return pZ},geoAlbers:function(){return gQ},geoAlbersUsa:function(){return Z_e},geoArea:function(){return Hme},geoAzimuthalEqualArea:function(){return N_e},geoAzimuthalEqualAreaRaw:function(){return dH},geoAzimuthalEquidistant:function(){return B_e},geoAzimuthalEquidistantRaw:function(){return fH},geoBounds:function(){return Wme},geoCentroid:function(){return Qme},geoCircle:function(){return Xme},geoClipAntimeridian:function(){return z9},geoClipCircle:function(){return FJ},geoClipExtent:function(){return o_e},geoClipRectangle:function(){return NZ},geoConicConformal:function(){return U_e},geoConicConformalRaw:function(){return bQ},geoConicEqualArea:function(){return KZ},geoConicEqualAreaRaw:function(){return _Q},geoConicEquidistant:function(){return j_e},geoConicEquidistantRaw:function(){return CQ},geoContains:function(){return f_e},geoDistance:function(){return fx},geoEquirectangular:function(){return H_e},geoEquirectangularRaw:function(){return Cx},geoGnomonic:function(){return G_e},geoGnomonicRaw:function(){return pH},geoGraticule:function(){return qJ},geoGraticule10:function(){return p_e},geoIdentity:function(){return z_e},geoInterpolate:function(){return h_e},geoLength:function(){return UJ},geoMercator:function(){return F_e},geoMercatorRaw:function(){return bx},geoNaturalEarth1:function(){return W_e},geoNaturalEarth1Raw:function(){return hH},geoOrthographic:function(){return V_e},geoOrthographicRaw:function(){return mH},geoPath:function(){return S_e},geoProjection:function(){return im},geoProjectionMutator:function(){return uH},geoRotation:function(){return OJ},geoStereographic:function(){return Y_e},geoStereographicRaw:function(){return _H},geoStream:function(){return jd},geoTransform:function(){return E_e},geoTransverseMercator:function(){return K_e},geoTransverseMercatorRaw:function(){return gH},hcl:function(){return xq},hierarchy:function(){return vH},histogram:function(){return Kue},hsl:function(){return yq},interpolate:function(){return OH},interpolateArray:function(){return QQ},interpolateBasis:function(){return YQ},interpolateBasisClosed:function(){return KQ},interpolateBlues:function(){return $0e},interpolateBrBG:function(){return I0e},interpolateBuGn:function(){return H0e},interpolateBuPu:function(){return j0e},interpolateCool:function(){return cbe},interpolateCubehelix:function(){return yve},interpolateCubehelixDefault:function(){return lbe},interpolateCubehelixLong:function(){return bve},interpolateDate:function(){return XQ},interpolateGnBu:function(){return G0e},interpolateGreens:function(){return ebe},interpolateGreys:function(){return tbe},interpolateHcl:function(){return _ve},interpolateHclLong:function(){return gve},interpolateHsl:function(){return fve},interpolateHslLong:function(){return pve},interpolateInferno:function(){return hbe},interpolateLab:function(){return mve},interpolateMagma:function(){return pbe},interpolateNumber:function(){return gp},interpolateObject:function(){return $Q},interpolateOrRd:function(){return z0e},interpolateOranges:function(){return ibe},interpolatePRGn:function(){return P0e},interpolatePiYG:function(){return R0e},interpolatePlasma:function(){return mbe},interpolatePuBu:function(){return V0e},interpolatePuBuGn:function(){return W0e},interpolatePuOr:function(){return L0e},interpolatePuRd:function(){return Y0e},interpolatePurples:function(){return nbe},interpolateRainbow:function(){return dbe},interpolateRdBu:function(){return Z0e},interpolateRdGy:function(){return N0e},interpolateRdPu:function(){return K0e},interpolateRdYlBu:function(){return B0e},interpolateRdYlGn:function(){return F0e},interpolateReds:function(){return rbe},interpolateRgb:function(){return xH},interpolateRgbBasis:function(){return $ge},interpolateRgbBasisClosed:function(){return eve},interpolateRound:function(){return rve},interpolateSpectral:function(){return U0e},interpolateString:function(){return eX},interpolateTransformCss:function(){return ave},interpolateTransformSvg:function(){return sve},interpolateViridis:function(){return fbe},interpolateWarm:function(){return ube},interpolateYlGn:function(){return J0e},interpolateYlGnBu:function(){return q0e},interpolateYlOrBr:function(){return Q0e},interpolateYlOrRd:function(){return X0e},interpolateZoom:function(){return dve},interrupt:function(){return ine},interval:function(){return Bke},isoFormat:function(){return Rke},isoParse:function(){return Nke},keys:function(){return Hpe},lab:function(){return Eq},line:function(){return EN},lineRadial:function(){return Mee},linkHorizontal:function(){return C1e},linkRadial:function(){return k1e},linkVertical:function(){return w1e},local:function(){return vee},map:function(){return mg},matcher:function(){return oee},max:function(){return tK},mean:function(){return Que},median:function(){return Xue},merge:function(){return D7},min:function(){return nK},mouse:function(){return FCe},namespace:function(){return fj},namespaces:function(){return dj},nest:function(){return Npe},now:function(){return hg},pack:function(){return Ege},packEnclose:function(){return kQ},packSiblings:function(){return Tge},pairs:function(){return jue},partition:function(){return xge},path:function(){return Hd},permute:function(){return $ue},pie:function(){return m1e},pointRadial:function(){return Gx},polygonArea:function(){return wve},polygonCentroid:function(){return kve},polygonContains:function(){return Eve},polygonHull:function(){return Sve},polygonLength:function(){return xve},precisionFixed:function(){return Lme},precisionPrefix:function(){return Zme},precisionRound:function(){return Nme},quadtree:function(){return dZ},quantile:function(){return zE},quantize:function(){return Cve},radialArea:function(){return See},radialLine:function(){return Mee},randomBates:function(){return Ove},randomExponential:function(){return Ive},randomIrwinHall:function(){return SX},randomLogNormal:function(){return Ave},randomNormal:function(){return MX},randomUniform:function(){return Dve},range:function(){return mc},rgb:function(){return gq},ribbon:function(){return Zpe},scaleBand:function(){return YH},scaleIdentity:function(){return FX},scaleImplicit:function(){return WH},scaleLinear:function(){return BX},scaleLog:function(){return zX},scaleOrdinal:function(){return VH},scalePoint:function(){return Pve},scalePow:function(){return XH},scaleQuantile:function(){return WX},scaleQuantize:function(){return VX},scaleSequential:function(){return T$},scaleSqrt:function(){return eye},scaleThreshold:function(){return YX},scaleTime:function(){return v0e},scaleUtc:function(){return w0e},scan:function(){return ece},schemeAccent:function(){return T0e},schemeBlues:function(){return V$},schemeBrBG:function(){return M$},schemeBuGn:function(){return R$},schemeBuPu:function(){return L$},schemeCategory10:function(){return k0e},schemeDark2:function(){return M0e},schemeGnBu:function(){return Z$},schemeGreens:function(){return Y$},schemeGreys:function(){return K$},schemeOrRd:function(){return N$},schemeOranges:function(){return Q$},schemePRGn:function(){return S$},schemePaired:function(){return S0e},schemePastel1:function(){return E0e},schemePastel2:function(){return x0e},schemePiYG:function(){return E$},schemePuBu:function(){return F$},schemePuBuGn:function(){return B$},schemePuOr:function(){return x$},schemePuRd:function(){return U$},schemePurples:function(){return q$},schemeRdBu:function(){return D$},schemeRdGy:function(){return A$},schemeRdPu:function(){return H$},schemeRdYlBu:function(){return O$},schemeRdYlGn:function(){return I$},schemeReds:function(){return J$},schemeSet1:function(){return D0e},schemeSet2:function(){return A0e},schemeSet3:function(){return O0e},schemeSpectral:function(){return P$},schemeYlGn:function(){return G$},schemeYlGnBu:function(){return j$},schemeYlOrBr:function(){return z$},schemeYlOrRd:function(){return W$},select:function(){return gee},selectAll:function(){return UCe},selection:function(){return ZCe},selector:function(){return pj},selectorAll:function(){return ree},set:function(){return Upe},shuffle:function(){return tce},stack:function(){return q1e},stackOffsetDiverging:function(){return Q1e},stackOffsetExpand:function(){return J1e},stackOffsetNone:function(){return Rw},stackOffsetSilhouette:function(){return X1e},stackOffsetWiggle:function(){return $1e},stackOrderAscending:function(){return qee},stackOrderDescending:function(){return ewe},stackOrderInsideOut:function(){return twe},stackOrderNone:function(){return Lw},stackOrderReverse:function(){return nwe},stratify:function(){return Ige},style:function(){return lee},sum:function(){return nce},symbol:function(){return A1e},symbolCircle:function(){return Mj},symbolCross:function(){return Eee},symbolDiamond:function(){return Dee},symbolSquare:function(){return Iee},symbolStar:function(){return Oee},symbolTriangle:function(){return Pee},symbolWye:function(){return Ree},symbols:function(){return D1e},thresholdFreedmanDiaconis:function(){return que},thresholdScott:function(){return Jue},thresholdSturges:function(){return x7},tickIncrement:function(){return GE},tickStep:function(){return e0},ticks:function(){return E7},timeDay:function(){return swe},timeDays:function(){return lwe},timeFormat:function(){return Nte},timeFormatDefaultLocale:function(){return Fte},timeFormatLocale:function(){return Ste},timeFriday:function(){return dte},timeFridays:function(){return pwe},timeHour:function(){return owe},timeHours:function(){return awe},timeInterval:function(){return ys},timeMillisecond:function(){return Qee},timeMilliseconds:function(){return Xee},timeMinute:function(){return rwe},timeMinutes:function(){return iwe},timeMonday:function(){return ste},timeMondays:function(){return uwe},timeMonth:function(){return mwe},timeMonths:function(){return _we},timeParse:function(){return Bte},timeSaturday:function(){return fte},timeSaturdays:function(){return hwe},timeSecond:function(){return nte},timeSeconds:function(){return rte},timeSunday:function(){return Lj},timeSundays:function(){return pte},timeThursday:function(){return cte},timeThursdays:function(){return fwe},timeTuesday:function(){return lte},timeTuesdays:function(){return cwe},timeWednesday:function(){return ute},timeWednesdays:function(){return dwe},timeWeek:function(){return Lj},timeWeeks:function(){return pte},timeYear:function(){return gwe},timeYears:function(){return vwe},timeout:function(){return $E},timer:function(){return XE},timerFlush:function(){return HK},touch:function(){return HCe},touches:function(){return jCe},transition:function(){return Mne},transpose:function(){return rK},tree:function(){return Bge},treemap:function(){return Fge},treemapBinary:function(){return Uge},treemapDice:function(){return kx},treemapResquarify:function(){return jge},treemapSlice:function(){return tN},treemapSliceDice:function(){return Hge},treemapSquarify:function(){return NQ},tsvFormat:function(){return She},tsvFormatRows:function(){return Ehe},tsvParse:function(){return The},tsvParseRows:function(){return Mhe},utcDay:function(){return kwe},utcDays:function(){return Twe},utcFormat:function(){return Fj},utcFriday:function(){return wte},utcFridays:function(){return Dwe},utcHour:function(){return Cwe},utcHours:function(){return wwe},utcMillisecond:function(){return Qee},utcMilliseconds:function(){return Xee},utcMinute:function(){return ywe},utcMinutes:function(){return bwe},utcMonday:function(){return vte},utcMondays:function(){return Mwe},utcMonth:function(){return Owe},utcMonths:function(){return Iwe},utcParse:function(){return Uj},utcSaturday:function(){return kte},utcSaturdays:function(){return Awe},utcSecond:function(){return nte},utcSeconds:function(){return rte},utcSunday:function(){return Nj},utcSundays:function(){return Tte},utcThursday:function(){return Cte},utcThursdays:function(){return xwe},utcTuesday:function(){return yte},utcTuesdays:function(){return Swe},utcWednesday:function(){return bte},utcWednesdays:function(){return Ewe},utcWeek:function(){return Nj},utcWeeks:function(){return Tte},utcYear:function(){return Pwe},utcYears:function(){return Rwe},values:function(){return jpe},variance:function(){return XY},voronoi:function(){return jSe},window:function(){return hj},zip:function(){return ice},zoom:function(){return Fne},zoomIdentity:function(){return qN},zoomTransform:function(){return Nne}});var W={};m.r(W),m.d(W,{safe:function(){return foe},spec:function(){return kLe}});var A={};m.r(A),m.d(A,{angle:function(){return lZe},decibel:function(){return pZe},flex:function(){return fZe},frequency:function(){return cZe},length:function(){return sZe},resolution:function(){return dZe},semitones:function(){return hZe},time:function(){return uZe}});var H={};m.r(H),m.d(H,{getTrace:function(){return Qoe},isKeyword:function(){return $Ze},isProperty:function(){return XZe},isType:function(){return QZe}});var P={};m.r(P),m.d(P,{generate:function(){return dNe},name:function(){return uNe},parse:function(){return oae},structure:function(){return cNe}});var I={};m.r(I),m.d(I,{generate:function(){return _Ne},name:function(){return pNe},parse:function(){return sae},structure:function(){return mNe},walkContext:function(){return hNe}});var T={};m.r(T),m.d(T,{generate:function(){return bNe},name:function(){return gNe},parse:function(){return lae},structure:function(){return yNe},walkContext:function(){return vNe}});var E={};m.r(E),m.d(E,{generate:function(){return xNe},name:function(){return SNe},parse:function(){return cae},structure:function(){return ENe}});var j={};m.r(j),m.d(j,{generate:function(){return RNe},name:function(){return ONe},parse:function(){return hae},structure:function(){return PNe},walkContext:function(){return INe}});var R={};m.r(R),m.d(R,{generate:function(){return NNe},name:function(){return LNe},parse:function(){return mae},structure:function(){return ZNe}});var v={};m.r(v),m.d(v,{generate:function(){return UNe},name:function(){return BNe},parse:function(){return _ae},structure:function(){return FNe}});var x={};m.r(x),m.d(x,{generate:function(){return GNe},name:function(){return HNe},parse:function(){return gae},structure:function(){return jNe}});var w={};m.r(w),m.d(w,{generate:function(){return YNe},name:function(){return WNe},parse:function(){return vae},structure:function(){return VNe}});var Z={};m.r(Z),m.d(Z,{generate:function(){return $Ne},name:function(){return QNe},parse:function(){return bae},structure:function(){return XNe}});var D={};m.r(D),m.d(D,{generate:function(){return iBe},name:function(){return nBe},parse:function(){return Cae},structure:function(){return rBe}});var b={};m.r(b),m.d(b,{generate:function(){return _Be},name:function(){return pBe},parse:function(){return Tae},structure:function(){return mBe},walkContext:function(){return hBe}});var S={};m.r(S),m.d(S,{generate:function(){return wBe},name:function(){return bBe},parse:function(){return Mae},structure:function(){return CBe}});var k={};m.r(k),m.d(k,{generate:function(){return MBe},name:function(){return kBe},parse:function(){return Sae},structure:function(){return TBe}});var M={};m.r(M),m.d(M,{generate:function(){return DBe},name:function(){return SBe},parse:function(){return Eae},structure:function(){return xBe},walkContext:function(){return EBe}});var N={};m.r(N),m.d(N,{generate:function(){return PBe},name:function(){return OBe},parse:function(){return xae},structure:function(){return IBe},xxx:function(){return ABe}});var F={};m.r(F),m.d(F,{generate:function(){return ZBe},name:function(){return RBe},parse:function(){return Dae},structure:function(){return LBe}});var X={};m.r(X),m.d(X,{generate:function(){return FBe},name:function(){return NBe},parse:function(){return Aae},structure:function(){return BBe}});var $={};m.r($),m.d($,{generate:function(){return jBe},name:function(){return UBe},parse:function(){return Oae},structure:function(){return HBe}});var V={};m.r(V),m.d(V,{generate:function(){return WBe},name:function(){return GBe},parse:function(){return Iae},structure:function(){return zBe}});var Q={};m.r(Q),m.d(Q,{generate:function(){return KBe},name:function(){return VBe},parse:function(){return Pae},structure:function(){return YBe}});var te={};m.r(te),m.d(te,{generate:function(){return XBe},name:function(){return JBe},parse:function(){return Rae},structure:function(){return QBe}});var be={};m.r(be),m.d(be,{generate:function(){return t5e},name:function(){return $Be},parse:function(){return Lae},structure:function(){return e5e}});var pe={};m.r(pe),m.d(pe,{generate:function(){return i5e},name:function(){return n5e},parse:function(){return Zae},structure:function(){return r5e}});var fe={};m.r(fe),m.d(fe,{generate:function(){return s5e},name:function(){return o5e},parse:function(){return Nae},structure:function(){return a5e}});var ue={};m.r(ue),m.d(ue,{generate:function(){return c5e},name:function(){return l5e},parse:function(){return Bae},structure:function(){return u5e}});var de={};m.r(de),m.d(de,{generate:function(){return p5e},name:function(){return d5e},parse:function(){return Fae},structure:function(){return f5e}});var ge={};m.r(ge),m.d(ge,{generate:function(){return g5e},name:function(){return h5e},parse:function(){return Uae},structure:function(){return _5e},walkContext:function(){return m5e}});var je={};m.r(je),m.d(je,{generate:function(){return C5e},name:function(){return v5e},parse:function(){return Hae},structure:function(){return b5e},walkContext:function(){return y5e}});var ot={};m.r(ot),m.d(ot,{generate:function(){return S5e},name:function(){return T5e},parse:function(){return Gae},structure:function(){return M5e}});var St={};m.r(St),m.d(St,{generate:function(){return A5e},name:function(){return x5e},parse:function(){return zae},structure:function(){return D5e}});var Tt={};m.r(Tt),m.d(Tt,{generate:function(){return L5e},name:function(){return I5e},parse:function(){return Vae},structure:function(){return R5e},walkContext:function(){return P5e}});var Dt={};m.r(Dt),m.d(Dt,{generate:function(){return B5e},name:function(){return Z5e},parse:function(){return Yae},structure:function(){return N5e}});var Rt={};m.r(Rt),m.d(Rt,{generate:function(){return j5e},name:function(){return F5e},parse:function(){return Kae},structure:function(){return H5e},walkContext:function(){return U5e}});var Ze={};m.r(Ze),m.d(Ze,{generate:function(){return V5e},name:function(){return z5e},parse:function(){return Xae},structure:function(){return W5e}});var $t={};m.r($t),m.d($t,{generate:function(){return Q5e},name:function(){return K5e},parse:function(){return ese},structure:function(){return J5e},walkContext:function(){return q5e}});var Ft={};m.r(Ft),m.d(Ft,{generate:function(){return tFe},name:function(){return $5e},parse:function(){return nse},structure:function(){return eFe}});var pn={};m.r(pn),m.d(pn,{generate:function(){return aFe},name:function(){return iFe},parse:function(){return ose},structure:function(){return oFe}});var rt={};m.r(rt),m.d(rt,{generate:function(){return mFe},name:function(){return pFe},parse:function(){return sse},structure:function(){return hFe}});var Ot={};m.r(Ot),m.d(Ot,{generate:function(){return vFe},name:function(){return _Fe},parse:function(){return lse},structure:function(){return gFe}});var _t={};m.r(_t),m.d(_t,{generate:function(){return wFe},name:function(){return bFe},parse:function(){return use},structure:function(){return CFe}});var Ct={};m.r(Ct),m.d(Ct,{AnPlusB:function(){return P},Atrule:function(){return I},AtrulePrelude:function(){return T},AttributeSelector:function(){return E},Block:function(){return j},Brackets:function(){return R},CDC:function(){return v},CDO:function(){return x},ClassSelector:function(){return w},Combinator:function(){return Z},Comment:function(){return D},Declaration:function(){return b},DeclarationList:function(){return S},Dimension:function(){return k},Function:function(){return M},Hash:function(){return N},IdSelector:function(){return X},Identifier:function(){return F},MediaFeature:function(){return $},MediaQuery:function(){return V},MediaQueryList:function(){return Q},NestingSelector:function(){return te},Nth:function(){return be},Number:function(){return pe},Operator:function(){return fe},Parentheses:function(){return ue},Percentage:function(){return de},PseudoClassSelector:function(){return ge},PseudoElementSelector:function(){return je},Ratio:function(){return ot},Raw:function(){return St},Rule:function(){return Tt},Selector:function(){return Dt},SelectorList:function(){return Rt},String:function(){return Ze},StyleSheet:function(){return $t},TypeSelector:function(){return Ft},UnicodeRange:function(){return pn},Url:function(){return rt},Value:function(){return Ot},WhiteSpace:function(){return _t}});var Ve={};m.r(Ve),m.d(Ve,{AtrulePrelude:function(){return DFe},Selector:function(){return UFe},Value:function(){return GFe}});var at={};m.r(at),m.d(at,{AnPlusB:function(){return oae},Atrule:function(){return sae},AtrulePrelude:function(){return lae},AttributeSelector:function(){return cae},Block:function(){return hae},Brackets:function(){return mae},CDC:function(){return _ae},CDO:function(){return gae},ClassSelector:function(){return vae},Combinator:function(){return bae},Comment:function(){return Cae},Declaration:function(){return Tae},DeclarationList:function(){return Mae},Dimension:function(){return Sae},Function:function(){return Eae},Hash:function(){return xae},IdSelector:function(){return Aae},Identifier:function(){return Dae},MediaFeature:function(){return Oae},MediaQuery:function(){return Iae},MediaQueryList:function(){return Pae},NestingSelector:function(){return Rae},Nth:function(){return Lae},Number:function(){return Zae},Operator:function(){return Nae},Parentheses:function(){return Bae},Percentage:function(){return Fae},PseudoClassSelector:function(){return Uae},PseudoElementSelector:function(){return Hae},Ratio:function(){return Gae},Raw:function(){return zae},Rule:function(){return Vae},Selector:function(){return Yae},SelectorList:function(){return Kae},String:function(){return Xae},StyleSheet:function(){return ese},TypeSelector:function(){return nse},UnicodeRange:function(){return ose},Url:function(){return sse},Value:function(){return lse},WhiteSpace:function(){return use}});var ht={};m.r(ht),m.d(ht,{Hooks:function(){return lA},Lexer:function(){return tT},Parser:function(){return nT},Renderer:function(){return x5},Slugger:function(){return tW},TextRenderer:function(){return eW},Tokenizer:function(){return E5},defaults:function(){return ov},getDefaults:function(){return $z},lexer:function(){return m8e},marked:function(){return Nr},options:function(){return l8e},parse:function(){return p8e},parseInline:function(){return f8e},parser:function(){return h8e},setOptions:function(){return u8e},use:function(){return c8e},walkTokens:function(){return d8e}});var vn,Ut=m(3237),Wt=m(1120),U=m(3144),B=m(5671),qe=m(136),Be=m(9388),le=m(9808),t=m(5e3),Lt=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments)).supportsDOMEvents=!0,i}return(0,U.Z)(e)}(le.w_),zt=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"onAndCancel",value:function(o,a,s){return o.addEventListener(a,s,!1),function(){o.removeEventListener(a,s,!1)}}},{key:"dispatchEvent",value:function(o,a){o.dispatchEvent(a)}},{key:"remove",value:function(o){o.parentNode&&o.parentNode.removeChild(o)}},{key:"createElement",value:function(o,a){return(a=a||this.getDefaultDocument()).createElement(o)}},{key:"createHtmlDocument",value:function(){return document.implementation.createHTMLDocument("fakeTitle")}},{key:"getDefaultDocument",value:function(){return document}},{key:"isElementNode",value:function(o){return o.nodeType===Node.ELEMENT_NODE}},{key:"isShadowRoot",value:function(o){return o instanceof DocumentFragment}},{key:"getGlobalEventTarget",value:function(o,a){return"window"===a?window:"document"===a?o:"body"===a?o.body:null}},{key:"getBaseHref",value:function(o){var a=function Qt(){return(an=an||document.querySelector("base"))?an.getAttribute("href"):null}();return null==a?null:function Vt(n){(vn=vn||document.createElement("a")).setAttribute("href",n);var r=vn.pathname;return"/"===r.charAt(0)?r:"/".concat(r)}(a)}},{key:"resetBaseElement",value:function(){an=null}},{key:"getUserAgent",value:function(){return window.navigator.userAgent}},{key:"getCookie",value:function(o){return(0,le.Mx)(document.cookie,o)}}],[{key:"makeCurrent",value:function(){(0,le.HT)(new e)}}]),e}(Lt),an=null;var Jt=new t.OlP("TRANSITION_ID");var Fe=[{provide:t.ip1,useFactory:function Qe(n,r,e){return function(){e.get(t.CZH).donePromise.then(function(){for(var i=(0,le.q)(),o=r.querySelectorAll('style[ng-transition="'.concat(n,'"]')),a=0;a1&&void 0!==arguments[1])||arguments[1],s=e.findTestabilityInTree(o,a);if(null==s)throw new Error("Could not find testability for element.");return s},t.dqk.getAllAngularTestabilities=function(){return e.getAllTestabilities()},t.dqk.getAllAngularRootElements=function(){return e.getAllRootElements()};t.dqk.frameworkStabilizers||(t.dqk.frameworkStabilizers=[]),t.dqk.frameworkStabilizers.push(function(a){var s=t.dqk.getAllAngularTestabilities(),l=s.length,u=!1,d=function(g){u=u||g,0==--l&&a(u)};s.forEach(function(h){h.whenStable(d)})})}},{key:"findTestabilityInTree",value:function(e,i,o){if(null==i)return null;var a=e.getTestability(i);return null!=a?a:o?(0,le.q)().isShadowRoot(i)?this.findTestabilityInTree(e,i.host,!0):this.findTestabilityInTree(e,i.parentElement,!0):null}}]),n}(),ye=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"build",value:function(){return new XMLHttpRequest}}]),n}();ye.\u0275fac=function(r){return new(r||ye)},ye.\u0275prov=t.Yz7({token:ye,factory:ye.\u0275fac});var he=new t.OlP("EventManagerPlugins"),Le=function(){function n(r,e){var i=this;(0,B.Z)(this,n),this._zone=e,this._eventNameToPlugin=new Map,r.forEach(function(o){return o.manager=i}),this._plugins=r.slice().reverse()}return(0,U.Z)(n,[{key:"addEventListener",value:function(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}},{key:"addGlobalEventListener",value:function(e,i,o){return this._findPluginFor(i).addGlobalEventListener(e,i,o)}},{key:"getZone",value:function(){return this._zone}},{key:"_findPluginFor",value:function(e){var i=this._eventNameToPlugin.get(e);if(i)return i;for(var o=this._plugins,a=0;a-1&&(a.splice(d,1),u="code."),et.forEach(function(g){var y=a.indexOf(g);y>-1&&(a.splice(y,1),u+=g+".")}),u+=l,0!=a.length||0===l.length)return null;var h={};return h.domEventName=s,h.fullKey=u,h}},{key:"matchEventFullKeyCode",value:function(o,a){var s=gt[o.key]||o.key,l="";return a.indexOf("code.")>-1&&(s=o.code,l="code."),!(null==s||!s)&&(" "===(s=s.toLowerCase())?s="space":"."===s&&(s="dot"),et.forEach(function(u){u!==s&&((0,wt[u])(o)&&(l+=u+"."))}),(l+=s)===a)}},{key:"eventCallback",value:function(o,a,s){return function(l){e.matchEventFullKeyCode(l,o)&&s.runGuarded(function(){return a(l)})}}},{key:"_normalizeKey",value:function(o){return"esc"===o?"escape":o}}]),e}(lt);nn.\u0275fac=function(r){return new(r||nn)(t.LFG(le.K0))},nn.\u0275prov=t.Yz7({token:nn,factory:nn.\u0275fac});var Ca=[{provide:t.Lbi,useValue:le.bD},{provide:t.g9A,useValue:function yi(){zt.makeCurrent()},multi:!0},{provide:le.K0,useFactory:function Va(){return(0,t.RDi)(document),document},deps:[]}],wa=(0,t.eFA)(t._c5,"browser",Ca),ls=new t.OlP(""),ta=[{provide:t.rWj,useClass:ne,deps:[]},{provide:t.lri,useClass:t.dDg,deps:[t.R0b,t.eoX,t.rWj]},{provide:t.dDg,useClass:t.dDg,deps:[t.R0b,t.eoX,t.rWj]}],Di=[{provide:t.zSh,useValue:"root"},{provide:t.qLn,useFactory:function zi(){return new t.qLn},deps:[]},{provide:he,useClass:yt,multi:!0,deps:[le.K0,t.R0b,t.Lbi]},{provide:he,useClass:nn,multi:!0,deps:[le.K0]},{provide:Ye,useClass:Ye,deps:[Le,Nt,t.AFp]},{provide:t.FYo,useExisting:Ye},{provide:ut,useExisting:Nt},{provide:Nt,useClass:Nt,deps:[le.K0]},{provide:Le,useClass:Le,deps:[he,t.R0b]},{provide:le.JF,useClass:ye,deps:[]},[]],na=function(){function n(r){(0,B.Z)(this,n),false}return(0,U.Z)(n,null,[{key:"withServerTransition",value:function(e){return{ngModule:n,providers:[{provide:t.AFp,useValue:e.appId},{provide:Jt,useExisting:t.AFp},Fe]}}}]),n}();na.\u0275fac=function(r){return new(r||na)(t.LFG(ls,12))},na.\u0275mod=t.oAB({type:na}),na.\u0275inj=t.cJS({providers:[].concat(Di,ta),imports:[le.ez,t.hGG]});var Gn=function(){function n(r){(0,B.Z)(this,n),this._doc=r,this._dom=(0,le.q)()}return(0,U.Z)(n,[{key:"addTag",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?this._getOrCreateElement(e,i):null}},{key:"addTags",value:function(e){var i=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?e.reduce(function(a,s){return s&&a.push(i._getOrCreateElement(s,o)),a},[]):[]}},{key:"getTag",value:function(e){return e&&this._doc.querySelector("meta[".concat(e,"]"))||null}},{key:"getTags",value:function(e){if(!e)return[];var i=this._doc.querySelectorAll("meta[".concat(e,"]"));return i?[].slice.call(i):[]}},{key:"updateTag",value:function(e,i){if(!e)return null;i=i||this._parseSelector(e);var o=this.getTag(i);return o?this._setMetaElementAttributes(e,o):this._getOrCreateElement(e,!0)}},{key:"removeTag",value:function(e){this.removeTagElement(this.getTag(e))}},{key:"removeTagElement",value:function(e){e&&this._dom.remove(e)}},{key:"_getOrCreateElement",value:function(e){var i=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!o){var a=this._parseSelector(e),s=this.getTags(a).filter(function(d){return i._containsAttributes(e,d)})[0];if(void 0!==s)return s}var l=this._dom.createElement("meta");this._setMetaElementAttributes(e,l);var u=this._doc.getElementsByTagName("head")[0];return u.appendChild(l),l}},{key:"_setMetaElementAttributes",value:function(e,i){var o=this;return Object.keys(e).forEach(function(a){return i.setAttribute(o._getMetaKeyMap(a),e[a])}),i}},{key:"_parseSelector",value:function(e){var i=e.name?"name":"property";return"".concat(i,'="').concat(e[i],'"')}},{key:"_containsAttributes",value:function(e,i){var o=this;return Object.keys(e).every(function(a){return i.getAttribute(o._getMetaKeyMap(a))===e[a]})}},{key:"_getMetaKeyMap",value:function(e){return vr[e]||e}}]),n}();Gn.\u0275fac=function(r){return new(r||Gn)(t.LFG(le.K0))},Gn.\u0275prov=t.Yz7({token:Gn,factory:function(r){return r?new r:function _o(){return new Gn((0,t.LFG)(le.K0))}()},providedIn:"root"});var vr={httpEquiv:"http-equiv"};var ni=function(){function n(r){(0,B.Z)(this,n),this._doc=r}return(0,U.Z)(n,[{key:"getTitle",value:function(){return this._doc.title}},{key:"setTitle",value:function(e){this._doc.title=e||""}}]),n}();ni.\u0275fac=function(r){return new(r||ni)(t.LFG(le.K0))},ni.\u0275prov=t.Yz7({token:ni,factory:function(r){return r?new r:function fi(){return new ni((0,t.LFG)(le.K0))}()},providedIn:"root"});function So(n,r){"undefined"!=typeof COMPILED&&COMPILED||((t.dqk.ng=t.dqk.ng||{})[n]=r)}var so="undefined"!=typeof window&&window||{},xr=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.msPerTick=r,this.numTicks=e}),Vi=function(){function n(r){(0,B.Z)(this,n),this.appRef=r.injector.get(t.z2F)}return(0,U.Z)(n,[{key:"timeChangeDetection",value:function(e){var i=e&&e.record,o="Change Detection",a=null!=so.console.profile;i&&a&&so.console.profile(o);for(var s=Eo(),l=0;l<5||Eo()-s<500;)this.appRef.tick(),l++;var u=Eo();i&&a&&so.console.profileEnd(o);var d=(u-s)/l;return so.console.log("ran ".concat(l," change detection cycles")),so.console.log("".concat(d.toFixed(2)," ms per check")),new xr(d,l)}}]),n}();function Eo(){return so.performance&&so.performance.now?so.performance.now():(new Date).getTime()}var ca="profiler";var Ui=function(){function n(){(0,B.Z)(this,n),this.store={},this.onSerializeCallbacks={}}return(0,U.Z)(n,[{key:"get",value:function(e,i){return void 0!==this.store[e]?this.store[e]:i}},{key:"set",value:function(e,i){this.store[e]=i}},{key:"remove",value:function(e){delete this.store[e]}},{key:"hasKey",value:function(e){return this.store.hasOwnProperty(e)}},{key:"isEmpty",get:function(){return 0===Object.keys(this.store).length}},{key:"onSerialize",value:function(e,i){this.onSerializeCallbacks[e]=i}},{key:"toJson",value:function(){for(var e in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(e))try{this.store[e]=this.onSerializeCallbacks[e]()}catch(i){console.warn("Exception in onSerialize callback: ",i)}return JSON.stringify(this.store)}}]),n}();Ui.\u0275fac=function(r){return new(r||Ui)},Ui.\u0275prov=t.Yz7({token:Ui,factory:function(){return r=(0,t.f3M)(le.K0),e=(0,t.f3M)(t.AFp),(i=new Ui).store=function Ks(n,r){var e=n.getElementById(r+"-state"),i={};if(e&&e.textContent)try{i=JSON.parse(function Ya(n){var r={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"};return n.replace(/&[^;]+;/g,function(e){return r[e]})}(e.textContent))}catch(o){console.warn("Exception while restoring TransferState for app "+r,o)}return i}(r,e),i;var r,e,i},providedIn:"root"});var ii=(0,U.Z)(function n(){(0,B.Z)(this,n)});ii.\u0275fac=function(r){return new(r||ii)},ii.\u0275mod=t.oAB({type:ii}),ii.\u0275inj=t.cJS({});var to={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0,doubletap:!0},Ai=new t.OlP("HammerGestureConfig"),pu=new t.OlP("HammerLoader"),Yi=function(){function n(){(0,B.Z)(this,n),this.events=[],this.overrides={}}return(0,U.Z)(n,[{key:"buildHammer",value:function(e){var i=new Hammer(e,this.options);for(var o in i.get("pinch").set({enable:!0}),i.get("rotate").set({enable:!0}),this.overrides)i.get(o).set(this.overrides[o]);return i}}]),n}();Yi.\u0275fac=function(r){return new(r||Yi)},Yi.\u0275prov=t.Yz7({token:Yi,factory:Yi.\u0275fac});var tn=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i))._config=o,l.console=a,l.loader=s,l._loaderPromise=null,l}return(0,U.Z)(e,[{key:"supports",value:function(o){return!(!to.hasOwnProperty(o.toLowerCase())&&!this.isCustomEvent(o)||!window.Hammer&&!this.loader)}},{key:"addEventListener",value:function(o,a,s){var l=this,u=this.manager.getZone();if(a=a.toLowerCase(),!window.Hammer&&this.loader){this._loaderPromise=this._loaderPromise||u.runOutsideAngular(function(){return l.loader()});var d=!1,h=function(){d=!0};return u.runOutsideAngular(function(){return l._loaderPromise.then(function(){window.Hammer?d||(h=l.addEventListener(o,a,s)):h=function(){}}).catch(function(){h=function(){}})}),function(){h()}}return u.runOutsideAngular(function(){var g=l._config.buildHammer(o),y=function(z){u.runGuarded(function(){s(z)})};return g.on(a,y),function(){g.off(a,y),"function"==typeof g.destroy&&g.destroy()}})}},{key:"isCustomEvent",value:function(o){return this._config.events.indexOf(o)>-1}}]),e}(lt);tn.\u0275fac=function(r){return new(r||tn)(t.LFG(le.K0),t.LFG(Ai),t.LFG(t.c2e),t.LFG(pu,8))},tn.\u0275prov=t.Yz7({token:tn,factory:tn.\u0275fac});var en=(0,U.Z)(function n(){(0,B.Z)(this,n)});en.\u0275fac=function(r){return new(r||en)},en.\u0275mod=t.oAB({type:en}),en.\u0275inj=t.cJS({providers:[{provide:he,useClass:tn,multi:!0,deps:[le.K0,Ai,t.c2e,[new t.FiY,pu]]},{provide:Ai,useClass:Yi,deps:[]}]});var Dr=(0,U.Z)(function n(){(0,B.Z)(this,n)});Dr.\u0275fac=function(r){return new(r||Dr)},Dr.\u0275prov=t.Yz7({token:Dr,factory:function(r){return r?new(r||Dr):t.LFG(Ki)},providedIn:"root"});var Ki=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this))._doc=i,o}return(0,U.Z)(e,[{key:"sanitize",value:function(o,a){if(null==a)return null;switch(o){case t.q3G.NONE:return a;case t.q3G.HTML:return(0,t.qzn)(a,"HTML")?(0,t.z3N)(a):(0,t.EiD)(this._doc,String(a)).toString();case t.q3G.STYLE:return(0,t.qzn)(a,"Style")?(0,t.z3N)(a):a;case t.q3G.SCRIPT:if((0,t.qzn)(a,"Script"))return(0,t.z3N)(a);throw new Error("unsafe value used in a script context");case t.q3G.URL:return(0,t.qzn)(a,"URL")?(0,t.z3N)(a):(0,t.mCW)(String(a));case t.q3G.RESOURCE_URL:if((0,t.qzn)(a,"ResourceURL"))return(0,t.z3N)(a);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext ".concat(o," (see https://g.co/ng/security#xss)"))}}},{key:"bypassSecurityTrustHtml",value:function(o){return(0,t.JVY)(o)}},{key:"bypassSecurityTrustStyle",value:function(o){return(0,t.L6k)(o)}},{key:"bypassSecurityTrustScript",value:function(o){return(0,t.eBb)(o)}},{key:"bypassSecurityTrustUrl",value:function(o){return(0,t.LAX)(o)}},{key:"bypassSecurityTrustResourceUrl",value:function(o){return(0,t.pB0)(o)}}]),e}(Dr);Ki.\u0275fac=function(r){return new(r||Ki)(t.LFG(le.K0))},Ki.\u0275prov=t.Yz7({token:Ki,factory:function(r){return r?new r:function no(n){return new Ki(n.get(le.K0))}(t.LFG(t.zs3))},providedIn:"root"});new t.GfV("14.3.0");var Ti=m(2963),ro=m(1002);function Rn(){Rn=function(){return n};var n={},r=Object.prototype,e=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(bt,$e,Pe){return Object.defineProperty(bt,$e,{value:Pe,enumerable:!0,configurable:!0,writable:!0}),bt[$e]}try{l({},"")}catch(bt){l=function(Pe,ct,Bt){return Pe[ct]=Bt}}function u(bt,$e,Pe,ct){var Tn,jn,zn,ar,Bt=$e&&$e.prototype instanceof g?$e:g,Ht=Object.create(Bt.prototype),Pt=new De(ct||[]);return Ht._invoke=(Tn=bt,jn=Pe,zn=Pt,ar="suspendedStart",function(kr,_r){if("executing"===ar)throw new Error("Generator is already running");if("completed"===ar){if("throw"===kr)throw _r;return{value:void 0,done:!0}}for(zn.method=kr,zn.arg=_r;;){var Wr=zn.delegate;if(Wr){var Hr=Ee(Wr,zn);if(Hr){if(Hr===h)continue;return Hr}}if("next"===zn.method)zn.sent=zn._sent=zn.arg;else if("throw"===zn.method){if("suspendedStart"===ar)throw ar="completed",zn.arg;zn.dispatchException(zn.arg)}else"return"===zn.method&&zn.abrupt("return",zn.arg);ar="executing";var Kr=d(Tn,jn,zn);if("normal"===Kr.type){if(ar=zn.done?"completed":"suspendedYield",Kr.arg===h)continue;return{value:Kr.arg,done:zn.done}}"throw"===Kr.type&&(ar="completed",zn.method="throw",zn.arg=Kr.arg)}}),Ht}function d(bt,$e,Pe){try{return{type:"normal",arg:bt.call($e,Pe)}}catch(ct){return{type:"throw",arg:ct}}}n.wrap=u;var h={};function g(){}function y(){}function L(){}var z={};l(z,o,function(){return this});var q=Object.getPrototypeOf,re=q&&q(q(it([])));re&&re!==r&&e.call(re,o)&&(z=re);var ae=L.prototype=g.prototype=Object.create(z);function Se(bt){["next","throw","return"].forEach(function($e){l(bt,$e,function(Pe){return this._invoke($e,Pe)})})}function Ce(bt,$e){function Pe(Bt,Ht,Pt,Tn){var jn=d(bt[Bt],bt,Ht);if("throw"!==jn.type){var zn=jn.arg,ar=zn.value;return ar&&"object"==(0,ro.Z)(ar)&&e.call(ar,"__await")?$e.resolve(ar.__await).then(function(kr){Pe("next",kr,Pt,Tn)},function(kr){Pe("throw",kr,Pt,Tn)}):$e.resolve(ar).then(function(kr){zn.value=kr,Pt(zn)},function(kr){return Pe("throw",kr,Pt,Tn)})}Tn(jn.arg)}var ct;this._invoke=function(Bt,Ht){function Pt(){return new $e(function(Tn,jn){Pe(Bt,Ht,Tn,jn)})}return ct=ct?ct.then(Pt,Pt):Pt()}}function Ee(bt,$e){var Pe=bt.iterator[$e.method];if(void 0===Pe){if($e.delegate=null,"throw"===$e.method){if(bt.iterator.return&&($e.method="return",$e.arg=void 0,Ee(bt,$e),"throw"===$e.method))return h;$e.method="throw",$e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var ct=d(Pe,bt.iterator,$e.arg);if("throw"===ct.type)return $e.method="throw",$e.arg=ct.arg,$e.delegate=null,h;var Bt=ct.arg;return Bt?Bt.done?($e[bt.resultName]=Bt.value,$e.next=bt.nextLoc,"return"!==$e.method&&($e.method="next",$e.arg=void 0),$e.delegate=null,h):Bt:($e.method="throw",$e.arg=new TypeError("iterator result is not an object"),$e.delegate=null,h)}function Ke(bt){var $e={tryLoc:bt[0]};1 in bt&&($e.catchLoc=bt[1]),2 in bt&&($e.finallyLoc=bt[2],$e.afterLoc=bt[3]),this.tryEntries.push($e)}function st(bt){var $e=bt.completion||{};$e.type="normal",delete $e.arg,bt.completion=$e}function De(bt){this.tryEntries=[{tryLoc:"root"}],bt.forEach(Ke,this),this.reset(!0)}function it(bt){if(bt){var $e=bt[o];if($e)return $e.call(bt);if("function"==typeof bt.next)return bt;if(!isNaN(bt.length)){var Pe=-1,ct=function Bt(){for(;++Pe=0;--Bt){var Ht=this.tryEntries[Bt],Pt=Ht.completion;if("root"===Ht.tryLoc)return ct("end");if(Ht.tryLoc<=this.prev){var Tn=e.call(Ht,"catchLoc"),jn=e.call(Ht,"finallyLoc");if(Tn&&jn){if(this.prev=0;--ct){var Bt=this.tryEntries[ct];if(Bt.tryLoc<=this.prev&&e.call(Bt,"finallyLoc")&&this.prev=0;--Pe){var ct=this.tryEntries[Pe];if(ct.finallyLoc===$e)return this.complete(ct.completion,ct.afterLoc),st(ct),h}},catch:function($e){for(var Pe=this.tryEntries.length-1;Pe>=0;--Pe){var ct=this.tryEntries[Pe];if(ct.tryLoc===$e){var Bt=ct.completion;if("throw"===Bt.type){var Ht=Bt.arg;st(ct)}return Ht}}throw new Error("illegal catch attempt")},delegateYield:function($e,Pe,ct){return this.delegate={iterator:it($e),resultName:Pe,nextLoc:ct},"next"===this.method&&(this.arg=void 0),h}},n}var qi,n,hu=m(4506),Jr=m(5647),Yn=m(7685),An=m(7762),cn=m(4902);function Oi(n){if(":"!=n[0])return[null,n];var r=n.indexOf(":",1);if(-1===r)throw new Error('Unsupported format "'.concat(n,'" expecting ":namespace:name"'));return[n.slice(1,r),n.slice(r+1)]}function Ji(n){return"ng-container"===Oi(n)[1]}function Ii(n){return"ng-content"===Oi(n)[1]}function Mi(n){return null===n?null:Oi(n)[0]}function Hi(n,r){return n?":".concat(n,":").concat(r):r}(n=qi||(qi={}))[n.RAW_TEXT=0]="RAW_TEXT",n[n.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",n[n.PARSABLE_DATA=2]="PARSABLE_DATA";var co,fa,hr=function(){function n(){var r=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.closedByChildren,o=e.implicitNamespacePrefix,a=e.contentType,s=void 0===a?qi.PARSABLE_DATA:a,l=e.closedByParent,u=void 0!==l&&l,d=e.isVoid,h=void 0!==d&&d,g=e.ignoreFirstLf,y=void 0!==g&&g,L=e.preventNamespaceInheritance,z=void 0!==L&&L;(0,B.Z)(this,n),this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,i&&i.length>0&&i.forEach(function(q){return r.closedByChildren[q]=!0}),this.isVoid=h,this.closedByParent=u||h,this.implicitNamespacePrefix=o||null,this.contentType=s,this.ignoreFirstLf=y,this.preventNamespaceInheritance=z}return(0,U.Z)(n,[{key:"isClosedByChild",value:function(e){return this.isVoid||e.toLowerCase()in this.closedByChildren}},{key:"getContentType",value:function(e){if("object"==typeof this.contentType){var i=void 0===e?void 0:this.contentType[e];return null!=i?i:this.contentType.default}return this.contentType}}]),n}();function ka(n){var r,e;return fa||(co=new hr,fa={base:new hr({isVoid:!0}),meta:new hr({isVoid:!0}),area:new hr({isVoid:!0}),embed:new hr({isVoid:!0}),link:new hr({isVoid:!0}),img:new hr({isVoid:!0}),input:new hr({isVoid:!0}),param:new hr({isVoid:!0}),hr:new hr({isVoid:!0}),br:new hr({isVoid:!0}),source:new hr({isVoid:!0}),track:new hr({isVoid:!0}),wbr:new hr({isVoid:!0}),p:new hr({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new hr({closedByChildren:["tbody","tfoot"]}),tbody:new hr({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new hr({closedByChildren:["tbody"],closedByParent:!0}),tr:new hr({closedByChildren:["tr"],closedByParent:!0}),td:new hr({closedByChildren:["td","th"],closedByParent:!0}),th:new hr({closedByChildren:["td","th"],closedByParent:!0}),col:new hr({isVoid:!0}),svg:new hr({implicitNamespacePrefix:"svg"}),foreignObject:new hr({implicitNamespacePrefix:"svg",preventNamespaceInheritance:!0}),math:new hr({implicitNamespacePrefix:"math"}),li:new hr({closedByChildren:["li"],closedByParent:!0}),dt:new hr({closedByChildren:["dt","dd"]}),dd:new hr({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new hr({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new hr({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new hr({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new hr({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new hr({closedByChildren:["optgroup"],closedByParent:!0}),option:new hr({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new hr({ignoreFirstLf:!0}),listing:new hr({ignoreFirstLf:!0}),style:new hr({contentType:qi.RAW_TEXT}),script:new hr({contentType:qi.RAW_TEXT}),title:new hr({contentType:{default:qi.ESCAPABLE_RAW_TEXT,svg:qi.PARSABLE_DATA}}),textarea:new hr({contentType:qi.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),null!==(e=null!==(r=fa[n])&&void 0!==r?r:fa[n.toLowerCase()])&&void 0!==e?e:co}var Jo,Qo,go=new RegExp("(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=([\"']?)([^\\]\"']*)\\5)?\\])|(\\))|(\\s*,\\s*)","g"),fo=function(){function n(){(0,B.Z)(this,n),this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}return(0,U.Z)(n,[{key:"unescapeAttribute",value:function(e){for(var i="",o=!1,a=0;a0&&void 0!==arguments[0]?arguments[0]:null;this.element=e}},{key:"getMatchingElementTemplate",value:function(){for(var e=this.element||"div",i=this.classNames.length>0?' class="'.concat(this.classNames.join(" "),'"'):"",o="",a=0;a"):"<".concat(e).concat(i).concat(o,">")}},{key:"getAttrs",value:function(){var e=[];return this.classNames.length>0&&e.push("class",this.classNames.join(" ")),e.concat(this.attrs)}},{key:"addAttribute",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.attrs.push(e,i&&i.toLowerCase()||"")}},{key:"addClassName",value:function(e){this.classNames.push(e.toLowerCase())}},{key:"toString",value:function(){var e=this.element||"";if(this.classNames&&this.classNames.forEach(function(s){return e+=".".concat(s)}),this.attrs)for(var i=0;i0&&!z.element&&0==z.classNames.length&&0==z.attrs.length&&(z.element="*"),L.push(z)},a=new n,l=a,u=!1;for(go.lastIndex=0;s=go.exec(e);){if(s[1]){if(u)throw new Error("Nesting :not in a selector is not allowed");u=!0,l=new n,a.notSelectors.push(l)}var d=s[2];if(d){var h=s[3];"#"===h?l.addAttribute("id",d.slice(1)):"."===h?l.addClassName(d.slice(1)):l.setElement(d)}var g=s[4];if(g&&l.addAttribute(l.unescapeAttribute(g),s[6]),s[7]&&(u=!1,l=a),s[8]){if(u)throw new Error("Multiple selectors in :not are not supported");o(i,a),a=l=new n}}return o(i,a),i}}]),n}();!function(n){n[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom"}(Jo||(Jo={})),function(n){n[n.OnPush=0]="OnPush",n[n.Default=1]="Default"}(Qo||(Qo={}));var Br,_u,mu={name:"custom-elements"},ec={name:"no-errors-schema"};function _l(n){var r=function ml(n){var r=n.classNames&&n.classNames.length?[8].concat((0,cn.Z)(n.classNames)):[];return[n.element&&"*"!==n.element?n.element:""].concat((0,cn.Z)(n.attrs),(0,cn.Z)(r))}(n),e=n.notSelectors&&n.notSelectors.length?n.notSelectors.map(function(i){return function mf(n){var r=n.classNames&&n.classNames.length?[8].concat((0,cn.Z)(n.classNames)):[];return n.element?[5,n.element].concat((0,cn.Z)(n.attrs),(0,cn.Z)(r)):n.attrs.length?[3].concat((0,cn.Z)(n.attrs),(0,cn.Z)(r)):n.classNames&&n.classNames.length?[9].concat((0,cn.Z)(n.classNames)):[]}(i)}):[];return r.concat.apply(r,(0,cn.Z)(e))}function gu(n){return n?fo.parse(n).map(_l):[]}!function(n){n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL"}(Br||(Br={})),function(n){n[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Ignore=2]="Ignore"}(_u||(_u={}));var ks=/-+([a-z0-9])/g;function vu(n,r,e){var i=n.indexOf(r);return-1==i?e:[n.slice(0,i).trim(),n.slice(i+1).trim()]}function pa(n){throw new Error("Internal Error: ".concat(n))}function bd(n){for(var r=[],e=0;e=55296&&i<=56319&&n.length>e+1){var o=n.charCodeAt(e+1);o>=56320&&o<=57343&&(e++,i=(i-55296<<10)+o-56320+65536)}i<=127?r.push(i):i<=2047?r.push(i>>6&31|192,63&i|128):i<=65535?r.push(i>>12|224,i>>6&63|128,63&i|128):i<=2097151&&r.push(i>>18&7|240,i>>12&63|128,i>>6&63|128,63&i|128)}return r}function Ts(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Ts).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return"".concat(n.overriddenName);if(n.name)return"".concat(n.name);if(!n.toString)return"object";var r=n.toString();if(null==r)return""+r;var e=r.indexOf("\n");return-1===e?r:r.substring(0,e)}var Xm=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.full=r;var e=r.split(".");this.major=e[0],this.minor=e[1],this.patch=e.slice(2).join(".")}),Ja=function(){return"undefined"!=typeof global&&global||"undefined"!=typeof window&&window||"undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self}();var Cr=function(){function n(r){(0,B.Z)(this,n),this.digits=r}return(0,U.Z)(n,[{key:"clone",value:function(){return new n(this.digits.slice())}},{key:"add",value:function(e){var i=this.clone();return i.addToSelf(e),i}},{key:"addToSelf",value:function(e){for(var i=Math.max(this.digits.length,e.digits.length),o=0,a=0;a=10?(this.digits[a]=s-10,o=1):(this.digits[a]=s,o=0)}o>0&&(this.digits[i]=1)}},{key:"toString",value:function(){for(var e="",i=this.digits.length-1;i>=0;i--)e+=this.digits[i];return e}}],[{key:"zero",value:function(){return new n([0])}},{key:"one",value:function(){return new n([1])}}]),n}(),us=function(){function n(r){(0,B.Z)(this,n),this.powerOfTwos=[r]}return(0,U.Z)(n,[{key:"getValue",value:function(){return this.powerOfTwos[0]}},{key:"multiplyBy",value:function(e){var i=Cr.zero();return this.multiplyByAndAddTo(e,i),i}},{key:"multiplyByAndAddTo",value:function(e,i){for(var o=0;0!==e;e>>>=1,o++)if(1&e){var a=this.getMultipliedByPowerOfTwo(o);i.addToSelf(a)}}},{key:"getMultipliedByPowerOfTwo",value:function(e){for(var i=this.powerOfTwos.length;i<=e;i++){var o=this.powerOfTwos[i-1];this.powerOfTwos[i]=o.add(o)}return this.powerOfTwos[e]}}]),n}(),rh=function(){function n(r){(0,B.Z)(this,n),this.base=r,this.exponents=[new us(Cr.one())]}return(0,U.Z)(n,[{key:"toThePowerOf",value:function(e){for(var i=this.exponents.length;i<=e;i++){var o=this.exponents[i-1].multiplyBy(this.base);this.exponents[i]=new us(o)}return this.exponents[e]}}]),n}();function ih(n){return function ke(n){var r=bd(n),e=function Qa(n,r){for(var e=n.length+3>>>2,i=[],o=0;o>5]|=128<<24-i%32,e[15+(i+64>>9<<4)]=i;for(var h=0;h>>4).toString(16)+(15&i).toString(16)}return r.toLowerCase()}(function cs(n){return n.reduce(function(r,e){return r.concat(function $m(n){for(var r=[],e=0;e<4;e++)r.push(n>>>8*(3-e)&255);return r}(e))},[])}([a,s,l,u,d]))}(function xn(n){return n.map(function(r){return r.visit(Hl,null)})}(n.nodes).join("")+"[".concat(n.meaning,"]"))}function _f(n){return n.id||Js(n)}function Js(n){var r=new we;return Oe(n.nodes.map(function(i){return i.visit(r,null)}).join(""),n.meaning)}var yu=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitText",value:function(e,i){return e.value}},{key:"visitContainer",value:function(e,i){var o=this;return"[".concat(e.children.map(function(a){return a.visit(o)}).join(", "),"]")}},{key:"visitIcu",value:function(e,i){var o=this,a=Object.keys(e.cases).map(function(s){return"".concat(s," {").concat(e.cases[s].visit(o),"}")});return"{".concat(e.expression,", ").concat(e.type,", ").concat(a.join(", "),"}")}},{key:"visitTagPlaceholder",value:function(e,i){var o=this;return e.isVoid?''):'').concat(e.children.map(function(a){return a.visit(o)}).join(", "),'')}},{key:"visitPlaceholder",value:function(e,i){return e.value?'').concat(e.value,""):'')}},{key:"visitIcuPlaceholder",value:function(e,i){return'').concat(e.value.visit(this),"")}}]),n}(),Hl=new yu;var Pn,we=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"visitIcu",value:function(o,a){var s=this,l=Object.keys(o.cases).map(function(u){return"".concat(u," {").concat(o.cases[u].visit(s),"}")});return"{".concat(o.type,", ").concat(l.join(", "),"}")}}]),e}(yu);function se(n,r,e,i){return n<20?[r&e|~r&i,1518500249]:n<40?[r^e^i,1859775393]:n<60?[r&e|r&i|e&i,2400959708]:[r^e^i,3395469782]}function Me(n){var r=bd(n),e=pt(r,0),i=pt(r,102072);return 0==e&&(0==i||1==i)&&(e^=319790063,i^=-1801410264),[e,i]}function Oe(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",e=Me(n);if(r){var i=Me(r);e=tc(Xo(e,1),i)}var o=e[0],a=e[1];return t_(2147483647&o,a)}function pt(n,r){var o,e=2654435769,i=2654435769,a=n.length;for(o=0;o+12<=a;o+=12){var s=Yt(e=Qn(e,Ta(n,o,Pn.Little)),i=Qn(i,Ta(n,o+4,Pn.Little)),r=Qn(r,Ta(n,o+8,Pn.Little)));e=s[0],i=s[1],r=s[2]}return e=Qn(e,Ta(n,o,Pn.Little)),i=Qn(i,Ta(n,o+4,Pn.Little)),r=Qn(r,a),Yt(e,i,r=Qn(r,Ta(n,o+8,Pn.Little)<<8))[2]}function Yt(n,r,e){return n=Go(n,r),n=Go(n,e),n^=e>>>13,r=Go(r,e),r=Go(r,n),r^=n<<8,e=Go(e,n),e=Go(e,r),e^=r>>>13,n=Go(n,r),n=Go(n,e),n^=e>>>12,r=Go(r,e),r=Go(r,n),r^=n<<16,e=Go(e,n),e=Go(e,r),e^=r>>>5,n=Go(n,r),n=Go(n,e),n^=e>>>3,r=Go(r,e),r=Go(r,n),r^=n<<10,e=Go(e,n),e=Go(e,r),[n,r,e^=r>>>15]}function Qn(n,r){return Qs(n,r)[1]}function Qs(n,r){var e=(65535&n)+(65535&r),i=(n>>>16)+(r>>>16)+(e>>>16);return[i>>>16,i<<16|65535&e]}function tc(n,r){var e=n[0],i=n[1],o=r[0],s=Qs(i,r[1]),l=s[0],u=s[1];return[Qn(Qn(e,o),l),u]}function Go(n,r){var e=(65535&n)-(65535&r);return(n>>16)-(r>>16)+(e>>16)<<16|65535&e}function Xs(n,r){return n<>>32-r}function Xo(n,r){var e=n[0],i=n[1];return[e<>>32-r,i<>>32-r]}function nc(n,r){return r>=n.length?0:n[r]}function Ta(n,r,e){var i=0;if(e===Pn.Big)for(var o=0;o<4;o++)i+=nc(n,r+o)<<24-8*o;else for(var a=0;a<4;a++)i+=nc(n,r+a)<<8*a;return i}!function(n){n[n.Little=0]="Little",n[n.Big=1]="Big"}(Pn||(Pn={}));var Ac,oh=new rh(256);function t_(n,r){var e=oh.toThePowerOf(0).multiplyBy(r);return oh.toThePowerOf(4).multiplyByAndAddTo(n,e),e.toString()}!function(n){n[n.None=0]="None",n[n.Const=1]="Const"}(Ac||(Ac={}));var Ss,rc=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ac.None;(0,B.Z)(this,n),this.modifiers=r}return(0,U.Z)(n,[{key:"hasModifier",value:function(e){return 0!=(this.modifiers&e)}}]),n}();!function(n){n[n.Dynamic=0]="Dynamic",n[n.Bool=1]="Bool",n[n.String=2]="String",n[n.Int=3]="Int",n[n.Number=4]="Number",n[n.Function=5]="Function",n[n.Inferred=6]="Inferred",n[n.None=7]="None"}(Ss||(Ss={}));var mt,Mt,Es=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),(a=r.call(this,o)).name=i,a}return(0,U.Z)(e,[{key:"visitType",value:function(o,a){return o.visitBuiltinType(this,a)}}]),e}(rc),gl=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return(0,B.Z)(this,e),(a=r.call(this,o)).value=i,a.typeParams=s,a}return(0,U.Z)(e,[{key:"visitType",value:function(o,a){return o.visitExpressionType(this,a)}}]),e}(rc),vl=new Es(Ss.Dynamic),Ma=new Es(Ss.Inferred),Ie=new Es(Ss.Bool),_e=(new Es(Ss.Int),new Es(Ss.Number)),xe=new Es(Ss.String),ze=(new Es(Ss.Function),new Es(Ss.None));function wn(n,r){return null==n||null==r?n==r:n.isEquivalent(r)}function Rr(n,r,e){var i=n.length;if(i!==r.length)return!1;for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;return new ic(this,e,i,null,o)}},{key:"equals",value:function(e,i){return new Ao(Mt.Equals,this,e,null,i)}},{key:"notEquals",value:function(e,i){return new Ao(Mt.NotEquals,this,e,null,i)}},{key:"identical",value:function(e,i){return new Ao(Mt.Identical,this,e,null,i)}},{key:"notIdentical",value:function(e,i){return new Ao(Mt.NotIdentical,this,e,null,i)}},{key:"minus",value:function(e,i){return new Ao(Mt.Minus,this,e,null,i)}},{key:"plus",value:function(e,i){return new Ao(Mt.Plus,this,e,null,i)}},{key:"divide",value:function(e,i){return new Ao(Mt.Divide,this,e,null,i)}},{key:"multiply",value:function(e,i){return new Ao(Mt.Multiply,this,e,null,i)}},{key:"modulo",value:function(e,i){return new Ao(Mt.Modulo,this,e,null,i)}},{key:"and",value:function(e,i){return new Ao(Mt.And,this,e,null,i)}},{key:"bitwiseAnd",value:function(e,i){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return new Ao(Mt.BitwiseAnd,this,e,null,i,o)}},{key:"or",value:function(e,i){return new Ao(Mt.Or,this,e,null,i)}},{key:"lower",value:function(e,i){return new Ao(Mt.Lower,this,e,null,i)}},{key:"lowerEquals",value:function(e,i){return new Ao(Mt.LowerEquals,this,e,null,i)}},{key:"bigger",value:function(e,i){return new Ao(Mt.Bigger,this,e,null,i)}},{key:"biggerEquals",value:function(e,i){return new Ao(Mt.BiggerEquals,this,e,null,i)}},{key:"isBlank",value:function(e){return this.equals(yf,e)}},{key:"nullishCoalesce",value:function(e,i){return new Ao(Mt.NullishCoalesce,this,e,null,i)}},{key:"toStmt",value:function(){return new uh(this,null)}}]),n}(),$s=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).name=i,s}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.name===o.name}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitReadVarExpr(this,a)}},{key:"set",value:function(o){return new vf(this.name,o,null,this.sourceSpan)}}]),e}(si),gf=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).expr=i,s}return(0,U.Z)(e,[{key:"visitExpression",value:function(o,a){return o.visitTypeofExpr(this,a)}},{key:"isEquivalent",value:function(o){return o instanceof e&&o.expr.isEquivalent(this.expr)}},{key:"isConstant",value:function(){return this.expr.isConstant()}}]),e}(si),Ar=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).node=i,s}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.node===o.node}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitWrappedNodeExpr(this,a)}}]),e}(si),vf=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,a||o.type,s)).name=i,l.value=o,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.name===o.name&&this.value.isEquivalent(o.value)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitWriteVarExpr(this,a)}},{key:"toDeclStmt",value:function(o,a){return new bf(this.name,this.value,o,a,this.sourceSpan)}},{key:"toConstDecl",value:function(){return this.toDeclStmt(Ma,xs.Final)}}]),e}(si),n_=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,s||a.type,l)).receiver=i,u.index=o,u.value=a,u}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.receiver.isEquivalent(o.receiver)&&this.index.isEquivalent(o.index)&&this.value.isEquivalent(o.value)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitWriteKeyExpr(this,a)}}]),e}(si),Iv=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,s||a.type,l)).receiver=i,u.name=o,u.value=a,u}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.receiver.isEquivalent(o.receiver)&&this.name===o.name&&this.value.isEquivalent(o.value)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitWritePropExpr(this,a)}}]),e}(si),ah=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l,u=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,B.Z)(this,e),(l=r.call(this,a,s)).fn=i,l.args=o,l.pure=u,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.fn.isEquivalent(o.fn)&&ai(this.args,o.args)&&this.pure===o.pure}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitInvokeFunctionExpr(this,a)}}]),e}(si),ie=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,a,s)).tag=i,l.template=o,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.tag.isEquivalent(o.tag)&&Rr(this.template.elements,o.template.elements,function(a,s){return a.text===s.text})&&ai(this.template.expressions,o.template.expressions)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitTaggedTemplateExpr(this,a)}}]),e}(si),ce=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,a,s)).classExpr=i,l.args=o,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.classExpr.isEquivalent(o.classExpr)&&ai(this.args,o.args)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitInstantiateExpr(this,a)}}]),e}(si),me=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).value=i,s}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.value===o.value}},{key:"isConstant",value:function(){return!0}},{key:"visitExpression",value:function(o,a){return o.visitLiteralExpr(this,a)}}]),e}(si),Ue=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.elements=r,this.expressions=e}),Xe=(0,U.Z)(function n(r,e,i){var o;(0,B.Z)(this,n),this.text=r,this.sourceSpan=e,this.rawText=null!==(o=null!=i?i:null==e?void 0:e.toString())&&void 0!==o?o:ds(Qr(r))}),It=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.text=r,this.sourceSpan=e}),rn=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.text=r,this.sourceSpan=e,this.associatedMessage=i}),li=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,xe,l)).metaBlock=i,u.messageParts=o,u.placeHolderNames=a,u.expressions=s,u}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return!1}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitLocalizedString(this,a)}},{key:"serializeI18nHead",value:function(){var o=this.metaBlock.description||"";return this.metaBlock.meaning&&(o="".concat(this.metaBlock.meaning).concat("|").concat(o)),this.metaBlock.customId&&(o="".concat(o).concat("@@").concat(this.metaBlock.customId)),this.metaBlock.legacyIds&&this.metaBlock.legacyIds.forEach(function(a){o="".concat(o).concat("\u241f").concat(a)}),ha(o,this.messageParts[0].text,this.getMessagePartSourceSpan(0))}},{key:"getMessagePartSourceSpan",value:function(o){var a,s;return null!==(s=null===(a=this.messageParts[o])||void 0===a?void 0:a.sourceSpan)&&void 0!==s?s:this.sourceSpan}},{key:"getPlaceholderSourceSpan",value:function(o){var a,s,l,u;return null!==(u=null!==(s=null===(a=this.placeHolderNames[o])||void 0===a?void 0:a.sourceSpan)&&void 0!==s?s:null===(l=this.expressions[o])||void 0===l?void 0:l.sourceSpan)&&void 0!==u?u:this.sourceSpan}},{key:"serializeI18nTemplatePart",value:function(o){var a,s=this.placeHolderNames[o-1],l=this.messageParts[o],u=s.text;return 0===(null===(a=s.associatedMessage)||void 0===a?void 0:a.legacyIds.length)&&(u+="".concat("@@").concat(Oe(s.associatedMessage.messageString,s.associatedMessage.meaning))),ha(u,l.text,this.getMessagePartSourceSpan(o))}}]),e}(si),Qr=function(r){return r.replace(/\\/g,"\\\\")},Do=function(r){return r.replace(/^:/,"\\:")},Ra=function(r){return r.replace(/:/g,"\\:")},ds=function(r){return r.replace(/`/g,"\\`").replace(/\${/g,"$\\{")};function ha(n,r,e){return""===n?{cooked:r,raw:ds(Do(Qr(r))),range:e}:{cooked:":".concat(n,":").concat(r),raw:ds(":".concat(Ra(Qr(n)),":").concat(Qr(r))),range:e}}var xs,fs=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3?arguments[3]:void 0;return(0,B.Z)(this,e),(a=r.call(this,o,l)).value=i,a.typeParams=s,a}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.value.name===o.value.name&&this.value.moduleName===o.value.moduleName&&this.value.runtime===o.value.runtime}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitExternalExpr(this,a)}}]),e}(si),ic=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3?arguments[3]:void 0,u=arguments.length>4?arguments[4]:void 0;return(0,B.Z)(this,e),(a=r.call(this,l||o.type,u)).condition=i,a.falseCase=s,a.trueCase=o,a}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.condition.isEquivalent(o.condition)&&this.trueCase.isEquivalent(o.trueCase)&&wn(this.falseCase,o.falseCase)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitConditionalExpr(this,a)}}]),e}(si),bu=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),(a=r.call(this,Ie,o)).condition=i,a}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.condition.isEquivalent(o.condition)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitNotExpr(this,a)}}]),e}(si),ma=function(){function n(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,B.Z)(this,n),this.name=r,this.type=e}return(0,U.Z)(n,[{key:"isEquivalent",value:function(e){return this.name===e.name}}]),n}(),Cu=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,a,s)).params=i,u.statements=o,u.name=l,u}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&ai(this.params,o.params)&&ai(this.statements,o.statements)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitFunctionExpr(this,a)}},{key:"toDeclStmt",value:function(o,a){return new fM(o,this.params,this.statements,this.type,a,this.sourceSpan)}}]),e}(si),Pv=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l,u=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return(0,B.Z)(this,e),(l=r.call(this,a||_e,s)).operator=i,l.expr=o,l.parens=u,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.operator===o.operator&&this.expr.isEquivalent(o.expr)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitUnaryOperatorExpr(this,a)}}]),e}(si),Ao=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u,d=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];return(0,B.Z)(this,e),(u=r.call(this,s||o.type,l)).operator=i,u.rhs=a,u.parens=d,u.lhs=o,u}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.operator===o.operator&&this.lhs.isEquivalent(o.lhs)&&this.rhs.isEquivalent(o.rhs)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitBinaryOperatorExpr(this,a)}}]),e}(si),fC=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,a,s)).receiver=i,l.name=o,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.receiver.isEquivalent(o.receiver)&&this.name===o.name}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitReadPropExpr(this,a)}},{key:"set",value:function(o){return new Iv(this.receiver,this.name,o,null,this.sourceSpan)}}]),e}(si),CP=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,a,s)).receiver=i,l.index=o,l}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.receiver.isEquivalent(o.receiver)&&this.index.isEquivalent(o.index)}},{key:"isConstant",value:function(){return!1}},{key:"visitExpression",value:function(o,a){return o.visitReadKeyExpr(this,a)}},{key:"set",value:function(o){return new n_(this.receiver,this.index,o,null,this.sourceSpan)}}]),e}(si),jl=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).entries=i,s}return(0,U.Z)(e,[{key:"isConstant",value:function(){return this.entries.every(function(o){return o.isConstant()})}},{key:"isEquivalent",value:function(o){return o instanceof e&&ai(this.entries,o.entries)}},{key:"visitExpression",value:function(o,a){return o.visitLiteralArrayExpr(this,a)}}]),e}(si),uM=function(){function n(r,e,i){(0,B.Z)(this,n),this.key=r,this.value=e,this.quoted=i}return(0,U.Z)(n,[{key:"isEquivalent",value:function(e){return this.key===e.key&&this.value.isEquivalent(e.value)}}]),n}(),sh=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,o,a)).entries=i,s.valueType=null,o&&(s.valueType=o.valueType),s}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&ai(this.entries,o.entries)}},{key:"isConstant",value:function(){return this.entries.every(function(o){return o.value.isConstant()})}},{key:"visitExpression",value:function(o,a){return o.visitLiteralMapExpr(this,a)}}]),e}(si),r_=new me(null,null,null),yf=new me(null,Ma,null);!function(n){n[n.None=0]="None",n[n.Final=1]="Final",n[n.Private=2]="Private",n[n.Exported=4]="Exported",n[n.Static=8]="Static"}(xs||(xs={}));var dM=function(){function n(r,e,i){(0,B.Z)(this,n),this.text=r,this.multiline=e,this.trailingNewline=i}return(0,U.Z)(n,[{key:"toString",value:function(){return this.multiline?" ".concat(this.text," "):this.text}}]),n}(),pC=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this,"",!0,!0)).tags=i,o}return(0,U.Z)(e,[{key:"toString",value:function(){return function WW(n){if(0===n.length)return"";if(1===n.length&&n[0].tagName&&!n[0].text)return"*".concat(io(n[0])," ");var i,r="*\n",e=(0,An.Z)(n);try{for(e.s();!(i=e.n()).done;){var o=i.value;r+=" *",r+=io(o).replace(/\n/g,"\n * "),r+="\n"}}catch(a){e.e(a)}finally{e.f()}return r+" "}(this.tags)}}]),e}(dM),lh=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xs.None,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2?arguments[2]:void 0;(0,B.Z)(this,n),this.modifiers=r,this.sourceSpan=e,this.leadingComments=i}return(0,U.Z)(n,[{key:"hasModifier",value:function(e){return 0!=(this.modifiers&e)}},{key:"addLeadingComment",value:function(e){var i;this.leadingComments=null!==(i=this.leadingComments)&&void 0!==i?i:[],this.leadingComments.push(e)}}]),n}(),bf=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u){var d;return(0,B.Z)(this,e),(d=r.call(this,s,l,u)).name=i,d.value=o,d.type=a||o&&o.type||null,d}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.name===o.name&&(this.value?!!o.value&&this.value.isEquivalent(o.value):!o.value)}},{key:"visitStatement",value:function(o,a){return o.visitDeclareVarStmt(this,a)}}]),e}(lh),fM=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d){var h;return(0,B.Z)(this,e),(h=r.call(this,l,u,d)).name=i,h.params=o,h.statements=a,h.type=s||null,h}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&ai(this.params,o.params)&&ai(this.statements,o.statements)}},{key:"visitStatement",value:function(o,a){return o.visitDeclareFunctionStmt(this,a)}}]),e}(lh),uh=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,xs.None,o,a)).expr=i,s}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.expr.isEquivalent(o.expr)}},{key:"visitStatement",value:function(o,a){return o.visitExpressionStmt(this,a)}}]),e}(lh),Sa=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2?arguments[2]:void 0;return(0,B.Z)(this,e),(o=r.call(this,xs.None,a,s)).value=i,o}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.value.isEquivalent(o.value)}},{key:"visitStatement",value:function(o,a){return o.visitReturnStmt(this,a)}}]),e}(lh),i_=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],l=arguments.length>3?arguments[3]:void 0,u=arguments.length>4?arguments[4]:void 0;return(0,B.Z)(this,e),(a=r.call(this,xs.None,l,u)).condition=i,a.trueCase=o,a.falseCase=s,a}return(0,U.Z)(e,[{key:"isEquivalent",value:function(o){return o instanceof e&&this.condition.isEquivalent(o.condition)&&ai(this.trueCase,o.trueCase)&&ai(this.falseCase,o.falseCase)}},{key:"visitStatement",value:function(o,a){return o.visitIfStmt(this,a)}}]),e}(lh);function pM(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return new pC(n)}function qr(n,r,e){return new $s(n,r,e)}function Xn(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,e=arguments.length>2?arguments[2]:void 0;return new fs(n,null,r,e)}function ps(n,r,e){return new gl(n,r,e)}function hC(n){return new gf(n)}function pi(n,r,e){return new jl(n,r,e)}function Ds(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new sh(n.map(function(e){return new uM(e.key,e.value,e.quoted)}),r,null)}function ch(n,r){return new bu(n,r)}function oa(n,r,e,i,o){return new Cu(n,r,e,i,o)}function Cf(n,r,e,i,o){return new i_(n,r,e,i,o)}function Rv(n,r,e,i){return new ie(n,r,e,i)}function on(n,r,e){return new me(n,r,e)}function kd(n,r,e,i,o){return new li(n,r,e,i,o)}function mC(n){return n instanceof me&&null===n.value}function io(n){var r="";if(n.tagName&&(r+=" @".concat(n.tagName)),n.text){if(n.text.match(/\/\*|\*\//))throw new Error('JSDoc text cannot contain "/*" and "*/"');r+=" "+n.text.replace(/@/g,"\\@")}return r}var TP=qr(""),MP={},SP=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this,i.type)).resolved=i,o.original=i,o}return(0,U.Z)(e,[{key:"visitExpression",value:function(o,a){return a===MP?this.original.visitExpression(o,a):this.resolved.visitExpression(o,a)}},{key:"isEquivalent",value:function(o){return o instanceof e&&this.resolved.isEquivalent(o.resolved)}},{key:"isConstant",value:function(){return!0}},{key:"fixup",value:function(o){this.resolved=o,this.shared=!0}}]),e}(si),wf=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(0,B.Z)(this,n),this.isClosureCompilerEnabled=r,this.statements=[],this.literals=new Map,this.literalFactories=new Map,this.nextNameIndex=0}return(0,U.Z)(n,[{key:"getConstLiteral",value:function(e,i){if(e instanceof me&&!Lv(e)||e instanceof SP)return e;var o=this.keyOf(e),a=this.literals.get(o),s=!1;if(a||(a=new SP(e),this.literals.set(o,a),s=!0),!s&&!a.shared||s&&i){var u,d,l=this.freshName();this.isClosureCompilerEnabled&&Lv(e)?(u=qr(l).set(new Cu([],[new Sa(e)])),d=qr(l).callFn([])):(u=qr(l).set(e),d=qr(l)),this.statements.push(u.toDeclStmt(Ma,xs.Final)),a.fixup(d)}return a}},{key:"getLiteralFactory",value:function(e){if(e instanceof jl){var i=e.entries.map(function(l){return l.isConstant()?l:TP}),o=this.keyOf(pi(i));return this._getLiteralFactory(o,e.entries,function(l){return pi(l)})}var a=Ds(e.entries.map(function(l){return{key:l.key,value:l.value.isConstant()?l.value:TP,quoted:l.quoted}})),s=this.keyOf(a);return this._getLiteralFactory(s,e.entries.map(function(l){return l.value}),function(l){return Ds(l.map(function(u,d){return{key:e.entries[d].key,value:u,quoted:e.entries[d].quoted}}))})}},{key:"_getLiteralFactory",value:function(e,i,o){var a=this,s=this.literalFactories.get(e),l=i.filter(function(y){return!y.isConstant()});if(!s){var u=i.map(function(y,L){return y.isConstant()?a.getConstLiteral(y,!0):qr("a".concat(L))}),h=oa(u.filter(Za).map(function(y){return new ma(y.name,vl)}),[new Sa(o(u))],Ma),g=this.freshName();this.statements.push(qr(g).set(h).toDeclStmt(Ma,xs.Final)),s=qr(g),this.literalFactories.set(e,s)}return{literalFactory:s,literalFactoryArguments:l}}},{key:"uniqueName",value:function(e){return"".concat(e).concat(this.nextNameIndex++)}},{key:"freshName",value:function(){return this.uniqueName("_c")}},{key:"keyOf",value:function(e){return e.visitExpression(new EP,MP)}}]),n}(),EP=function(){function n(){(0,B.Z)(this,n),this.visitWrappedNodeExpr=La,this.visitWriteVarExpr=La,this.visitWriteKeyExpr=La,this.visitWritePropExpr=La,this.visitInvokeFunctionExpr=La,this.visitTaggedTemplateExpr=La,this.visitInstantiateExpr=La,this.visitConditionalExpr=La,this.visitNotExpr=La,this.visitAssertNotNullExpr=La,this.visitCastExpr=La,this.visitFunctionExpr=La,this.visitUnaryOperatorExpr=La,this.visitBinaryOperatorExpr=La,this.visitReadPropExpr=La,this.visitReadKeyExpr=La,this.visitCommaExpr=La,this.visitLocalizedString=La}return(0,U.Z)(n,[{key:"visitLiteralExpr",value:function(e){return"".concat("string"==typeof e.value?'"'+e.value+'"':e.value)}},{key:"visitLiteralArrayExpr",value:function(e,i){var o=this;return"[".concat(e.entries.map(function(a){return a.visitExpression(o,i)}).join(","),"]")}},{key:"visitLiteralMapExpr",value:function(e,i){var o=this;return"{".concat(e.entries.map(function(u){return"".concat(function(u){var d=u.quoted?'"':"";return"".concat(d).concat(u.key).concat(d)}(u),":").concat(u.value.visitExpression(o,i))}).join(","))}},{key:"visitExternalExpr",value:function(e){return e.value.moduleName?"EX:".concat(e.value.moduleName,":").concat(e.value.name):"EX:".concat(e.value.runtime.name)}},{key:"visitReadVarExpr",value:function(e){return"VAR:".concat(e.name)}},{key:"visitTypeofExpr",value:function(e,i){return"TYPEOF:".concat(e.expr.visitExpression(this,i))}}]),n}();function La(n){throw new Error("Invalid state: Visitor ".concat(this.constructor.name," doesn't handle ").concat(n.constructor.name))}function Za(n){return n instanceof $s}function Lv(n){return n instanceof me&&"string"==typeof n.value&&n.value.length>=50}var qt="@angular/core",Ne=(0,U.Z)(function n(){(0,B.Z)(this,n)});Ne.NEW_METHOD="factory",Ne.TRANSFORM_METHOD="transform",Ne.PATCH_DEPS="patchedDeps",Ne.core={name:null,moduleName:qt},Ne.namespaceHTML={name:"\u0275\u0275namespaceHTML",moduleName:qt},Ne.namespaceMathML={name:"\u0275\u0275namespaceMathML",moduleName:qt},Ne.namespaceSVG={name:"\u0275\u0275namespaceSVG",moduleName:qt},Ne.element={name:"\u0275\u0275element",moduleName:qt},Ne.elementStart={name:"\u0275\u0275elementStart",moduleName:qt},Ne.elementEnd={name:"\u0275\u0275elementEnd",moduleName:qt},Ne.advance={name:"\u0275\u0275advance",moduleName:qt},Ne.syntheticHostProperty={name:"\u0275\u0275syntheticHostProperty",moduleName:qt},Ne.syntheticHostListener={name:"\u0275\u0275syntheticHostListener",moduleName:qt},Ne.attribute={name:"\u0275\u0275attribute",moduleName:qt},Ne.attributeInterpolate1={name:"\u0275\u0275attributeInterpolate1",moduleName:qt},Ne.attributeInterpolate2={name:"\u0275\u0275attributeInterpolate2",moduleName:qt},Ne.attributeInterpolate3={name:"\u0275\u0275attributeInterpolate3",moduleName:qt},Ne.attributeInterpolate4={name:"\u0275\u0275attributeInterpolate4",moduleName:qt},Ne.attributeInterpolate5={name:"\u0275\u0275attributeInterpolate5",moduleName:qt},Ne.attributeInterpolate6={name:"\u0275\u0275attributeInterpolate6",moduleName:qt},Ne.attributeInterpolate7={name:"\u0275\u0275attributeInterpolate7",moduleName:qt},Ne.attributeInterpolate8={name:"\u0275\u0275attributeInterpolate8",moduleName:qt},Ne.attributeInterpolateV={name:"\u0275\u0275attributeInterpolateV",moduleName:qt},Ne.classProp={name:"\u0275\u0275classProp",moduleName:qt},Ne.elementContainerStart={name:"\u0275\u0275elementContainerStart",moduleName:qt},Ne.elementContainerEnd={name:"\u0275\u0275elementContainerEnd",moduleName:qt},Ne.elementContainer={name:"\u0275\u0275elementContainer",moduleName:qt},Ne.styleMap={name:"\u0275\u0275styleMap",moduleName:qt},Ne.styleMapInterpolate1={name:"\u0275\u0275styleMapInterpolate1",moduleName:qt},Ne.styleMapInterpolate2={name:"\u0275\u0275styleMapInterpolate2",moduleName:qt},Ne.styleMapInterpolate3={name:"\u0275\u0275styleMapInterpolate3",moduleName:qt},Ne.styleMapInterpolate4={name:"\u0275\u0275styleMapInterpolate4",moduleName:qt},Ne.styleMapInterpolate5={name:"\u0275\u0275styleMapInterpolate5",moduleName:qt},Ne.styleMapInterpolate6={name:"\u0275\u0275styleMapInterpolate6",moduleName:qt},Ne.styleMapInterpolate7={name:"\u0275\u0275styleMapInterpolate7",moduleName:qt},Ne.styleMapInterpolate8={name:"\u0275\u0275styleMapInterpolate8",moduleName:qt},Ne.styleMapInterpolateV={name:"\u0275\u0275styleMapInterpolateV",moduleName:qt},Ne.classMap={name:"\u0275\u0275classMap",moduleName:qt},Ne.classMapInterpolate1={name:"\u0275\u0275classMapInterpolate1",moduleName:qt},Ne.classMapInterpolate2={name:"\u0275\u0275classMapInterpolate2",moduleName:qt},Ne.classMapInterpolate3={name:"\u0275\u0275classMapInterpolate3",moduleName:qt},Ne.classMapInterpolate4={name:"\u0275\u0275classMapInterpolate4",moduleName:qt},Ne.classMapInterpolate5={name:"\u0275\u0275classMapInterpolate5",moduleName:qt},Ne.classMapInterpolate6={name:"\u0275\u0275classMapInterpolate6",moduleName:qt},Ne.classMapInterpolate7={name:"\u0275\u0275classMapInterpolate7",moduleName:qt},Ne.classMapInterpolate8={name:"\u0275\u0275classMapInterpolate8",moduleName:qt},Ne.classMapInterpolateV={name:"\u0275\u0275classMapInterpolateV",moduleName:qt},Ne.styleProp={name:"\u0275\u0275styleProp",moduleName:qt},Ne.stylePropInterpolate1={name:"\u0275\u0275stylePropInterpolate1",moduleName:qt},Ne.stylePropInterpolate2={name:"\u0275\u0275stylePropInterpolate2",moduleName:qt},Ne.stylePropInterpolate3={name:"\u0275\u0275stylePropInterpolate3",moduleName:qt},Ne.stylePropInterpolate4={name:"\u0275\u0275stylePropInterpolate4",moduleName:qt},Ne.stylePropInterpolate5={name:"\u0275\u0275stylePropInterpolate5",moduleName:qt},Ne.stylePropInterpolate6={name:"\u0275\u0275stylePropInterpolate6",moduleName:qt},Ne.stylePropInterpolate7={name:"\u0275\u0275stylePropInterpolate7",moduleName:qt},Ne.stylePropInterpolate8={name:"\u0275\u0275stylePropInterpolate8",moduleName:qt},Ne.stylePropInterpolateV={name:"\u0275\u0275stylePropInterpolateV",moduleName:qt},Ne.nextContext={name:"\u0275\u0275nextContext",moduleName:qt},Ne.resetView={name:"\u0275\u0275resetView",moduleName:qt},Ne.templateCreate={name:"\u0275\u0275template",moduleName:qt},Ne.text={name:"\u0275\u0275text",moduleName:qt},Ne.enableBindings={name:"\u0275\u0275enableBindings",moduleName:qt},Ne.disableBindings={name:"\u0275\u0275disableBindings",moduleName:qt},Ne.getCurrentView={name:"\u0275\u0275getCurrentView",moduleName:qt},Ne.textInterpolate={name:"\u0275\u0275textInterpolate",moduleName:qt},Ne.textInterpolate1={name:"\u0275\u0275textInterpolate1",moduleName:qt},Ne.textInterpolate2={name:"\u0275\u0275textInterpolate2",moduleName:qt},Ne.textInterpolate3={name:"\u0275\u0275textInterpolate3",moduleName:qt},Ne.textInterpolate4={name:"\u0275\u0275textInterpolate4",moduleName:qt},Ne.textInterpolate5={name:"\u0275\u0275textInterpolate5",moduleName:qt},Ne.textInterpolate6={name:"\u0275\u0275textInterpolate6",moduleName:qt},Ne.textInterpolate7={name:"\u0275\u0275textInterpolate7",moduleName:qt},Ne.textInterpolate8={name:"\u0275\u0275textInterpolate8",moduleName:qt},Ne.textInterpolateV={name:"\u0275\u0275textInterpolateV",moduleName:qt},Ne.restoreView={name:"\u0275\u0275restoreView",moduleName:qt},Ne.pureFunction0={name:"\u0275\u0275pureFunction0",moduleName:qt},Ne.pureFunction1={name:"\u0275\u0275pureFunction1",moduleName:qt},Ne.pureFunction2={name:"\u0275\u0275pureFunction2",moduleName:qt},Ne.pureFunction3={name:"\u0275\u0275pureFunction3",moduleName:qt},Ne.pureFunction4={name:"\u0275\u0275pureFunction4",moduleName:qt},Ne.pureFunction5={name:"\u0275\u0275pureFunction5",moduleName:qt},Ne.pureFunction6={name:"\u0275\u0275pureFunction6",moduleName:qt},Ne.pureFunction7={name:"\u0275\u0275pureFunction7",moduleName:qt},Ne.pureFunction8={name:"\u0275\u0275pureFunction8",moduleName:qt},Ne.pureFunctionV={name:"\u0275\u0275pureFunctionV",moduleName:qt},Ne.pipeBind1={name:"\u0275\u0275pipeBind1",moduleName:qt},Ne.pipeBind2={name:"\u0275\u0275pipeBind2",moduleName:qt},Ne.pipeBind3={name:"\u0275\u0275pipeBind3",moduleName:qt},Ne.pipeBind4={name:"\u0275\u0275pipeBind4",moduleName:qt},Ne.pipeBindV={name:"\u0275\u0275pipeBindV",moduleName:qt},Ne.hostProperty={name:"\u0275\u0275hostProperty",moduleName:qt},Ne.property={name:"\u0275\u0275property",moduleName:qt},Ne.propertyInterpolate={name:"\u0275\u0275propertyInterpolate",moduleName:qt},Ne.propertyInterpolate1={name:"\u0275\u0275propertyInterpolate1",moduleName:qt},Ne.propertyInterpolate2={name:"\u0275\u0275propertyInterpolate2",moduleName:qt},Ne.propertyInterpolate3={name:"\u0275\u0275propertyInterpolate3",moduleName:qt},Ne.propertyInterpolate4={name:"\u0275\u0275propertyInterpolate4",moduleName:qt},Ne.propertyInterpolate5={name:"\u0275\u0275propertyInterpolate5",moduleName:qt},Ne.propertyInterpolate6={name:"\u0275\u0275propertyInterpolate6",moduleName:qt},Ne.propertyInterpolate7={name:"\u0275\u0275propertyInterpolate7",moduleName:qt},Ne.propertyInterpolate8={name:"\u0275\u0275propertyInterpolate8",moduleName:qt},Ne.propertyInterpolateV={name:"\u0275\u0275propertyInterpolateV",moduleName:qt},Ne.i18n={name:"\u0275\u0275i18n",moduleName:qt},Ne.i18nAttributes={name:"\u0275\u0275i18nAttributes",moduleName:qt},Ne.i18nExp={name:"\u0275\u0275i18nExp",moduleName:qt},Ne.i18nStart={name:"\u0275\u0275i18nStart",moduleName:qt},Ne.i18nEnd={name:"\u0275\u0275i18nEnd",moduleName:qt},Ne.i18nApply={name:"\u0275\u0275i18nApply",moduleName:qt},Ne.i18nPostprocess={name:"\u0275\u0275i18nPostprocess",moduleName:qt},Ne.pipe={name:"\u0275\u0275pipe",moduleName:qt},Ne.projection={name:"\u0275\u0275projection",moduleName:qt},Ne.projectionDef={name:"\u0275\u0275projectionDef",moduleName:qt},Ne.reference={name:"\u0275\u0275reference",moduleName:qt},Ne.inject={name:"\u0275\u0275inject",moduleName:qt},Ne.injectAttribute={name:"\u0275\u0275injectAttribute",moduleName:qt},Ne.directiveInject={name:"\u0275\u0275directiveInject",moduleName:qt},Ne.invalidFactory={name:"\u0275\u0275invalidFactory",moduleName:qt},Ne.invalidFactoryDep={name:"\u0275\u0275invalidFactoryDep",moduleName:qt},Ne.templateRefExtractor={name:"\u0275\u0275templateRefExtractor",moduleName:qt},Ne.forwardRef={name:"forwardRef",moduleName:qt},Ne.resolveForwardRef={name:"resolveForwardRef",moduleName:qt},Ne.\u0275\u0275defineInjectable={name:"\u0275\u0275defineInjectable",moduleName:qt},Ne.declareInjectable={name:"\u0275\u0275ngDeclareInjectable",moduleName:qt},Ne.InjectableDeclaration={name:"\u0275\u0275InjectableDeclaration",moduleName:qt},Ne.resolveWindow={name:"\u0275\u0275resolveWindow",moduleName:qt},Ne.resolveDocument={name:"\u0275\u0275resolveDocument",moduleName:qt},Ne.resolveBody={name:"\u0275\u0275resolveBody",moduleName:qt},Ne.defineComponent={name:"\u0275\u0275defineComponent",moduleName:qt},Ne.declareComponent={name:"\u0275\u0275ngDeclareComponent",moduleName:qt},Ne.setComponentScope={name:"\u0275\u0275setComponentScope",moduleName:qt},Ne.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleName:qt},Ne.ViewEncapsulation={name:"ViewEncapsulation",moduleName:qt},Ne.ComponentDeclaration={name:"\u0275\u0275ComponentDeclaration",moduleName:qt},Ne.FactoryDeclaration={name:"\u0275\u0275FactoryDeclaration",moduleName:qt},Ne.declareFactory={name:"\u0275\u0275ngDeclareFactory",moduleName:qt},Ne.FactoryTarget={name:"\u0275\u0275FactoryTarget",moduleName:qt},Ne.defineDirective={name:"\u0275\u0275defineDirective",moduleName:qt},Ne.declareDirective={name:"\u0275\u0275ngDeclareDirective",moduleName:qt},Ne.DirectiveDeclaration={name:"\u0275\u0275DirectiveDeclaration",moduleName:qt},Ne.InjectorDef={name:"\u0275\u0275InjectorDef",moduleName:qt},Ne.InjectorDeclaration={name:"\u0275\u0275InjectorDeclaration",moduleName:qt},Ne.defineInjector={name:"\u0275\u0275defineInjector",moduleName:qt},Ne.declareInjector={name:"\u0275\u0275ngDeclareInjector",moduleName:qt},Ne.NgModuleDeclaration={name:"\u0275\u0275NgModuleDeclaration",moduleName:qt},Ne.ModuleWithProviders={name:"ModuleWithProviders",moduleName:qt},Ne.defineNgModule={name:"\u0275\u0275defineNgModule",moduleName:qt},Ne.declareNgModule={name:"\u0275\u0275ngDeclareNgModule",moduleName:qt},Ne.setNgModuleScope={name:"\u0275\u0275setNgModuleScope",moduleName:qt},Ne.registerNgModuleType={name:"\u0275\u0275registerNgModuleType",moduleName:qt},Ne.PipeDeclaration={name:"\u0275\u0275PipeDeclaration",moduleName:qt},Ne.definePipe={name:"\u0275\u0275definePipe",moduleName:qt},Ne.declarePipe={name:"\u0275\u0275ngDeclarePipe",moduleName:qt},Ne.declareClassMetadata={name:"\u0275\u0275ngDeclareClassMetadata",moduleName:qt},Ne.setClassMetadata={name:"\u0275setClassMetadata",moduleName:qt},Ne.queryRefresh={name:"\u0275\u0275queryRefresh",moduleName:qt},Ne.viewQuery={name:"\u0275\u0275viewQuery",moduleName:qt},Ne.loadQuery={name:"\u0275\u0275loadQuery",moduleName:qt},Ne.contentQuery={name:"\u0275\u0275contentQuery",moduleName:qt},Ne.NgOnChangesFeature={name:"\u0275\u0275NgOnChangesFeature",moduleName:qt},Ne.InheritDefinitionFeature={name:"\u0275\u0275InheritDefinitionFeature",moduleName:qt},Ne.CopyDefinitionFeature={name:"\u0275\u0275CopyDefinitionFeature",moduleName:qt},Ne.StandaloneFeature={name:"\u0275\u0275StandaloneFeature",moduleName:qt},Ne.ProvidersFeature={name:"\u0275\u0275ProvidersFeature",moduleName:qt},Ne.listener={name:"\u0275\u0275listener",moduleName:qt},Ne.getInheritedFactory={name:"\u0275\u0275getInheritedFactory",moduleName:qt},Ne.sanitizeHtml={name:"\u0275\u0275sanitizeHtml",moduleName:qt},Ne.sanitizeStyle={name:"\u0275\u0275sanitizeStyle",moduleName:qt},Ne.sanitizeResourceUrl={name:"\u0275\u0275sanitizeResourceUrl",moduleName:qt},Ne.sanitizeScript={name:"\u0275\u0275sanitizeScript",moduleName:qt},Ne.sanitizeUrl={name:"\u0275\u0275sanitizeUrl",moduleName:qt},Ne.sanitizeUrlOrResourceUrl={name:"\u0275\u0275sanitizeUrlOrResourceUrl",moduleName:qt},Ne.trustConstantHtml={name:"\u0275\u0275trustConstantHtml",moduleName:qt},Ne.trustConstantResourceUrl={name:"\u0275\u0275trustConstantResourceUrl",moduleName:qt},Ne.validateIframeAttribute={name:"\u0275\u0275validateIframeAttribute",moduleName:qt};var Td=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;(0,B.Z)(this,n),this.file=r,this.sourcesContent=new Map,this.lines=[],this.lastCol0=0,this.hasMappings=!1}return(0,U.Z)(n,[{key:"addSource",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.sourcesContent.has(e)||this.sourcesContent.set(e,i),this}},{key:"addLine",value:function(){return this.lines.push([]),this.lastCol0=0,this}},{key:"addMapping",value:function(e,i,o,a){if(!this.currentLine)throw new Error("A line must be added before mappings can be added");if(null!=i&&!this.sourcesContent.has(i))throw new Error('Unknown source file "'.concat(i,'"'));if(null==e)throw new Error("The column in the generated code must be provided");if(e>2),r+=a_((3&o)<<4|(null===a?0:a>>4)),r+=null===a?"=":a_((15&a)<<2|(null===s?0:s>>6)),r+=null===a||null===s?"=":a_(63&s)}return r}(JSON.stringify(this,null,0)):""}}]),n}();function dh(n){n=n<0?1+(-n<<1):n<<1;var r="";do{var e=31&n;(n>>=5)>0&&(e|=32),r+=a_(e)}while(n>0);return r}function a_(n){if(n<0||n>=64)throw new Error("Can only encode value in the range [0, 63]");return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[n]}var dF=/'|\\|\n|\r|\$/g,fF=/^[$A-Z_][0-9A-Z_$]*$/i,pF=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.indent=r,this.partsLength=0,this.parts=[],this.srcSpans=[]}),AP=function(){function n(r){(0,B.Z)(this,n),this._indent=r,this._lines=[new pF(r)]}return(0,U.Z)(n,[{key:"_currentLine",get:function(){return this._lines[this._lines.length-1]}},{key:"println",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.print(e||null,i,!0)}},{key:"lineIsEmpty",value:function(){return 0===this._currentLine.parts.length}},{key:"lineLength",value:function(){return this._currentLine.indent*" ".length+this._currentLine.partsLength}},{key:"print",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.length>0&&(this._currentLine.parts.push(i),this._currentLine.partsLength+=i.length,this._currentLine.srcSpans.push(e&&e.sourceSpan||null)),o&&this._lines.push(new pF(this._indent))}},{key:"removeEmptyLastLine",value:function(){this.lineIsEmpty()&&this._lines.pop()}},{key:"incIndent",value:function(){this._indent++,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}},{key:"decIndent",value:function(){this._indent--,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}},{key:"toSource",value:function(){return this.sourceLines.map(function(e){return e.parts.length>0?fh(e.indent)+e.parts.join(""):""}).join("\n")}},{key:"toSourceMapGenerator",value:function(e){for(var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new Td(e),a=!1,s=function(){a||(o.addSource(e," ").addMapping(0,e,0,0),a=!0)},l=0;la)return o.srcSpans[s];a-=l.length}return null}},{key:"sourceLines",get:function(){return this._lines.length&&0===this._lines[this._lines.length-1].parts.length?this._lines.slice(0,-1):this._lines}}],[{key:"createRoot",value:function(){return new n(0)}}]),n}(),zl=function(){function n(r){(0,B.Z)(this,n),this._escapeDollarInStrings=r}return(0,U.Z)(n,[{key:"printLeadingComments",value:function(e,i){if(void 0!==e.leadingComments){var a,o=(0,An.Z)(e.leadingComments);try{for(o.s();!(a=o.n()).done;){var s=a.value;s instanceof pC?i.print(e,"/*".concat(s.toString(),"*/"),s.trailingNewline):s.multiline?i.print(e,"/* ".concat(s.text," */"),s.trailingNewline):s.text.split("\n").forEach(function(l){i.println(e,"// ".concat(l))})}}catch(l){o.e(l)}finally{o.f()}}}},{key:"visitExpressionStmt",value:function(e,i){return this.printLeadingComments(e,i),e.expr.visitExpression(this,i),i.println(e,";"),null}},{key:"visitReturnStmt",value:function(e,i){return this.printLeadingComments(e,i),i.print(e,"return "),e.value.visitExpression(this,i),i.println(e,";"),null}},{key:"visitIfStmt",value:function(e,i){this.printLeadingComments(e,i),i.print(e,"if ("),e.condition.visitExpression(this,i),i.print(e,") {");var o=null!=e.falseCase&&e.falseCase.length>0;return e.trueCase.length<=1&&!o?(i.print(e," "),this.visitAllStatements(e.trueCase,i),i.removeEmptyLastLine(),i.print(e," ")):(i.println(),i.incIndent(),this.visitAllStatements(e.trueCase,i),i.decIndent(),o&&(i.println(e,"} else {"),i.incIndent(),this.visitAllStatements(e.falseCase,i),i.decIndent())),i.println(e,"}"),null}},{key:"visitWriteVarExpr",value:function(e,i){var o=i.lineIsEmpty();return o||i.print(e,"("),i.print(e,"".concat(e.name," = ")),e.value.visitExpression(this,i),o||i.print(e,")"),null}},{key:"visitWriteKeyExpr",value:function(e,i){var o=i.lineIsEmpty();return o||i.print(e,"("),e.receiver.visitExpression(this,i),i.print(e,"["),e.index.visitExpression(this,i),i.print(e,"] = "),e.value.visitExpression(this,i),o||i.print(e,")"),null}},{key:"visitWritePropExpr",value:function(e,i){var o=i.lineIsEmpty();return o||i.print(e,"("),e.receiver.visitExpression(this,i),i.print(e,".".concat(e.name," = ")),e.value.visitExpression(this,i),o||i.print(e,")"),null}},{key:"visitInvokeFunctionExpr",value:function(e,i){return e.fn.visitExpression(this,i),i.print(e,"("),this.visitAllExpressions(e.args,i,","),i.print(e,")"),null}},{key:"visitTaggedTemplateExpr",value:function(e,i){e.tag.visitExpression(this,i),i.print(e,"`"+e.template.elements[0].rawText);for(var o=1;o0&&(o.lineLength()>80?(o.print(null,a,!0),s||(o.incIndent(),o.incIndent(),s=!0)):o.print(null,a,!1)),e(i[l]);s&&(o.decIndent(),o.decIndent())}},{key:"visitAllStatements",value:function(e,i){var o=this;e.forEach(function(a){return a.visitStatement(o,i)})}}]),n}();function Md(n,r){var e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(null==n)return null;var i=n.replace(dF,function(){return"$"==(arguments.length<=0?void 0:arguments[0])?r?"\\$":"$":"\n"==(arguments.length<=0?void 0:arguments[0])?"\\n":"\r"==(arguments.length<=0?void 0:arguments[0])?"\\r":"\\".concat(arguments.length<=0?void 0:arguments[0])}),o=e||!fF.test(i);return o?"'".concat(i,"'"):i}function fh(n){for(var r="",e=0;e0?Ds(r):null}(i);return null!==o?(r=!0,o):on(null)});return r?ps(pi(e)):ze}(n.deps):ze;return ps(Xn(Ne.FactoryDeclaration,[hM(n.type.type,n.typeArgumentCount),r]))}function s_(n,r){return n.map(function(e,i){return function l_(n,r,e){if(null===n.token)return Xn(Ne.invalidFactoryDep).callFn([on(e)]);if(null===n.attributeNameType){var i=0|(n.self?2:0)|(n.skipSelf?4:0)|(n.host?1:0)|(n.optional?8:0)|(r===ac.Pipe?16:0),o=0!==i||n.optional?on(i):null,a=[n.token];o&&a.push(o);var s=function vM(n){switch(n){case ac.Component:case ac.Directive:case ac.Pipe:return Ne.directiveInject;case ac.NgModule:case ac.Injectable:default:return Ne.inject}}(r);return Xn(s).callFn(a)}return Xn(Ne.injectAttribute).callFn([n.token])}(e,r,i)})}function gM(n){return void 0!==n.delegateType}!function(n){n[n.Class=0]="Class",n[n.Function=1]="Function"}(Bv||(Bv={})),function(n){n[n.Directive=0]="Directive",n[n.Component=1]="Component",n[n.Injectable=2]="Injectable",n[n.Pipe=3]="Pipe",n[n.NgModule=4]="NgModule"}(ac||(ac={}));var Fv=function(){function n(r,e){(0,B.Z)(this,n),this.value=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"visit",value:function(e){throw new Error("visit() not implemented for Comment")}}]),n}(),vC=function(){function n(r,e){(0,B.Z)(this,n),this.value=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitText(this)}}]),n}(),yM=function(){function n(r,e,i){(0,B.Z)(this,n),this.value=r,this.sourceSpan=e,this.i18n=i}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitBoundText(this)}}]),n}(),bM=function(){function n(r,e,i,o,a,s){(0,B.Z)(this,n),this.name=r,this.value=e,this.sourceSpan=i,this.keySpan=o,this.valueSpan=a,this.i18n=s}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitTextAttribute(this)}}]),n}(),Uv=function(){function n(r,e,i,o,a,s,l,u,d){(0,B.Z)(this,n),this.name=r,this.type=e,this.securityContext=i,this.value=o,this.unit=a,this.sourceSpan=s,this.keySpan=l,this.valueSpan=u,this.i18n=d}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitBoundAttribute(this)}}],[{key:"fromBoundElementProperty",value:function(e,i){if(void 0===e.keySpan)throw new Error("Unexpected state: keySpan must be defined for bound attributes but was not for ".concat(e.name,": ").concat(e.sourceSpan));return new n(e.name,e.type,e.securityContext,e.value,e.unit,e.sourceSpan,e.keySpan,e.valueSpan,i)}}]),n}(),u_=function(){function n(r,e,i,o,a,s,l,u){(0,B.Z)(this,n),this.name=r,this.type=e,this.handler=i,this.target=o,this.phase=a,this.sourceSpan=s,this.handlerSpan=l,this.keySpan=u}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitBoundEvent(this)}}],[{key:"fromParsedEvent",value:function(e){var i=0===e.type?e.targetOrPhase:null,o=1===e.type?e.targetOrPhase:null;if(void 0===e.keySpan)throw new Error("Unexpected state: keySpan must be defined for bound event but was not for ".concat(e.name,": ").concat(e.sourceSpan));return new n(e.name,e.type,e.handler,i,o,e.sourceSpan,e.handlerSpan,e.keySpan)}}]),n}(),hh=function(){function n(r,e,i,o,a,s,l,u,d,h){(0,B.Z)(this,n),this.name=r,this.attributes=e,this.inputs=i,this.outputs=o,this.children=a,this.references=s,this.sourceSpan=l,this.startSourceSpan=u,this.endSourceSpan=d,this.i18n=h}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitElement(this)}}]),n}(),Sd=function(){function n(r,e,i,o,a,s,l,u,d,h,g,y){(0,B.Z)(this,n),this.tagName=r,this.attributes=e,this.inputs=i,this.outputs=o,this.templateAttrs=a,this.children=s,this.references=l,this.variables=u,this.sourceSpan=d,this.startSourceSpan=h,this.endSourceSpan=g,this.i18n=y}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitTemplate(this)}}]),n}(),RP=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.selector=r,this.attributes=e,this.sourceSpan=i,this.i18n=o,this.name="ng-content"}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitContent(this)}}]),n}(),CM=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.name=r,this.value=e,this.sourceSpan=i,this.keySpan=o,this.valueSpan=a}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitVariable(this)}}]),n}(),Hv=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.name=r,this.value=e,this.sourceSpan=i,this.keySpan=o,this.valueSpan=a}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitReference(this)}}]),n}(),jv=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.vars=r,this.placeholders=e,this.sourceSpan=i,this.i18n=o}return(0,U.Z)(n,[{key:"visit",value:function(e){return e.visitIcu(this)}}]),n}();function mh(n,r){var e=[];if(n.visit){var o,i=(0,An.Z)(r);try{for(i.s();!(o=i.n()).done;){var a=o.value;n.visit(a)||a.visit(n)}}catch(g){i.e(g)}finally{i.f()}}else{var u,l=(0,An.Z)(r);try{for(l.s();!(u=l.n()).done;){var h=u.value.visit(n);h&&e.push(h)}}catch(g){l.e(g)}finally{l.f()}}return e}var Tf=(0,U.Z)(function n(r,e,i,o,a,s){(0,B.Z)(this,n),this.nodes=r,this.placeholders=e,this.placeholderToMessage=i,this.meaning=o,this.description=a,this.customId=s,this.id=this.customId,this.legacyIds=[],this.messageString=function NP(n){var r=new bF,e=n.map(function(i){return i.visit(r)}).join("");return e}(this.nodes),r.length?this.sources=[{filePath:r[0].sourceSpan.start.file.url,startLine:r[0].sourceSpan.start.line+1,startCol:r[0].sourceSpan.start.col+1,endLine:r[r.length-1].sourceSpan.end.line+1,endCol:r[0].sourceSpan.start.col+1}]:this.sources=[]}),wM=function(){function n(r,e){(0,B.Z)(this,n),this.value=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitText(this,i)}}]),n}(),c_=function(){function n(r,e){(0,B.Z)(this,n),this.children=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitContainer(this,i)}}]),n}(),LP=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.expression=r,this.type=e,this.cases=i,this.sourceSpan=o}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitIcu(this,i)}}]),n}(),KW=function(){function n(r,e,i,o,a,s,l,u,d){(0,B.Z)(this,n),this.tag=r,this.attrs=e,this.startName=i,this.closeName=o,this.children=a,this.isVoid=s,this.sourceSpan=l,this.startSourceSpan=u,this.endSourceSpan=d}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitTagPlaceholder(this,i)}}]),n}(),ZP=function(){function n(r,e,i){(0,B.Z)(this,n),this.value=r,this.name=e,this.sourceSpan=i}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitPlaceholder(this,i)}}]),n}(),bC=function(){function n(r,e,i){(0,B.Z)(this,n),this.value=r,this.name=e,this.sourceSpan=i}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitIcuPlaceholder(this,i)}}]),n}();var bF=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitText",value:function(e){return e.value}},{key:"visitContainer",value:function(e){var i=this;return e.children.map(function(o){return o.visit(i)}).join("")}},{key:"visitIcu",value:function(e){var i=this,o=Object.keys(e.cases).map(function(a){return"".concat(a," {").concat(e.cases[a].visit(i),"}")});return"{".concat(e.expressionPlaceholder,", ").concat(e.type,", ").concat(o.join(" "),"}")}},{key:"visitTagPlaceholder",value:function(e){var i=this,o=e.children.map(function(a){return a.visit(i)}).join("");return"{$".concat(e.startName,"}").concat(o,"{$").concat(e.closeName,"}")}},{key:"visitPlaceholder",value:function(e){return"{$".concat(e.name,"}")}},{key:"visitIcuPlaceholder",value:function(e){return"{$".concat(e.name,"}")}}]),n}(),BP=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitTag",value:function(e){var i=this,o=this._serializeAttributes(e.attrs);if(0==e.children.length)return"<".concat(e.name).concat(o,"/>");var a=e.children.map(function(s){return s.visit(i)});return"<".concat(e.name).concat(o,">").concat(a.join(""),"")}},{key:"visitText",value:function(e){return e.value}},{key:"visitDeclaration",value:function(e){return"")}},{key:"_serializeAttributes",value:function(e){var i=Object.keys(e).map(function(o){return"".concat(o,'="').concat(e[o],'"')}).join(" ");return i.length>0?" "+i:""}},{key:"visitDoctype",value:function(e){return"")}}]),n}();new BP;function MF(n){return n.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}var Gv="i18n-";function MM(n){return"i18n"===n||n.startsWith(Gv)}function zv(n){return n instanceof Tf}function wC(n){return zv(n)&&1===n.nodes.length&&n.nodes[0]instanceof LP}function wu(n){return!!n.i18n}function EM(n){return n.nodes[0]}function d_(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=r>0?":".concat(r):"";return"".concat("\ufffd").concat(n).concat(e).concat("\ufffd")}function Wv(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=n;return function(){return r++}}function xM(n){var r={};return n.forEach(function(e,i){r[i]=on(e.length>1?"[".concat(e.join("|"),"]"):e[0])}),r}function kC(n,r){for(var e=n.get(r)||[],i=arguments.length,o=new Array(i>2?i-2:0),a=2;a1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=r,o=new Map,a=n instanceof Tf?n.nodes.find(function(s){return s instanceof c_}):n;return a&&a.children.filter(function(s){return s instanceof ZP}).forEach(function(s,l){var u=d_(i+l,e);kC(o,s.name,u)}),o}function TC(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,e={};return n&&Object.keys(n).length&&Object.keys(n).forEach(function(i){return e[Vv(i,r)]=n[i]}),e}function Vv(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],e=MF(n);if(!r)return e;var o,i=e.split("_");if(1===i.length)return n.toLowerCase();/^\d+$/.test(i[i.length-1])&&(o=i.pop());var a=i.shift().toLowerCase();return i.length&&(a+=i.map(function(s){return s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()}).join("")),o?"".concat(a,"_").concat(o):a}function DM(n){return"".concat("MSG_").concat(n).toUpperCase()}function AF(n){return new bf(n.name,void 0,Ma,void 0,n.sourceSpan)}var WP=/[-.]/,AM="_t",sc="ctx",_h="rf",YP="restoredCtx",IF=new Set([Ne.element,Ne.elementStart,Ne.elementEnd,Ne.elementContainer,Ne.elementContainerStart,Ne.elementContainerEnd,Ne.i18nExp,Ne.listener,Ne.classProp,Ne.syntheticHostListener,Ne.hostProperty,Ne.syntheticHostProperty,Ne.property,Ne.propertyInterpolate1,Ne.propertyInterpolate2,Ne.propertyInterpolate3,Ne.propertyInterpolate4,Ne.propertyInterpolate5,Ne.propertyInterpolate6,Ne.propertyInterpolate7,Ne.propertyInterpolate8,Ne.propertyInterpolateV,Ne.attribute,Ne.attributeInterpolate1,Ne.attributeInterpolate2,Ne.attributeInterpolate3,Ne.attributeInterpolate4,Ne.attributeInterpolate5,Ne.attributeInterpolate6,Ne.attributeInterpolate7,Ne.attributeInterpolate8,Ne.attributeInterpolateV,Ne.styleProp,Ne.stylePropInterpolate1,Ne.stylePropInterpolate2,Ne.stylePropInterpolate3,Ne.stylePropInterpolate4,Ne.stylePropInterpolate5,Ne.stylePropInterpolate6,Ne.stylePropInterpolate7,Ne.stylePropInterpolate8,Ne.stylePropInterpolateV,Ne.textInterpolate,Ne.textInterpolate1,Ne.textInterpolate2,Ne.textInterpolate3,Ne.textInterpolate4,Ne.textInterpolate5,Ne.textInterpolate6,Ne.textInterpolate7,Ne.textInterpolate8,Ne.textInterpolateV]);function gh(n,r,e){return Xn(r,null,n).callFn(e,n)}function MC(n,r){var e=null;return function(){return e||(n.push(new bf("_t",void 0,vl)),e=qr(r)),e}}function vh(n){throw new Error("Invalid state: Visitor ".concat(this.constructor.name," doesn't handle ").concat(n.constructor.name))}function Wl(n){return Array.isArray(n)?pi(n.map(Wl)):on(n,Ma)}function IM(n,r){return Object.getOwnPropertyNames(n).length>0?function f_(n,r){return Ds(Object.getOwnPropertyNames(n).map(function(e){var o,a,s,l,i=n[e];if(Array.isArray(i)){var u=(0,Yn.Z)(i,2);s=e,l=(a=u[0])!==(o=u[1])}else s=o=e,a=i,l=!1;return{key:s,quoted:WP.test(s),value:r&&l?pi([Wl(a),Wl(o)]):Wl(a)}}))}(n,r):null}function Kv(n){for(;mC(n[n.length-1]);)n.pop();return n}function KP(n,r){if(Array.isArray(n.predicate)){var e=[];return n.predicate.forEach(function(i){var o=i.split(",").map(function(a){return on(a.trim())});e.push.apply(e,(0,cn.Z)(o))}),r.getConstLiteral(pi(e),!0)}switch(n.predicate.forwardRef){case 0:case 2:return n.predicate.expression;case 1:return Xn(Ne.resolveForwardRef).callFn([n.predicate.expression])}}var Ba=function(){function n(){(0,B.Z)(this,n),this.values=[]}return(0,U.Z)(n,[{key:"set",value:function(e,i){i&&this.values.push({key:e,value:i,quoted:!1})}},{key:"toLiteralMap",value:function(){return Ds(this.values)}}]),n}();function yh(n){var r=n.expressions,e=n.strings;return 1===r.length&&2===e.length&&""===e[0]&&""===e[1]?1:r.length+e.length}function SC(n){var r,l,e=[],i=null,o=null,a=0,s=(0,An.Z)(n);try{for(s.s();!(l=s.n()).done;){var u=l.value,d=null!==(r="function"==typeof u.paramsOrFn?u.paramsOrFn():u.paramsOrFn)&&void 0!==r?r:[],h=Array.isArray(d)?d:[d];a<500&&o===u.reference&&IF.has(o)?(i=i.callFn(h,i.sourceSpan),a++):(null!==i&&e.push(i.toStmt()),i=gh(u.span,u.reference,h),o=u.reference,a=0)}}catch(g){s.e(g)}finally{s.f()}return null!==i&&e.push(i.toStmt()),e}function JP(n,r){var e=null,i={name:n.name,type:n.type,internalType:n.internalType,typeArgumentCount:n.typeArgumentCount,deps:[],target:ac.Injectable};if(void 0!==n.useClass){var o=n.useClass.expression.isEquivalent(n.internalType),a=void 0;void 0!==n.deps&&(a=n.deps),e=void 0!==a?ph(Object.assign(Object.assign({},i),{delegate:n.useClass.expression,delegateDeps:a,delegateType:Bv.Class})):o?ph(i):{statements:[],expression:XP(n.type.value,n.useClass.expression,r)}}else e=void 0!==n.useFactory?void 0!==n.deps?ph(Object.assign(Object.assign({},i),{delegate:n.useFactory,delegateDeps:n.deps||[],delegateType:Bv.Function})):{statements:[],expression:oa([],[new Sa(n.useFactory.callFn([]))])}:void 0!==n.useValue?ph(Object.assign(Object.assign({},i),{expression:n.useValue.expression})):void 0!==n.useExisting?ph(Object.assign(Object.assign({},i),{expression:Xn(Ne.inject).callFn([n.useExisting.expression])})):{statements:[],expression:XP(n.type.value,n.internalType,r)};var s=n.internalType,l=new Ba;return l.set("token",s),l.set("factory",e.expression),null!==n.providedIn.expression.value&&l.set("providedIn",kf(n.providedIn)),{expression:Xn(Ne.\u0275\u0275defineInjectable).callFn([l.toLiteralMap()],void 0,!0),type:QP(n),statements:e.statements}}function QP(n){return new gl(Xn(Ne.InjectableDeclaration,[hM(n.type.type,n.typeArgumentCount)]))}function XP(n,r,e){return n.node===r.node?r.prop("\u0275fac"):$P(e?Xn(Ne.resolveForwardRef).callFn([r]):r)}function $P(n){return oa([new ma("t",vl)],[new Sa(n.prop("\u0275fac").callFn([qr("t")]))])}var e3=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];var RM=function(){function n(r,e){(0,B.Z)(this,n),this.start=r,this.end=e}return(0,U.Z)(n,null,[{key:"fromArray",value:function(e){return e?(function PM(n,r){if(null!=r&&(!Array.isArray(r)||2!=r.length))throw new Error("Expected '".concat(n,"' to be an array, [start, end]."));if(null!=r){var e=r[0],i=r[1];e3.forEach(function(o){if(o.test(e)||o.test(i))throw new Error("['".concat(e,"', '").concat(i,"'] contains unusable interpolation symbol."))})}}("interpolation",e),new n(e[0],e[1])):Vl}}]),n}(),Vl=new RM("{{","}}"),Rf=123,Rc=125;function HM(n){return n>=9&&n<=32||160==n}function Lf(n){return 48<=n&&n<=57}function y_(n){return n>=97&&n<=122||n>=65&&n<=90}function b_(n){return 10===n||13===n}function jM(n){return 48<=n&&n<=55}function PC(n){return 39===n||34===n||96===n}var Dd,C_=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.file=r,this.offset=e,this.line=i,this.col=o}return(0,U.Z)(n,[{key:"toString",value:function(){return null!=this.offset?"".concat(this.file.url,"@").concat(this.line,":").concat(this.col):this.file.url}},{key:"moveBy",value:function(e){for(var i=this.file.content,o=i.length,a=this.offset,s=this.line,l=this.col;a>0&&e<0;){if(a--,e++,10==i.charCodeAt(a)){s--;var d=i.substring(0,a-1).lastIndexOf(String.fromCharCode(10));l=d>0?a-d:a}else l--}for(;a0;){var h=i.charCodeAt(a);a++,e--,10==h?(s++,l=0):l++}return new n(this.file,a,s,l)}},{key:"getContext",value:function(e,i){var o=this.file.content,a=this.offset;if(null!=a){a>o.length-1&&(a=o.length-1);for(var s=a,l=0,u=0;l0&&(l++,"\n"!=o[--a]||++u!=i););for(l=0,u=0;l2&&void 0!==arguments[2]?arguments[2]:r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;(0,B.Z)(this,n),this.start=r,this.end=e,this.fullStart=i,this.details=o}return(0,U.Z)(n,[{key:"toString",value:function(){return this.start.file.content.substring(this.start.offset,this.end.offset)}}]),n}();!function(n){n[n.WARNING=0]="WARNING",n[n.ERROR=1]="ERROR"}(Dd||(Dd={}));var kh=function(){function n(r,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Dd.ERROR;(0,B.Z)(this,n),this.span=r,this.msg=e,this.level=i}return(0,U.Z)(n,[{key:"contextualMessage",value:function(){var e=this.span.start.getContext(100,3);return e?"".concat(this.msg,' ("').concat(e.before,"[").concat(Dd[this.level]," ->]").concat(e.after,'")'):this.msg}},{key:"toString",value:function(){var e=this.span.details?", ".concat(this.span.details):"";return"".concat(this.contextualMessage(),": ").concat(this.span.start).concat(e)}}]),n}();var BF=0;function Th(n){return n.replace(/\W/g,"_")}var RC,f3='(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})',UF=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.call(this,!1)}return(0,U.Z)(e,[{key:"visitWrappedNodeExpr",value:function(o,a){throw new Error("Cannot emit a WrappedNodeExpr in Javascript.")}},{key:"visitDeclareVarStmt",value:function(o,a){return a.print(o,"var ".concat(o.name)),o.value&&(a.print(o," = "),o.value.visitExpression(this,a)),a.println(o,";"),null}},{key:"visitTaggedTemplateExpr",value:function(o,a){var s=this,l=o.template.elements;return o.tag.visitExpression(this,a),a.print(o,"(".concat(f3,"(")),a.print(o,"[".concat(l.map(function(u){return Md(u.text,!1)}).join(", "),"], ")),a.print(o,"[".concat(l.map(function(u){return Md(u.rawText,!1)}).join(", "),"])")),o.template.expressions.forEach(function(u){a.print(o,", "),u.visitExpression(s,a)}),a.print(o,")"),null}},{key:"visitFunctionExpr",value:function(o,a){return a.print(o,"function".concat(o.name?" "+o.name:"","(")),this._visitParams(o.params,a),a.println(o,") {"),a.incIndent(),this.visitAllStatements(o.statements,a),a.decIndent(),a.print(o,"}"),null}},{key:"visitDeclareFunctionStmt",value:function(o,a){return a.print(o,"function ".concat(o.name,"(")),this._visitParams(o.params,a),a.println(o,") {"),a.incIndent(),this.visitAllStatements(o.statements,a),a.decIndent(),a.println(o,"}"),null}},{key:"visitLocalizedString",value:function(o,a){var s=this;a.print(o,"$localize(".concat(f3,"("));for(var l=[o.serializeI18nHead()],u=1;u0&&!function jF(n){return n.isEquivalent(on("use strict").toStmt())}(i[0])&&(i=[on("use strict").toStmt()].concat((0,cn.Z)(i))),s.visitAllStatements(i,l),s.createReturnStmt(l),this.evaluateCode(e,l,s.getArgs(),a)}},{key:"evaluateCode",value:function(e,i,o,a){var s='"use strict";'.concat(i.toSource(),"\n//# sourceURL=").concat(e),l=[],u=[];for(var d in o)u.push(o[d]),l.push(d);if(a){var h=$v.apply(void 0,(0,cn.Z)(l.concat("return null;"))).toString(),g=h.slice(0,h.indexOf("return null;")).split("\n").length-1;s+="\n".concat(i.toSourceMapGenerator(e,g).toJsComment())}var y=$v.apply(void 0,(0,cn.Z)(l.concat(s)));return this.executeFunction(y,u)}},{key:"executeFunction",value:function(e,i){return e.apply(void 0,(0,cn.Z)(i))}}]),n}(),WM=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this)).refResolver=i,o._evalArgNames=[],o._evalArgValues=[],o._evalExportedVars=[],o}return(0,U.Z)(e,[{key:"createReturnStmt",value:function(o){new Sa(new sh(this._evalExportedVars.map(function(s){return new uM(s,qr(s),!1)}))).visitStatement(this,o)}},{key:"getArgs",value:function(){for(var o={},a=0;a=0?(e="anonymous_".concat(BF++),r.__anonymousType=e):e=Th(e),e}({reference:a})||"val";this._evalArgNames.push("jit_".concat(u,"_").concat(l))}s.print(o,this._evalArgNames[l])}}]),e}(UF);function Ad(n){var r=new Ba;return null!==n.providers&&r.set("providers",n.providers),n.imports.length>0&&r.set("imports",pi(n.imports)),{expression:Xn(Ne.defineInjector).callFn([r.toLiteralMap()],void 0,!0),type:VM(n),statements:[]}}function VM(n){return new gl(Xn(Ne.InjectorDeclaration,[new gl(n.type.type)]))}var Mh,ku,m3=function(){function n(r){(0,B.Z)(this,n),this.context=r}return(0,U.Z)(n,[{key:"resolveExternalReference",value:function(e){if("@angular/core"!==e.moduleName)throw new Error("Cannot resolve external reference to ".concat(e.moduleName,", only references to @angular/core are supported."));if(!this.context.hasOwnProperty(e.name))throw new Error("No value provided for @angular/core symbol '".concat(e.name,"'."));return this.context[e.name]}}]),n}();function _3(n){var r=n.adjacentType,e=n.internalType,i=n.bootstrap,o=n.declarations,a=n.imports,s=n.exports,l=n.schemas,u=n.containsForwardDecls,d=n.selectorScopeMode,h=n.id,g=[],y=new Ba;if(y.set("type",e),i.length>0&&y.set("bootstrap",oc(i,u)),d===Mh.Inline)o.length>0&&y.set("declarations",oc(o,u)),a.length>0&&y.set("imports",oc(a,u)),s.length>0&&y.set("exports",oc(s,u));else if(d===Mh.SideEffect){var L=function zF(n){var r=n.adjacentType,e=n.declarations,i=n.imports,o=n.exports,a=n.containsForwardDecls,s=new Ba;if(e.length>0&&s.set("declarations",oc(e,a)),i.length>0&&s.set("imports",oc(i,a)),o.length>0&&s.set("exports",oc(o,a)),0===Object.keys(s.values).length)return null;var u=function _F(n){return gC("ngJitMode",n)}(new ah(Xn(Ne.setNgModuleScope),[r,s.toLiteralMap()])),d=new Cu([],[u.toStmt()]);return new ah(d,[]).toStmt()}(n);null!==L&&g.push(L)}return null!==l&&l.length>0&&y.set("schemas",pi(l.map(function(re){return re.value}))),null!==h&&(y.set("id",h),g.push(Xn(Ne.registerNgModuleType).callFn([r,h]).toStmt())),{expression:Xn(Ne.defineNgModule).callFn([y.toLiteralMap()],void 0,!0),type:g3(n),statements:g}}function g3(n){var r=n.type,e=n.declarations,i=n.exports,o=n.imports,a=n.includeImportTypes,s=n.publicDeclarationTypes;return new gl(Xn(Ne.NgModuleDeclaration,[new gl(r.type),null===s?YM(e):WF(s),a?YM(o):ze,YM(i)]))}function YM(n){var r=n.map(function(e){return hC(e.type)});return n.length>0?ps(pi(r)):ze}function WF(n){var r=n.map(function(e){return hC(e)});return n.length>0?ps(pi(r)):ze}function VF(n){var r=[];return r.push({key:"name",value:on(n.pipeName),quoted:!1}),r.push({key:"type",value:n.type.value,quoted:!1}),r.push({key:"pure",value:on(n.pure),quoted:!1}),n.isStandalone&&r.push({key:"standalone",value:on(!0),quoted:!1}),{expression:Xn(Ne.definePipe).callFn([Ds(r)],void 0,!0),type:YF(n),statements:[]}}function YF(n){return new gl(Xn(Ne.PipeDeclaration,[hM(n.type.type,n.typeArgumentCount),new gl(new me(n.pipeName)),new gl(new me(n.isStandalone))]))}!function(n){n[n.Inline=0]="Inline",n[n.SideEffect=1]="SideEffect",n[n.Omit=2]="Omit"}(Mh||(Mh={})),function(n){n[n.Directive=0]="Directive",n[n.Pipe=1]="Pipe",n[n.NgModule=2]="NgModule"}(ku||(ku={}));var Eh,ey=(0,U.Z)(function n(r,e,i,o){(0,B.Z)(this,n),this.input=e,this.errLocation=i,this.ctxLocation=o,this.message="Parser Error: ".concat(r," ").concat(i," [").concat(e,"] in ").concat(o)}),w_=function(){function n(r,e){(0,B.Z)(this,n),this.start=r,this.end=e}return(0,U.Z)(n,[{key:"toAbsolute",value:function(e){return new Ps(e+this.start,e+this.end)}}]),n}(),Fa=function(){function n(r,e){(0,B.Z)(this,n),this.span=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"toString",value:function(){return"AST"}}]),n}(),ty=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).nameSpan=a,s}return(0,U.Z)(e)}(Fa),Tu=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"visit",value:function(o){arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}]),e}(Fa),k_=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitImplicitReceiver(this,a)}}]),e}(Fa),LC=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"visit",value:function(o){var s,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null===(s=o.visitThisReceiver)||void 0===s?void 0:s.call(o,this,a)}}]),e}(k_),ny=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).expressions=a,s}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitChain(this,a)}}]),e}(Fa),v3=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).condition=a,u.trueExp=s,u.falseExp=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitConditional(this,a)}}]),e}(Fa),Zf=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o,a)).receiver=s,u.name=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitPropertyRead(this,a)}}]),e}(ty),ry=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u){var d;return(0,B.Z)(this,e),(d=r.call(this,i,o,a)).receiver=s,d.name=l,d.value=u,d}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitPropertyWrite(this,a)}}]),e}(ty),ZC=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o,a)).receiver=s,u.name=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitSafePropertyRead(this,a)}}]),e}(ty),iy=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).receiver=a,l.key=s,l}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitKeyedRead(this,a)}}]),e}(Fa),Lc=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).receiver=a,l.key=s,l}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitSafeKeyedRead(this,a)}}]),e}(Fa),KM=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).receiver=a,u.key=s,u.value=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitKeyedWrite(this,a)}}]),e}(Fa),T_=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u){var d;return(0,B.Z)(this,e),(d=r.call(this,i,o,u)).exp=a,d.name=s,d.args=l,d}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitPipe(this,a)}}]),e}(ty),Os=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).value=a,s}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitLiteralPrimitive(this,a)}}]),e}(Fa),NC=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).expressions=a,s}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitLiteralArray(this,a)}}]),e}(Fa),oy=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).keys=a,l.values=s,l}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitLiteralMap(this,a)}}]),e}(Fa),$a=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).strings=a,l.expressions=s,l}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitInterpolation(this,a)}}]),e}(Fa),Is=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).operation=a,u.left=s,u.right=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitBinary(this,a)}}]),e}(Fa),Sh=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d){var h;return(0,B.Z)(this,e),(h=r.call(this,i,o,l,u,d)).operator=a,h.expr=s,h.left=null,h.right=null,h.operation=null,h}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return void 0!==o.visitUnary?o.visitUnary(this,a):o.visitBinary(this,a)}}],[{key:"createMinus",value:function(o,a,s){return new e(o,a,"-",s,"-",new Os(o,a,0),s)}},{key:"createPlus",value:function(o,a,s){return new e(o,a,"+",s,"-",s,new Os(o,a,0))}}]),e}(Is),ay=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).expression=a,s}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitPrefixNot(this,a)}}]),e}(Fa),qM=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).expression=a,s}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitNonNullAssert(this,a)}}]),e}(Fa),M_=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).receiver=a,u.args=s,u.argumentSpan=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitCall(this,a)}}]),e}(Fa),sy=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).receiver=a,u.args=s,u.argumentSpan=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitSafeCall(this,a)}}]),e}(Fa),Ps=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.start=r,this.end=e}),Nf=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,new w_(0,null===o?0:o.length),new Ps(s,null===o?s:s+o.length))).ast=i,u.source=o,u.location=a,u.errors=l,u}return(0,U.Z)(e,[{key:"visit",value:function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return o.visitASTWithSource?o.visitASTWithSource(this,a):this.ast.visit(o,a)}},{key:"toString",value:function(){return"".concat(this.source," in ").concat(this.location)}}]),e}(Fa),JM=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.sourceSpan=r,this.key=e,this.value=i}),KF=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.sourceSpan=r,this.key=e,this.value=i}),qF=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visit",value:function(e,i){e.visit(this,i)}},{key:"visitUnary",value:function(e,i){this.visit(e.expr,i)}},{key:"visitBinary",value:function(e,i){this.visit(e.left,i),this.visit(e.right,i)}},{key:"visitChain",value:function(e,i){this.visitAll(e.expressions,i)}},{key:"visitConditional",value:function(e,i){this.visit(e.condition,i),this.visit(e.trueExp,i),this.visit(e.falseExp,i)}},{key:"visitPipe",value:function(e,i){this.visit(e.exp,i),this.visitAll(e.args,i)}},{key:"visitImplicitReceiver",value:function(e,i){}},{key:"visitThisReceiver",value:function(e,i){}},{key:"visitInterpolation",value:function(e,i){this.visitAll(e.expressions,i)}},{key:"visitKeyedRead",value:function(e,i){this.visit(e.receiver,i),this.visit(e.key,i)}},{key:"visitKeyedWrite",value:function(e,i){this.visit(e.receiver,i),this.visit(e.key,i),this.visit(e.value,i)}},{key:"visitLiteralArray",value:function(e,i){this.visitAll(e.expressions,i)}},{key:"visitLiteralMap",value:function(e,i){this.visitAll(e.values,i)}},{key:"visitLiteralPrimitive",value:function(e,i){}},{key:"visitPrefixNot",value:function(e,i){this.visit(e.expression,i)}},{key:"visitNonNullAssert",value:function(e,i){this.visit(e.expression,i)}},{key:"visitPropertyRead",value:function(e,i){this.visit(e.receiver,i)}},{key:"visitPropertyWrite",value:function(e,i){this.visit(e.receiver,i),this.visit(e.value,i)}},{key:"visitSafePropertyRead",value:function(e,i){this.visit(e.receiver,i)}},{key:"visitSafeKeyedRead",value:function(e,i){this.visit(e.receiver,i),this.visit(e.key,i)}},{key:"visitCall",value:function(e,i){this.visit(e.receiver,i),this.visitAll(e.args,i)}},{key:"visitSafeCall",value:function(e,i){this.visit(e.receiver,i),this.visitAll(e.args,i)}},{key:"visitAll",value:function(e,i){var a,o=(0,An.Z)(e);try{for(o.s();!(a=o.n()).done;){var s=a.value;this.visit(s,i)}}catch(l){o.e(l)}finally{o.f()}}}]),n}(),QM=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitImplicitReceiver",value:function(e,i){return e}},{key:"visitThisReceiver",value:function(e,i){return e}},{key:"visitInterpolation",value:function(e,i){return new $a(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}},{key:"visitLiteralPrimitive",value:function(e,i){return new Os(e.span,e.sourceSpan,e.value)}},{key:"visitPropertyRead",value:function(e,i){return new Zf(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}},{key:"visitPropertyWrite",value:function(e,i){return new ry(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}},{key:"visitSafePropertyRead",value:function(e,i){return new ZC(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}},{key:"visitLiteralArray",value:function(e,i){return new NC(e.span,e.sourceSpan,this.visitAll(e.expressions))}},{key:"visitLiteralMap",value:function(e,i){return new oy(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}},{key:"visitUnary",value:function(e,i){switch(e.operator){case"+":return Sh.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case"-":return Sh.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error("Unknown unary operator ".concat(e.operator))}}},{key:"visitBinary",value:function(e,i){return new Is(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}},{key:"visitPrefixNot",value:function(e,i){return new ay(e.span,e.sourceSpan,e.expression.visit(this))}},{key:"visitNonNullAssert",value:function(e,i){return new qM(e.span,e.sourceSpan,e.expression.visit(this))}},{key:"visitConditional",value:function(e,i){return new v3(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}},{key:"visitPipe",value:function(e,i){return new T_(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}},{key:"visitKeyedRead",value:function(e,i){return new iy(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this))}},{key:"visitKeyedWrite",value:function(e,i){return new KM(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this),e.value.visit(this))}},{key:"visitCall",value:function(e,i){return new M_(e.span,e.sourceSpan,e.receiver.visit(this),this.visitAll(e.args),e.argumentSpan)}},{key:"visitSafeCall",value:function(e,i){return new sy(e.span,e.sourceSpan,e.receiver.visit(this),this.visitAll(e.args),e.argumentSpan)}},{key:"visitAll",value:function(e){for(var i=[],o=0;o=0;i--)e.unshift(FC(r,i))}(u.temporaryCount,i,d),u.usesImplicitReceiver&&n.notifyImplicitReceiverUse();var h=d.length-1;if(h>=0){var g=d[h];g instanceof uh&&(d[h]=new Sa(g.expr))}return d}Bf.event=qr("$event");var ji,E_=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.stmts=r,this.currValExpr=e});function b3(n,r,e,i){n||(n=new T3);var o=new xh(n,r,i,!1),a=e.visit(o,ji.Expression),s=$M(o,i);return o.usesImplicitReceiver&&n.notifyImplicitReceiverUse(),new E_(s,a)}function $M(n,r){for(var e=[],i=0;i":o=Mt.Bigger;break;case"<=":o=Mt.LowerEquals;break;case">=":o=Mt.BiggerEquals;break;case"??":return this.convertNullishCoalesce(e,i);default:throw new Error("Unsupported operation ".concat(e.operation))}return el(i,new Ao(o,this._visit(e.left,ji.Expression),this._visit(e.right,ji.Expression),void 0,this.convertSourceSpan(e.span)))}},{key:"visitChain",value:function(e,i){return function tS(n,r){if(n!==ji.Statement)throw new Error("Expected a statement, but saw ".concat(r))}(i,e),this.visitAll(e.expressions,i)}},{key:"visitConditional",value:function(e,i){return el(i,this._visit(e.condition,ji.Expression).conditional(this._visit(e.trueExp,ji.Expression),this._visit(e.falseExp,ji.Expression),this.convertSourceSpan(e.span)))}},{key:"visitPipe",value:function(e,i){throw new Error("Illegal state: Pipes should have been converted into functions. Pipe: ".concat(e.name))}},{key:"visitImplicitReceiver",value:function(e,i){return UC(i,e),this.usesImplicitReceiver=!0,this._implicitReceiver}},{key:"visitThisReceiver",value:function(e,i){return this.visitImplicitReceiver(e,i)}},{key:"visitInterpolation",value:function(e,i){if(!this.supportsInterpolation)throw new Error("Unexpected interpolation");UC(i,e);for(var o=[],a=0;a=9&&(o=[pi(o)]),new XF(o)}},{key:"visitKeyedRead",value:function(e,i){var o=this.leftMostSafeNode(e);return o?this.convertSafeAccess(e,o,i):el(i,this._visit(e.receiver,ji.Expression).key(this._visit(e.key,ji.Expression)))}},{key:"visitKeyedWrite",value:function(e,i){var o=this._visit(e.receiver,ji.Expression),a=this._visit(e.key,ji.Expression),s=this._visit(e.value,ji.Expression);return o===this._implicitReceiver&&this._localResolver.maybeRestoreView(),el(i,o.key(a).set(s))}},{key:"visitLiteralArray",value:function(e,i){throw new Error("Illegal State: literal arrays should have been converted into functions")}},{key:"visitLiteralMap",value:function(e,i){throw new Error("Illegal State: literal maps should have been converted into functions")}},{key:"visitLiteralPrimitive",value:function(e,i){var o=null===e.value||void 0===e.value||!0===e.value||!0===e.value?Ma:void 0;return el(i,on(e.value,o,this.convertSourceSpan(e.span)))}},{key:"_getLocal",value:function(e,i){var o;return(null===(o=this._localResolver.globals)||void 0===o?void 0:o.has(e))&&i instanceof LC?null:this._localResolver.getLocal(e)}},{key:"visitPrefixNot",value:function(e,i){return el(i,ch(this._visit(e.expression,ji.Expression)))}},{key:"visitNonNullAssert",value:function(e,i){return el(i,this._visit(e.expression,ji.Expression))}},{key:"visitPropertyRead",value:function(e,i){var o=this.leftMostSafeNode(e);if(o)return this.convertSafeAccess(e,o,i);var a=null,s=this.usesImplicitReceiver,l=this._visit(e.receiver,ji.Expression);return l===this._implicitReceiver&&((a=this._getLocal(e.name,e.receiver))&&(this.usesImplicitReceiver=s,this.addImplicitReceiverAccess(e.name))),null==a&&(a=l.prop(e.name,this.convertSourceSpan(e.span))),el(i,a)}},{key:"visitPropertyWrite",value:function(e,i){var o=this._visit(e.receiver,ji.Expression),a=this.usesImplicitReceiver,s=null;if(o===this._implicitReceiver){var l=this._getLocal(e.name,e.receiver);if(l){if(!(l instanceof fC)){var u=e.name,d=e.value instanceof Zf?e.value.name:void 0;throw new Error('Cannot assign value "'.concat(d,'" to template variable "').concat(u,'". Template variables are read-only.'))}s=l,this.usesImplicitReceiver=a,this.addImplicitReceiverAccess(e.name)}}return null===s&&(s=o.prop(e.name,this.convertSourceSpan(e.span))),el(i,s.set(this._visit(e.value,ji.Expression)))}},{key:"visitSafePropertyRead",value:function(e,i){return this.convertSafeAccess(e,this.leftMostSafeNode(e),i)}},{key:"visitSafeKeyedRead",value:function(e,i){return this.convertSafeAccess(e,this.leftMostSafeNode(e),i)}},{key:"visitAll",value:function(e,i){var o=this;return e.map(function(a){return o._visit(a,i)})}},{key:"visitCall",value:function(e,i){var o=this.leftMostSafeNode(e);if(o)return this.convertSafeAccess(e,o,i);var a=this.visitAll(e.args,ji.Expression);if(e instanceof Dh)return el(i,e.converter(a));var s=e.receiver;if(s instanceof Zf&&s.receiver instanceof k_&&!(s.receiver instanceof LC)&&"$any"===s.name){if(1!==a.length)throw new Error("Invalid call to $any, expected 1 argument but received ".concat(a.length||"none"));return el(i,a[0])}return el(i,this._visit(s,ji.Expression).callFn(a,this.convertSourceSpan(e.span)))}},{key:"visitSafeCall",value:function(e,i){return this.convertSafeAccess(e,this.leftMostSafeNode(e),i)}},{key:"_visit",value:function(e,i){return this._resultMap.get(e)||(this._nodeMap.get(e)||e).visit(this,i)}},{key:"convertSafeAccess",value:function(e,i,o){var a=this._visit(i.receiver,ji.Expression),s=void 0;this.needsTemporaryInSafeAccess(i.receiver)&&(a=(s=this.allocateTemporary()).set(a),this._resultMap.set(i.receiver,s));var l=a.isBlank();i instanceof sy?this._nodeMap.set(i,new M_(i.span,i.sourceSpan,i.receiver,i.args,i.argumentSpan)):i instanceof Lc?this._nodeMap.set(i,new iy(i.span,i.sourceSpan,i.receiver,i.key)):this._nodeMap.set(i,new Zf(i.span,i.sourceSpan,i.nameSpan,i.receiver,i.name));var u=this._visit(e,ji.Expression);return this._nodeMap.delete(i),s&&this.releaseTemporary(s),el(o,l.conditional(r_,u))}},{key:"convertNullishCoalesce",value:function(e,i){var o=this._visit(e.left,ji.Expression),a=this._visit(e.right,ji.Expression),s=this.allocateTemporary();return this.releaseTemporary(s),el(i,s.set(o).notIdentical(r_).and(s.notIdentical(on(void 0))).conditional(s,a))}},{key:"leftMostSafeNode",value:function(e){var i=this,o=function(s,l){return(i._nodeMap.get(l)||l).visit(s)};return e.visit({visitUnary:function(s){return null},visitBinary:function(s){return null},visitChain:function(s){return null},visitConditional:function(s){return null},visitCall:function(s){return o(this,s.receiver)},visitSafeCall:function(s){return o(this,s.receiver)||s},visitImplicitReceiver:function(s){return null},visitThisReceiver:function(s){return null},visitInterpolation:function(s){return null},visitKeyedRead:function(s){return o(this,s.receiver)},visitKeyedWrite:function(s){return null},visitLiteralArray:function(s){return null},visitLiteralMap:function(s){return null},visitLiteralPrimitive:function(s){return null},visitPipe:function(s){return null},visitPrefixNot:function(s){return null},visitNonNullAssert:function(s){return null},visitPropertyRead:function(s){return o(this,s.receiver)},visitPropertyWrite:function(s){return null},visitSafePropertyRead:function(s){return o(this,s.receiver)||s},visitSafeKeyedRead:function(s){return o(this,s.receiver)||s}})}},{key:"needsTemporaryInSafeAccess",value:function(e){var i=this,o=function(l,u){return u&&(i._nodeMap.get(u)||u).visit(l)};return e.visit({visitUnary:function(l){return o(this,l.expr)},visitBinary:function(l){return o(this,l.left)||o(this,l.right)},visitChain:function(l){return!1},visitConditional:function(l){return o(this,l.condition)||o(this,l.trueExp)||o(this,l.falseExp)},visitCall:function(l){return!0},visitSafeCall:function(l){return!0},visitImplicitReceiver:function(l){return!1},visitThisReceiver:function(l){return!1},visitInterpolation:function(l){return function(l,u){return u.some(function(d){return o(l,d)})}(this,l.expressions)},visitKeyedRead:function(l){return!1},visitKeyedWrite:function(l){return!1},visitLiteralArray:function(l){return!0},visitLiteralMap:function(l){return!0},visitLiteralPrimitive:function(l){return!1},visitPipe:function(l){return!0},visitPrefixNot:function(l){return o(this,l.expression)},visitNonNullAssert:function(l){return o(this,l.expression)},visitPropertyRead:function(l){return!1},visitPropertyWrite:function(l){return!1},visitSafePropertyRead:function(l){return!1},visitSafeKeyedRead:function(l){return!1}})}},{key:"allocateTemporary",value:function(){var e=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new $s(eS(this.bindingId,e))}},{key:"releaseTemporary",value:function(e){if(this._currentTemporary--,e.name!=eS(this.bindingId,this._currentTemporary))throw new Error("Temporary ".concat(e.name," released out of order"))}},{key:"convertSourceSpan",value:function(e){if(this.baseSourceSpan){var i=this.baseSourceSpan.start.moveBy(e.start),o=this.baseSourceSpan.start.moveBy(e.end),a=this.baseSourceSpan.fullStart.moveBy(e.start);return new Xa(i,o,a)}return null}},{key:"addImplicitReceiverAccess",value:function(e){this.implicitReceiverAccesses&&this.implicitReceiverAccesses.add(e)}}]),n}();function k3(n,r){Array.isArray(n)?n.forEach(function(e){return k3(e,r)}):r.push(n)}function rS(){throw new Error("Unsupported operation")}var ly,XF=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this,null,null)).args=i,o.isConstant=rS,o.isEquivalent=rS,o.visitExpression=rS,o}return(0,U.Z)(e)}(si),T3=function(){function n(r){(0,B.Z)(this,n),this.globals=r}return(0,U.Z)(n,[{key:"notifyImplicitReceiverUse",value:function(){}},{key:"maybeRestoreView",value:function(){}},{key:"getLocal",value:function(e){return e===Bf.event.name?Bf.event:null}}]),n}(),Dh=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o,new Tu(i,o),a,null)).converter=s,l}return(0,U.Z)(e)}(M_);function M3(){return ly||(ly={},Od(Br.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),Od(Br.STYLE,["*|style"]),Od(Br.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","input|src","ins|cite","q|cite","source|src","track|src","video|poster","video|src"]),Od(Br.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])),ly}function Od(n,r){var i,e=(0,An.Z)(r);try{for(e.s();!(i=e.n()).done;){var o=i.value;ly[o.toLowerCase()]=n}}catch(a){e.e(a)}finally{e.f()}}var Id=new Set(["sandbox","allow","allowfullscreen","referrerpolicy","csp","fetchpriority"]);function S3(n){return Id.has(n.toLowerCase())}var $F=function(){function n(){(0,B.Z)(this,n),this.strictStyling=!0}return(0,U.Z)(n,[{key:"shimCssText",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=u4(e);e=s4(e),e=this._insertDirectives(e);var s=this._scopeCssText(e,i,o);return[s].concat((0,cn.Z)(a)).join("\n")}},{key:"_insertDirectives",value:function(e){return e=this._insertPolyfillDirectivesInCssText(e),this._insertPolyfillRulesInCssText(e)}},{key:"_insertPolyfillDirectivesInCssText",value:function(e){return e.replace(sV,function(){return(arguments.length<=2?void 0:arguments[2])+"{"})}},{key:"_insertPolyfillRulesInCssText",value:function(e){return e.replace(E3,function(){for(var i=arguments.length,o=new Array(i),a=0;a0;)for(var a=o.length,s=n.pop(),l=0;l-1)st=a._applySimpleSelectorScope(Ke,i,o);else{var De=Ke.replace(x_,"");if(De.length>0){var it=De.match(/([^:]*)(:*)(.*)/);it&&(st=it[1]+l+it[2]+it[3])}}return st},d=new aV(e),h="",g=0,L=/( |>|\+|~(?!=))\s*/g,q=!((e=d.content()).indexOf(Ah)>-1);null!==(y=L.exec(e));){var re=y[1],ae=e.slice(g,y.index).trim(),Se=(q=q||ae.indexOf(Ah)>-1)?u(ae):ae;h+="".concat(Se," ").concat(re," "),g=L.lastIndex}var Ce=e.substring(g);return h+=(q=q||Ce.indexOf(Ah)>-1)?u(Ce):Ce,d.restore(h)}},{key:"_insertPolyfillHostInCssText",value:function(e){return e.replace(a4,x3).replace(o4,uy)}}]),n}(),aV=function(){function n(r){var e=this;(0,B.Z)(this,n),this.placeholders=[],this.index=0,r=this._escapeRegexMatches(r,/(\[[^\]]*\])/g),r=this._escapeRegexMatches(r,/(\\.)/g),this._content=r.replace(/(:nth-[-\w]+)(\([^)]+\))/g,function(i,o,a){var s="__ph-".concat(e.index,"__");return e.placeholders.push(a),e.index++,o+s})}return(0,U.Z)(n,[{key:"restore",value:function(e){var i=this;return e.replace(/__ph-(\d+)__/g,function(o,a){return i.placeholders[+a]})}},{key:"content",value:function(){return this._content}},{key:"_escapeRegexMatches",value:function(e,i){var o=this;return e.replace(i,function(a,s){var l="__ph-".concat(o.index,"__");return o.placeholders.push(s),o.index++,l})}}]),n}(),sV=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,E3=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,e4=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,uy="-shadowcsshost",x3="-shadowcsscontext",HC="(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",t4=new RegExp(uy+HC,"gim"),D3=new RegExp(x3+HC,"gim"),n4=new RegExp(x3+HC,"im"),Ah=uy+"-no-combinator",Mu=/-shadowcsshost-no-combinator([^\s]*)/,r4=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],iS=/(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g,i4="([>\\s~+[.,{:][\\s\\S]*)?$",x_=/-shadowcsshost/gim,o4=/:host/gim,a4=/:host-context/gim,A3=/\/\*[\s\S]*?\*\//g;function s4(n){return n.replace(A3,"")}var l4=/\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;function u4(n){return n.match(l4)||[]}var jr="%BLOCK%",I3=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,P3=/%QUOTED%/g,c4=new Map([["{","}"]]),d4=new Map([['"','"'],["'","'"]]),jC=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.selector=r,this.content=e});function R3(n,r){var e=Z3(n,d4,"%QUOTED%"),i=Z3(e.escapedString,c4,jr),o=0,a=0;return i.escapedString.replace(I3,function(){var s=arguments.length<=2?void 0:arguments[2],l="",u=arguments.length<=4?void 0:arguments[4],d="";u&&u.startsWith("{"+jr)&&(l=i.blocks[o++],u=u.substring(jr.length+1),d="{");var h=r(new jC(s,l));return"".concat(arguments.length<=1?void 0:arguments[1]).concat(h.selector).concat(arguments.length<=3?void 0:arguments[3]).concat(d).concat(h.content).concat(u)}).replace(P3,function(){return e.blocks[a++]})}var L3=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.escapedString=r,this.blocks=e});function Z3(n,r,e){for(var u,d,i=[],o=[],a=0,s=0,l=-1,h=0;h0,0===o?o=39:39===o&&92!==n.charCodeAt(e-1)&&(o=0);break;case 34:u=u||a>0,0===o?o=34:34===o&&92!==n.charCodeAt(e-1)&&(o=0);break;case 58:!l&&0===i&&0===o&&(l=bl(n.substring(s,e-1).trim()),a=e);break;case 59:if(l&&a>0&&0===i&&0===o){var h=n.substring(a,e-1).trim();r.push(l,u?oS(h):h),s=e,a=0,l=null,u=!1}}if(l&&a){var g=n.slice(a).trim();r.push(l,u?oS(g):g)}return r}(e),this._hasInitialValues=!0}},{key:"registerClassAttr",value:function(e){this._initialClassValues=e.trim().split(/\s+/g),this._hasInitialValues=!0}},{key:"populateInitialStylingAttrs",value:function(e){if(this._initialClassValues.length){e.push(on(1));for(var i=0;i0?n.substring(0,e):"",r=!0);var i=null,o=n,a=n.lastIndexOf(".");return a>0&&(i=n.slice(a+1),o=n.substring(0,a)),{property:o,suffix:i,hasOverrideFlag:r}}function g4(n){switch(yh(n)){case 1:return Ne.styleProp;case 3:return Ne.stylePropInterpolate1;case 5:return Ne.stylePropInterpolate2;case 7:return Ne.stylePropInterpolate3;case 9:return Ne.stylePropInterpolate4;case 11:return Ne.stylePropInterpolate5;case 13:return Ne.stylePropInterpolate6;case 15:return Ne.stylePropInterpolate7;case 17:return Ne.stylePropInterpolate8;default:return Ne.stylePropInterpolateV}}function H3(n){return n instanceof Nf&&(n=n.ast),n instanceof Tu}!function(n){n[n.Character=0]="Character",n[n.Identifier=1]="Identifier",n[n.PrivateIdentifier=2]="PrivateIdentifier",n[n.Keyword=3]="Keyword",n[n.String=4]="String",n[n.Operator=5]="Operator",n[n.Number=6]="Number",n[n.Error=7]="Error"}(Xr||(Xr={}));var Ff=["var","let","as","null","undefined","true","false","if","else","this"],j3=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"tokenize",value:function(e){for(var i=new z3(e),o=[],a=i.scanToken();null!=a;)o.push(a),a=i.scanToken();return o}}]),n}(),Zc=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.index=r,this.end=e,this.type=i,this.numValue=o,this.strValue=a}return(0,U.Z)(n,[{key:"isCharacter",value:function(e){return this.type==Xr.Character&&this.numValue==e}},{key:"isNumber",value:function(){return this.type==Xr.Number}},{key:"isString",value:function(){return this.type==Xr.String}},{key:"isOperator",value:function(e){return this.type==Xr.Operator&&this.strValue==e}},{key:"isIdentifier",value:function(){return this.type==Xr.Identifier}},{key:"isPrivateIdentifier",value:function(){return this.type==Xr.PrivateIdentifier}},{key:"isKeyword",value:function(){return this.type==Xr.Keyword}},{key:"isKeywordLet",value:function(){return this.type==Xr.Keyword&&"let"==this.strValue}},{key:"isKeywordAs",value:function(){return this.type==Xr.Keyword&&"as"==this.strValue}},{key:"isKeywordNull",value:function(){return this.type==Xr.Keyword&&"null"==this.strValue}},{key:"isKeywordUndefined",value:function(){return this.type==Xr.Keyword&&"undefined"==this.strValue}},{key:"isKeywordTrue",value:function(){return this.type==Xr.Keyword&&"true"==this.strValue}},{key:"isKeywordFalse",value:function(){return this.type==Xr.Keyword&&"false"==this.strValue}},{key:"isKeywordThis",value:function(){return this.type==Xr.Keyword&&"this"==this.strValue}},{key:"isError",value:function(){return this.type==Xr.Error}},{key:"toNumber",value:function(){return this.type==Xr.Number?this.numValue:-1}},{key:"toString",value:function(){switch(this.type){case Xr.Character:case Xr.Identifier:case Xr.Keyword:case Xr.Operator:case Xr.PrivateIdentifier:case Xr.String:case Xr.Error:return this.strValue;case Xr.Number:return this.numValue.toString();default:return null}}}]),n}();function aS(n,r,e){return new Zc(n,r,Xr.Character,e,String.fromCharCode(e))}function sS(n,r,e){return new Zc(n,r,Xr.Operator,0,e)}var zC=new Zc(-1,-1,Xr.Character,0,""),z3=function(){function n(r){(0,B.Z)(this,n),this.input=r,this.peek=0,this.index=-1,this.length=r.length,this.advance()}return(0,U.Z)(n,[{key:"advance",value:function(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}},{key:"scanToken",value:function(){for(var e=this.input,i=this.length,o=this.peek,a=this.index;o<=32;){if(++a>=i){o=0;break}o=e.charCodeAt(a)}if(this.peek=o,this.index=a,a>=i)return null;if(WC(o))return this.scanIdentifier();if(Lf(o))return this.scanNumber(a);var s=a;switch(o){case 46:return this.advance(),Lf(this.peek)?this.scanNumber(s):aS(s,this.index,46);case 40:case 41:case Rf:case Rc:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(s,o);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(s,String.fromCharCode(o));case 63:return this.scanQuestion(s);case 60:case 62:return this.scanComplexOperator(s,String.fromCharCode(o),61,"=");case 33:case 61:return this.scanComplexOperator(s,String.fromCharCode(o),61,"=",61,"=");case 38:return this.scanComplexOperator(s,"&",38,"&");case 124:return this.scanComplexOperator(s,"|",124,"|");case 160:for(;HM(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character [".concat(String.fromCharCode(o),"]"),0)}},{key:"scanCharacter",value:function(e,i){return this.advance(),aS(e,this.index,i)}},{key:"scanOperator",value:function(e,i){return this.advance(),sS(e,this.index,i)}},{key:"scanComplexOperator",value:function(e,i,o,a,s,l){this.advance();var u=i;return this.peek==o&&(this.advance(),u+=a),null!=s&&this.peek==s&&(this.advance(),u+=l),sS(e,this.index,u)}},{key:"scanIdentifier",value:function(){var e=this.index;for(this.advance();cy(this.peek);)this.advance();var i=this.input.substring(e,this.index);return Ff.indexOf(i)>-1?function y4(n,r,e){return new Zc(n,r,Xr.Keyword,0,e)}(e,this.index,i):function v4(n,r,e){return new Zc(n,r,Xr.Identifier,0,e)}(e,this.index,i)}},{key:"scanPrivateIdentifier",value:function(){var e=this.index;if(this.advance(),!WC(this.peek))return this.error("Invalid character [#]",-1);for(;cy(this.peek);)this.advance();var i=this.input.substring(e,this.index);return function G3(n,r,e){return new Zc(n,r,Xr.PrivateIdentifier,0,e)}(e,this.index,i)}},{key:"scanNumber",value:function(e){var i=this.index===e,o=!1;for(this.advance();;){if(!Lf(this.peek))if(95===this.peek){if(!Lf(this.input.charCodeAt(this.index-1))||!Lf(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);o=!0}else if(46===this.peek)i=!1;else{if(!dy(this.peek))break;if(this.advance(),W3(this.peek)&&this.advance(),!Lf(this.peek))return this.error("Invalid exponent",-1);i=!1}this.advance()}var a=this.input.substring(e,this.index);o&&(a=a.replace(/_/g,""));var s=i?function T4(n){var r=parseInt(n);if(isNaN(r))throw new Error("Invalid integer literal when parsing "+n);return r}(a):parseFloat(a);return function C4(n,r,e){return new Zc(n,r,Xr.Number,e,"")}(e,this.index,s)}},{key:"scanString",value:function(){var e=this.index,i=this.peek;this.advance();for(var o="",a=this.index,s=this.input;this.peek!=i;)if(92==this.peek){o+=s.substring(a,this.index),this.advance();var l=void 0;if(this.peek=this.peek,117==this.peek){var u=s.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(u))return this.error("Invalid unicode escape [\\u".concat(u,"]"),0);l=parseInt(u,16);for(var d=0;d<5;d++)this.advance()}else l=V3(this.peek),this.advance();o+=String.fromCharCode(l),a=this.index}else{if(0==this.peek)return this.error("Unterminated quote",0);this.advance()}var h=s.substring(a,this.index);return this.advance(),function b4(n,r,e){return new Zc(n,r,Xr.String,0,e)}(e,this.index,o+h)}},{key:"scanQuestion",value:function(e){this.advance();var i="?";return(63===this.peek||46===this.peek)&&(i+=46===this.peek?".":"?",this.advance()),sS(e,this.index,i)}},{key:"error",value:function(e,i){var o=this.index+i;return function w4(n,r,e){return new Zc(n,r,Xr.Error,0,e)}(o,this.index,"Lexer Error: ".concat(e," at column ").concat(o," in expression [").concat(this.input,"]"))}}]),n}();function WC(n){return 97<=n&&n<=122||65<=n&&n<=90||95==n||36==n}function cy(n){return y_(n)||Lf(n)||95==n||36==n}function dy(n){return 101==n||69==n}function W3(n){return 45==n||43==n}function V3(n){switch(n){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return n}}var Pd,A_=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.strings=r,this.expressions=e,this.offsets=i}),Y3=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.templateBindings=r,this.warnings=e,this.errors=i}),lS=function(){function n(r){(0,B.Z)(this,n),this._lexer=r,this.errors=[]}return(0,U.Z)(n,[{key:"parseAction",value:function(e,i,o,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Vl;this._checkNoInterpolation(e,o,s);var l=this._stripComments(e),u=this._lexer.tokenize(l),d=1;i&&(d|=2);var h=new tl(e,o,a,u,d,this.errors,0).parseChain();return new Nf(h,e,o,a,this.errors)}},{key:"parseBinding",value:function(e,i,o){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Vl,s=this._parseBindingAst(e,i,o,a);return new Nf(s,e,i,o,this.errors)}},{key:"checkSimpleExpression",value:function(e){var i=new K3;return e.visit(i),i.errors}},{key:"parseSimpleBinding",value:function(e,i,o){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Vl,s=this._parseBindingAst(e,i,o,a),l=this.checkSimpleExpression(s);return l.length>0&&this._reportError("Host binding expression cannot contain ".concat(l.join(" ")),e,i),new Nf(s,e,i,o,this.errors)}},{key:"_reportError",value:function(e,i,o,a){this.errors.push(new ey(e,i,o,a))}},{key:"_parseBindingAst",value:function(e,i,o,a){this._checkNoInterpolation(e,i,a);var s=this._stripComments(e),l=this._lexer.tokenize(s);return new tl(e,i,o,l,0,this.errors,0).parseChain()}},{key:"parseTemplateBindings",value:function(e,i,o,a,s){var l=this._lexer.tokenize(i);return new tl(i,o,s,l,0,this.errors,0).parseTemplateBindings({source:e,span:new Ps(a,a+e.length)})}},{key:"parseInterpolation",value:function(e,i,o,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Vl,l=this.splitInterpolation(e,i,a,s),u=l.strings,d=l.expressions,h=l.offsets;if(0===d.length)return null;for(var g=[],y=0;y3&&void 0!==arguments[3]?arguments[3]:Vl,l=[],u=[],d=[],h=o?M4(o):null,g=0,y=!1,L=!1,z=a.start,q=a.end;g-1)break}}catch(y){d.e(y)}finally{d.f()}l>-1&&u>-1&&this._reportError("Got interpolation (".concat(a).concat(s,") where expression was expected"),e,"at column ".concat(l," in"),i)}},{key:"_getInterpolationEndIndex",value:function(e,i,o){var s,a=(0,An.Z)(this._forEachUnquotedChar(e,o));try{for(a.s();!(s=a.n()).done;){var l=s.value;if(e.startsWith(i,l))return l;if(e.startsWith("//",l))return e.indexOf(i,l)}}catch(u){a.e(u)}finally{a.f()}return-1}},{key:"_forEachUnquotedChar",value:Rn().mark(function r(e,i){var o,a,s,l;return Rn().wrap(function(d){for(;;)switch(d.prev=d.next){case 0:o=null,a=0,s=i;case 3:if(!(s=this.tokens.length}},{key:"inputIndex",get:function(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}},{key:"currentEndIndex",get:function(){return this.index>0?this.peek(-1).end+this.offset:0===this.tokens.length?this.input.length+this.offset:this.next.index+this.offset}},{key:"currentAbsoluteOffset",get:function(){return this.absoluteOffset+this.inputIndex}},{key:"span",value:function(e,i){var o=this.currentEndIndex;if(void 0!==i&&i>this.currentEndIndex&&(o=i),e>o){var a=o;o=e,e=a}return new w_(e,o)}},{key:"sourceSpan",value:function(e,i){var o="".concat(e,"@").concat(this.inputIndex,":").concat(i);return this.sourceSpanCache.has(o)||this.sourceSpanCache.set(o,this.span(e,i).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(o)}},{key:"advance",value:function(){this.index++}},{key:"withContext",value:function(e,i){this.context|=e;var o=i();return this.context^=e,o}},{key:"consumeOptionalCharacter",value:function(e){return!!this.next.isCharacter(e)&&(this.advance(),!0)}},{key:"peekKeywordLet",value:function(){return this.next.isKeywordLet()}},{key:"peekKeywordAs",value:function(){return this.next.isKeywordAs()}},{key:"expectCharacter",value:function(e){this.consumeOptionalCharacter(e)||this.error("Missing expected ".concat(String.fromCharCode(e)))}},{key:"consumeOptionalOperator",value:function(e){return!!this.next.isOperator(e)&&(this.advance(),!0)}},{key:"expectOperator",value:function(e){this.consumeOptionalOperator(e)||this.error("Missing expected operator ".concat(e))}},{key:"prettyPrintToken",value:function(e){return e===zC?"end of input":"token ".concat(e)}},{key:"expectIdentifierOrKeyword",value:function(){var e=this.next;return e.isIdentifier()||e.isKeyword()?(this.advance(),e.toString()):(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier or keyword")),null)}},{key:"expectIdentifierOrKeywordOrString",value:function(){var e=this.next;return e.isIdentifier()||e.isKeyword()||e.isString()?(this.advance(),e.toString()):(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier, keyword, or string")),"")}},{key:"parseChain",value:function(){for(var e=[],i=this.inputIndex;this.index":case"<=":case">=":this.advance();var a=this.parseAdditive();i=new Is(this.span(e),this.sourceSpan(e),o,i,a);continue}break}return i}},{key:"parseAdditive",value:function(){for(var e=this.inputIndex,i=this.parseMultiplicative();this.next.type==Xr.Operator;){var o=this.next.strValue;switch(o){case"+":case"-":this.advance();var a=this.parseMultiplicative();i=new Is(this.span(e),this.sourceSpan(e),o,i,a);continue}break}return i}},{key:"parseMultiplicative",value:function(){for(var e=this.inputIndex,i=this.parsePrefix();this.next.type==Xr.Operator;){var o=this.next.strValue;switch(o){case"*":case"%":case"/":this.advance();var a=this.parsePrefix();i=new Is(this.span(e),this.sourceSpan(e),o,i,a);continue}break}return i}},{key:"parsePrefix",value:function(){if(this.next.type==Xr.Operator){var o,e=this.inputIndex;switch(this.next.strValue){case"+":return this.advance(),o=this.parsePrefix(),Sh.createPlus(this.span(e),this.sourceSpan(e),o);case"-":return this.advance(),o=this.parsePrefix(),Sh.createMinus(this.span(e),this.sourceSpan(e),o);case"!":return this.advance(),o=this.parsePrefix(),new ay(this.span(e),this.sourceSpan(e),o)}}return this.parseCallChain()}},{key:"parseCallChain",value:function(){for(var e=this.inputIndex,i=this.parsePrimary();;)if(this.consumeOptionalCharacter(46))i=this.parseAccessMember(i,e,!1);else if(this.consumeOptionalOperator("?."))i=this.consumeOptionalCharacter(40)?this.parseCall(i,e,!0):this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(i,e,!0):this.parseAccessMember(i,e,!0);else if(this.consumeOptionalCharacter(91))i=this.parseKeyedReadOrWrite(i,e,!1);else if(this.consumeOptionalCharacter(40))i=this.parseCall(i,e,!1);else{if(!this.consumeOptionalOperator("!"))return i;i=new qM(this.span(e),this.sourceSpan(e),i)}}},{key:"parsePrimary",value:function(){var e=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;var i=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),i}if(this.next.isKeywordNull())return this.advance(),new Os(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new Os(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new Os(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new Os(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new LC(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;var o=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new NC(this.span(e),this.sourceSpan(e),o)}if(this.next.isCharacter(Rf))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new k_(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){var a=this.next.toNumber();return this.advance(),new Os(this.span(e),this.sourceSpan(e),a)}if(this.next.isString()){var s=this.next.toString();return this.advance(),new Os(this.span(e),this.sourceSpan(e),s)}return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new Tu(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error("Unexpected end of expression: ".concat(this.input)),new Tu(this.span(e),this.sourceSpan(e))):(this.error("Unexpected token ".concat(this.next)),new Tu(this.span(e),this.sourceSpan(e)))}},{key:"parseExpressionList",value:function(e){var i=[];do{if(this.next.isCharacter(e))break;i.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return i}},{key:"parseLiteralMap",value:function(){var e=[],i=[],o=this.inputIndex;if(this.expectCharacter(Rf),!this.consumeOptionalCharacter(Rc)){this.rbracesExpected++;do{var a=this.inputIndex,s=this.next.isString(),l=this.expectIdentifierOrKeywordOrString();if(e.push({key:l,quoted:s}),s)this.expectCharacter(58),i.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))i.push(this.parsePipe());else{var u=this.span(a),d=this.sourceSpan(a);i.push(new Zf(u,d,d,new k_(u,d),l))}}while(this.consumeOptionalCharacter(44));this.rbracesExpected--,this.expectCharacter(Rc)}return new oy(this.span(o),this.sourceSpan(o),e,i)}},{key:"parseAccessMember",value:function(e,i,o){var d,a=this,s=this.inputIndex,l=this.withContext(Pd.Writable,function(){var g,y=null!==(g=a.expectIdentifierOrKeyword())&&void 0!==g?g:"";return 0===y.length&&a.error("Expected identifier for property access",e.span.end),y}),u=this.sourceSpan(s);if(o)this.consumeOptionalAssignment()?(this.error("The '?.' operator cannot be used in the assignment"),d=new Tu(this.span(i),this.sourceSpan(i))):d=new ZC(this.span(i),this.sourceSpan(i),u,e,l);else if(this.consumeOptionalAssignment()){if(!(1&this.parseFlags))return this.error("Bindings cannot contain assignments"),new Tu(this.span(i),this.sourceSpan(i));var h=this.parseConditional();d=new ry(this.span(i),this.sourceSpan(i),u,e,l,h)}else d=new Zf(this.span(i),this.sourceSpan(i),u,e,l);return d}},{key:"parseCall",value:function(e,i,o){var a=this.inputIndex;this.rparensExpected++;var s=this.parseCallArguments(),l=this.span(a,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;var u=this.span(i),d=this.sourceSpan(i);return o?new sy(u,d,e,s,l):new M_(u,d,e,s,l)}},{key:"consumeOptionalAssignment",value:function(){return 2&this.parseFlags&&this.next.isOperator("!")&&this.peek(1).isOperator("=")?(this.advance(),this.advance(),!0):this.consumeOptionalOperator("=")}},{key:"parseCallArguments",value:function(){if(this.next.isCharacter(41))return[];var e=[];do{e.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return e}},{key:"expectTemplateBindingKey",value:function(){var e="",i=!1,o=this.currentAbsoluteOffset;do{e+=this.expectIdentifierOrKeywordOrString(),(i=this.consumeOptionalOperator("-"))&&(e+="-")}while(i);return{source:e,span:new Ps(o,o+e.length)}}},{key:"parseTemplateBindings",value:function(e){var i=[];for(i.push.apply(i,(0,cn.Z)(this.parseDirectiveKeywordBindings(e)));this.index1&&void 0!==arguments[1]?arguments[1]:null;this.errors.push(new ey(e,this.input,this.locationText(i),this.location)),this.skip()}},{key:"locationText",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null==e&&(e=this.index),e5&&void 0!==arguments[5]?arguments[5]:null,h=arguments.length>6?arguments[6]:void 0;return(0,B.Z)(this,e),(u=r.call(this,s,h)).name=i,u.attrs=o,u.children=a,u.startSourceSpan=l,u.endSourceSpan=d,u}return(0,U.Z)(e,[{key:"visit",value:function(o,a){return o.visitElement(this,a)}}]),e}(Oh),fy=function(){function n(r,e){(0,B.Z)(this,n),this.value=r,this.sourceSpan=e}return(0,U.Z)(n,[{key:"visit",value:function(e,i){return e.visitComment(this,i)}}]),n}();function Nc(n,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=[],o=n.visit?function(a){return n.visit(a,e)||a.visit(n,e)}:function(a){return a.visit(n,e)};return r.forEach(function(a){var s=o(a);s&&i.push(s)}),i}var Ih={AElig:"\xc6",AMP:"&",amp:"&",Aacute:"\xc1",Abreve:"\u0102",Acirc:"\xc2",Acy:"\u0410",Afr:"\ud835\udd04",Agrave:"\xc0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2a53",Aogon:"\u0104",Aopf:"\ud835\udd38",ApplyFunction:"\u2061",af:"\u2061",Aring:"\xc5",angst:"\xc5",Ascr:"\ud835\udc9c",Assign:"\u2254",colone:"\u2254",coloneq:"\u2254",Atilde:"\xc3",Auml:"\xc4",Backslash:"\u2216",setminus:"\u2216",setmn:"\u2216",smallsetminus:"\u2216",ssetmn:"\u2216",Barv:"\u2ae7",Barwed:"\u2306",doublebarwedge:"\u2306",Bcy:"\u0411",Because:"\u2235",becaus:"\u2235",because:"\u2235",Bernoullis:"\u212c",Bscr:"\u212c",bernou:"\u212c",Beta:"\u0392",Bfr:"\ud835\udd05",Bopf:"\ud835\udd39",Breve:"\u02d8",breve:"\u02d8",Bumpeq:"\u224e",HumpDownHump:"\u224e",bump:"\u224e",CHcy:"\u0427",COPY:"\xa9",copy:"\xa9",Cacute:"\u0106",Cap:"\u22d2",CapitalDifferentialD:"\u2145",DD:"\u2145",Cayleys:"\u212d",Cfr:"\u212d",Ccaron:"\u010c",Ccedil:"\xc7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010a",Cedilla:"\xb8",cedil:"\xb8",CenterDot:"\xb7",centerdot:"\xb7",middot:"\xb7",Chi:"\u03a7",CircleDot:"\u2299",odot:"\u2299",CircleMinus:"\u2296",ominus:"\u2296",CirclePlus:"\u2295",oplus:"\u2295",CircleTimes:"\u2297",otimes:"\u2297",ClockwiseContourIntegral:"\u2232",cwconint:"\u2232",CloseCurlyDoubleQuote:"\u201d",rdquo:"\u201d",rdquor:"\u201d",CloseCurlyQuote:"\u2019",rsquo:"\u2019",rsquor:"\u2019",Colon:"\u2237",Proportion:"\u2237",Colone:"\u2a74",Congruent:"\u2261",equiv:"\u2261",Conint:"\u222f",DoubleContourIntegral:"\u222f",ContourIntegral:"\u222e",conint:"\u222e",oint:"\u222e",Copf:"\u2102",complexes:"\u2102",Coproduct:"\u2210",coprod:"\u2210",CounterClockwiseContourIntegral:"\u2233",awconint:"\u2233",Cross:"\u2a2f",Cscr:"\ud835\udc9e",Cup:"\u22d3",CupCap:"\u224d",asympeq:"\u224d",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040f",Dagger:"\u2021",ddagger:"\u2021",Darr:"\u21a1",Dashv:"\u2ae4",DoubleLeftTee:"\u2ae4",Dcaron:"\u010e",Dcy:"\u0414",Del:"\u2207",nabla:"\u2207",Delta:"\u0394",Dfr:"\ud835\udd07",DiacriticalAcute:"\xb4",acute:"\xb4",DiacriticalDot:"\u02d9",dot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",dblac:"\u02dd",DiacriticalGrave:"`",grave:"`",DiacriticalTilde:"\u02dc",tilde:"\u02dc",Diamond:"\u22c4",diam:"\u22c4",diamond:"\u22c4",DifferentialD:"\u2146",dd:"\u2146",Dopf:"\ud835\udd3b",Dot:"\xa8",DoubleDot:"\xa8",die:"\xa8",uml:"\xa8",DotDot:"\u20dc",DotEqual:"\u2250",doteq:"\u2250",esdot:"\u2250",DoubleDownArrow:"\u21d3",Downarrow:"\u21d3",dArr:"\u21d3",DoubleLeftArrow:"\u21d0",Leftarrow:"\u21d0",lArr:"\u21d0",DoubleLeftRightArrow:"\u21d4",Leftrightarrow:"\u21d4",hArr:"\u21d4",iff:"\u21d4",DoubleLongLeftArrow:"\u27f8",Longleftarrow:"\u27f8",xlArr:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",Longleftrightarrow:"\u27fa",xhArr:"\u27fa",DoubleLongRightArrow:"\u27f9",Longrightarrow:"\u27f9",xrArr:"\u27f9",DoubleRightArrow:"\u21d2",Implies:"\u21d2",Rightarrow:"\u21d2",rArr:"\u21d2",DoubleRightTee:"\u22a8",vDash:"\u22a8",DoubleUpArrow:"\u21d1",Uparrow:"\u21d1",uArr:"\u21d1",DoubleUpDownArrow:"\u21d5",Updownarrow:"\u21d5",vArr:"\u21d5",DoubleVerticalBar:"\u2225",par:"\u2225",parallel:"\u2225",shortparallel:"\u2225",spar:"\u2225",DownArrow:"\u2193",ShortDownArrow:"\u2193",darr:"\u2193",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21f5",duarr:"\u21f5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVector:"\u21bd",leftharpoondown:"\u21bd",lhard:"\u21bd",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295f",DownRightVector:"\u21c1",rhard:"\u21c1",rightharpoondown:"\u21c1",DownRightVectorBar:"\u2957",DownTee:"\u22a4",top:"\u22a4",DownTeeArrow:"\u21a7",mapstodown:"\u21a7",Dscr:"\ud835\udc9f",Dstrok:"\u0110",ENG:"\u014a",ETH:"\xd0",Eacute:"\xc9",Ecaron:"\u011a",Ecirc:"\xca",Ecy:"\u042d",Edot:"\u0116",Efr:"\ud835\udd08",Egrave:"\xc8",Element:"\u2208",in:"\u2208",isin:"\u2208",isinv:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25fb",EmptyVerySmallSquare:"\u25ab",Eogon:"\u0118",Eopf:"\ud835\udd3c",Epsilon:"\u0395",Equal:"\u2a75",EqualTilde:"\u2242",eqsim:"\u2242",esim:"\u2242",Equilibrium:"\u21cc",rightleftharpoons:"\u21cc",rlhar:"\u21cc",Escr:"\u2130",expectation:"\u2130",Esim:"\u2a73",Eta:"\u0397",Euml:"\xcb",Exists:"\u2203",exist:"\u2203",ExponentialE:"\u2147",ee:"\u2147",exponentiale:"\u2147",Fcy:"\u0424",Ffr:"\ud835\udd09",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",blacksquare:"\u25aa",squarf:"\u25aa",squf:"\u25aa",Fopf:"\ud835\udd3d",ForAll:"\u2200",forall:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",GT:">",gt:">",Gamma:"\u0393",Gammad:"\u03dc",Gbreve:"\u011e",Gcedil:"\u0122",Gcirc:"\u011c",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\ud835\udd0a",Gg:"\u22d9",ggg:"\u22d9",Gopf:"\ud835\udd3e",GreaterEqual:"\u2265",ge:"\u2265",geq:"\u2265",GreaterEqualLess:"\u22db",gel:"\u22db",gtreqless:"\u22db",GreaterFullEqual:"\u2267",gE:"\u2267",geqq:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",gl:"\u2277",gtrless:"\u2277",GreaterSlantEqual:"\u2a7e",geqslant:"\u2a7e",ges:"\u2a7e",GreaterTilde:"\u2273",gsim:"\u2273",gtrsim:"\u2273",Gscr:"\ud835\udca2",Gt:"\u226b",NestedGreaterGreater:"\u226b",gg:"\u226b",HARDcy:"\u042a",Hacek:"\u02c7",caron:"\u02c7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210c",Poincareplane:"\u210c",HilbertSpace:"\u210b",Hscr:"\u210b",hamilt:"\u210b",Hopf:"\u210d",quaternions:"\u210d",HorizontalLine:"\u2500",boxh:"\u2500",Hstrok:"\u0126",HumpEqual:"\u224f",bumpe:"\u224f",bumpeq:"\u224f",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xcd",Icirc:"\xce",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Im:"\u2111",image:"\u2111",imagpart:"\u2111",Igrave:"\xcc",Imacr:"\u012a",ImaginaryI:"\u2148",ii:"\u2148",Int:"\u222c",Integral:"\u222b",int:"\u222b",Intersection:"\u22c2",bigcap:"\u22c2",xcap:"\u22c2",InvisibleComma:"\u2063",ic:"\u2063",InvisibleTimes:"\u2062",it:"\u2062",Iogon:"\u012e",Iopf:"\ud835\udd40",Iota:"\u0399",Iscr:"\u2110",imagline:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xcf",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\ud835\udd0d",Jopf:"\ud835\udd41",Jscr:"\ud835\udca5",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040c",Kappa:"\u039a",Kcedil:"\u0136",Kcy:"\u041a",Kfr:"\ud835\udd0e",Kopf:"\ud835\udd42",Kscr:"\ud835\udca6",LJcy:"\u0409",LT:"<",lt:"<",Lacute:"\u0139",Lambda:"\u039b",Lang:"\u27ea",Laplacetrf:"\u2112",Lscr:"\u2112",lagran:"\u2112",Larr:"\u219e",twoheadleftarrow:"\u219e",Lcaron:"\u013d",Lcedil:"\u013b",Lcy:"\u041b",LeftAngleBracket:"\u27e8",lang:"\u27e8",langle:"\u27e8",LeftArrow:"\u2190",ShortLeftArrow:"\u2190",larr:"\u2190",leftarrow:"\u2190",slarr:"\u2190",LeftArrowBar:"\u21e4",larrb:"\u21e4",LeftArrowRightArrow:"\u21c6",leftrightarrows:"\u21c6",lrarr:"\u21c6",LeftCeiling:"\u2308",lceil:"\u2308",LeftDoubleBracket:"\u27e6",lobrk:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21c3",dharl:"\u21c3",downharpoonleft:"\u21c3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230a",lfloor:"\u230a",LeftRightArrow:"\u2194",harr:"\u2194",leftrightarrow:"\u2194",LeftRightVector:"\u294e",LeftTee:"\u22a3",dashv:"\u22a3",LeftTeeArrow:"\u21a4",mapstoleft:"\u21a4",LeftTeeVector:"\u295a",LeftTriangle:"\u22b2",vartriangleleft:"\u22b2",vltri:"\u22b2",LeftTriangleBar:"\u29cf",LeftTriangleEqual:"\u22b4",ltrie:"\u22b4",trianglelefteq:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21bf",uharl:"\u21bf",upharpoonleft:"\u21bf",LeftUpVectorBar:"\u2958",LeftVector:"\u21bc",leftharpoonup:"\u21bc",lharu:"\u21bc",LeftVectorBar:"\u2952",LessEqualGreater:"\u22da",leg:"\u22da",lesseqgtr:"\u22da",LessFullEqual:"\u2266",lE:"\u2266",leqq:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",lg:"\u2276",LessLess:"\u2aa1",LessSlantEqual:"\u2a7d",leqslant:"\u2a7d",les:"\u2a7d",LessTilde:"\u2272",lesssim:"\u2272",lsim:"\u2272",Lfr:"\ud835\udd0f",Ll:"\u22d8",Lleftarrow:"\u21da",lAarr:"\u21da",Lmidot:"\u013f",LongLeftArrow:"\u27f5",longleftarrow:"\u27f5",xlarr:"\u27f5",LongLeftRightArrow:"\u27f7",longleftrightarrow:"\u27f7",xharr:"\u27f7",LongRightArrow:"\u27f6",longrightarrow:"\u27f6",xrarr:"\u27f6",Lopf:"\ud835\udd43",LowerLeftArrow:"\u2199",swarr:"\u2199",swarrow:"\u2199",LowerRightArrow:"\u2198",searr:"\u2198",searrow:"\u2198",Lsh:"\u21b0",lsh:"\u21b0",Lstrok:"\u0141",Lt:"\u226a",NestedLessLess:"\u226a",ll:"\u226a",Map:"\u2905",Mcy:"\u041c",MediumSpace:"\u205f",Mellintrf:"\u2133",Mscr:"\u2133",phmmat:"\u2133",Mfr:"\ud835\udd10",MinusPlus:"\u2213",mnplus:"\u2213",mp:"\u2213",Mopf:"\ud835\udd44",Mu:"\u039c",NJcy:"\u040a",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041d",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",ZeroWidthSpace:"\u200b",NewLine:"\n",Nfr:"\ud835\udd11",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nbsp:"\xa0",Nopf:"\u2115",naturals:"\u2115",Not:"\u2aec",NotCongruent:"\u2262",nequiv:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",npar:"\u2226",nparallel:"\u2226",nshortparallel:"\u2226",nspar:"\u2226",NotElement:"\u2209",notin:"\u2209",notinva:"\u2209",NotEqual:"\u2260",ne:"\u2260",NotEqualTilde:"\u2242\u0338",nesim:"\u2242\u0338",NotExists:"\u2204",nexist:"\u2204",nexists:"\u2204",NotGreater:"\u226f",ngt:"\u226f",ngtr:"\u226f",NotGreaterEqual:"\u2271",nge:"\u2271",ngeq:"\u2271",NotGreaterFullEqual:"\u2267\u0338",ngE:"\u2267\u0338",ngeqq:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",nGtv:"\u226b\u0338",NotGreaterLess:"\u2279",ntgl:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",NotGreaterTilde:"\u2275",ngsim:"\u2275",NotHumpDownHump:"\u224e\u0338",nbump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",nbumpe:"\u224f\u0338",NotLeftTriangle:"\u22ea",nltri:"\u22ea",ntriangleleft:"\u22ea",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangleEqual:"\u22ec",nltrie:"\u22ec",ntrianglelefteq:"\u22ec",NotLess:"\u226e",nless:"\u226e",nlt:"\u226e",NotLessEqual:"\u2270",nle:"\u2270",nleq:"\u2270",NotLessGreater:"\u2278",ntlg:"\u2278",NotLessLess:"\u226a\u0338",nLtv:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",NotLessTilde:"\u2274",nlsim:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",NotPrecedes:"\u2280",npr:"\u2280",nprec:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",npre:"\u2aaf\u0338",npreceq:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",nprcue:"\u22e0",NotReverseElement:"\u220c",notni:"\u220c",notniva:"\u220c",NotRightTriangle:"\u22eb",nrtri:"\u22eb",ntriangleright:"\u22eb",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangleEqual:"\u22ed",nrtrie:"\u22ed",ntrianglerighteq:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",nsqsube:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",nsqsupe:"\u22e3",NotSubset:"\u2282\u20d2",nsubset:"\u2282\u20d2",vnsub:"\u2282\u20d2",NotSubsetEqual:"\u2288",nsube:"\u2288",nsubseteq:"\u2288",NotSucceeds:"\u2281",nsc:"\u2281",nsucc:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",nsce:"\u2ab0\u0338",nsucceq:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",nsccue:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",nsupset:"\u2283\u20d2",vnsup:"\u2283\u20d2",NotSupersetEqual:"\u2289",nsupe:"\u2289",nsupseteq:"\u2289",NotTilde:"\u2241",nsim:"\u2241",NotTildeEqual:"\u2244",nsime:"\u2244",nsimeq:"\u2244",NotTildeFullEqual:"\u2247",ncong:"\u2247",NotTildeTilde:"\u2249",nap:"\u2249",napprox:"\u2249",NotVerticalBar:"\u2224",nmid:"\u2224",nshortmid:"\u2224",nsmid:"\u2224",Nscr:"\ud835\udca9",Ntilde:"\xd1",Nu:"\u039d",OElig:"\u0152",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"\u041e",Odblac:"\u0150",Ofr:"\ud835\udd12",Ograve:"\xd2",Omacr:"\u014c",Omega:"\u03a9",ohm:"\u03a9",Omicron:"\u039f",Oopf:"\ud835\udd46",OpenCurlyDoubleQuote:"\u201c",ldquo:"\u201c",OpenCurlyQuote:"\u2018",lsquo:"\u2018",Or:"\u2a54",Oscr:"\ud835\udcaa",Oslash:"\xd8",Otilde:"\xd5",Otimes:"\u2a37",Ouml:"\xd6",OverBar:"\u203e",oline:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",tbrk:"\u23b4",OverParenthesis:"\u23dc",PartialD:"\u2202",part:"\u2202",Pcy:"\u041f",Pfr:"\ud835\udd13",Phi:"\u03a6",Pi:"\u03a0",PlusMinus:"\xb1",plusmn:"\xb1",pm:"\xb1",Popf:"\u2119",primes:"\u2119",Pr:"\u2abb",Precedes:"\u227a",pr:"\u227a",prec:"\u227a",PrecedesEqual:"\u2aaf",pre:"\u2aaf",preceq:"\u2aaf",PrecedesSlantEqual:"\u227c",prcue:"\u227c",preccurlyeq:"\u227c",PrecedesTilde:"\u227e",precsim:"\u227e",prsim:"\u227e",Prime:"\u2033",Product:"\u220f",prod:"\u220f",Proportional:"\u221d",prop:"\u221d",propto:"\u221d",varpropto:"\u221d",vprop:"\u221d",Pscr:"\ud835\udcab",Psi:"\u03a8",QUOT:'"',quot:'"',Qfr:"\ud835\udd14",Qopf:"\u211a",rationals:"\u211a",Qscr:"\ud835\udcac",RBarr:"\u2910",drbkarow:"\u2910",REG:"\xae",circledR:"\xae",reg:"\xae",Racute:"\u0154",Rang:"\u27eb",Rarr:"\u21a0",twoheadrightarrow:"\u21a0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211c",Rfr:"\u211c",real:"\u211c",realpart:"\u211c",ReverseElement:"\u220b",SuchThat:"\u220b",ni:"\u220b",niv:"\u220b",ReverseEquilibrium:"\u21cb",leftrightharpoons:"\u21cb",lrhar:"\u21cb",ReverseUpEquilibrium:"\u296f",duhar:"\u296f",Rho:"\u03a1",RightAngleBracket:"\u27e9",rang:"\u27e9",rangle:"\u27e9",RightArrow:"\u2192",ShortRightArrow:"\u2192",rarr:"\u2192",rightarrow:"\u2192",srarr:"\u2192",RightArrowBar:"\u21e5",rarrb:"\u21e5",RightArrowLeftArrow:"\u21c4",rightleftarrows:"\u21c4",rlarr:"\u21c4",RightCeiling:"\u2309",rceil:"\u2309",RightDoubleBracket:"\u27e7",robrk:"\u27e7",RightDownTeeVector:"\u295d",RightDownVector:"\u21c2",dharr:"\u21c2",downharpoonright:"\u21c2",RightDownVectorBar:"\u2955",RightFloor:"\u230b",rfloor:"\u230b",RightTee:"\u22a2",vdash:"\u22a2",RightTeeArrow:"\u21a6",map:"\u21a6",mapsto:"\u21a6",RightTeeVector:"\u295b",RightTriangle:"\u22b3",vartriangleright:"\u22b3",vrtri:"\u22b3",RightTriangleBar:"\u29d0",RightTriangleEqual:"\u22b5",rtrie:"\u22b5",trianglerighteq:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVector:"\u21be",uharr:"\u21be",upharpoonright:"\u21be",RightUpVectorBar:"\u2954",RightVector:"\u21c0",rharu:"\u21c0",rightharpoonup:"\u21c0",RightVectorBar:"\u2953",Ropf:"\u211d",reals:"\u211d",RoundImplies:"\u2970",Rrightarrow:"\u21db",rAarr:"\u21db",Rscr:"\u211b",realine:"\u211b",Rsh:"\u21b1",rsh:"\u21b1",RuleDelayed:"\u29f4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042c",Sacute:"\u015a",Sc:"\u2abc",Scaron:"\u0160",Scedil:"\u015e",Scirc:"\u015c",Scy:"\u0421",Sfr:"\ud835\udd16",ShortUpArrow:"\u2191",UpArrow:"\u2191",uarr:"\u2191",uparrow:"\u2191",Sigma:"\u03a3",SmallCircle:"\u2218",compfn:"\u2218",Sopf:"\ud835\udd4a",Sqrt:"\u221a",radic:"\u221a",Square:"\u25a1",squ:"\u25a1",square:"\u25a1",SquareIntersection:"\u2293",sqcap:"\u2293",SquareSubset:"\u228f",sqsub:"\u228f",sqsubset:"\u228f",SquareSubsetEqual:"\u2291",sqsube:"\u2291",sqsubseteq:"\u2291",SquareSuperset:"\u2290",sqsup:"\u2290",sqsupset:"\u2290",SquareSupersetEqual:"\u2292",sqsupe:"\u2292",sqsupseteq:"\u2292",SquareUnion:"\u2294",sqcup:"\u2294",Sscr:"\ud835\udcae",Star:"\u22c6",sstarf:"\u22c6",Sub:"\u22d0",Subset:"\u22d0",SubsetEqual:"\u2286",sube:"\u2286",subseteq:"\u2286",Succeeds:"\u227b",sc:"\u227b",succ:"\u227b",SucceedsEqual:"\u2ab0",sce:"\u2ab0",succeq:"\u2ab0",SucceedsSlantEqual:"\u227d",sccue:"\u227d",succcurlyeq:"\u227d",SucceedsTilde:"\u227f",scsim:"\u227f",succsim:"\u227f",Sum:"\u2211",sum:"\u2211",Sup:"\u22d1",Supset:"\u22d1",Superset:"\u2283",sup:"\u2283",supset:"\u2283",SupersetEqual:"\u2287",supe:"\u2287",supseteq:"\u2287",THORN:"\xde",TRADE:"\u2122",trade:"\u2122",TSHcy:"\u040b",TScy:"\u0426",Tab:"\t",Tau:"\u03a4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\ud835\udd17",Therefore:"\u2234",there4:"\u2234",therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",Tilde:"\u223c",sim:"\u223c",thicksim:"\u223c",thksim:"\u223c",TildeEqual:"\u2243",sime:"\u2243",simeq:"\u2243",TildeFullEqual:"\u2245",cong:"\u2245",TildeTilde:"\u2248",ap:"\u2248",approx:"\u2248",asymp:"\u2248",thickapprox:"\u2248",thkap:"\u2248",Topf:"\ud835\udd4b",TripleDot:"\u20db",tdot:"\u20db",Tscr:"\ud835\udcaf",Tstrok:"\u0166",Uacute:"\xda",Uarr:"\u219f",Uarrocir:"\u2949",Ubrcy:"\u040e",Ubreve:"\u016c",Ucirc:"\xdb",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\ud835\udd18",Ugrave:"\xd9",Umacr:"\u016a",UnderBar:"_",lowbar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",bbrk:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",bigcup:"\u22c3",xcup:"\u22c3",UnionPlus:"\u228e",uplus:"\u228e",Uogon:"\u0172",Uopf:"\ud835\udd4c",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21c5",udarr:"\u21c5",UpDownArrow:"\u2195",updownarrow:"\u2195",varr:"\u2195",UpEquilibrium:"\u296e",udhar:"\u296e",UpTee:"\u22a5",bot:"\u22a5",bottom:"\u22a5",perp:"\u22a5",UpTeeArrow:"\u21a5",mapstoup:"\u21a5",UpperLeftArrow:"\u2196",nwarr:"\u2196",nwarrow:"\u2196",UpperRightArrow:"\u2197",nearr:"\u2197",nearrow:"\u2197",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",Uring:"\u016e",Uscr:"\ud835\udcb0",Utilde:"\u0168",Uuml:"\xdc",VDash:"\u22ab",Vbar:"\u2aeb",Vcy:"\u0412",Vdash:"\u22a9",Vdashl:"\u2ae6",Vee:"\u22c1",bigvee:"\u22c1",xvee:"\u22c1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",mid:"\u2223",shortmid:"\u2223",smid:"\u2223",VerticalLine:"|",verbar:"|",vert:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",wr:"\u2240",wreath:"\u2240",VeryThinSpace:"\u200a",hairsp:"\u200a",Vfr:"\ud835\udd19",Vopf:"\ud835\udd4d",Vscr:"\ud835\udcb1",Vvdash:"\u22aa",Wcirc:"\u0174",Wedge:"\u22c0",bigwedge:"\u22c0",xwedge:"\u22c0",Wfr:"\ud835\udd1a",Wopf:"\ud835\udd4e",Wscr:"\ud835\udcb2",Xfr:"\ud835\udd1b",Xi:"\u039e",Xopf:"\ud835\udd4f",Xscr:"\ud835\udcb3",YAcy:"\u042f",YIcy:"\u0407",YUcy:"\u042e",Yacute:"\xdd",Ycirc:"\u0176",Ycy:"\u042b",Yfr:"\ud835\udd1c",Yopf:"\ud835\udd50",Yscr:"\ud835\udcb4",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017d",Zcy:"\u0417",Zdot:"\u017b",Zeta:"\u0396",Zfr:"\u2128",zeetrf:"\u2128",Zopf:"\u2124",integers:"\u2124",Zscr:"\ud835\udcb5",aacute:"\xe1",abreve:"\u0103",ac:"\u223e",mstpos:"\u223e",acE:"\u223e\u0333",acd:"\u223f",acirc:"\xe2",acy:"\u0430",aelig:"\xe6",afr:"\ud835\udd1e",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03b1",amacr:"\u0101",amalg:"\u2a3f",and:"\u2227",wedge:"\u2227",andand:"\u2a55",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",angle:"\u2220",ange:"\u29a4",angmsd:"\u2221",measuredangle:"\u2221",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angzarr:"\u237c",aogon:"\u0105",aopf:"\ud835\udd52",apE:"\u2a70",apacir:"\u2a6f",ape:"\u224a",approxeq:"\u224a",apid:"\u224b",apos:"'",aring:"\xe5",ascr:"\ud835\udcb6",ast:"*",midast:"*",atilde:"\xe3",auml:"\xe4",awint:"\u2a11",bNot:"\u2aed",backcong:"\u224c",bcong:"\u224c",backepsilon:"\u03f6",bepsi:"\u03f6",backprime:"\u2035",bprime:"\u2035",backsim:"\u223d",bsim:"\u223d",backsimeq:"\u22cd",bsime:"\u22cd",barvee:"\u22bd",barwed:"\u2305",barwedge:"\u2305",bbrktbrk:"\u23b6",bcy:"\u0431",bdquo:"\u201e",ldquor:"\u201e",bemptyv:"\u29b0",beta:"\u03b2",beth:"\u2136",between:"\u226c",twixt:"\u226c",bfr:"\ud835\udd1f",bigcirc:"\u25ef",xcirc:"\u25ef",bigodot:"\u2a00",xodot:"\u2a00",bigoplus:"\u2a01",xoplus:"\u2a01",bigotimes:"\u2a02",xotime:"\u2a02",bigsqcup:"\u2a06",xsqcup:"\u2a06",bigstar:"\u2605",starf:"\u2605",bigtriangledown:"\u25bd",xdtri:"\u25bd",bigtriangleup:"\u25b3",xutri:"\u25b3",biguplus:"\u2a04",xuplus:"\u2a04",bkarow:"\u290d",rbarr:"\u290d",blacklozenge:"\u29eb",lozf:"\u29eb",blacktriangle:"\u25b4",utrif:"\u25b4",blacktriangledown:"\u25be",dtrif:"\u25be",blacktriangleleft:"\u25c2",ltrif:"\u25c2",blacktriangleright:"\u25b8",rtrif:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bnot:"\u2310",bopf:"\ud835\udd53",bowtie:"\u22c8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255d",boxUR:"\u255a",boxUl:"\u255c",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256c",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256b",boxVl:"\u2562",boxVr:"\u255f",boxbox:"\u29c9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250c",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252c",boxhu:"\u2534",boxminus:"\u229f",minusb:"\u229f",boxplus:"\u229e",plusb:"\u229e",boxtimes:"\u22a0",timesb:"\u22a0",boxuL:"\u255b",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256a",boxvL:"\u2561",boxvR:"\u255e",boxvh:"\u253c",boxvl:"\u2524",boxvr:"\u251c",brvbar:"\xa6",bscr:"\ud835\udcb7",bsemi:"\u204f",bsol:"\\",bsolb:"\u29c5",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bumpE:"\u2aae",cacute:"\u0107",cap:"\u2229",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",capcup:"\u2a47",capdot:"\u2a40",caps:"\u2229\ufe00",caret:"\u2041",ccaps:"\u2a4d",ccaron:"\u010d",ccedil:"\xe7",ccirc:"\u0109",ccups:"\u2a4c",ccupssm:"\u2a50",cdot:"\u010b",cemptyv:"\u29b2",cent:"\xa2",cfr:"\ud835\udd20",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03c7",cir:"\u25cb",cirE:"\u29c3",circ:"\u02c6",circeq:"\u2257",cire:"\u2257",circlearrowleft:"\u21ba",olarr:"\u21ba",circlearrowright:"\u21bb",orarr:"\u21bb",circledS:"\u24c8",oS:"\u24c8",circledast:"\u229b",oast:"\u229b",circledcirc:"\u229a",ocir:"\u229a",circleddash:"\u229d",odash:"\u229d",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",clubs:"\u2663",clubsuit:"\u2663",colon:":",comma:",",commat:"@",comp:"\u2201",complement:"\u2201",congdot:"\u2a6d",copf:"\ud835\udd54",copysr:"\u2117",crarr:"\u21b5",cross:"\u2717",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",curlyeqprec:"\u22de",cuesc:"\u22df",curlyeqsucc:"\u22df",cularr:"\u21b6",curvearrowleft:"\u21b6",cularrp:"\u293d",cup:"\u222a",cupbrcap:"\u2a48",cupcap:"\u2a46",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curvearrowright:"\u21b7",curarrm:"\u293c",curlyvee:"\u22ce",cuvee:"\u22ce",curlywedge:"\u22cf",cuwed:"\u22cf",curren:"\xa4",cwint:"\u2231",cylcty:"\u232d",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",dash:"\u2010",hyphen:"\u2010",dbkarow:"\u290f",rBarr:"\u290f",dcaron:"\u010f",dcy:"\u0434",ddarr:"\u21ca",downdownarrows:"\u21ca",ddotseq:"\u2a77",eDDot:"\u2a77",deg:"\xb0",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",dfr:"\ud835\udd21",diamondsuit:"\u2666",diams:"\u2666",digamma:"\u03dd",gammad:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",djcy:"\u0452",dlcorn:"\u231e",llcorner:"\u231e",dlcrop:"\u230d",dollar:"$",dopf:"\ud835\udd55",doteqdot:"\u2251",eDot:"\u2251",dotminus:"\u2238",minusd:"\u2238",dotplus:"\u2214",plusdo:"\u2214",dotsquare:"\u22a1",sdotb:"\u22a1",drcorn:"\u231f",lrcorner:"\u231f",drcrop:"\u230c",dscr:"\ud835\udcb9",dscy:"\u0455",dsol:"\u29f6",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",triangledown:"\u25bf",dwangle:"\u29a6",dzcy:"\u045f",dzigrarr:"\u27ff",eacute:"\xe9",easter:"\u2a6e",ecaron:"\u011b",ecir:"\u2256",eqcirc:"\u2256",ecirc:"\xea",ecolon:"\u2255",eqcolon:"\u2255",ecy:"\u044d",edot:"\u0117",efDot:"\u2252",fallingdotseq:"\u2252",efr:"\ud835\udd22",eg:"\u2a9a",egrave:"\xe8",egs:"\u2a96",eqslantgtr:"\u2a96",egsdot:"\u2a98",el:"\u2a99",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",eqslantless:"\u2a95",elsdot:"\u2a97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",varnothing:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014b",ensp:"\u2002",eogon:"\u0119",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",epsilon:"\u03b5",epsiv:"\u03f5",straightepsilon:"\u03f5",varepsilon:"\u03f5",equals:"=",equest:"\u225f",questeq:"\u225f",equivDD:"\u2a78",eqvparsl:"\u29e5",erDot:"\u2253",risingdotseq:"\u2253",erarr:"\u2971",escr:"\u212f",eta:"\u03b7",eth:"\xf0",euml:"\xeb",euro:"\u20ac",excl:"!",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",ffr:"\ud835\udd23",filig:"\ufb01",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",fopf:"\ud835\udd57",fork:"\u22d4",pitchfork:"\u22d4",forkv:"\u2ad9",fpartint:"\u2a0d",frac12:"\xbd",half:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",sfrown:"\u2322",fscr:"\ud835\udcbb",gEl:"\u2a8c",gtreqqless:"\u2a8c",gacute:"\u01f5",gamma:"\u03b3",gap:"\u2a86",gtrapprox:"\u2a86",gbreve:"\u011f",gcirc:"\u011d",gcy:"\u0433",gdot:"\u0121",gescc:"\u2aa9",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",gfr:"\ud835\udd24",gimel:"\u2137",gjcy:"\u0453",glE:"\u2a92",gla:"\u2aa5",glj:"\u2aa4",gnE:"\u2269",gneqq:"\u2269",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gneq:"\u2a88",gnsim:"\u22e7",gopf:"\ud835\udd58",gscr:"\u210a",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gtdot:"\u22d7",gtrdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrarr:"\u2978",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",hardcy:"\u044a",harrcir:"\u2948",harrw:"\u21ad",leftrightsquigarrow:"\u21ad",hbar:"\u210f",hslash:"\u210f",planck:"\u210f",plankv:"\u210f",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",mldr:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",hksearow:"\u2925",searhk:"\u2925",hkswarow:"\u2926",swarhk:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",larrhk:"\u21a9",hookrightarrow:"\u21aa",rarrhk:"\u21aa",hopf:"\ud835\udd59",horbar:"\u2015",hscr:"\ud835\udcbd",hstrok:"\u0127",hybull:"\u2043",iacute:"\xed",icirc:"\xee",icy:"\u0438",iecy:"\u0435",iexcl:"\xa1",ifr:"\ud835\udd26",igrave:"\xec",iiiint:"\u2a0c",qint:"\u2a0c",iiint:"\u222d",tint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012b",imath:"\u0131",inodot:"\u0131",imof:"\u22b7",imped:"\u01b5",incare:"\u2105",infin:"\u221e",infintie:"\u29dd",intcal:"\u22ba",intercal:"\u22ba",intlarhk:"\u2a17",intprod:"\u2a3c",iprod:"\u2a3c",iocy:"\u0451",iogon:"\u012f",iopf:"\ud835\udd5a",iota:"\u03b9",iquest:"\xbf",iscr:"\ud835\udcbe",isinE:"\u22f9",isindot:"\u22f5",isins:"\u22f4",isinsv:"\u22f3",itilde:"\u0129",iukcy:"\u0456",iuml:"\xef",jcirc:"\u0135",jcy:"\u0439",jfr:"\ud835\udd27",jmath:"\u0237",jopf:"\ud835\udd5b",jscr:"\ud835\udcbf",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03ba",kappav:"\u03f0",varkappa:"\u03f0",kcedil:"\u0137",kcy:"\u043a",kfr:"\ud835\udd28",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045c",kopf:"\ud835\udd5c",kscr:"\ud835\udcc0",lAtail:"\u291b",lBarr:"\u290e",lEg:"\u2a8b",lesseqqgtr:"\u2a8b",lHar:"\u2962",lacute:"\u013a",laemptyv:"\u29b4",lambda:"\u03bb",langd:"\u2991",lap:"\u2a85",lessapprox:"\u2a85",laquo:"\xab",larrbfs:"\u291f",larrfs:"\u291d",larrlp:"\u21ab",looparrowleft:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",leftarrowtail:"\u21a2",lat:"\u2aab",latail:"\u2919",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lbbrk:"\u2772",lbrace:"{",lcub:"{",lbrack:"[",lsqb:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",lcaron:"\u013e",lcedil:"\u013c",lcy:"\u043b",ldca:"\u2936",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",leq:"\u2264",leftleftarrows:"\u21c7",llarr:"\u21c7",leftthreetimes:"\u22cb",lthree:"\u22cb",lescc:"\u2aa8",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessdot:"\u22d6",ltdot:"\u22d6",lfisht:"\u297c",lfr:"\ud835\udd29",lgE:"\u2a91",lharul:"\u296a",lhblk:"\u2584",ljcy:"\u0459",llhard:"\u296b",lltri:"\u25fa",lmidot:"\u0140",lmoust:"\u23b0",lmoustache:"\u23b0",lnE:"\u2268",lneqq:"\u2268",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lneq:"\u2a87",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",longmapsto:"\u27fc",xmap:"\u27fc",looparrowright:"\u21ac",rarrlp:"\u21ac",lopar:"\u2985",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",loz:"\u25ca",lozenge:"\u25ca",lpar:"(",lparlt:"\u2993",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",lsime:"\u2a8d",lsimg:"\u2a8f",lsquor:"\u201a",sbquo:"\u201a",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltrPar:"\u2996",ltri:"\u25c3",triangleleft:"\u25c3",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",mDDot:"\u223a",macr:"\xaf",strns:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",marker:"\u25ae",mcomma:"\u2a29",mcy:"\u043c",mdash:"\u2014",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midcir:"\u2af0",minus:"\u2212",minusdu:"\u2a2a",mlcp:"\u2adb",models:"\u22a7",mopf:"\ud835\udd5e",mscr:"\ud835\udcc2",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nGg:"\u22d9\u0338",nGt:"\u226b\u20d2",nLeftarrow:"\u21cd",nlArr:"\u21cd",nLeftrightarrow:"\u21ce",nhArr:"\u21ce",nLl:"\u22d8\u0338",nLt:"\u226a\u20d2",nRightarrow:"\u21cf",nrArr:"\u21cf",nVDash:"\u22af",nVdash:"\u22ae",nacute:"\u0144",nang:"\u2220\u20d2",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",natur:"\u266e",natural:"\u266e",ncap:"\u2a43",ncaron:"\u0148",ncedil:"\u0146",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",ncy:"\u043d",ndash:"\u2013",neArr:"\u21d7",nearhk:"\u2924",nedot:"\u2250\u0338",nesear:"\u2928",toea:"\u2928",nfr:"\ud835\udd2b",nharr:"\u21ae",nleftrightarrow:"\u21ae",nhpar:"\u2af2",nis:"\u22fc",nisd:"\u22fa",njcy:"\u045a",nlE:"\u2266\u0338",nleqq:"\u2266\u0338",nlarr:"\u219a",nleftarrow:"\u219a",nldr:"\u2025",nopf:"\ud835\udd5f",not:"\xac",notinE:"\u22f9\u0338",notindot:"\u22f5\u0338",notinvb:"\u22f7",notinvc:"\u22f6",notnivb:"\u22fe",notnivc:"\u22fd",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",nrarr:"\u219b",nrightarrow:"\u219b",nrarrc:"\u2933\u0338",nrarrw:"\u219d\u0338",nscr:"\ud835\udcc3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsubseteqq:"\u2ac5\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupseteqq:"\u2ac6\u0338",ntilde:"\xf1",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22ad",nvHarr:"\u2904",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwArr:"\u21d6",nwarhk:"\u2923",nwnear:"\u2927",oacute:"\xf3",ocirc:"\xf4",ocy:"\u043e",odblac:"\u0151",odiv:"\u2a38",odsold:"\u29bc",oelig:"\u0153",ofcir:"\u29bf",ofr:"\ud835\udd2c",ogon:"\u02db",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",olcir:"\u29be",olcross:"\u29bb",olt:"\u29c0",omacr:"\u014d",omega:"\u03c9",omicron:"\u03bf",omid:"\u29b6",oopf:"\ud835\udd60",opar:"\u29b7",operp:"\u29b9",or:"\u2228",vee:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",oscr:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oslash:"\xf8",osol:"\u2298",otilde:"\xf5",otimesas:"\u2a36",ouml:"\xf6",ovbar:"\u233d",para:"\xb6",parsim:"\u2af3",parsl:"\u2afd",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",pertenk:"\u2031",pfr:"\ud835\udd2d",phi:"\u03c6",phiv:"\u03d5",straightphi:"\u03d5",varphi:"\u03d5",phone:"\u260e",pi:"\u03c0",piv:"\u03d6",varpi:"\u03d6",planckh:"\u210e",plus:"+",plusacir:"\u2a23",pluscir:"\u2a22",plusdu:"\u2a25",pluse:"\u2a72",plussim:"\u2a26",plustwo:"\u2a27",pointint:"\u2a15",popf:"\ud835\udd61",pound:"\xa3",prE:"\u2ab3",prap:"\u2ab7",precapprox:"\u2ab7",precnapprox:"\u2ab9",prnap:"\u2ab9",precneqq:"\u2ab5",prnE:"\u2ab5",precnsim:"\u22e8",prnsim:"\u22e8",prime:"\u2032",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prurel:"\u22b0",pscr:"\ud835\udcc5",psi:"\u03c8",puncsp:"\u2008",qfr:"\ud835\udd2e",qopf:"\ud835\udd62",qprime:"\u2057",qscr:"\ud835\udcc6",quatint:"\u2a16",quest:"?",rAtail:"\u291c",rHar:"\u2964",race:"\u223d\u0331",racute:"\u0155",raemptyv:"\u29b3",rangd:"\u2992",range:"\u29a5",raquo:"\xbb",rarrap:"\u2975",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291e",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21a3",rightarrowtail:"\u21a3",rarrw:"\u219d",rightsquigarrow:"\u219d",ratail:"\u291a",ratio:"\u2236",rbbrk:"\u2773",rbrace:"}",rcub:"}",rbrack:"]",rsqb:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdsh:"\u21b3",rect:"\u25ad",rfisht:"\u297d",rfr:"\ud835\udd2f",rharul:"\u296c",rho:"\u03c1",rhov:"\u03f1",varrho:"\u03f1",rightrightarrows:"\u21c9",rrarr:"\u21c9",rightthreetimes:"\u22cc",rthree:"\u22cc",ring:"\u02da",rlm:"\u200f",rmoust:"\u23b1",rmoustache:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",ropar:"\u2986",ropf:"\ud835\udd63",roplus:"\u2a2e",rotimes:"\u2a35",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rsaquo:"\u203a",rscr:"\ud835\udcc7",rtimes:"\u22ca",rtri:"\u25b9",triangleright:"\u25b9",rtriltri:"\u29ce",ruluhar:"\u2968",rx:"\u211e",sacute:"\u015b",scE:"\u2ab4",scap:"\u2ab8",succapprox:"\u2ab8",scaron:"\u0161",scedil:"\u015f",scirc:"\u015d",scnE:"\u2ab6",succneqq:"\u2ab6",scnap:"\u2aba",succnapprox:"\u2aba",scnsim:"\u22e9",succnsim:"\u22e9",scpolint:"\u2a13",scy:"\u0441",sdot:"\u22c5",sdote:"\u2a66",seArr:"\u21d8",sect:"\xa7",semi:";",seswar:"\u2929",tosa:"\u2929",sext:"\u2736",sfr:"\ud835\udd30",sharp:"\u266f",shchcy:"\u0449",shcy:"\u0448",shy:"\xad",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",varsigma:"\u03c2",simdot:"\u2a6a",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",smashp:"\u2a33",smeparsl:"\u29e4",smile:"\u2323",ssmile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",softcy:"\u044c",sol:"/",solb:"\u29c4",solbar:"\u233f",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",sqcaps:"\u2293\ufe00",sqcups:"\u2294\ufe00",sscr:"\ud835\udcc8",star:"\u2606",sub:"\u2282",subset:"\u2282",subE:"\u2ac5",subseteqq:"\u2ac5",subdot:"\u2abd",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subsetneqq:"\u2acb",subne:"\u228a",subsetneq:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",supE:"\u2ac6",supseteqq:"\u2ac6",supdot:"\u2abe",supdsub:"\u2ad8",supedot:"\u2ac4",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supsetneqq:"\u2acc",supne:"\u228b",supsetneq:"\u228b",supplus:"\u2ac0",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swArr:"\u21d9",swnwar:"\u292a",szlig:"\xdf",target:"\u2316",tau:"\u03c4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",telrec:"\u2315",tfr:"\ud835\udd31",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",vartheta:"\u03d1",thorn:"\xfe",times:"\xd7",timesbar:"\u2a31",timesd:"\u2a30",topbot:"\u2336",topcir:"\u2af1",topf:"\ud835\udd65",topfork:"\u2ada",tprime:"\u2034",triangle:"\u25b5",utri:"\u25b5",triangleq:"\u225c",trie:"\u225c",tridot:"\u25ec",triminus:"\u2a3a",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",tscr:"\ud835\udcc9",tscy:"\u0446",tshcy:"\u045b",tstrok:"\u0167",uHar:"\u2963",uacute:"\xfa",ubrcy:"\u045e",ubreve:"\u016d",ucirc:"\xfb",ucy:"\u0443",udblac:"\u0171",ufisht:"\u297e",ufr:"\ud835\udd32",ugrave:"\xf9",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",umacr:"\u016b",uogon:"\u0173",uopf:"\ud835\udd66",upsi:"\u03c5",upsilon:"\u03c5",upuparrows:"\u21c8",uuarr:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",uring:"\u016f",urtri:"\u25f9",uscr:"\ud835\udcca",utdot:"\u22f0",utilde:"\u0169",uuml:"\xfc",uwangle:"\u29a7",vBar:"\u2ae8",vBarv:"\u2ae9",vangrt:"\u299c",varsubsetneq:"\u228a\ufe00",vsubne:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",vsubnE:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",vsupne:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vsupnE:"\u2acc\ufe00",vcy:"\u0432",veebar:"\u22bb",veeeq:"\u225a",vellip:"\u22ee",vfr:"\ud835\udd33",vopf:"\ud835\udd67",vscr:"\ud835\udccb",vzigzag:"\u299a",wcirc:"\u0175",wedbar:"\u2a5f",wedgeq:"\u2259",weierp:"\u2118",wp:"\u2118",wfr:"\ud835\udd34",wopf:"\ud835\udd68",wscr:"\ud835\udccc",xfr:"\ud835\udd35",xi:"\u03be",xnis:"\u22fb",xopf:"\ud835\udd69",xscr:"\ud835\udccd",yacute:"\xfd",yacy:"\u044f",ycirc:"\u0177",ycy:"\u044b",yen:"\xa5",yfr:"\ud835\udd36",yicy:"\u0457",yopf:"\ud835\udd6a",yscr:"\ud835\udcce",yucy:"\u044e",yuml:"\xff",zacute:"\u017a",zcaron:"\u017e",zcy:"\u0437",zdot:"\u017c",zeta:"\u03b6",zfr:"\ud835\udd37",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"};Ih.ngsp="\ue500";var py=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,a,i)).tokenType=o,s}return(0,U.Z)(e)}(kh),dS=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.tokens=r,this.errors=e,this.nonNormalizedIcuExpressions=i});var my,S4=/\r\n?/g;function hy(n){var r=0===n?"EOF":String.fromCharCode(n);return'Unexpected character "'.concat(r,'"')}function Q3(n){return'Unknown entity "'.concat(n,'" - use the "&#;" or "&#x;" syntax')}!function(n){n.HEX="hexadecimal",n.DEC="decimal"}(my||(my={}));var X3=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.error=r}),x4=function(){function n(r,e,i){(0,B.Z)(this,n),this._getTagDefinition=e,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=i.tokenizeExpansionForms||!1,this._interpolationConfig=i.interpolationConfig||Vl,this._leadingTriviaCodePoints=i.leadingTriviaChars&&i.leadingTriviaChars.map(function(a){return a.codePointAt(0)||0});var o=i.range||{endPos:r.content.length,startPos:0,startLine:0,startCol:0};this._cursor=i.escapedString?new fV(r,o):new O4(r,o),this._preserveLineEndings=i.preserveLineEndings||!1,this._escapedString=i.escapedString||!1,this._i18nNormalizeLineEndingsInICUs=i.i18nNormalizeLineEndingsInICUs||!1;try{this._cursor.init()}catch(a){this.handleError(a)}}return(0,U.Z)(n,[{key:"_processCarriageReturns",value:function(e){return this._preserveLineEndings?e:e.replace(S4,"\n")}},{key:"tokenize",value:function(){for(var e=this;0!==this._cursor.peek();){var i=this._cursor.clone();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(i):this._attemptCharCode(45)?this._consumeComment(i):this._consumeDocType(i):this._attemptCharCode(47)?this._consumeTagClose(i):this._consumeTagOpen(i):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,function(){return e._isTextEnd()},function(){return e._isTagStart()})}catch(o){this.handleError(o)}}this._beginToken(24),this._endToken([])}},{key:"_tokenizeExpansionForm",value:function(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(function uV(n){return n!==Rc}(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===Rc){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}},{key:"_beginToken",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._cursor.clone();this._currentTokenStart=i,this._currentTokenType=e}},{key:"_endToken",value:function(e,i){if(null===this._currentTokenStart)throw new py("Programming error - attempted to end a token when there was no start to the token",this._currentTokenType,this._cursor.getSpan(i));if(null===this._currentTokenType)throw new py("Programming error - attempted to end a token which has no token type",null,this._cursor.getSpan(this._currentTokenStart));var o={type:this._currentTokenType,parts:e,sourceSpan:(null!=i?i:this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(o),this._currentTokenStart=null,this._currentTokenType=null,o}},{key:"_createError",value:function(e,i){this._isInExpansionForm()&&(e+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');var o=new py(e,this._currentTokenType,i);return this._currentTokenStart=null,this._currentTokenType=null,new X3(o)}},{key:"handleError",value:function(e){if(e instanceof e6&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),!(e instanceof X3))throw e;this.errors.push(e.error)}},{key:"_attemptCharCode",value:function(e){return this._cursor.peek()===e&&(this._cursor.advance(),!0)}},{key:"_attemptCharCodeCaseInsensitive",value:function(e){return!!function cV(n,r){return A4(n)===A4(r)}(this._cursor.peek(),e)&&(this._cursor.advance(),!0)}},{key:"_requireCharCode",value:function(e){var i=this._cursor.clone();if(!this._attemptCharCode(e))throw this._createError(hy(this._cursor.peek()),this._cursor.getSpan(i))}},{key:"_attemptStr",value:function(e){var i=e.length;if(this._cursor.charsLeft()")}),this._beginToken(13),this._requireStr("]]>"),this._endToken([])}},{key:"_consumeDocType",value:function(e){this._beginToken(18,e);var i=this._cursor.clone();this._attemptUntilChar(62);var o=this._cursor.getChars(i);this._cursor.advance(),this._endToken([o])}},{key:"_consumePrefixAndName",value:function(){for(var e=this._cursor.clone(),i="";58!==this._cursor.peek()&&!$3(this._cursor.peek());)this._cursor.advance();var o;return 58===this._cursor.peek()?(i=this._cursor.getChars(e),this._cursor.advance(),o=this._cursor.clone()):o=e,this._requireCharCodeUntilFn(fS,""===i?0:1),[i,this._cursor.getChars(o)]}},{key:"_consumeTagOpen",value:function(e){var i,o,a;try{if(!y_(this._cursor.peek()))throw this._createError(hy(this._cursor.peek()),this._cursor.getSpan(e));for(o=(a=this._consumeTagOpenStart(e)).parts[0],i=a.parts[1],this._attemptCharCodeUntilFn(Eu);47!==this._cursor.peek()&&62!==this._cursor.peek()&&60!==this._cursor.peek()&&0!==this._cursor.peek();)this._consumeAttributeName(),this._attemptCharCodeUntilFn(Eu),this._attemptCharCode(61)&&(this._attemptCharCodeUntilFn(Eu),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(Eu);this._consumeTagOpenEnd()}catch(l){if(l instanceof X3)return void(a?a.type=4:(this._beginToken(5,e),this._endToken(["<"])));throw l}var s=this._getTagDefinition(i).getContentType(o);s===qi.RAW_TEXT?this._consumeRawTextWithTagClose(o,i,!1):s===qi.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(o,i,!0)}},{key:"_consumeRawTextWithTagClose",value:function(e,i,o){var a=this;this._consumeRawText(o,function(){return!!(a._attemptCharCode(60)&&a._attemptCharCode(47)&&(a._attemptCharCodeUntilFn(Eu),a._attemptStrCaseInsensitive(i)))&&(a._attemptCharCodeUntilFn(Eu),a._attemptCharCode(62))}),this._beginToken(3),this._requireCharCodeUntilFn(function(s){return 62===s},3),this._cursor.advance(),this._endToken([e,i])}},{key:"_consumeTagOpenStart",value:function(e){this._beginToken(0,e);var i=this._consumePrefixAndName();return this._endToken(i)}},{key:"_consumeAttributeName",value:function(){var e=this._cursor.peek();if(39===e||34===e)throw this._createError(hy(e),this._cursor.getSpan());this._beginToken(14);var i=this._consumePrefixAndName();this._endToken(i)}},{key:"_consumeAttributeValue",value:function(){var e=this;if(39===this._cursor.peek()||34===this._cursor.peek()){var o=this._cursor.peek();this._consumeQuote(o);var a=function(){return e._cursor.peek()===o};this._consumeWithInterpolation(16,17,a,a),this._consumeQuote(o)}else{var s=function(){return fS(e._cursor.peek())};this._consumeWithInterpolation(16,17,s,s)}}},{key:"_consumeQuote",value:function(e){this._beginToken(15),this._requireCharCode(e),this._endToken([String.fromCodePoint(e)])}},{key:"_consumeTagOpenEnd",value:function(){var e=this._attemptCharCode(47)?2:1;this._beginToken(e),this._requireCharCode(62),this._endToken([])}},{key:"_consumeTagClose",value:function(e){this._beginToken(3,e),this._attemptCharCodeUntilFn(Eu);var i=this._consumePrefixAndName();this._attemptCharCodeUntilFn(Eu),this._requireCharCode(62),this._endToken(i)}},{key:"_consumeExpansionFormStart",value:function(){this._beginToken(19),this._requireCharCode(Rf),this._endToken([]),this._expansionCaseStack.push(19),this._beginToken(7);var e=this._readUntil(44),i=this._processCarriageReturns(e);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([i]);else{var o=this._endToken([e]);i!==e&&this.nonNormalizedIcuExpressions.push(o)}this._requireCharCode(44),this._attemptCharCodeUntilFn(Eu),this._beginToken(7);var a=this._readUntil(44);this._endToken([a]),this._requireCharCode(44),this._attemptCharCodeUntilFn(Eu)}},{key:"_consumeExpansionCaseStart",value:function(){this._beginToken(20);var e=this._readUntil(Rf).trim();this._endToken([e]),this._attemptCharCodeUntilFn(Eu),this._beginToken(21),this._requireCharCode(Rf),this._endToken([]),this._attemptCharCodeUntilFn(Eu),this._expansionCaseStack.push(21)}},{key:"_consumeExpansionCaseEnd",value:function(){this._beginToken(22),this._requireCharCode(Rc),this._endToken([]),this._attemptCharCodeUntilFn(Eu),this._expansionCaseStack.pop()}},{key:"_consumeExpansionFormEnd",value:function(){this._beginToken(23),this._requireCharCode(Rc),this._endToken([]),this._expansionCaseStack.pop()}},{key:"_consumeWithInterpolation",value:function(e,i,o,a){this._beginToken(e);for(var s=[];!o();){var l=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(s.join(""))],l),s.length=0,this._consumeInterpolation(i,l,a),this._beginToken(e)):38===this._cursor.peek()?(this._endToken([this._processCarriageReturns(s.join(""))]),s.length=0,this._consumeEntity(e),this._beginToken(e)):s.push(this._readChar())}this._inInterpolation=!1,this._endToken([this._processCarriageReturns(s.join(""))])}},{key:"_consumeInterpolation",value:function(e,i,o){var a=[];this._beginToken(e,i),a.push(this._interpolationConfig.start);for(var s=this._cursor.clone(),l=null,u=!1;0!==this._cursor.peek()&&(null===o||!o());){var d=this._cursor.clone();if(this._isTagStart())return this._cursor=d,a.push(this._getProcessedChars(s,d)),void this._endToken(a);if(null===l){if(this._attemptStr(this._interpolationConfig.end))return a.push(this._getProcessedChars(s,d)),a.push(this._interpolationConfig.end),void this._endToken(a);this._attemptStr("//")&&(u=!0)}var h=this._cursor.peek();this._cursor.advance(),92===h?this._cursor.advance():h===l?l=null:!u&&null===l&&PC(h)&&(l=h)}a.push(this._getProcessedChars(s,this._cursor)),this._endToken(a)}},{key:"_getProcessedChars",value:function(e,i){return this._processCarriageReturns(i.getChars(e))}},{key:"_isTextEnd",value:function(){return!!(this._isTagStart()||0===this._cursor.peek()||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===Rc&&this._isInExpansionCase()))}},{key:"_isTagStart",value:function(){if(60===this._cursor.peek()){var e=this._cursor.clone();e.advance();var i=e.peek();if(97<=i&&i<=122||65<=i&&i<=90||47===i||33===i)return!0}return!1}},{key:"_readUntil",value:function(e){var i=this._cursor.clone();return this._attemptUntilChar(e),this._cursor.getChars(i)}},{key:"_isInExpansionCase",value:function(){return this._expansionCaseStack.length>0&&21===this._expansionCaseStack[this._expansionCaseStack.length-1]}},{key:"_isInExpansionForm",value:function(){return this._expansionCaseStack.length>0&&19===this._expansionCaseStack[this._expansionCaseStack.length-1]}},{key:"isExpansionFormStart",value:function(){if(this._cursor.peek()!==Rf)return!1;if(this._interpolationConfig){var e=this._cursor.clone(),i=this._attemptStr(this._interpolationConfig.start);return this._cursor=e,!i}return!0}}]),n}();function Eu(n){return!HM(n)||0===n}function fS(n){return HM(n)||62===n||60===n||47===n||39===n||34===n||61===n||0===n}function $3(n){return(n<97||12257)}function D4(n){return 59===n||0===n||!function xd(n){return n>=97&&n<=102||n>=65&&n<=70||Lf(n)}(n)}function pS(n){return 59===n||0===n||!y_(n)}function A4(n){return n>=97&&n<=122?n-97+65:n}function dV(n){for(var r=[],e=void 0,i=0;i0&&-1!==i.indexOf(e.peek());)o===e&&(e=e.clone()),e.advance();var a=this.locationFromCursor(e),s=this.locationFromCursor(this),l=o!==e?this.locationFromCursor(o):a;return new Xa(a,s,l)}},{key:"getChars",value:function(e){return this.input.substring(e.state.offset,this.state.offset)}},{key:"charAt",value:function(e){return this.input.charCodeAt(e)}},{key:"advanceState",value:function(e){if(e.offset>=this.end)throw this.state=e,new e6('Unexpected character "EOF"',this);var i=this.charAt(e.offset);10===i?(e.line++,e.column=0):b_(i)||e.column++,e.offset++,this.updatePeek(e)}},{key:"updatePeek",value:function(e){e.peek=e.offset>=this.end?0:this.charAt(e.offset)}},{key:"locationFromCursor",value:function(e){return new C_(e.file,e.state.offset,e.state.line,e.state.column)}}]),n}(),fV=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),i instanceof e?(a=r.call(this,i)).internalState=Object.assign({},i.internalState):(a=r.call(this,i,o)).internalState=a.state,(0,Ti.Z)(a)}return(0,U.Z)(e,[{key:"advance",value:function(){this.state=this.internalState,(0,Ut.Z)((0,Wt.Z)(e.prototype),"advance",this).call(this),this.processEscapeSequence()}},{key:"init",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"init",this).call(this),this.processEscapeSequence()}},{key:"clone",value:function(){return new e(this)}},{key:"getChars",value:function(o){for(var a=o.clone(),s="";a.internalState.offset3&&void 0!==arguments[3]?arguments[3]:{},o=new x4(new GM(n,r),e,i);return o.tokenize(),new dS(dV(o.tokens),o.errors,o.nonNormalizedIcuExpressions)}(e,i,this.getTagDefinition,o),s=new Hf(a.tokens,this.getTagDefinition);return s.build(),new t6(s.rootNodes,a.errors.concat(s.errors))}}]),n}(),Hf=function(){function n(r,e){(0,B.Z)(this,n),this.tokens=r,this.getTagDefinition=e,this._index=-1,this._elementStack=[],this.rootNodes=[],this.errors=[],this._advance()}return(0,U.Z)(n,[{key:"build",value:function(){for(;24!==this._peek.type;)0===this._peek.type||4===this._peek.type?this._consumeStartTag(this._advance()):3===this._peek.type?this._consumeEndTag(this._advance()):12===this._peek.type?(this._closeVoidElement(),this._consumeCdata(this._advance())):10===this._peek.type?(this._closeVoidElement(),this._consumeComment(this._advance())):5===this._peek.type||7===this._peek.type||6===this._peek.type?(this._closeVoidElement(),this._consumeText(this._advance())):19===this._peek.type?this._consumeExpansion(this._advance()):this._advance()}},{key:"_advance",value:function(){var e=this._peek;return this._index0)return this.errors=this.errors.concat(s.errors),null;var l=new Xa(e.sourceSpan.start,a.sourceSpan.end,e.sourceSpan.fullStart),u=new Xa(i.sourceSpan.start,a.sourceSpan.end,i.sourceSpan.fullStart);return new q3(e.parts[0],s.rootNodes,l,e.sourceSpan,u)}},{key:"_collectExpansionExpTokens",value:function(e){for(var i=[],o=[21];;){if((19===this._peek.type||21===this._peek.type)&&o.push(this._peek.type),22===this._peek.type){if(!YC(o,21))return this.errors.push(Uf.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(o.pop(),0===o.length)return i}if(23===this._peek.type){if(!YC(o,19))return this.errors.push(Uf.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;o.pop()}if(24===this._peek.type)return this.errors.push(Uf.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;i.push(this._advance())}}},{key:"_consumeText",value:function(e){var i=[e],o=e.sourceSpan,a=e.parts[0];if(a.length>0&&"\n"===a[0]){var s=this._getParentElement();null!=s&&0===s.children.length&&this.getTagDefinition(s.name).ignoreFirstLf&&(a=a.substring(1),i[0]={type:e.type,sourceSpan:e.sourceSpan,parts:[a]})}for(;8===this._peek.type||5===this._peek.type||9===this._peek.type;)e=this._advance(),i.push(e),8===e.type?a+=e.parts.join("").replace(/&([^;]+);/g,n6):9===e.type?a+=e.parts[0]:a+=e.parts.join("");if(a.length>0){var l=e.sourceSpan;this._addToParent(new Su(a,new Xa(o.start,l.end,o.fullStart,o.details),i))}}},{key:"_closeVoidElement",value:function(){var e=this._getParentElement();e&&this.getTagDefinition(e.name).isVoid&&this._elementStack.pop()}},{key:"_consumeStartTag",value:function(e){for(var i=(0,Yn.Z)(e.parts,2),o=i[0],a=i[1],s=[];14===this._peek.type;)s.push(this._consumeAttr(this._advance()));var l=this._getElementFullName(o,a,this._getParentElement()),u=!1;if(2===this._peek.type){this._advance(),u=!0;var d=this.getTagDefinition(l);d.canSelfClose||null!==Mi(l)||d.isVoid||this.errors.push(Uf.create(l,e.sourceSpan,'Only void and foreign elements can be self closed "'.concat(e.parts[1],'"')))}else 1===this._peek.type&&(this._advance(),u=!1);var h=this._peek.sourceSpan.fullStart,g=new Xa(e.sourceSpan.start,h,e.sourceSpan.fullStart),y=new Xa(e.sourceSpan.start,h,e.sourceSpan.fullStart),L=new J3(l,s,[],g,y,void 0);this._pushElement(L),u?this._popElement(l,g):4===e.type&&(this._popElement(l,null),this.errors.push(Uf.create(l,g,'Opening tag "'.concat(l,'" not terminated.'))))}},{key:"_pushElement",value:function(e){var i=this._getParentElement();i&&this.getTagDefinition(i.name).isClosedByChild(e.name)&&this._elementStack.pop(),this._addToParent(e),this._elementStack.push(e)}},{key:"_consumeEndTag",value:function(e){var i=this._getElementFullName(e.parts[0],e.parts[1],this._getParentElement());if(this.getTagDefinition(i).isVoid)this.errors.push(Uf.create(i,e.sourceSpan,'Void elements do not have end tags "'.concat(e.parts[1],'"')));else if(!this._popElement(i,e.sourceSpan)){var o='Unexpected closing tag "'.concat(i,'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags');this.errors.push(Uf.create(i,e.sourceSpan,o))}}},{key:"_popElement",value:function(e,i){for(var o=!1,a=this._elementStack.length-1;a>=0;a--){var s=this._elementStack[a];if(s.name===e)return s.endSourceSpan=i,s.sourceSpan.end=null!==i?i.end:s.sourceSpan.end,this._elementStack.splice(a,this._elementStack.length-a),!o;this.getTagDefinition(s.name).closedByParent||(o=!0)}return!1}},{key:"_consumeAttr",value:function(e){var i=Hi(e.parts[0],e.parts[1]),o=e.sourceSpan.end;15===this._peek.type&&this._advance();var a="",s=[],l=void 0,u=void 0;if(16===this._peek.type)for(l=this._peek.sourceSpan,u=this._peek.sourceSpan.end;16===this._peek.type||17===this._peek.type||9===this._peek.type;){var h=this._advance();s.push(h),17===h.type?a+=h.parts.join("").replace(/&([^;]+);/g,n6):9===h.type?a+=h.parts[0]:a+=h.parts.join(""),u=o=h.sourceSpan.end}15===this._peek.type&&(o=this._advance().sourceSpan.end);var y=l&&u&&new Xa(l.start,u,l.fullStart);return new uS(i,a,new Xa(e.sourceSpan.start,o,e.sourceSpan.fullStart),e.sourceSpan,y,s.length>0?s:void 0,void 0)}},{key:"_getParentElement",value:function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}},{key:"_addToParent",value:function(e){var i=this._getParentElement();null!=i?i.children.push(e):this.rootNodes.push(e)}},{key:"_getElementFullName",value:function(e,i,o){if(""===e&&(""===(e=this.getTagDefinition(i).implicitNamespacePrefix||"")&&null!=o)){var a=Oi(o.name)[1];this.getTagDefinition(a).preventNamespaceInheritance||(e=Mi(o.name))}return Hi(e,i)}}]),n}();function YC(n,r){return n.length>0&&n[n.length-1]===r}function n6(n,r){return void 0!==Ih[r]?Ih[r]||n:/^#x[a-f0-9]+$/i.test(r)?String.fromCodePoint(parseInt(r.slice(2),16)):/^#\d+$/.test(r)?String.fromCodePoint(parseInt(r.slice(1),10)):n}var r6=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.call(this,ka)}return(0,U.Z)(e,[{key:"parse",value:function(o,a,s){return(0,Ut.Z)((0,Wt.Z)(e.prototype),"parse",this).call(this,o,a,s)}}]),e}(pV),KC="ngPreserveWhitespaces",i6=new Set(["pre","template","textarea","script","style"]),qC=" \f\n\r\t\v\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff",I4=new RegExp("[^".concat(qC,"]")),jf=new RegExp("[".concat(qC,"]{2,}"),"g");function a6(n){return n.replace(new RegExp("\ue500","g")," ")}var s6=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitElement",value:function(e,i){return i6.has(e.name)||function o6(n){return n.some(function(r){return r.name===KC})}(e.attrs)?new J3(e.name,Nc(this,e.attrs),e.children,e.sourceSpan,e.startSourceSpan,e.endSourceSpan,e.i18n):new J3(e.name,e.attrs,function JC(n,r){var e=[];return r.forEach(function(i,o){var a={prev:r[o-1],next:r[o+1]},s=i.visit(n,a);s&&e.push(s)}),e}(this,e.children),e.sourceSpan,e.startSourceSpan,e.endSourceSpan,e.i18n)}},{key:"visitAttribute",value:function(e,i){return e.name!==KC?e:null}},{key:"visitText",value:function(e,i){var o=e.value.match(I4),a=i&&(i.prev instanceof O_||i.next instanceof O_);if(o||a){var s=e.tokens.map(function(u){return 5===u.type?function l6(n){var r=n.type,e=n.parts,i=n.sourceSpan;return{type:r,parts:[u6(e[0])],sourceSpan:i}}(u):u}),l=u6(e.value);return new Su(l,e.sourceSpan,s,e.i18n)}return null}},{key:"visitComment",value:function(e,i){return e}},{key:"visitExpansion",value:function(e,i){return e}},{key:"visitExpansionCase",value:function(e,i){return e}}]),n}();function u6(n){return a6(n).replace(jf," ")}function I_(n){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Ds(Object.keys(n).map(function(e){return{key:e,quoted:r,value:n[e]}}))}var P_=(0,U.Z)(function n(){(0,B.Z)(this,n)}),mS=["[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored","[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate","abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate","media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume",":svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username","area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username","audio^media|","br^[HTMLElement]|clear","base^[HTMLElement]|href,target","body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^[HTMLElement]|#height,#width","content^[HTMLElement]|select","dl^[HTMLElement]|!compact","datalist^[HTMLElement]|","details^[HTMLElement]|!open","dialog^[HTMLElement]|!open,returnValue","dir^[HTMLElement]|!compact","div^[HTMLElement]|align","embed^[HTMLElement]|align,height,name,src,type,width","fieldset^[HTMLElement]|!disabled,name","font^[HTMLElement]|color,face,size","form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^[HTMLElement]|align,color,!noShade,size,width","head^[HTMLElement]|","h1,h2,h3,h4,h5,h6^[HTMLElement]|align","html^[HTMLElement]|version","iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","li^[HTMLElement]|type,#value","label^[HTMLElement]|htmlFor","legend^[HTMLElement]|align","link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type","map^[HTMLElement]|name","marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^[HTMLElement]|!compact","meta^[HTMLElement]|content,httpEquiv,name,scheme","meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value","ins,del^[HTMLElement]|cite,dateTime","ol^[HTMLElement]|!compact,!reversed,#start,type","object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^[HTMLElement]|!disabled,label","option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value","output^[HTMLElement]|defaultValue,%htmlFor,name,value","p^[HTMLElement]|align","param^[HTMLElement]|name,type,value,valueType","picture^[HTMLElement]|","pre^[HTMLElement]|#width","progress^[HTMLElement]|#max,#value","q,blockquote,cite^[HTMLElement]|","script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type","select^[HTMLElement]|autocomplete,!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","shadow^[HTMLElement]|","slot^[HTMLElement]|name","source^[HTMLElement]|media,sizes,src,srcset,type","span^[HTMLElement]|","style^[HTMLElement]|!disabled,media,type","caption^[HTMLElement]|align","th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width","table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign","template^[HTMLElement]|","textarea^[HTMLElement]|autocapitalize,autocomplete,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","title^[HTMLElement]|text","track^[HTMLElement]|!default,kind,label,src,srclang","ul^[HTMLElement]|!compact,type","unknown^[HTMLElement]|","video^media|#height,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan","data^[HTMLElement]|value","keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name","menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default","summary^[HTMLElement]|","time^[HTMLElement]|dateTime",":svg:cursor^:svg:|"],_S=new Map(Object.entries({class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"})),gS=Array.from(_S).reduce(function(n,r){var e=(0,Yn.Z)(r,2),i=e[0],o=e[1];return n.set(i,o),n},new Map),p6=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.call(this))._schema=new Map,i._eventSchema=new Map,mS.forEach(function(o){var a=new Map,s=new Set,l=o.split("|"),u=(0,Yn.Z)(l,2),d=u[0],g=u[1].split(","),y=d.split("^"),L=(0,Yn.Z)(y,2),z=L[0],q=L[1];z.split(",").forEach(function(ft){i._schema.set(ft.toLowerCase(),a),i._eventSchema.set(ft.toLowerCase(),s)});var re=q&&i._schema.get(q.toLowerCase());if(re){var Se,ae=(0,An.Z)(re);try{for(ae.s();!(Se=ae.n()).done;){var Ce=(0,Yn.Z)(Se.value,2),Ee=Ce[0],Ke=Ce[1];a.set(Ee,Ke)}}catch(ft){ae.e(ft)}finally{ae.f()}var De,st=(0,An.Z)(i._eventSchema.get(q.toLowerCase()));try{for(st.s();!(De=st.n()).done;){var it=De.value;s.add(it)}}catch(ft){st.e(ft)}finally{st.f()}}g.forEach(function(ft){if(ft.length>0)switch(ft[0]){case"*":s.add(ft.substring(1));break;case"!":a.set(ft.substring(1),"boolean");break;case"#":a.set(ft.substring(1),"number");break;case"%":a.set(ft.substring(1),"object");break;default:a.set(ft,"string")}})}),i}return(0,U.Z)(e,[{key:"hasProperty",value:function(o,a,s){if(s.some(function(u){return u.name===ec.name}))return!0;if(o.indexOf("-")>-1){if(Ji(o)||Ii(o))return!1;if(s.some(function(u){return u.name===mu.name}))return!0}return(this._schema.get(o.toLowerCase())||this._schema.get("unknown")).has(a)}},{key:"hasElement",value:function(o,a){return!!(a.some(function(s){return s.name===ec.name})||o.indexOf("-")>-1&&(Ji(o)||Ii(o)||a.some(function(s){return s.name===mu.name})))||this._schema.has(o.toLowerCase())}},{key:"securityContext",value:function(o,a,s){s&&(a=this.getMappedPropName(a)),o=o.toLowerCase(),a=a.toLowerCase();var l=M3()[o+"|"+a];return l||((l=M3()["*|"+a])||Br.NONE)}},{key:"getMappedPropName",value:function(o){var a;return null!==(a=_S.get(o))&&void 0!==a?a:o}},{key:"getDefaultComponentElementName",value:function(){return"ng-component"}},{key:"validateProperty",value:function(o){return o.toLowerCase().startsWith("on")?{error:!0,msg:"Binding to event property '".concat(o,"' is disallowed for security reasons, ")+"please use (".concat(o.slice(2),")=...")+"\nIf '".concat(o,"' is a directive input, make sure the directive is imported by the")+" current module."}:{error:!1}}},{key:"validateAttribute",value:function(o){return o.toLowerCase().startsWith("on")?{error:!0,msg:"Binding to event attribute '".concat(o,"' is disallowed for security reasons, ")+"please use (".concat(o.slice(2),")=...")}:{error:!1}}},{key:"allKnownElementNames",value:function(){return Array.from(this._schema.keys())}},{key:"allKnownAttributesOfElement",value:function(o){var a=this._schema.get(o.toLowerCase())||this._schema.get("unknown");return Array.from(a.keys()).map(function(s){var l;return null!==(l=gS.get(s))&&void 0!==l?l:s})}},{key:"allKnownEventsOfElement",value:function(o){var a;return Array.from(null!==(a=this._eventSchema.get(o.toLowerCase()))&&void 0!==a?a:[])}},{key:"normalizeAnimationStyleProperty",value:function(o){return function Ul(n){return n.replace(ks,function(){for(var r=arguments.length,e=new Array(r),i=0;i2&&void 0!==arguments[2]&&arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(i.isAnimation)return new y3(i.name,4,Br.NONE,i.expression,null,i.sourceSpan,i.keySpan,i.valueSpan);var s=null,l=void 0,u=null,d=i.name.split("."),h=void 0;if(d.length>1)if("attr"==d[0]){u=d.slice(1).join("."),o||this._validatePropertyOrAttributeName(u,i.sourceSpan,!0),h=gy(this._schemaRegistry,e,u,!0);var g=u.indexOf(":");if(g>-1){var y=u.substring(0,g),L=u.substring(g+1);u=Hi(y,L)}l=1}else"class"==d[0]?(u=d[1],l=2,h=[Br.NONE]):"style"==d[0]&&(s=d.length>2?d[2]:null,u=d[1],l=3,h=[Br.STYLE]);if(null===u){var z=this._schemaRegistry.getMappedPropName(i.name);u=a?z:i.name,h=gy(this._schemaRegistry,e,z,!1),l=0,o||this._validatePropertyOrAttributeName(z,i.sourceSpan,!1)}return new y3(u,l,h[0],i.expression,s,i.sourceSpan,i.keySpan,i.valueSpan)}},{key:"parseEvent",value:function(e,i,o,a,s,l,u,d){0===e.length&&this._reportError("Event name is missing in binding",a),yS(e)?(e=e.slice(1),void 0!==d&&(d=Rd(d,new Ps(d.start.offset+1,d.end.offset))),this._parseAnimationEvent(e,i,o,a,s,u,d)):this._parseRegularEvent(e,i,o,a,s,l,u,d)}},{key:"calcPossibleSecurityContexts",value:function(e,i,o){var a=this._schemaRegistry.getMappedPropName(i);return gy(this._schemaRegistry,e,a,o)}},{key:"_parseAnimationEvent",value:function(e,i,o,a,s,l,u){var d=function xo(n,r){return vu(n,".",r)}(e,[e,""]),h=d[0],g=d[1].toLowerCase(),y=this._parseAction(i,o,s);l.push(new XM(h,g,1,y,a,s,u)),0===h.length&&this._reportError("Animation event name is missing in binding",a),g?"start"!==g&&"done"!==g&&this._reportError('The provided animation output phase value "'.concat(g,'" for "@').concat(h,'" is not supported (use start or done)'),a):this._reportError("The animation trigger output event (@".concat(h,") is missing its phase value name (start or done are currently supported)"),a)}},{key:"_parseRegularEvent",value:function(e,i,o,a,s,l,u,d){var h=function Dc(n,r){return vu(n,":",r)}(e,[null,e]),g=(0,Yn.Z)(h,2),y=g[0],L=g[1],z=this._parseAction(i,o,s);l.push([e,z.source]),u.push(new XM(L,y,0,z,a,s,d))}},{key:"_parseAction",value:function(e,i,o){var a=(o&&o.start||"(unknown").toString(),s=o&&o.start?o.start.offset:0;try{var l=this._exprParser.parseAction(e,i,a,s,this._interpolationConfig);return l&&this._reportExpressionParserErrors(l.errors,o),!l||l.ast instanceof Tu?(this._reportError("Empty expressions are not allowed",o),this._exprParser.wrapLiteralPrimitive("ERROR",a,s)):l}catch(u){return this._reportError("".concat(u),o),this._exprParser.wrapLiteralPrimitive("ERROR",a,s)}}},{key:"_reportError",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Dd.ERROR;this.errors.push(new kh(i,e,o))}},{key:"_reportExpressionParserErrors",value:function(e,i){var a,o=(0,An.Z)(e);try{for(o.s();!(a=o.n()).done;){var s=a.value;this._reportError(s.message,i)}}catch(l){o.e(l)}finally{o.f()}}},{key:"_validatePropertyOrAttributeName",value:function(e,i,o){var a=o?this._schemaRegistry.validateAttribute(e):this._schemaRegistry.validateProperty(e);a.error&&this._reportError(a.msg,i,Dd.ERROR)}}]),n}();function yS(n){return"@"==n[0]}function gy(n,r,e,i){var o=[];return fo.parse(r).forEach(function(a){var s=a.element?[a.element]:n.allKnownElementNames(),l=new Set(a.notSelectors.filter(function(d){return d.isElementSelector()}).map(function(d){return d.element})),u=s.filter(function(d){return!l.has(d)});o.push.apply(o,(0,cn.Z)(u.map(function(d){return n.securityContext(d,e,i)})))}),0===o.length?[Br.NONE]:Array.from(new Set(o)).sort()}function Rd(n,r){var e=r.start-n.start.offset,i=r.end-n.end.offset;return new Xa(n.start.moveBy(e),n.end.moveBy(i),n.fullStart.moveBy(e),n.details)}var Rs,Z4=/^([^:/?#]+):/;function uc(n){var r=null,e=null,i=null,o=!1,a="";n.attrs.forEach(function(u){var d=u.name.toLowerCase();"select"==d?r=u.value:"href"==d?e=u.value:"rel"==d?i=u.value:"ngNonBindable"==u.name?o=!0:"ngProjectAs"==u.name&&u.value.length>0&&(a=u.value)}),r=function G4(n){return null===n||0===n.length?"*":n}(r);var s=n.name.toLowerCase(),l=Rs.OTHER;return Ii(s)?l=Rs.NG_CONTENT:"style"==s?l=Rs.STYLE:"script"==s?l=Rs.SCRIPT:"link"==s&&"stylesheet"==i&&(l=Rs.STYLESHEET),new j4(l,r,e,o,a)}!function(n){n[n.NG_CONTENT=0]="NG_CONTENT",n[n.STYLE=1]="STYLE",n[n.STYLESHEET=2]="STYLESHEET",n[n.SCRIPT=3]="SCRIPT",n[n.OTHER=4]="OTHER"}(Rs||(Rs={}));var j4=(0,U.Z)(function n(r,e,i,o,a){(0,B.Z)(this,n),this.type=r,this.selectAttr=e,this.hrefAttr=i,this.nonBindable=o,this.projectAs=a});var _V=/^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/,cc_BANANA_BOX={start:"[(",end:")]"},cc_PROPERTY={start:"[",end:"]"},cc_EVENT={start:"(",end:")"};function t1(n,r,e){var i=new gV(r,e),s={nodes:Nc(i,n),errors:r.errors.concat(i.errors),styleUrls:i.styleUrls,styles:i.styles,ngContentSelectors:i.ngContentSelectors};return e.collectCommentNodes&&(s.commentNodes=i.commentNodes),s}var es,gV=function(){function n(r,e){(0,B.Z)(this,n),this.bindingParser=r,this.options=e,this.errors=[],this.styles=[],this.styleUrls=[],this.ngContentSelectors=[],this.commentNodes=[],this.inI18nBlock=!1}return(0,U.Z)(n,[{key:"visitElement",value:function(e){var i=this,o=zv(e.i18n);o&&(this.inI18nBlock&&this.reportError("Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.",e.sourceSpan),this.inI18nBlock=!0);var a=uc(e);if(a.type===Rs.SCRIPT)return null;if(a.type===Rs.STYLE){var s=function kS(n){return 1===n.children.length&&n.children[0]instanceof Su?n.children[0].value:null}(e);return null!==s&&this.styles.push(s),null}if(a.type===Rs.STYLESHEET&&function L4(n){if(null==n||0===n.length||"/"==n[0])return!1;var r=n.match(Z4);return null===r||"package"==r[1]||"asset"==r[1]}(a.hrefAttr))return this.styleUrls.push(a.hrefAttr),null;var Se,l=function oi(n){return"ng-template"===Oi(n)[1]}(e.name),u=[],d=[],h=[],g=[],y=[],L={},z=[],q=[],re=!1,ae=(0,An.Z)(e.attrs);try{for(ae.s();!(Se=ae.n()).done;){var Ce=Se.value,Ee=!1,Ke=wS(Ce.name),st=!1;if(Ce.i18n&&(L[Ce.name]=Ce.i18n),Ke.startsWith("*")){re&&this.reportError("Can't have multiple template bindings on one element. Use only one attribute prefixed with *",Ce.sourceSpan),st=!0,re=!0;var De=Ce.value,it=Ke.substring("*".length),ft=[],bt=Ce.valueSpan?Ce.valueSpan.start.offset:Ce.sourceSpan.start.offset+Ce.name.length;this.bindingParser.parseInlineTemplateBinding(it,De,Ce.sourceSpan,bt,[],z,ft,!0),q.push.apply(q,(0,cn.Z)(ft.map(function(_r){return new CM(_r.name,_r.value,_r.sourceSpan,_r.keySpan,_r.valueSpan)})))}else Ee=this.parseAttribute(l,Ce,[],u,d,h,g);!Ee&&!st&&y.push(this.visitAttribute(Ce))}}catch(_r){ae.e(_r)}finally{ae.f()}var Pe,$e=Nc(a.nonBindable?vV:this,e.children);if(a.type===Rs.NG_CONTENT){e.children&&!e.children.every(function(_r){return function M6(n){return n instanceof Su&&0==n.value.trim().length}(_r)||function S6(n){return n instanceof fy}(_r)})&&this.reportError(" element cannot have content.",e.sourceSpan);var ct=a.selectAttr,Bt=e.attrs.map(function(_r){return i.visitAttribute(_r)});Pe=new RP(ct,Bt,e.sourceSpan,e.i18n),this.ngContentSelectors.push(ct)}else if(l){var Ht=this.extractAttributes(e.name,u,L);Pe=new Sd(e.name,y,Ht.bound,d,[],$e,g,h,e.sourceSpan,e.startSourceSpan,e.endSourceSpan,e.i18n)}else{var Pt=this.extractAttributes(e.name,u,L);Pe=new hh(e.name,y,Pt.bound,d,$e,g,e.sourceSpan,e.startSourceSpan,e.endSourceSpan,e.i18n)}if(re){var Tn=this.extractAttributes("ng-template",z,L),jn=[];Tn.literal.forEach(function(_r){return jn.push(_r)}),Tn.bound.forEach(function(_r){return jn.push(_r)});var zn=Pe instanceof hh?{attributes:Pe.attributes,inputs:Pe.inputs,outputs:Pe.outputs}:{attributes:[],inputs:[],outputs:[]},ar=l&&o?void 0:e.i18n,kr=Pe instanceof Sd?null:Pe.name;Pe=new Sd(kr,zn.attributes,zn.inputs,zn.outputs,jn,[Pe],[],q,e.sourceSpan,e.startSourceSpan,e.endSourceSpan,ar)}return o&&(this.inI18nBlock=!1),Pe}},{key:"visitAttribute",value:function(e){return new bM(e.name,e.value,e.sourceSpan,e.keySpan,e.valueSpan,e.i18n)}},{key:"visitText",value:function(e){return this._visitTextWithInterpolation(e.value,e.sourceSpan,e.tokens,e.i18n)}},{key:"visitExpansion",value:function(e){var i=this;if(!e.i18n)return null;if(!zv(e.i18n))throw new Error('Invalid type "'.concat(e.i18n.constructor,'" for "i18n" property of ').concat(e.sourceSpan.toString(),'. Expected a "Message"'));var o=e.i18n,a={},s={};return Object.keys(o.placeholders).forEach(function(l){var u=o.placeholders[l];if(l.startsWith("VAR_")){var d=l.trim(),h=i.bindingParser.parseInterpolationExpression(u.text,u.sourceSpan);a[d]=new yM(h,u.sourceSpan)}else s[l]=i._visitTextWithInterpolation(u.text,u.sourceSpan,null)}),new jv(a,s,e.sourceSpan,o)}},{key:"visitExpansionCase",value:function(e){return null}},{key:"visitComment",value:function(e){return this.options.collectCommentNodes&&this.commentNodes.push(new Fv(e.value||"",e.sourceSpan)),null}},{key:"extractAttributes",value:function(e,i,o){var a=this,s=[],l=[];return i.forEach(function(u){var d=o[u.name];if(u.isLiteral)l.push(new bM(u.name,u.expression.source||"",u.sourceSpan,u.keySpan,u.valueSpan,d));else{var h=a.bindingParser.createBoundElementProperty(e,u,!0,!1);s.push(Uv.fromBoundElementProperty(h,d))}}),{bound:s,literal:l}}},{key:"parseAttribute",value:function(e,i,o,a,s,l,u){var d,h=wS(i.name),g=i.value,y=i.sourceSpan,L=i.valueSpan?i.valueSpan.start.offset:y.start.offset;function z(jn,zn,ar){var kr=i.name.length-h.length,_r=jn.start.moveBy(zn.length+kr),Wr=_r.moveBy(ar.length);return new Xa(_r,Wr,_r,ar)}var q=h.match(_V);if(q){if(null!=q[1]){var re=q[7],ae=z(y,q[1],re);this.bindingParser.parsePropertyBinding(re,g,!1,y,L,i.valueSpan,o,a,ae)}else if(q[2])if(e){var Se=q[7],Ce=z(y,q[2],Se);this.parseVariable(Se,g,y,Ce,i.valueSpan,l)}else this.reportError('"let-" is only supported on ng-template elements.',y);else if(q[3]){var Ee=q[7],Ke=z(y,q[3],Ee);this.parseReference(Ee,g,y,Ke,i.valueSpan,u)}else if(q[4]){var st=[],De=q[7],it=z(y,q[4],De);this.bindingParser.parseEvent(De,g,!1,y,i.valueSpan||y,o,st,it),n1(st,s)}else if(q[5]){var ft=q[7],bt=z(y,q[5],ft);this.bindingParser.parsePropertyBinding(ft,g,!1,y,L,i.valueSpan,o,a,bt),this.parseAssignmentEvent(ft,g,y,i.valueSpan,o,s,bt)}else if(q[6]){var $e=z(y,"",h);this.bindingParser.parseLiteralAttr(h,g,y,L,i.valueSpan,o,a,$e)}return!0}var Pe=null;if(h.startsWith(cc_BANANA_BOX.start)?Pe=cc_BANANA_BOX:h.startsWith(cc_PROPERTY.start)?Pe=cc_PROPERTY:h.startsWith(cc_EVENT.start)&&(Pe=cc_EVENT),null!==Pe&&h.endsWith(Pe.end)&&h.length>Pe.start.length+Pe.end.length){var ct=h.substring(Pe.start.length,h.length-Pe.end.length),Bt=z(y,Pe.start,ct);if(Pe.start===cc_BANANA_BOX.start)this.bindingParser.parsePropertyBinding(ct,g,!1,y,L,i.valueSpan,o,a,Bt),this.parseAssignmentEvent(ct,g,y,i.valueSpan,o,s,Bt);else if(Pe.start===cc_PROPERTY.start)this.bindingParser.parsePropertyBinding(ct,g,!1,y,L,i.valueSpan,o,a,Bt);else{var Ht=[];this.bindingParser.parseEvent(ct,g,!1,y,i.valueSpan||y,o,Ht,Bt),n1(Ht,s)}return!0}var Pt=z(y,"",h);return this.bindingParser.parsePropertyInterpolation(h,g,y,i.valueSpan,o,a,Pt,null!==(d=i.valueTokens)&&void 0!==d?d:null)}},{key:"_visitTextWithInterpolation",value:function(e,i,o,a){var s=a6(e),l=this.bindingParser.parseInterpolation(s,i,o);return l?new yM(l,i,a):new vC(s,i)}},{key:"parseVariable",value:function(e,i,o,a,s,l){e.indexOf("-")>-1?this.reportError('"-" is not allowed in variable names',o):0===e.length&&this.reportError("Variable does not have a name",o),l.push(new CM(e,i,o,a,s))}},{key:"parseReference",value:function(e,i,o,a,s,l){e.indexOf("-")>-1?this.reportError('"-" is not allowed in reference names',o):0===e.length?this.reportError("Reference does not have a name",o):l.some(function(u){return u.name===e})&&this.reportError('Reference "#'.concat(e,'" is defined more than once'),o),l.push(new Hv(e,i,o,a,s))}},{key:"parseAssignmentEvent",value:function(e,i,o,a,s,l,u){var d=[];this.bindingParser.parseEvent("".concat(e,"Change"),"".concat(i," =$event"),!0,o,a||o,s,d,u),n1(d,l)}},{key:"reportError",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Dd.ERROR;this.errors.push(new kh(i,e,o))}}]),n}(),CS=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitElement",value:function(e){var i=uc(e);if(i.type===Rs.SCRIPT||i.type===Rs.STYLE||i.type===Rs.STYLESHEET)return null;var o=Nc(this,e.children,null);return new hh(e.name,Nc(this,e.attrs),[],[],o,[],e.sourceSpan,e.startSourceSpan,e.endSourceSpan)}},{key:"visitComment",value:function(e){return null}},{key:"visitAttribute",value:function(e){return new bM(e.name,e.value,e.sourceSpan,e.keySpan,e.valueSpan,e.i18n)}},{key:"visitText",value:function(e){return new vC(e.value,e.sourceSpan)}},{key:"visitExpansion",value:function(e){return null}},{key:"visitExpansionCase",value:function(e){return null}}]),n}(),vV=new CS;function wS(n){return/^data-/i.test(n)?n.substring(5):n}function n1(n,r){r.push.apply(r,(0,cn.Z)(n.map(function(e){return u_.fromParsedEvent(e)})))}function r1(){return{getUniqueId:Wv(),icus:new Map}}!function(n){n[n.ELEMENT=0]="ELEMENT",n[n.TEMPLATE=1]="TEMPLATE"}(es||(es={}));var i1=function(){function n(r,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0;(0,B.Z)(this,n),this.index=r,this.ref=e,this.level=i,this.templateIndex=o,this.meta=a,this.registry=s,this.bindings=new Set,this.placeholders=new Map,this.isEmitted=!1,this._unresolvedCtxCount=0,this._registry=s||r1(),this.id=this._registry.getUniqueId()}return(0,U.Z)(n,[{key:"appendTag",value:function(e,i,o,a){if(!i.isVoid||!a){var s=i.isVoid||!a?i.startName:i.closeName,l={type:e,index:o,ctx:this.id,isVoid:i.isVoid,closed:a};kC(this.placeholders,s,l)}}},{key:"icus",get:function(){return this._registry.icus}},{key:"isRoot",get:function(){return 0===this.level}},{key:"isResolved",get:function(){return 0===this._unresolvedCtxCount}},{key:"getSerializedPlaceholders",value:function(){var e=new Map;return this.placeholders.forEach(function(i,o){return e.set(o,i.map(E6))}),e}},{key:"appendBinding",value:function(e){this.bindings.add(e)}},{key:"appendIcu",value:function(e,i){kC(this._registry.icus,e,i)}},{key:"appendBoundText",value:function(e){var i=this;zP(e,this.bindings.size,this.id).forEach(function(a,s){return kC.apply(void 0,[i.placeholders,s].concat((0,cn.Z)(a)))})}},{key:"appendTemplate",value:function(e,i){this.appendTag(es.TEMPLATE,e,i,!1),this.appendTag(es.TEMPLATE,e,i,!0),this._unresolvedCtxCount++}},{key:"appendElement",value:function(e,i,o){this.appendTag(es.ELEMENT,e,i,o)}},{key:"appendProjection",value:function(e,i){this.appendTag(es.ELEMENT,e,i,!1),this.appendTag(es.ELEMENT,e,i,!0)}},{key:"forkChildContext",value:function(e,i,o){return new n(e,this.ref,this.level+1,i,o,this._registry)}},{key:"reconcileChildContext",value:function(e){var i=this;["start","close"].forEach(function(a){var s=e.meta["".concat(a,"Name")],u=(i.placeholders.get(s)||[]).find(o1(i.id,e.templateIndex));u&&(u.ctx=e.id)}),e.placeholders.forEach(function(a,s){var l=i.placeholders.get(s);if(l){var u=l.findIndex(o1(e.id,e.templateIndex));if(u>=0){var d=s.startsWith("CLOSE");if(s.endsWith("NG-TEMPLATE"))l.splice.apply(l,[u+(d?0:1),0].concat((0,cn.Z)(a)));else a[d?a.length-1:0].tmpl=l[u],l.splice.apply(l,[u,1].concat((0,cn.Z)(a)))}else l.push.apply(l,(0,cn.Z)(a));i.placeholders.set(s,l)}else i.placeholders.set(s,a)}),this._unresolvedCtxCount--}}]),n}();function Ph(n,r,e,i){var o=i?"/":"";return d_("".concat(o).concat(n).concat(r),e)}function TS(n,r,e){var i=r.index,o=r.ctx;return r.isVoid?Ph(n,i,o)+Ph(n,i,o,!0):Ph(n,i,o,e)}function o1(n,r){return function(e){return"object"==typeof e&&e.type===es.TEMPLATE&&e.index===r&&e.ctx===n}}function E6(n){var r=function(a,s){return TS("#",a,s)},e=function(a,s){return TS("*",a,s)};switch(n.type){case es.ELEMENT:return n.closed?r(n,!0)+(n.tmpl?e(n.tmpl,!0):""):n.tmpl?e(n.tmpl)+r(n)+(n.isVoid?e(n.tmpl,!0):""):r(n);case es.TEMPLATE:return e(n,n.closed);default:return n}}var W4=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"visitText",value:function(e){return e.value}},{key:"visitContainer",value:function(e){var i=this;return e.children.map(function(o){return o.visit(i)}).join("")}},{key:"visitIcu",value:function(e){var i=this,o=Object.keys(e.cases).map(function(s){return"".concat(s," {").concat(e.cases[s].visit(i),"}")});return"{".concat(e.expressionPlaceholder,", ").concat(e.type,", ").concat(o.join(" "),"}")}},{key:"visitTagPlaceholder",value:function(e){var i=this;return e.isVoid?this.formatPh(e.startName):"".concat(this.formatPh(e.startName)).concat(e.children.map(function(o){return o.visit(i)}).join("")).concat(this.formatPh(e.closeName))}},{key:"visitPlaceholder",value:function(e){return this.formatPh(e.name)}},{key:"visitIcuPlaceholder",value:function(e,i){return this.formatPh(e.name)}},{key:"formatPh",value:function(e){return"{".concat(Vv(e,!1),"}")}}]),n}(),V4=new W4;function R_(n){return n.visit(V4)}var x6={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"},yV=function(){function n(){(0,B.Z)(this,n),this._placeHolderNameCounts={},this._signatureToName={}}return(0,U.Z)(n,[{key:"getStartTagPlaceholderName",value:function(e,i,o){var a=this._hashTag(e,i,o);if(this._signatureToName[a])return this._signatureToName[a];var s=e.toUpperCase(),l=x6[s]||"TAG_".concat(s),u=this._generateUniqueName(o?l:"START_".concat(l));return this._signatureToName[a]=u,u}},{key:"getCloseTagPlaceholderName",value:function(e){var i=this._hashClosingTag(e);if(this._signatureToName[i])return this._signatureToName[i];var o=e.toUpperCase(),a=x6[o]||"TAG_".concat(o),s=this._generateUniqueName("CLOSE_".concat(a));return this._signatureToName[i]=s,s}},{key:"getPlaceholderName",value:function(e,i){var o=e.toUpperCase(),a="PH: ".concat(o,"=").concat(i);if(this._signatureToName[a])return this._signatureToName[a];var s=this._generateUniqueName(o);return this._signatureToName[a]=s,s}},{key:"getUniquePlaceholder",value:function(e){return this._generateUniqueName(e.toUpperCase())}},{key:"_hashTag",value:function(e,i,o){return"<".concat(e)+Object.keys(i).sort().map(function(u){return" ".concat(u,"=").concat(i[u])}).join("")+(o?"/>":">"))}},{key:"_hashClosingTag",value:function(e){return this._hashTag("/".concat(e),{},!1)}},{key:"_generateUniqueName",value:function(e){if(!this._placeHolderNameCounts.hasOwnProperty(e))return this._placeHolderNameCounts[e]=1,e;var o=this._placeHolderNameCounts[e];return this._placeHolderNameCounts[e]=o+1,"".concat(e,"_").concat(o)}}]),n}(),Y4=new lS(new j3);function bV(n){var r=new q4(Y4,n);return function(e,i,o,a,s){return r.toI18nMessage(e,i,o,a,s)}}function K4(n,r){return r}var q4=function(){function n(r,e){(0,B.Z)(this,n),this._expressionParser=r,this._interpolationConfig=e}return(0,U.Z)(n,[{key:"toI18nMessage",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",s=arguments.length>4?arguments[4]:void 0,l={isIcu:1==e.length&&e[0]instanceof O_,icuDepth:0,placeholderRegistry:new yV,placeholderToContent:{},placeholderToMessage:{},visitNodeFn:s||K4},u=Nc(this,e,l);return new Tf(u,l.placeholderToContent,l.placeholderToMessage,i,o,a)}},{key:"visitElement",value:function(e,i){var o,a=Nc(this,e.children,i),s={};e.attrs.forEach(function(g){s[g.name]=g.value});var l=ka(e.name).isVoid,u=i.placeholderRegistry.getStartTagPlaceholderName(e.name,s,l);i.placeholderToContent[u]={text:e.startSourceSpan.toString(),sourceSpan:e.startSourceSpan};var d="";l||(d=i.placeholderRegistry.getCloseTagPlaceholderName(e.name),i.placeholderToContent[d]={text:""),sourceSpan:null!==(o=e.endSourceSpan)&&void 0!==o?o:e.sourceSpan});var h=new KW(e.name,s,u,d,a,l,e.sourceSpan,e.startSourceSpan,e.endSourceSpan);return i.visitNodeFn(e,h)}},{key:"visitAttribute",value:function(e,i){var o=void 0===e.valueTokens||1===e.valueTokens.length?new wM(e.value,e.valueSpan||e.sourceSpan):this._visitTextWithInterpolation(e.valueTokens,e.valueSpan||e.sourceSpan,i,e.i18n);return i.visitNodeFn(e,o)}},{key:"visitText",value:function(e,i){var o=1===e.tokens.length?new wM(e.value,e.sourceSpan):this._visitTextWithInterpolation(e.tokens,e.sourceSpan,i,e.i18n);return i.visitNodeFn(e,o)}},{key:"visitComment",value:function(e,i){return null}},{key:"visitExpansion",value:function(e,i){var o=this;i.icuDepth++;var a={},s=new LP(e.switchValue,e.type,a,e.sourceSpan);if(e.cases.forEach(function(h){a[h.value]=new c_(h.expression.map(function(g){return g.visit(o,i)}),h.expSourceSpan)}),i.icuDepth--,i.isIcu||i.icuDepth>0){var l=i.placeholderRegistry.getUniquePlaceholder("VAR_".concat(e.type));return s.expressionPlaceholder=l,i.placeholderToContent[l]={text:e.switchValue,sourceSpan:e.switchValueSourceSpan},i.visitNodeFn(e,s)}var u=i.placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString());i.placeholderToMessage[u]=this.toI18nMessage([e],"","","",void 0);var d=new bC(s,u,e.sourceSpan);return i.visitNodeFn(e,d)}},{key:"visitExpansionCase",value:function(e,i){throw new Error("Unreachable code")}},{key:"_visitTextWithInterpolation",value:function(e,i,o,a){var d,s=[],l=!1,u=(0,An.Z)(e);try{for(u.s();!(d=u.n()).done;){var h=d.value;switch(h.type){case 8:case 17:l=!0;var g=h.parts[1],y=SS(g)||"INTERPOLATION",L=o.placeholderRegistry.getPlaceholderName(y,g);o.placeholderToContent[L]={text:h.parts.join(""),sourceSpan:h.sourceSpan},s.push(new ZP(g,L,h.sourceSpan));break;default:if(h.parts[0].length>0){var z=s[s.length-1];z instanceof wM?(z.value+=h.parts[0],z.sourceSpan=new Xa(z.sourceSpan.start,h.sourceSpan.end,z.sourceSpan.fullStart,z.sourceSpan.details)):s.push(new wM(h.parts[0],h.sourceSpan))}}}}catch(q){u.e(q)}finally{u.f()}return l?(function J4(n,r){if(r instanceof Tf&&(function D6(n){var r=n.nodes;if(1!==r.length||!(r[0]instanceof c_))throw new Error("Unexpected previous i18n message - expected it to consist of only a single `Container` node.")}(r),r=r.nodes[0]),r instanceof c_){!function MS(n,r){if(n.length!==r.length)throw new Error("The number of i18n message children changed between first and second pass.");if(n.some(function(e,i){return r[i].constructor!==e.constructor}))throw new Error("The types of the i18n message children changed between first and second pass.")}(r.children,n);for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:Vl,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,B.Z)(this,n),this.interpolationConfig=r,this.keepI18nAttrs=e,this.enableI18nLegacyMessageIdFormat=i,this.hasI18nMeta=!1,this._errors=[],this._createI18nMessage=bV(this.interpolationConfig)}return(0,U.Z)(n,[{key:"_generateI18nMessage",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2?arguments[2]:void 0,a=this._parseMetadata(i),s=a.meaning,l=a.description,u=a.customId,d=this._createI18nMessage(e,s,l,u,o);return this._setMessageId(d,i),this._setLegacyIds(d,i),d}},{key:"visitAllWithErrors",value:function(e){var i=this,o=e.map(function(a){return a.visit(i,null)});return new t6(o,this._errors)}},{key:"visitElement",value:function(e){var i=void 0;if(function SM(n){return n.attrs.some(function(r){return MM(r.name)})}(e)){this.hasI18nMeta=!0;var l,o=[],a={},s=(0,An.Z)(e.attrs);try{for(s.s();!(l=s.n()).done;){var u=l.value;if("i18n"===u.name){var d=e.i18n||u.value;0===(i=this._generateI18nMessage(e.children,d,$4)).nodes.length&&(i=void 0),e.i18n=i}else if(u.name.startsWith(Gv)){var h=u.name.slice(Gv.length);vS(e.name,h)?this._reportError(u,"Translating attribute '".concat(h,"' is disallowed for security reasons.")):a[h]=u.value}else o.push(u)}}catch(q){s.e(q)}finally{s.f()}if(Object.keys(a).length){var y,g=(0,An.Z)(o);try{for(g.s();!(y=g.n()).done;){var L=y.value,z=a[L.name];void 0!==z&&L.value&&(L.i18n=this._generateI18nMessage([L],L.i18n||z))}}catch(q){g.e(q)}finally{g.f()}}this.keepI18nAttrs||(e.attrs=o)}return Nc(this,e.children,i),e}},{key:"visitExpansion",value:function(e,i){var o,a=e.i18n;if(this.hasI18nMeta=!0,a instanceof bC){var s=a.name;EM(o=this._generateI18nMessage([e],a)).name=s,null!==i&&(i.placeholderToMessage[s]=o)}else o=this._generateI18nMessage([e],i||a);return e.i18n=o,e}},{key:"visitText",value:function(e){return e}},{key:"visitAttribute",value:function(e){return e}},{key:"visitComment",value:function(e){return e}},{key:"visitExpansionCase",value:function(e){return e}},{key:"_parseMetadata",value:function(e){return"string"==typeof e?function n8(){var r,e,i,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(n=n.trim()){var s,o=n.indexOf("@@"),a=n.indexOf("|"),l=o>-1?[n.slice(0,o),n.slice(o+2)]:[n,""],u=(0,Yn.Z)(l,2);s=u[0],r=u[1];var d=a>-1?[s.slice(0,a),s.slice(a+1)]:["",s],h=(0,Yn.Z)(d,2);e=h[0],i=h[1]}return{customId:r,meaning:e,description:i}}(e):e instanceof Tf?e:{}}},{key:"_setMessageId",value:function(e,i){e.id||(e.id=i instanceof Tf&&i.id||_f(e))}},{key:"_setLegacyIds",value:function(e,i){if(this.enableI18nLegacyMessageIdFormat)e.legacyIds=[ih(e),Js(e)];else if("string"!=typeof i){var o=i instanceof Tf?i:i instanceof bC?i.previousMessage:void 0;e.legacyIds=o?o.legacyIds:[]}}},{key:"_reportError",value:function(e,i){this._errors.push(new X4(e.sourceSpan,i))}}]),n}();function CV(n,r,e,i){var o=function i8(n){return n.nodes.map(function(r){return r.visit(r8,null)}).join("")}(r),a=[on(o)];Object.keys(i).length&&(a.push(I_(TC(i,!0),!0)),a.push(I_({original_code:Ds(Object.keys(i).map(function(u){return{key:Vv(u),quoted:!0,value:r.placeholders[u]?on(r.placeholders[u].sourceSpan.toString()):on(r.placeholderToMessage[u].nodes.map(function(d){return d.sourceSpan.toString()}).join(""))}}))})));var s=e.set(qr("goog.getMsg").callFn(a)).toConstDecl();return s.addLeadingComment(function a1(n){var r=[];return n.description?r.push({tagName:"desc",text:n.description}):r.push({tagName:"suppress",text:"{msgDescriptions}"}),n.meaning&&r.push({tagName:"meaning",text:n.meaning}),pM(r)}(r)),[s,new uh(n.set(e))]}var yy=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"formatPh",value:function(e){return"{$".concat(Vv(e),"}")}},{key:"visitText",value:function(e){return e.value}},{key:"visitContainer",value:function(e){var i=this;return e.children.map(function(o){return o.visit(i)}).join("")}},{key:"visitIcu",value:function(e){return R_(e)}},{key:"visitTagPlaceholder",value:function(e){var i=this;return e.isVoid?this.formatPh(e.startName):"".concat(this.formatPh(e.startName)).concat(e.children.map(function(o){return o.visit(i)}).join("")).concat(this.formatPh(e.closeName))}},{key:"visitPlaceholder",value:function(e){return this.formatPh(e.name)}},{key:"visitIcuPlaceholder",value:function(e,i){return this.formatPh(e.name)}}]),n}(),r8=new yy;function ES(n,r,e){var i=function Bc(n){var r=[],e=new o8(n.placeholderToMessage,r);return n.nodes.forEach(function(i){return i.visit(e)}),function Ls(n){var r=[],e=[];n[0]instanceof rn&&r.push(Ld(n[0].sourceSpan.start));for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=n.type,o=n.name,a=n.target,s=n.phase,l=n.handler;if(a&&!Gf.has(a))throw new Error("Unexpected global target '".concat(a,"' defined for '").concat(o,"' event.\n Supported list of global targets: ").concat(Array.from(Gf.keys()),"."));var u="$event",d=new Set,h=null===e||0===e.bindingLevel?qr(sc):e.getOrCreateSharedContextVar(0),g=QF(e,h,l,"b",n.handlerSpan,d,l1),y=[],L=null==e?void 0:e.variableDeclarations(),z=null==e?void 0:e.restoreViewStatement();if(L&&y.push.apply(y,(0,cn.Z)(L)),y.push.apply(y,(0,cn.Z)(g)),z){y.unshift(z);var q=y[y.length-1];q instanceof Sa?y[y.length-1]=new Sa(gh(q.value.sourceSpan,Ne.resetView,[q.value])):y.push(new uh(gh(null,Ne.resetView,[])))}var re=1===i?hF(o,s):o,ae=r&&Th(r),Se=[];d.has(u)&&Se.push(new ma(u,vl));var Ce=oa(Se,y,Ma,null,ae),Ee=[on(re),Ce];return a&&Ee.push(on(!1),Xn(Gf.get(a))),Ee}function Z_(){return{prepareStatements:[],constExpressions:[],i18nVarRefsCache:new Map}}var N_=function(){function n(r,e){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0,l=arguments.length>5?arguments[5]:void 0,u=arguments.length>6?arguments[6]:void 0,d=arguments.length>7?arguments[7]:void 0,h=arguments.length>8?arguments[8]:void 0,g=arguments.length>9?arguments[9]:void 0,y=arguments.length>10&&void 0!==arguments[10]?arguments[10]:Z_();(0,B.Z)(this,n),this.constantPool=r,this.level=o,this.contextName=a,this.i18nContext=s,this.templateIndex=l,this.templateName=u,this._namespace=d,this.i18nUseExternalIds=g,this._constants=y,this._dataIndex=0,this._bindingContext=0,this._prefixCode=[],this._creationCodeFns=[],this._updateCodeFns=[],this._currentIndex=0,this._tempVariables=[],this._nestedTemplateFns=[],this.i18n=null,this._pureFunctionSlots=0,this._bindingSlots=0,this._ngContentReservedSlots=[],this._ngContentSelectorsOffset=0,this._implicitReceiverExpr=null,this.visitReference=vh,this.visitVariable=vh,this.visitTextAttribute=vh,this.visitBoundAttribute=vh,this.visitBoundEvent=vh,this._bindingScope=e.nestedScope(o),this.fileBasedI18nSuffix=h.replace(/[^A-Za-z0-9]/g,"_")+"_",this._valueConverter=new Zh(r,function(){return i.allocateDataSlot()},function(L){return i.allocatePureFunctionSlots(L)},function(L,z,q,re){i._bindingScope.set(i.level,z,re),i.creationInstruction(null,Ne.pipe,[on(q),on(L)])})}return(0,U.Z)(n,[{key:"buildTemplateFunction",value:function(e,i){var o=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0;this._ngContentSelectorsOffset=a,this._namespace!==Ne.namespaceHTML&&this.creationInstruction(null,this._namespace),i.forEach(function(ae){return o.registerContextVariables(ae)});var l=this.i18nContext||zv(s)&&!wC(s)&&!(d1(e)&&e[0].i18n===s),u=PS(e);if(l&&this.i18nStart(null,s,u),mh(this,e),this._pureFunctionSlots+=this._bindingSlots,this._valueConverter.updatePipeSlotOffsets(this._bindingSlots),this._nestedTemplateFns.forEach(function(ae){return ae()}),0===this.level&&this._ngContentReservedSlots.length){var d=[];if(this._ngContentReservedSlots.length>1||"*"!==this._ngContentReservedSlots[0]){var h=this._ngContentReservedSlots.map(function(ae){return"*"!==ae?gu(ae):ae});d.push(this.constantPool.getConstLiteral(Wl(h),!0))}this.creationInstruction(null,Ne.projectionDef,d,!0)}l&&this.i18nEnd(null,u);var g=SC(this._creationCodeFns),y=SC(this._updateCodeFns),L=this._bindingScope.viewSnapshotStatements(),z=this._bindingScope.variableDeclarations().concat(this._tempVariables),q=g.length>0?[ql(1,L.concat(g))]:[],re=y.length>0?[ql(2,z.concat(y))]:[];return oa([new ma(_h,_e),new ma(sc,null)],[].concat((0,cn.Z)(this._prefixCode),q,re),Ma,null,this.templateName)}},{key:"getLocal",value:function(e){return this._bindingScope.get(e)}},{key:"notifyImplicitReceiverUse",value:function(){this._bindingScope.notifyImplicitReceiverUse()}},{key:"maybeRestoreView",value:function(){this._bindingScope.maybeRestoreView()}},{key:"i18nTranslate",value:function(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=a||this.i18nGenerateMainBlockVar(),u=this.i18nGenerateClosureVar(e.id),d=RS(e,l,u,o,s);return(i=this._constants.prepareStatements).push.apply(i,(0,cn.Z)(d)),l}},{key:"registerContextVariables",value:function(e){var i=this._bindingScope.freshReferenceName(),o=this.level,a=qr(e.name+i);this._bindingScope.set(o,e.name,a,1,function(s,l){var u;s.bindingLevel===o?s.isListenerScope()&&s.hasRestoreViewVariable()?(u=qr(YP),s.notifyRestoredViewContextUse()):u=qr(sc):u=s.getSharedContextName(o)||u1(l);return[a.set(u.prop(e.value||"$implicit")).toConstDecl()]})}},{key:"i18nAppendBindings",value:function(e){var i=this;e.length>0&&e.forEach(function(o){return i.i18n.appendBinding(o)})}},{key:"i18nBindProps",value:function(e){var i=this,o={};return Object.keys(e).forEach(function(a){var s=e[a];if(s instanceof vC)o[a]=on(s.value);else{var l=s.value.visit(i._valueConverter);if(i.allocateBindingSlots(l),l instanceof $a){var u=l.strings,d=l.expressions,h=i.i18n,g=h.id,L=function As(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!n.length)return"";for(var i="",o=n.length-1,a=0;a1})||Object.keys(d).length)&&(y=function(z){var q=[z];return Object.keys(d).length&&q.push(I_(d,!0)),gh(null,Ne.i18nPostprocess,q)}),this.i18nTranslate(o,h,e.ref,y)}}},{key:"i18nStart",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0,a=this.allocateDataSlot();this.i18n=this.i18nContext?this.i18nContext.forkChildContext(a,this.templateIndex,i):new i1(a,this.i18nGenerateMainBlockVar(),0,this.templateIndex,i);var s=this.i18n,l=s.id,u=s.ref,d=[on(a),this.addToConsts(u)];l>0&&d.push(on(l)),this.creationInstruction(e,o?Ne.i18n:Ne.i18nStart,d)}},{key:"i18nEnd",value:function(){var e=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1?arguments[1]:void 0;if(!this.i18n)throw new Error("i18nEnd is executed with no i18n context present");this.i18nContext?(this.i18nContext.reconcileChildContext(this.i18n),this.i18nUpdateRef(this.i18nContext)):this.i18nUpdateRef(this.i18n);var a=this.i18n,s=a.index,l=a.bindings;if(l.size){var d,u=(0,An.Z)(l);try{var h=function(){var y=d.value;e.updateInstructionWithAdvance(e.getConstCount()-1,i,Ne.i18nExp,function(){return e.convertPropertyBinding(y)})};for(u.s();!(d=u.n()).done;)h()}catch(g){u.e(g)}finally{u.f()}this.updateInstruction(i,Ne.i18nApply,[on(s)])}o||this.creationInstruction(i,Ne.i18nEnd),this.i18n=null}},{key:"i18nAttributesInstruction",value:function(e,i,o){var a=this,s=!1,l=[];if(i.forEach(function(h){var g=h.i18n,y=h.value.visit(a._valueConverter);if(a.allocateBindingSlots(y),y instanceof $a){var z=xM(zP(g));l.push(on(h.name),a.i18nTranslate(g,z)),y.expressions.forEach(function(q){s=!0,a.updateInstructionWithAdvance(e,o,Ne.i18nExp,function(){return a.convertPropertyBinding(q)})})}}),l.length>0){var u=on(this.allocateDataSlot()),d=this.addToConsts(pi(l));this.creationInstruction(o,Ne.i18nAttributes,[u,d]),s&&this.updateInstruction(o,Ne.i18nApply,[u])}}},{key:"getNamespaceInstruction",value:function(e){switch(e){case"math":return Ne.namespaceMathML;case"svg":return Ne.namespaceSVG;default:return Ne.namespaceHTML}}},{key:"addNamespaceInstruction",value:function(e,i){this._namespace=e,this.creationInstruction(i.startSourceSpan,e)}},{key:"interpolatedUpdateInstruction",value:function(e,i,o,a,s,l){var u=this;this.updateInstructionWithAdvance(i,a.sourceSpan,e,function(){return[on(o)].concat((0,cn.Z)(u.getUpdateInstructionArguments(s)),(0,cn.Z)(l))})}},{key:"visitContent",value:function(e){var i=this.allocateDataSlot(),o=this._ngContentSelectorsOffset+this._ngContentReservedSlots.length,a=[on(i)];this._ngContentReservedSlots.push(e.selector);var s=e.attributes.filter(function(u){return"select"!==u.name.toLowerCase()}),l=this.getAttributeExpressions(e.name,s,[],[]);l.length>0?a.push(on(o),pi(l)):0!==o&&a.push(on(o)),this.creationInstruction(e.sourceSpan,Ne.projection,a),this.i18n&&this.i18n.appendProjection(e.i18n,i)}},{key:"visitElement",value:function(e){var o,a,ae,i=this,s=this.allocateDataSlot(),l=new GC(null),u=!1,d=zv(e.i18n)&&!wC(e.i18n),h=[],g=Oi(e.name),y=(0,Yn.Z)(g,2),L=y[0],z=y[1],q=Ji(e.name),re=(0,An.Z)(e.attributes);try{for(re.s();!(ae=re.n()).done;){var Se=ae.value,Ce=Se.name,Ee=Se.value;"ngNonBindable"===Ce?u=!0:"style"===Ce?l.registerStyleAttr(Ee):"class"===Ce?l.registerClassAttr(Ee):h.push(Se)}}catch(un){re.e(un)}finally{re.f()}var Ke=[on(s)];q||Ke.push(on(z));var st=[],De=[];e.inputs.forEach(function(un){l.registerBoundInput(un)||(0===un.type&&un.i18n?De.push(un):st.push(un))});var it=this.getAttributeExpressions(e.name,h,st,e.outputs,l,[],De);Ke.push(this.addAttrsToConsts(it));var ft=this.prepareRefsArray(e.references);Ke.push(this.addToConsts(ft));var bt=this._namespace,$e=this.getNamespaceInstruction(L);$e!==bt&&this.addNamespaceInstruction($e,e),this.i18n&&this.i18n.appendElement(e.i18n,s);var Pe=!d&&this.i18n?!PS(e.children):e.children.length>0,ct=!l.hasBindingsWithPipes&&0===e.outputs.length&&0===De.length&&!Pe,Bt=!ct&&PS(e.children);if(ct)this.creationInstruction(e.sourceSpan,q?Ne.elementContainer:Ne.element,Kv(Ke));else{if(this.creationInstruction(e.startSourceSpan,q?Ne.elementContainerStart:Ne.elementStart,Kv(Ke)),u&&this.creationInstruction(e.startSourceSpan,Ne.disableBindings),De.length>0&&this.i18nAttributesInstruction(s,De,null!==(o=e.startSourceSpan)&&void 0!==o?o:e.sourceSpan),e.outputs.length>0){var Pt,Ht=(0,An.Z)(e.outputs);try{for(Ht.s();!(Pt=Ht.n()).done;){var Tn=Pt.value;this.creationInstruction(Tn.sourceSpan,Ne.listener,this.prepareListenerParameter(e.name,Tn,s))}}catch(un){Ht.e(un)}finally{Ht.f()}}d&&this.i18nStart(e.startSourceSpan,e.i18n,Bt)}for(var jn=l.buildUpdateLevelInstructions(this._valueConverter),zn=jn.length-1,ar=0;ar<=zn;ar++){var kr=jn[ar];this._bindingSlots+=this.processStylingUpdateInstruction(s,kr)}var _r=on(void 0),Wr=[],Hr=[];st.forEach(function(un){var bn=un.type;if(4===bn){var Nn=un.value.visit(i._valueConverter),rr=!(Nn instanceof Os)||!!Nn.value;i.allocateBindingSlots(Nn),Wr.push({span:un.sourceSpan,paramsOrFn:Bh(function(){return rr?i.convertPropertyBinding(Nn):_r},OP(un.name))})}else{if(un.i18n)return;var gr=un.value.visit(i._valueConverter);if(void 0!==gr){var eo=[],Xu=Oi(un.name),Dv=(0,Yn.Z)(Xu,2),Av=Dv[0],Qm=Dv[1],cC=1===bn,Pa=c1(un.securityContext,cC);if(Pa||function IS(n){return"iframe"===n.toLowerCase()}(e.name)&&S3(un.name)&&(Pa=Xn(Ne.validateIframeAttribute)),Pa&&eo.push(Pa),Av){var yP=on(Av);Pa?eo.push(yP):eo.push(on(null),yP)}if(i.allocateBindingSlots(gr),0===bn)gr instanceof $a?i.interpolatedUpdateInstruction(R6(gr),s,Qm,un,gr,eo):Wr.push({span:un.sourceSpan,paramsOrFn:Bh(function(){return i.convertPropertyBinding(gr)},Qm,eo)});else if(1===bn)if(gr instanceof $a&&yh(gr)>1)i.interpolatedUpdateInstruction(function s8(n){switch(yh(n)){case 3:return Ne.attributeInterpolate1;case 5:return Ne.attributeInterpolate2;case 7:return Ne.attributeInterpolate3;case 9:return Ne.attributeInterpolate4;case 11:return Ne.attributeInterpolate5;case 13:return Ne.attributeInterpolate6;case 15:return Ne.attributeInterpolate7;case 17:return Ne.attributeInterpolate8;default:return Ne.attributeInterpolateV}}(gr),s,Qm,un,gr,eo);else{var GW=gr instanceof $a?gr.expressions[0]:gr;Hr.push({span:un.sourceSpan,paramsOrFn:Bh(function(){return i.convertPropertyBinding(GW)},Qm,eo)})}else i.updateInstructionWithAdvance(s,un.sourceSpan,Ne.classProp,function(){return[on(s),on(Qm),i.convertPropertyBinding(gr)].concat(eo)})}}});for(var Kr=0,Ho=Wr;Kr0&&this.i18nAttributesInstruction(s,re,null!==(o=e.startSourceSpan)&&void 0!==o?o:e.sourceSpan),ae.length>0&&this.templatePropertyBindings(s,ae);var Ce,Se=(0,An.Z)(e.outputs);try{for(Se.s();!(Ce=Se.n()).done;){var Ee=Ce.value;this.creationInstruction(Ee.sourceSpan,Ne.listener,this.prepareListenerParameter("ng_template",Ee,s))}}catch(Ke){Se.e(Ke)}finally{Se.f()}}}},{key:"visitBoundText",value:function(e){var i=this;if(this.i18n){var o=e.value.visit(this._valueConverter);return this.allocateBindingSlots(o),void(o instanceof $a&&(this.i18n.appendBoundText(e.i18n),this.i18nAppendBindings(o.expressions)))}var a=this.allocateDataSlot();this.creationInstruction(e.sourceSpan,Ne.text,[on(a)]);var s=e.value.visit(this._valueConverter);this.allocateBindingSlots(s),s instanceof $a?this.updateInstructionWithAdvance(a,e.sourceSpan,function L6(n){switch(yh(n)){case 1:return Ne.textInterpolate;case 3:return Ne.textInterpolate1;case 5:return Ne.textInterpolate2;case 7:return Ne.textInterpolate3;case 9:return Ne.textInterpolate4;case 11:return Ne.textInterpolate5;case 13:return Ne.textInterpolate6;case 15:return Ne.textInterpolate7;case 17:return Ne.textInterpolate8;default:return Ne.textInterpolateV}}(s),function(){return i.getUpdateInstructionArguments(s)}):pa("Text nodes should be interpolated and never bound directly.")}},{key:"visitText",value:function(e){this.i18n||this.creationInstruction(e.sourceSpan,Ne.text,[on(this.allocateDataSlot()),on(e.value)])}},{key:"visitIcu",value:function(e){var i=!1;this.i18n||(i=!0,this.i18nStart(null,e.i18n,!0));var o=this.i18n,a=this.i18nBindProps(e.vars),s=this.i18nBindProps(e.placeholders),l=e.i18n,u=function(g){var L=TC(Object.assign(Object.assign({},a),s),!1);return gh(null,Ne.i18nPostprocess,[g,I_(L,!0)])};if(wC(o.meta))this.i18nTranslate(l,{},o.ref,u);else{var d=this.i18nTranslate(l,{},void 0,u);o.appendIcu(EM(l).name,d)}return i&&this.i18nEnd(null,!0),null}},{key:"allocateDataSlot",value:function(){return this._dataIndex++}},{key:"getConstCount",value:function(){return this._dataIndex}},{key:"getVarCount",value:function(){return this._pureFunctionSlots}},{key:"getConsts",value:function(){return this._constants}},{key:"getNgContentSelectors",value:function(){return this._ngContentReservedSlots.length?this.constantPool.getConstLiteral(Wl(this._ngContentReservedSlots),!0):null}},{key:"bindingContext",value:function(){return"".concat(this._bindingContext++)}},{key:"templatePropertyBindings",value:function(e,i){var l,o=this,a=[],s=(0,An.Z)(i);try{var u=function(){var z=l.value;if(!(z instanceof Uv))return"continue";var q=z.value.visit(o._valueConverter);if(void 0===q)return"continue";if(o.allocateBindingSlots(q),q instanceof $a){o.interpolatedUpdateInstruction(R6(q),e,z.name,z,q,[])}else a.push({span:z.sourceSpan,paramsOrFn:Bh(function(){return o.convertPropertyBinding(q)},z.name)})};for(s.s();!(l=s.n()).done;)u()}catch(L){s.e(L)}finally{s.f()}for(var h=0,g=a;h4&&void 0!==arguments[4]&&arguments[4];e[s?"unshift":"push"]({span:i,reference:o,paramsOrFn:a})}},{key:"processStylingUpdateInstruction",value:function(e,i){var o=this,a=0;if(i){var l,s=(0,An.Z)(i.calls);try{var u=function(){var h=l.value;a+=h.allocateBindingSlots,o.updateInstructionWithAdvance(e,h.sourceSpan,i.reference,function(){return h.params(function(g){return h.supportsInterpolation&&g instanceof $a?o.getUpdateInstructionArguments(g):o.convertPropertyBinding(g)})})};for(s.s();!(l=s.n()).done;)u()}catch(d){s.e(d)}finally{s.f()}}return a}},{key:"creationInstruction",value:function(e,i,o,a){this.instructionFn(this._creationCodeFns,e,i,o||[],a)}},{key:"updateInstructionWithAdvance",value:function(e,i,o,a){this.addAdvanceInstructionIfNecessary(e,i),this.updateInstruction(i,o,a)}},{key:"updateInstruction",value:function(e,i,o){this.instructionFn(this._updateCodeFns,e,i,o||[])}},{key:"addAdvanceInstructionIfNecessary",value:function(e,i){if(e!==this._currentIndex){var o=e-this._currentIndex;if(o<1)throw new Error("advance instruction can only go forwards");this.instructionFn(this._updateCodeFns,i,Ne.advance,[on(o)]),this._currentIndex=e}}},{key:"allocatePureFunctionSlots",value:function(e){var i=this._pureFunctionSlots;return this._pureFunctionSlots+=e,i}},{key:"allocateBindingSlots",value:function(e){this._bindingSlots+=e instanceof $a?e.expressions.length:1}},{key:"getImplicitReceiverExpr",value:function(){return this._implicitReceiverExpr?this._implicitReceiverExpr:this._implicitReceiverExpr=0===this.level?qr(sc):this._bindingScope.getOrCreateSharedContextVar(0)}},{key:"convertPropertyBinding",value:function(e){var i,o=b3(this,this.getImplicitReceiverExpr(),e,this.bindingContext()),a=o.currValExpr;return(i=this._tempVariables).push.apply(i,(0,cn.Z)(o.stmts)),a}},{key:"getUpdateInstructionArguments",value:function(e){var i,o=function oV(n,r,e,i){var o=new xh(n,r,i,!0),a=o.visitInterpolation(e,ji.Expression);return o.usesImplicitReceiver&&n.notifyImplicitReceiverUse(),{stmts:$M(o,i),args:a.args}}(this,this.getImplicitReceiverExpr(),e,this.bindingContext()),a=o.args,s=o.stmts;return(i=this._tempVariables).push.apply(i,(0,cn.Z)(s)),a}},{key:"getAttributeExpressions",value:function(e,i,o,a,s){var g,L,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[],d=new Set,h=[],y=(0,An.Z)(i);try{for(y.s();!(L=y.n()).done;){var z=L.value;if(z.name===xu&&(g=z),z.i18n){var q=this._constants.i18nVarRefsCache,re=void 0;q.has(z.i18n)?re=q.get(z.i18n):(re=this.i18nTranslate(z.i18n),q.set(z.i18n,re)),h.push(on(z.name),re)}else h.push.apply(h,(0,cn.Z)(AS(z.name)).concat([u8(e,z)]))}}catch(De){y.e(De)}finally{y.f()}function ae(De,it){"string"==typeof De?d.has(De)||(h.push.apply(h,(0,cn.Z)(AS(De))),void 0!==it&&h.push(it),d.add(De)):h.push(on(De))}if(g&&h.push.apply(h,(0,cn.Z)(P6(g))),s&&s.populateInitialStylingAttrs(h),o.length||a.length){for(var Se=h.length,Ce=0;Ce0?this.addToConsts(pi(e)):yf}},{key:"prepareRefsArray",value:function(e){var i=this;return e&&0!==e.length?Wl(p1(e.map(function(a){var s=i.allocateDataSlot(),l=i._bindingScope.freshReferenceName(),u=i.level,d=qr(l);return i._bindingScope.set(u,a.name,d,0,function(h,g){var y=g>0?[u1(g).toStmt()]:[],L=d.set(Xn(Ne.reference).callFn([on(s)]));return y.concat(L.toConstDecl())},!0),[a.name,a.value]}))):yf}},{key:"prepareListenerParameter",value:function(e,i,o){var a=this;return function(){var s=i.name,l=1===i.type?IP(s,i.phase):Th(s),u="".concat(a.templateName,"_").concat(e,"_").concat(l,"_").concat(o,"_listener"),d=a._bindingScope.nestedScope(a._bindingScope.bindingLevel,l1);return Lh(i,u,d)}}}]),n}(),Zh=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this)).constantPool=i,l.allocateSlot=o,l.allocatePureFunctionSlots=a,l.definePipe=s,l._pipeBindExprs=[],l}return(0,U.Z)(e,[{key:"visitPipe",value:function(o,a){var s=this.allocateSlot(),l="PIPE:".concat(s),u=this.allocatePureFunctionSlots(2+o.args.length),d=new Zf(o.span,o.sourceSpan,o.nameSpan,new k_(o.span,o.sourceSpan),l),h=function F_(n){var r=B_[n.length];return{identifier:r||Ne.pipeBindV,isVarLength:!r}}(o.args),g=h.identifier,y=h.isVarLength;this.definePipe(o.name,l,s,Xn(g));var L=[o.exp].concat((0,cn.Z)(o.args)),z=y?this.visitAll([new NC(o.span,o.sourceSpan,L)]):this.visitAll(L),q=new M_(o.span,o.sourceSpan,d,[new Os(o.span,o.sourceSpan,s),new Os(o.span,o.sourceSpan,u)].concat((0,cn.Z)(z)),null);return this._pipeBindExprs.push(q),q}},{key:"updatePipeSlotOffsets",value:function(o){this._pipeBindExprs.forEach(function(a){a.args[1].value+=o})}},{key:"visitLiteralArray",value:function(o,a){var s=this;return new Dh(o.span,o.sourceSpan,this.visitAll(o.expressions),function(l){var u=pi(l);return DS(s.constantPool,u,s.allocatePureFunctionSlots)})}},{key:"visitLiteralMap",value:function(o,a){var s=this;return new Dh(o.span,o.sourceSpan,this.visitAll(o.values),function(l){var u=Ds(l.map(function(d,h){return{key:o.keys[h].key,value:d,quoted:o.keys[h].quoted}}));return DS(s.constantPool,u,s.allocatePureFunctionSlots)})}}]),e}(JF),B_=[Ne.pipeBind1,Ne.pipeBind2,Ne.pipeBind3,Ne.pipeBind4];var O6=[Ne.pureFunction0,Ne.pureFunction1,Ne.pureFunction2,Ne.pureFunction3,Ne.pureFunction4,Ne.pureFunction5,Ne.pureFunction6,Ne.pureFunction7,Ne.pureFunction8];function u1(n){return Xn(Ne.nextContext).callFn(n>1?[on(n)]:[])}function DS(n,r,e){var i=n.getLiteralFactory(r),o=i.literalFactory,a=i.literalFactoryArguments,s=e(1+a.length),l=function xS(n){var r=O6[n.length];return{identifier:r||Ne.pureFunctionV,isVarLength:!r}}(a),u=l.identifier,d=l.isVarLength,h=[on(s),o];return d?h.push(pi(a)):h.push.apply(h,(0,cn.Z)(a)),Xn(u).callFn(h)}function AS(n){var r=Oi(n),e=(0,Yn.Z)(r,2),i=e[0],a=on(e[1]);return i?[on(0),on(i),a]:[a]}var Nh="$$shared_ctx$$",I6=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2?arguments[2]:void 0;if((0,B.Z)(this,n),this.bindingLevel=r,this.parent=e,this.globals=i,this.map=new Map,this.referenceNameIndex=0,this.restoreViewVariable=null,this.usesRestoredViewContext=!1,void 0!==i){var a,o=(0,An.Z)(i);try{for(o.s();!(a=o.n()).done;){var s=a.value;this.set(0,s,qr(s))}}catch(l){o.e(l)}finally{o.f()}}}return(0,U.Z)(n,[{key:"get",value:function(e){for(var i=this;i;){var o=i.map.get(e);if(null!=o)return i!==this&&(o={retrievalLevel:o.retrievalLevel,lhs:o.lhs,declareLocalCallback:o.declareLocalCallback,declare:!1,priority:o.priority},this.map.set(e,o),this.maybeGenerateSharedContextVar(o),this.maybeRestoreView()),o.declareLocalCallback&&!o.declare&&(o.declare=!0),o.lhs;i=i.parent}return 0===this.bindingLevel?null:this.getComponentProperty(e)}},{key:"set",value:function(e,i,o){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,l=arguments.length>5?arguments[5]:void 0;if(this.map.has(i)){if(l)return this;pa("The name ".concat(i," is already defined in scope to be ").concat(this.map.get(i)))}return this.map.set(i,{retrievalLevel:e,lhs:o,declare:!1,declareLocalCallback:s,priority:a}),this}},{key:"getLocal",value:function(e){return this.get(e)}},{key:"notifyImplicitReceiverUse",value:function(){0!==this.bindingLevel&&(this.map.get(Nh+0).declare=!0)}},{key:"nestedScope",value:function(e,i){var o=new n(e,this,i);return e>0&&o.generateSharedContextVar(0),o}},{key:"getOrCreateSharedContextVar",value:function(e){var i=Nh+e;return this.map.has(i)||this.generateSharedContextVar(e),this.map.get(i).lhs}},{key:"getSharedContextName",value:function(e){var i=this.map.get(Nh+e);return i&&i.declare?i.lhs:null}},{key:"maybeGenerateSharedContextVar",value:function(e){if(1===e.priority&&e.retrievalLevel0&&void 0!==arguments[0]?arguments[0]:Vl;return new R4(new lS(new j3),n,OS,[])}function c1(n,r){switch(n){case Br.HTML:return Xn(Ne.sanitizeHtml);case Br.SCRIPT:return Xn(Ne.sanitizeScript);case Br.STYLE:return r?Xn(Ne.sanitizeStyle):null;case Br.URL:return Xn(Ne.sanitizeUrl);case Br.RESOURCE_URL:return Xn(Ne.sanitizeResourceUrl);default:return null}}function u8(n,r){var e=Wl(r.value);if(!vS(n,r.name))return e;switch(OS.securityContext(n,r.name,!0)){case Br.HTML:return Rv(Xn(Ne.trustConstantHtml),new Ue([new Xe(r.value)],[]),void 0,r.valueSpan);case Br.RESOURCE_URL:return Rv(Xn(Ne.trustConstantResourceUrl),new Ue([new Xe(r.value)],[]),void 0,r.valueSpan);default:return e}}function d1(n){return 1===n.length&&n[0]instanceof hh}function f1(n){return n instanceof vC||n instanceof yM||n instanceof jv}function PS(n){return n.every(f1)}function Bh(n,r,e){return function(){var i=n(),o=Array.isArray(i)?i:[i];return e&&o.push.apply(o,(0,cn.Z)(e)),r&&o.unshift(on(r)),o}}var Cy="ngI18nClosureMode";function RS(n,r,e){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4?arguments[4]:void 0,a=[AF(r),Cf(Z6(),CV(r,n,e,i),ES(r,n,TC(i,!1)))];return o&&a.push(new uh(r.set(o(r)))),a}function Z6(){return hC(qr(Cy)).notIdentical(on("undefined",xe)).and(qr(Cy))}function p1(n){return n.reduce(function(r,e){var i=Array.isArray(e)?p1(e):e;return r.concat(i)},[])}var N6=/attr\.([^\]]+)/,ZS="_nghost-".concat("%COMP%"),NS="_ngcontent-".concat("%COMP%");function B6(n,r,e){var i=new Ba,o=gu(n.selector);return i.set("type",n.internalType),o.length>0&&i.set("selectors",Wl(o)),n.queries.length>0&&i.set("contentQueries",function h1(n,r,e){var l,i=[],o=[],a=MC(o,"_t"),s=(0,An.Z)(n);try{for(s.s();!(l=s.n()).done;){var u=l.value;i.push(Xn(Ne.contentQuery).callFn([qr("dirIndex")].concat((0,cn.Z)(US(u,r)))).toStmt());var d=a(),h=Xn(Ne.loadQuery).callFn([]),g=Xn(Ne.queryRefresh).callFn([d.set(h)]),y=qr(sc).prop(u.propertyName).set(u.first?d.prop("first"):d);o.push(g.and(y).toStmt())}}catch(z){s.e(z)}finally{s.f()}var L=e?"".concat(e,"_ContentQueries"):null;return oa([new ma(_h,_e),new ma(sc,null),new ma("dirIndex",null)],[ql(1,i),ql(2,o)],Ma,null,L)}(n.queries,r,n.name)),n.viewQueries.length&&i.set("viewQuery",function j6(n,r,e){var i=[],o=[],a=MC(o,AM);n.forEach(function(l){var u=Xn(Ne.viewQuery).callFn(US(l,r));i.push(u.toStmt());var d=a(),h=Xn(Ne.loadQuery).callFn([]),g=Xn(Ne.queryRefresh).callFn([d.set(h)]),y=qr(sc).prop(l.propertyName).set(l.first?d.prop("first"):d);o.push(g.and(y).toStmt())});var s=e?"".concat(e,"_Query"):null;return oa([new ma(_h,_e),new ma(sc,null)],[ql(1,i),ql(2,o)],Ma,null,s)}(n.viewQueries,r,n.name)),i.set("hostBindings",function G6(n,r,e,i,o,a,s){var l=qr(sc),u=new GC(l),d=n.specialAttributes,h=d.styleAttr,g=d.classAttr;void 0!==h&&u.registerStyleAttr(h),void 0!==g&&u.registerClassAttr(g);var y=[],L=[],z=[],q=r,re=e.createDirectiveHostEventAsts(n.listeners,q);re&&re.length&&y.push.apply(y,(0,cn.Z)(function f8(n,r){var s,e=[],i=[],o=[],a=(0,An.Z)(n);try{for(a.s();!(s=a.n()).done;){var l=s.value,u=l.name&&Th(l.name),d=1===l.type?IP(u,l.targetOrPhase):u,h=r&&u?"".concat(r,"_").concat(d,"_HostBindingHandler"):null,g=Lh(u_.fromParsedEvent(l),h);1==l.type?i.push(g):e.push(g)}}catch(Se){a.e(Se)}finally{a.f()}for(var y=0,L=i;y-1&&jn.indexOf(Br.RESOURCE_URL)>-1?Xn(Ne.sanitizeUrlOrResourceUrl):c1(jn[0],Tn));var ar=[on(Ht),ct.currValExpr];zn?ar.push(zn):S3(Ht)&&ar.push(Xn(Ne.validateIframeAttribute)),z.push.apply(z,(0,cn.Z)(ct.stmts)),Pt===Ne.hostProperty?st.push(ar):Pt===Ne.attribute?De.push(ar):Pt===Ne.syntheticHostProperty?it.push(ar):L.push({reference:Pt,paramsOrFn:ar,span:null})}for(var kr=0,_r=st;kr<_r.length;kr++){var Wr=_r[kr];L.push({reference:Ne.hostProperty,paramsOrFn:Wr,span:null})}for(var Hr=0,Kr=De;Hr0||L.length>0){var nr=a?"".concat(a,"_HostBindings"):null,un=[];return y.length>0&&un.push(ql(1,SC(y))),L.length>0&&un.push(ql(2,z.concat(SC(L)))),oa([new ma(_h,_e),new ma(sc,null)],un,Ma,null,nr)}return null}(n.host,n.typeSourceSpan,e,r,n.selector||"",n.name,i)),i.set("inputs",IM(n.inputs,!0)),i.set("outputs",IM(n.outputs)),null!==n.exportAs&&i.set("exportAs",pi(n.exportAs.map(function(a){return on(a)}))),n.isStandalone&&i.set("standalone",on(!0)),i}function BS(n,r){var e=[],i=r.providers,o=r.viewProviders;if(i||o){var a=[i||new jl([])];o&&a.push(o),e.push(Xn(Ne.ProvidersFeature).callFn(a))}r.usesInheritance&&e.push(Xn(Ne.InheritDefinitionFeature)),r.fullInheritance&&e.push(Xn(Ne.CopyDefinitionFeature)),r.lifecycle.usesOnChanges&&e.push(Xn(Ne.NgOnChangesFeature)),r.hasOwnProperty("template")&&r.isStandalone&&e.push(Xn(Ne.StandaloneFeature)),e.length&&n.set("features",pi(e))}function U6(n,r,e){var i=B6(n,r,e);BS(i,n);var o=n.selector&&fo.parse(n.selector),a=o&&o[0];if(a){var s=a.getAttrs();s.length&&i.set("attrs",r.getConstLiteral(pi(s.map(function(st){return on(null!=st?st:void 0)})),!0))}var l=n.name,u=l?"".concat(l,"_Template"):null,d=n.changeDetection,h=n.template,g=new N_(r,I6.createRootScope(),0,l,null,null,u,Ne.namespaceHTML,n.relativeContextFilePath,n.i18nUseExternalIds),y=g.buildTemplateFunction(h.nodes,[]),L=g.getNgContentSelectors();L&&i.set("ngContentSelectors",L),i.set("decls",on(g.getConstCount())),i.set("vars",on(g.getVarCount()));var z=g.getConsts(),q=z.constExpressions,re=z.prepareStatements;if(q.length>0){var ae=pi(q);re.length>0&&(ae=oa([],[].concat((0,cn.Z)(re),[new Sa(ae)]))),i.set("consts",ae)}if(i.set("template",y),n.declarations.length>0&&i.set("dependencies",function c8(n,r){switch(r){case 0:return n;case 1:return oa([],[new Sa(n)]);case 2:var e=n.prop("map").callFn([Xn(Ne.resolveForwardRef)]);return oa([],[new Sa(e)])}}(pi(n.declarations.map(function(st){return st.type})),n.declarationListEmitMode)),null===n.encapsulation&&(n.encapsulation=Jo.Emulated),n.styles&&n.styles.length){var Se=n.encapsulation==Jo.Emulated?function W6(n,r,e){var i=new $F;return n.map(function(o){return i.shimCssText(o,r,e)})}(n.styles,NS,ZS):n.styles,Ce=Se.reduce(function(st,De){return De.trim().length>0&&st.push(r.getConstLiteral(on(De))),st},[]);Ce.length>0&&i.set("styles",pi(Ce))}else n.encapsulation===Jo.Emulated&&(n.encapsulation=Jo.None);return n.encapsulation!==Jo.Emulated&&i.set("encapsulation",on(n.encapsulation)),null!==n.animations&&i.set("data",Ds([{key:"animation",value:n.animations,quoted:!1}])),null!=d&&d!==Qo.Default&&i.set("changeDetection",on(d)),{expression:Xn(Ne.defineComponent).callFn([i.toLiteralMap()],void 0,!0),type:FS(n),statements:[]}}function FS(n){var r=zS(n);return r.push(m1(n.template.ngContentSelectors)),r.push(ps(on(n.isStandalone))),ps(Xn(Ne.ComponentDeclaration,r))}function US(n,r){var e=[KP(n,r),on(H6(n))];return n.read&&e.push(n.read),e}function H6(n){return(n.descendants?1:0)|(n.static?2:0)|(n.emitDistinctChangesOnly?4:0)}function jS(n){return ps(on(n))}function GS(n){return ps(Ds(Object.keys(n).map(function(e){return{key:e,value:on(Array.isArray(n[e])?n[e][0]:n[e]),quoted:!0}})))}function m1(n){return n.length>0?ps(pi(n.map(function(r){return on(r)}))):ze}function zS(n){var r=null!==n.selector?n.selector.replace(/\n/g,""):null;return[hM(n.type.type,n.typeArgumentCount),null!==r?jS(r):ze,null!==n.exportAs?m1(n.exportAs):ze,GS(n.inputs),GS(n.outputs),m1(n.queries.map(function(e){return e.propertyName}))]}function WS(n){var r=zS(n);return r.push(ze),r.push(ps(on(n.isStandalone))),ps(Xn(Ne.DirectiveDeclaration,r))}function VS(n,r){return b3(null,n,r,"b")}function wV(n,r,e){return n.params(function(i){return e(r,i).currValExpr})}function d8(n){var e,r=n.name,i=r.match(N6);return i?(r=i[1],e=Ne.attribute):n.isAnimation?(r=OP(r),e=Ne.syntheticHostProperty):e=Ne.hostProperty,{bindingName:r,instruction:e,isAttribute:!!i}}var z6=/^(?:\[([^\]]+)\])|(?:\(([^\)]+)\))$/;var h8=(0,U.Z)(function n(){(0,B.Z)(this,n)}),m8=function(){function n(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new h3;(0,B.Z)(this,n),this.jitEvaluator=r,this.FactoryTarget=ac,this.ResourceLoader=h8,this.elementSchemaRegistry=new p6}return(0,U.Z)(n,[{key:"compilePipe",value:function(e,i,o){var s=VF({name:o.name,type:Na(o.type),internalType:new Ar(o.type),typeArgumentCount:0,deps:null,pipeName:o.pipeName,pure:o.pure,isStandalone:o.isStandalone});return this.jitExpression(s.expression,e,i,[])}},{key:"compilePipeDeclaration",value:function(e,i,o){var a=function wy(n){var r,e;return{name:n.type.name,type:Na(n.type),internalType:new Ar(n.type),typeArgumentCount:0,pipeName:n.name,deps:null,pure:null===(r=n.pure)||void 0===r||r,isStandalone:null!==(e=n.isStandalone)&&void 0!==e&&e}}(o),s=VF(a);return this.jitExpression(s.expression,e,i,[])}},{key:"compileInjectable",value:function(e,i,o){var a,s=JP({name:o.name,type:Na(o.type),internalType:new Ar(o.type),typeArgumentCount:o.typeArgumentCount,providedIn:QS(o.providedIn),useClass:Zs(o,"useClass"),useFactory:K6(o,"useFactory"),useValue:Zs(o,"useValue"),useExisting:Zs(o,"useExisting"),deps:null===(a=o.deps)||void 0===a?void 0:a.map(Du)},!0),l=s.expression,u=s.statements;return this.jitExpression(l,e,i,u)}},{key:"compileInjectableDeclaration",value:function(e,i,o){var a,s=JP({name:o.type.name,type:Na(o.type),internalType:new Ar(o.type),typeArgumentCount:0,providedIn:QS(o.providedIn),useClass:Zs(o,"useClass"),useFactory:K6(o,"useFactory"),useValue:Zs(o,"useValue"),useExisting:Zs(o,"useExisting"),deps:null===(a=o.deps)||void 0===a?void 0:a.map(Au)},!0),l=s.expression,u=s.statements;return this.jitExpression(l,e,i,u)}},{key:"compileInjector",value:function(e,i,o){var s=Ad({name:o.name,type:Na(o.type),internalType:new Ar(o.type),providers:o.providers&&o.providers.length>0?new Ar(o.providers):null,imports:o.imports.map(function(l){return new Ar(l)})});return this.jitExpression(s.expression,e,i,[])}},{key:"compileInjectorDeclaration",value:function(e,i,o){var a=function k8(n){return{name:n.type.name,type:Na(n.type),internalType:new Ar(n.type),providers:void 0!==n.providers&&n.providers.length>0?new Ar(n.providers):null,imports:void 0!==n.imports?n.imports.map(function(r){return new Ar(r)}):[]}}(o),s=Ad(a);return this.jitExpression(s.expression,e,i,[])}},{key:"compileNgModule",value:function(e,i,o){var s=_3({type:Na(o.type),internalType:new Ar(o.type),adjacentType:new Ar(o.type),bootstrap:o.bootstrap.map(Na),declarations:o.declarations.map(Na),publicDeclarationTypes:null,imports:o.imports.map(Na),includeImportTypes:!0,exports:o.exports.map(Na),selectorScopeMode:Mh.Inline,containsForwardDecls:!1,schemas:o.schemas?o.schemas.map(Na):null,id:o.id?new Ar(o.id):null});return this.jitExpression(s.expression,e,i,[])}},{key:"compileNgModuleDeclaration",value:function(e,i,o){var a=function GF(n){var r=new Ba;return r.set("type",new Ar(n.type)),void 0!==n.bootstrap&&r.set("bootstrap",new Ar(n.bootstrap)),void 0!==n.declarations&&r.set("declarations",new Ar(n.declarations)),void 0!==n.imports&&r.set("imports",new Ar(n.imports)),void 0!==n.exports&&r.set("exports",new Ar(n.exports)),void 0!==n.schemas&&r.set("schemas",new Ar(n.schemas)),void 0!==n.id&&r.set("id",new Ar(n.id)),Xn(Ne.defineNgModule).callFn([r.toLiteralMap()])}(o);return this.jitExpression(a,e,i,[])}},{key:"compileDirective",value:function(e,i,o){var a=qS(o);return this.compileDirectiveFromMeta(e,i,a)}},{key:"compileDirectiveDeclaration",value:function(e,i,o){var s=Fh(o,this.createParseSourceSpan("Directive",o.type.name,i));return this.compileDirectiveFromMeta(e,i,s)}},{key:"compileDirectiveFromMeta",value:function(e,i,o){var a=new wf,l=function F6(n,r,e){var i=B6(n,r,e);return BS(i,n),{expression:Xn(Ne.defineDirective).callFn([i.toLiteralMap()],void 0,!0),type:WS(n),statements:[]}}(o,a,U_());return this.jitExpression(l.expression,e,i,a.statements)}},{key:"compileComponent",value:function(e,i,o){var a=g1(o.template,o.name,i,o.preserveWhitespaces,o.interpolation),s=a.template,l=a.interpolation,u=Object.assign(Object.assign(Object.assign({},o),qS(o)),{selector:o.selector||this.elementSchemaRegistry.getDefaultComponentElementName(),template:s,declarations:o.declarations.map(v8),declarationListEmitMode:0,styles:[].concat((0,cn.Z)(o.styles),(0,cn.Z)(s.styles)),encapsulation:o.encapsulation,interpolation:l,changeDetection:o.changeDetection,animations:null!=o.animations?new Ar(o.animations):null,viewProviders:null!=o.viewProviders?new Ar(o.viewProviders):null,relativeContextFilePath:"",i18nUseExternalIds:!0}),d="ng:///".concat(o.name,".js");return this.compileComponentFromMeta(e,d,u)}},{key:"compileComponentDeclaration",value:function(e,i,o){var s=function Y6(n,r,e){var i,o,a,s,l=g1(n.template,n.type.name,e,null!==(i=n.preserveWhitespaces)&&void 0!==i&&i,n.interpolation),u=l.template,d=l.interpolation,h=[];if(n.dependencies){var y,g=(0,An.Z)(n.dependencies);try{for(g.s();!(y=g.n()).done;){var L=y.value;switch(L.kind){case"directive":case"component":h.push(_1(L));break;case"pipe":h.push(JS(L))}}}catch(z){g.e(z)}finally{g.f()}}else(n.components||n.directives||n.pipes)&&(n.components&&h.push.apply(h,(0,cn.Z)(n.components.map(function(z){return _1(z,!0)}))),n.directives&&h.push.apply(h,(0,cn.Z)(n.directives.map(function(z){return _1(z)}))),n.pipes&&h.push.apply(h,(0,cn.Z)(function kV(n){return n?Object.keys(n).map(function(r){return{kind:ku.Pipe,name:r,type:new Ar(n[r])}}):[]}(n.pipes))));return Object.assign(Object.assign({},Fh(n,r)),{template:u,styles:null!==(o=n.styles)&&void 0!==o?o:[],declarations:h,viewProviders:void 0!==n.viewProviders?new Ar(n.viewProviders):null,animations:void 0!==n.animations?new Ar(n.animations):null,changeDetection:null!==(a=n.changeDetection)&&void 0!==a?a:Qo.Default,encapsulation:null!==(s=n.encapsulation)&&void 0!==s?s:Jo.Emulated,interpolation:d,declarationListEmitMode:2,relativeContextFilePath:"",i18nUseExternalIds:!0})}(o,this.createParseSourceSpan("Component",o.type.name,i),i);return this.compileComponentFromMeta(e,i,s)}},{key:"compileComponentFromMeta",value:function(e,i,o){var a=new wf,l=U6(o,a,U_(o.interpolation));return this.jitExpression(l.expression,e,i,a.statements)}},{key:"compileFactory",value:function(e,i,o){var a=ph({name:o.name,type:Na(o.type),internalType:new Ar(o.type),typeArgumentCount:o.typeArgumentCount,deps:Fc(o.deps),target:o.target});return this.jitExpression(a.expression,e,i,a.statements)}},{key:"compileFactoryDeclaration",value:function(e,i,o){var a=ph({name:o.type.name,type:Na(o.type),internalType:new Ar(o.type),typeArgumentCount:0,deps:Array.isArray(o.deps)?o.deps.map(Au):o.deps,target:o.target});return this.jitExpression(a.expression,e,i,a.statements)}},{key:"createParseSourceSpan",value:function(e,i,o){return function zM(n,r,e){var i="in ".concat(n," ").concat(r," in ").concat(e),o=new GM("",i);return new Xa(new C_(o,-1,-1,-1),new C_(o,-1,-1,-1))}(e,i,o)}},{key:"jitExpression",value:function(e,i,o,a){var s=[].concat((0,cn.Z)(a),[new bf("$def",e,void 0,xs.Exported)]);return this.jitEvaluator.evaluateStatements(o,s,new m3(i),!0).$def}}]),n}();function YS(n){return Object.assign(Object.assign({},n),{predicate:KS(n.predicate),read:n.read?new Ar(n.read):null,static:n.static,emitDistinctChangesOnly:n.emitDistinctChangesOnly})}function V6(n){var r,e,i,o;return{propertyName:n.propertyName,first:null!==(r=n.first)&&void 0!==r&&r,predicate:KS(n.predicate),descendants:null!==(e=n.descendants)&&void 0!==e&&e,read:n.read?new Ar(n.read):null,static:null!==(i=n.static)&&void 0!==i&&i,emitDistinctChangesOnly:null===(o=n.emitDistinctChangesOnly)||void 0===o||o}}function KS(n){return Array.isArray(n)?n:Oc(new Ar(n),1)}function qS(n){var r=v1(n.inputs||[]),e=v1(n.outputs||[]),i=n.propMetadata,o={},a={},s=function(d){i.hasOwnProperty(d)&&i[d].forEach(function(h){!function C8(n){return"Input"===n.ngMetadataName}(h)?function w8(n){return"Output"===n.ngMetadataName}(h)&&(a[d]=h.bindingPropertyName||d):o[d]=h.bindingPropertyName?[h.bindingPropertyName,d]:d})};for(var l in i)s(l);return Object.assign(Object.assign({},n),{typeArgumentCount:0,typeSourceSpan:n.typeSourceSpan,type:Na(n.type),internalType:new Ar(n.type),deps:null,host:q6(n.propMetadata,n.typeSourceSpan,n.host),inputs:Object.assign(Object.assign({},r),o),outputs:Object.assign(Object.assign({},e),a),queries:n.queries.map(YS),providers:null!=n.providers?new Ar(n.providers):null,viewQueries:n.viewQueries.map(YS),fullInheritance:!1})}function Fh(n,r){var e,i,o,a,s,l,u,d,h;return{name:n.type.name,type:Na(n.type),typeSourceSpan:r,internalType:new Ar(n.type),selector:null!==(e=n.selector)&&void 0!==e?e:null,inputs:null!==(i=n.inputs)&&void 0!==i?i:{},outputs:null!==(o=n.outputs)&&void 0!==o?o:{},host:_8(n.host),queries:(null!==(a=n.queries)&&void 0!==a?a:[]).map(V6),viewQueries:(null!==(s=n.viewQueries)&&void 0!==s?s:[]).map(V6),providers:void 0!==n.providers?new Ar(n.providers):null,exportAs:null!==(l=n.exportAs)&&void 0!==l?l:null,usesInheritance:null!==(u=n.usesInheritance)&&void 0!==u&&u,lifecycle:{usesOnChanges:null!==(d=n.usesOnChanges)&&void 0!==d&&d},deps:null,typeArgumentCount:0,fullInheritance:!1,isStandalone:null!==(h=n.isStandalone)&&void 0!==h&&h}}function _8(){var r,e,i,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{attributes:g8(null!==(r=n.attributes)&&void 0!==r?r:{}),listeners:null!==(e=n.listeners)&&void 0!==e?e:{},properties:null!==(i=n.properties)&&void 0!==i?i:{},specialAttributes:{classAttr:n.classAttribute,styleAttr:n.styleAttribute}}}function g8(n){for(var r={},e=0,i=Object.keys(n);e1&&void 0!==arguments[1]?arguments[1]:null;return{kind:ku.Directive,isComponent:r||"component"===n.kind,selector:n.selector,type:new Ar(n.type),inputs:null!==(e=n.inputs)&&void 0!==e?e:[],outputs:null!==(i=n.outputs)&&void 0!==i?i:[],exportAs:null!==(o=n.exportAs)&&void 0!==o?o:null}}function JS(n){return{kind:ku.Pipe,name:n.name,type:new Ar(n.type)}}function g1(n,r,e,i,o){var a=o?RM.fromArray(o):Vl,s=function l8(n,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e.interpolationConfig,o=e.preserveWhitespaces,a=e.enableI18nLegacyMessageIdFormat,s=U_(i),u=(new r6).parse(n,r,Object.assign(Object.assign({leadingTriviaChars:L_},e),{tokenizeExpansionForms:!0}));if(!e.alwaysAttemptHtmlToR3AstConversion&&u.errors&&u.errors.length>0){var d={interpolationConfig:i,preserveWhitespaces:o,errors:u.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return e.collectCommentNodes&&(d.commentNodes=[]),d}var h=u.rootNodes,g=new A6(i,!o,a),y=g.visitAllWithErrors(h);if(!e.alwaysAttemptHtmlToR3AstConversion&&y.errors&&y.errors.length>0){var L={interpolationConfig:i,preserveWhitespaces:o,errors:y.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return e.collectCommentNodes&&(L.commentNodes=[]),L}h=y.rootNodes,o||(h=Nc(new s6,h),g.hasI18nMeta&&(h=Nc(new A6(i,!1),h)));var z=t1(h,s,{collectCommentNodes:!!e.collectCommentNodes}),q=z.nodes,re=z.errors,ae=z.styleUrls,Se=z.styles,Ce=z.ngContentSelectors,Ee=z.commentNodes;re.push.apply(re,(0,cn.Z)(u.errors).concat((0,cn.Z)(y.errors)));var Ke={interpolationConfig:i,preserveWhitespaces:o,errors:re.length>0?re:null,nodes:q,styleUrls:ae,styles:Se,ngContentSelectors:Ce};return e.collectCommentNodes&&(Ke.commentNodes=Ee),Ke}(n,e,{preserveWhitespaces:i,interpolationConfig:a});if(null!==s.errors){var l=s.errors.map(function(u){return u.toString()}).join(", ");throw new Error("Errors during JIT compilation of template for ".concat(r,": ").concat(l))}return{template:s,interpolation:a}}function Zs(n,r){if(n.hasOwnProperty(r))return Oc(new Ar(n[r]),0)}function K6(n,r){if(n.hasOwnProperty(r))return new Ar(n[r])}function QS(n){return Oc("function"==typeof n?new Ar(n):new me(null!=n?n:null),0)}function Fc(n){return null==n?null:n.map(Du)}function Du(n){var r=null!=n.attribute,e=null===n.token?null:new Ar(n.token);return XS(r?new Ar(n.attribute):e,r,n.host,n.optional,n.self,n.skipSelf)}function Au(n){var r,e,i,o,a,s=null!==(r=n.attribute)&&void 0!==r&&r;return XS(null===n.token?null:new Ar(n.token),s,null!==(e=n.host)&&void 0!==e&&e,null!==(i=n.optional)&&void 0!==i&&i,null!==(o=n.self)&&void 0!==o&&o,null!==(a=n.skipSelf)&&void 0!==a&&a)}function XS(n,r,e,i,o,a){return{token:n,attributeNameType:r?on("unknown"):null,host:e,optional:i,self:o,skipSelf:a}}function q6(n,r,e){var i=function p8(n){for(var r={},e={},i={},o={},a=0,s=Object.keys(n);a-1?1:1e3;return parseFloat(n)*r}function lE(n,r){return n.getPropertyValue(r).split(",").map(function(i){return i.trim()})}function Ay(n){var r=n.getBoundingClientRect();return{top:r.top,right:r.right,bottom:r.bottom,left:r.left,width:r.width,height:r.height,x:r.x,y:r.y}}function uE(n,r,e){var i=n.top,o=n.bottom,a=n.left,s=n.right;return e>=i&&e<=o&&r>=a&&r<=s}function W_(n,r,e){n.top+=r,n.bottom=n.top+n.height,n.left+=e,n.right=n.left+n.width}function mR(n,r,e,i){var o=n.top,a=n.right,s=n.bottom,l=n.left,h=n.width*r,g=n.height*r;return i>o-g&&il-h&&e=l._config.dragStartThreshold){var L=Date.now()>=l._dragStartTime+l._getDragStartDelay(u),z=l._dropContainer;if(!L)return void l._endDragSequence(u);(!z||!z.isDragging()&&!z.isReceiving())&&(u.preventDefault(),l._hasStartedDragging=!0,l._ngZone.run(function(){return l._startDragSequence(u)}))}}},this._pointerUp=function(u){l._endDragSequence(u)},this._nativeDragStart=function(u){if(l._handles.length){var d=l._getTargetHandle(u);d&&!l._disabledHandles.has(d)&&!l.disabled&&u.preventDefault()}else l.disabled||u.preventDefault()},this.withRootElement(r).withParent(e.parentDragRef||null),this._parentPositions=new _R(i),s.registerDragItem(this)}return(0,U.Z)(n,[{key:"disabled",get:function(){return this._disabled||!(!this._dropContainer||!this._dropContainer.disabled)},set:function(e){var i=(0,En.Ig)(e);i!==this._disabled&&(this._disabled=i,this._toggleNativeDragInteractions(),this._handles.forEach(function(o){return z_(o,i)}))}},{key:"getPlaceholderElement",value:function(){return this._placeholder}},{key:"getRootElement",value:function(){return this._rootElement}},{key:"getVisibleElement",value:function(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()}},{key:"withHandles",value:function(e){var i=this;this._handles=e.map(function(a){return(0,En.fI)(a)}),this._handles.forEach(function(a){return z_(a,i.disabled)}),this._toggleNativeDragInteractions();var o=new Set;return this._disabledHandles.forEach(function(a){i._handles.indexOf(a)>-1&&o.add(a)}),this._disabledHandles=o,this}},{key:"withPreviewTemplate",value:function(e){return this._previewTemplate=e,this}},{key:"withPlaceholderTemplate",value:function(e){return this._placeholderTemplate=e,this}},{key:"withRootElement",value:function(e){var i=this,o=(0,En.fI)(e);return o!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular(function(){o.addEventListener("mousedown",i._pointerDown,Oy),o.addEventListener("touchstart",i._pointerDown,CR),o.addEventListener("dragstart",i._nativeDragStart,Oy)}),this._initialTransform=void 0,this._rootElement=o),"undefined"!=typeof SVGElement&&this._rootElement instanceof SVGElement&&(this._ownerSVGElement=this._rootElement.ownerSVGElement),this}},{key:"withBoundaryElement",value:function(e){var i=this;return this._boundaryElement=e?(0,En.fI)(e):null,this._resizeSubscription.unsubscribe(),e&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe(function(){return i._containInsideBoundaryOnResize()})),this}},{key:"withParent",value:function(e){return this._parentDragRef=e,this}},{key:"dispose",value:function(){var e,i;this._removeRootElementListeners(this._rootElement),this.isDragging()&&(null===(e=this._rootElement)||void 0===e||e.remove()),null===(i=this._anchor)||void 0===i||i.remove(),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeSubscriptions(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._ownerSVGElement=this._placeholderTemplate=this._previewTemplate=this._anchor=this._parentDragRef=null}},{key:"isDragging",value:function(){return this._hasStartedDragging&&this._dragDropRegistry.isDragging(this)}},{key:"reset",value:function(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}}},{key:"disableHandle",value:function(e){!this._disabledHandles.has(e)&&this._handles.indexOf(e)>-1&&(this._disabledHandles.add(e),z_(e,!0))}},{key:"enableHandle",value:function(e){this._disabledHandles.has(e)&&(this._disabledHandles.delete(e),z_(e,this.disabled))}},{key:"withDirection",value:function(e){return this._direction=e,this}},{key:"_withDropContainer",value:function(e){this._dropContainer=e}},{key:"getFreeDragPosition",value:function(){var e=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:e.x,y:e.y}}},{key:"setFreeDragPosition",value:function(e){return this._activeTransform={x:0,y:0},this._passiveTransform.x=e.x,this._passiveTransform.y=e.y,this._dropContainer||this._applyRootElementTransform(e.x,e.y),this}},{key:"withPreviewContainer",value:function(e){return this._previewContainer=e,this}},{key:"_sortFromLastPointerPosition",value:function(){var e=this._lastKnownPointerPosition;e&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(e),e)}},{key:"_removeSubscriptions",value:function(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe()}},{key:"_destroyPreview",value:function(){var e,i;null===(e=this._preview)||void 0===e||e.remove(),null===(i=this._previewRef)||void 0===i||i.destroy(),this._preview=this._previewRef=null}},{key:"_destroyPlaceholder",value:function(){var e,i;null===(e=this._placeholder)||void 0===e||e.remove(),null===(i=this._placeholderRef)||void 0===i||i.destroy(),this._placeholder=this._placeholderRef=null}},{key:"_endDragSequence",value:function(e){var i=this;if(this._dragDropRegistry.isDragging(this)&&(this._removeSubscriptions(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging))if(this.released.next({source:this,event:e}),this._dropContainer)this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then(function(){i._cleanupDragArtifacts(e),i._cleanupCachedDimensions(),i._dragDropRegistry.stopDragging(i)});else{this._passiveTransform.x=this._activeTransform.x;var o=this._getPointerPositionOnPage(e);this._passiveTransform.y=this._activeTransform.y,this._ngZone.run(function(){i.ended.next({source:i,distance:i._getDragDistance(o),dropPoint:o,event:e})}),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)}}},{key:"_startDragSequence",value:function(e){Py(e)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();var i=this._dropContainer;if(i){var o=this._rootElement,a=o.parentNode,s=this._placeholder=this._createPlaceholderElement(),l=this._anchor=this._anchor||this._document.createComment(""),u=this._getShadowRoot();a.insertBefore(l,o),this._initialTransform=o.style.transform||"",this._preview=this._createPreviewElement(),sE(o,!1,cE),this._document.body.appendChild(a.replaceChild(s,o)),this._getPreviewInsertionPoint(a,u).appendChild(this._preview),this.started.next({source:this,event:e}),i.start(),this._initialContainer=i,this._initialIndex=i.getItemIndex(this)}else this.started.next({source:this,event:e}),this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(i?i.getScrollableParents():[])}},{key:"_initializeDragSequence",value:function(e,i){var o=this;this._parentDragRef&&i.stopPropagation();var a=this.isDragging(),s=Py(i),l=!s&&0!==i.button,u=this._rootElement,d=(0,bi.sA)(i),h=!s&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now(),g=s?(0,Yr.yG)(i):(0,Yr.X6)(i);if(d&&d.draggable&&"mousedown"===i.type&&i.preventDefault(),!(a||l||h||g)){if(this._handles.length){var y=u.style;this._rootElementTapHighlight=y.webkitTapHighlightColor||"",y.webkitTapHighlightColor="transparent"}this._hasStartedDragging=this._hasMoved=!1,this._removeSubscriptions(),this._initialClientRect=this._rootElement.getBoundingClientRect(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(function(q){return o._updateOnScroll(q)}),this._boundaryElement&&(this._boundaryRect=Ay(this._boundaryElement));var L=this._previewTemplate;this._pickupPositionInElement=L&&L.template&&!L.matchSize?{x:0,y:0}:this._getPointerPositionInElement(this._initialClientRect,e,i);var z=this._pickupPositionOnPage=this._lastKnownPointerPosition=this._getPointerPositionOnPage(i);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:z.x,y:z.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,i)}}},{key:"_cleanupDragArtifacts",value:function(e){var i=this;sE(this._rootElement,!0,cE),this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._initialClientRect=this._boundaryRect=this._previewRect=this._initialTransform=void 0,this._ngZone.run(function(){var o=i._dropContainer,a=o.getItemIndex(i),s=i._getPointerPositionOnPage(e),l=i._getDragDistance(s),u=o._isOverContainer(s.x,s.y);i.ended.next({source:i,distance:l,dropPoint:s,event:e}),i.dropped.next({item:i,currentIndex:a,previousIndex:i._initialIndex,container:o,previousContainer:i._initialContainer,isPointerOverContainer:u,distance:l,dropPoint:s,event:e}),o.drop(i,a,i._initialIndex,i._initialContainer,u,l,s,e),i._dropContainer=i._initialContainer})}},{key:"_updateActiveDropContainer",value:function(e,i){var o=this,a=e.x,s=e.y,l=i.x,u=i.y,d=this._initialContainer._getSiblingContainerFromPosition(this,a,s);!d&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(a,s)&&(d=this._initialContainer),d&&d!==this._dropContainer&&this._ngZone.run(function(){o.exited.next({item:o,container:o._dropContainer}),o._dropContainer.exit(o),o._dropContainer=d,o._dropContainer.enter(o,a,s,d===o._initialContainer&&d.sortingDisabled?o._initialIndex:void 0),o.entered.next({item:o,container:d,currentIndex:d.getItemIndex(o)})}),this.isDragging()&&(this._dropContainer._startScrollingIfNecessary(l,u),this._dropContainer._sortItem(this,a,s,this._pointerDirectionDelta),this.constrainPosition?this._applyPreviewTransform(a,s):this._applyPreviewTransform(a-this._pickupPositionInElement.x,s-this._pickupPositionInElement.y))}},{key:"_createPreviewElement",value:function(){var a,e=this._previewTemplate,i=this.previewClass,o=e?e.template:null;if(o&&e){var s=e.matchSize?this._initialClientRect:null,l=e.viewContainer.createEmbeddedView(o,e.context);l.detectChanges(),a=TR(l,this._document),this._previewRef=l,e.matchSize?w1(a,s):a.style.transform=Iy(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else w1(a=gR(this._rootElement),this._initialClientRect),this._initialTransform&&(a.style.transform=this._initialTransform);return xy(a.style,{"pointer-events":"none",margin:"0",position:"fixed",top:"0",left:"0","z-index":"".concat(this._config.zIndex||1e3)},cE),z_(a,!1),a.classList.add("cdk-drag-preview"),a.setAttribute("dir",this._direction),i&&(Array.isArray(i)?i.forEach(function(u){return a.classList.add(u)}):a.classList.add(i)),a}},{key:"_animatePreviewToPlaceholder",value:function(){var e=this;if(!this._hasMoved)return Promise.resolve();var i=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._applyPreviewTransform(i.left,i.top);var o=function rU(n){var r=getComputedStyle(n),e=lE(r,"transition-property"),i=e.find(function(l){return"transform"===l||"all"===l});if(!i)return 0;var o=e.indexOf(i),a=lE(r,"transition-duration"),s=lE(r,"transition-delay");return hR(a[o])+hR(s[o])}(this._preview);return 0===o?Promise.resolve():this._ngZone.runOutsideAngular(function(){return new Promise(function(a){var s=function u(d){var h;(!d||(0,bi.sA)(d)===e._preview&&"transform"===d.propertyName)&&(null===(h=e._preview)||void 0===h||h.removeEventListener("transitionend",u),a(),clearTimeout(l))},l=setTimeout(s,1.5*o);e._preview.addEventListener("transitionend",s)})})}},{key:"_createPlaceholderElement",value:function(){var o,e=this._placeholderTemplate,i=e?e.template:null;return i?(this._placeholderRef=e.viewContainer.createEmbeddedView(i,e.context),this._placeholderRef.detectChanges(),o=TR(this._placeholderRef,this._document)):o=gR(this._rootElement),o.style.pointerEvents="none",o.classList.add("cdk-drag-placeholder"),o}},{key:"_getPointerPositionInElement",value:function(e,i,o){var a=i===this._rootElement?null:i,s=a?a.getBoundingClientRect():e,l=Py(o)?o.targetTouches[0]:o,u=this._getViewportScrollPosition(),d=l.pageX-s.left-u.left,h=l.pageY-s.top-u.top;return{x:s.left-e.left+d,y:s.top-e.top+h}}},{key:"_getPointerPositionOnPage",value:function(e){var i=this._getViewportScrollPosition(),o=Py(e)?e.touches[0]||e.changedTouches[0]||{pageX:0,pageY:0}:e,a=o.pageX-i.left,s=o.pageY-i.top;if(this._ownerSVGElement){var l=this._ownerSVGElement.getScreenCTM();if(l){var u=this._ownerSVGElement.createSVGPoint();return u.x=a,u.y=s,u.matrixTransform(l.inverse())}}return{x:a,y:s}}},{key:"_getConstrainedPointerPosition",value:function(e){var i=this._dropContainer?this._dropContainer.lockAxis:null,o=this.constrainPosition?this.constrainPosition(e,this,this._initialClientRect,this._pickupPositionInElement):e,a=o.x,s=o.y;if("x"===this.lockAxis||"x"===i?s=this._pickupPositionOnPage.y:("y"===this.lockAxis||"y"===i)&&(a=this._pickupPositionOnPage.x),this._boundaryRect){var l=this._pickupPositionInElement,u=l.x,d=l.y,h=this._boundaryRect,g=this._getPreviewRect(),y=g.width,L=g.height,z=h.top+d,q=h.bottom-(L-d);a=kR(a,h.left+u,h.right-(y-u)),s=kR(s,z,q)}return{x:a,y:s}}},{key:"_updatePointerDirectionDelta",value:function(e){var i=e.x,o=e.y,a=this._pointerDirectionDelta,s=this._pointerPositionAtLastDirectionChange,l=Math.abs(i-s.x),u=Math.abs(o-s.y);return l>this._config.pointerDirectionChangeThreshold&&(a.x=i>s.x?1:-1,s.x=i),u>this._config.pointerDirectionChangeThreshold&&(a.y=o>s.y?1:-1,s.y=o),a}},{key:"_toggleNativeDragInteractions",value:function(){if(this._rootElement&&this._handles){var e=this._handles.length>0||!this.isDragging();e!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=e,z_(this._rootElement,e))}}},{key:"_removeRootElementListeners",value:function(e){e.removeEventListener("mousedown",this._pointerDown,Oy),e.removeEventListener("touchstart",this._pointerDown,CR),e.removeEventListener("dragstart",this._nativeDragStart,Oy)}},{key:"_applyRootElementTransform",value:function(e,i){var o=Iy(e,i),a=this._rootElement.style;null==this._initialTransform&&(this._initialTransform=a.transform&&"none"!=a.transform?a.transform:""),a.transform=Dy(o,this._initialTransform)}},{key:"_applyPreviewTransform",value:function(e,i){var o,a=null!==(o=this._previewTemplate)&&void 0!==o&&o.template?void 0:this._initialTransform,s=Iy(e,i);this._preview.style.transform=Dy(s,a)}},{key:"_getDragDistance",value:function(e){var i=this._pickupPositionOnPage;return i?{x:e.x-i.x,y:e.y-i.y}:{x:0,y:0}}},{key:"_cleanupCachedDimensions",value:function(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()}},{key:"_containInsideBoundaryOnResize",value:function(){var e=this._passiveTransform,i=e.x,o=e.y;if(!(0===i&&0===o||this.isDragging())&&this._boundaryElement){var a=this._rootElement.getBoundingClientRect(),s=this._boundaryElement.getBoundingClientRect();if(!(0===s.width&&0===s.height||0===a.width&&0===a.height)){var l=s.left-a.left,u=a.right-s.right,d=s.top-a.top,h=a.bottom-s.bottom;s.width>a.width?(l>0&&(i+=l),u>0&&(i-=u)):i=0,s.height>a.height?(d>0&&(o+=d),h>0&&(o-=h)):o=0,(i!==this._passiveTransform.x||o!==this._passiveTransform.y)&&this.setFreeDragPosition({y:o,x:i})}}}},{key:"_getDragStartDelay",value:function(e){var i=this.dragStartDelay;return"number"==typeof i?i:Py(e)?i.touch:i?i.mouse:0}},{key:"_updateOnScroll",value:function(e){var i=this._parentPositions.handleScroll(e);if(i){var o=(0,bi.sA)(e);this._boundaryRect&&o!==this._boundaryElement&&o.contains(this._boundaryElement)&&W_(this._boundaryRect,i.top,i.left),this._pickupPositionOnPage.x+=i.left,this._pickupPositionOnPage.y+=i.top,this._dropContainer||(this._activeTransform.x-=i.left,this._activeTransform.y-=i.top,this._applyRootElementTransform(this._activeTransform.x,this._activeTransform.y))}}},{key:"_getViewportScrollPosition",value:function(){var e;return(null===(e=this._parentPositions.positions.get(this._document))||void 0===e?void 0:e.scrollPosition)||this._parentPositions.getViewportScrollPosition()}},{key:"_getShadowRoot",value:function(){return void 0===this._cachedShadowRoot&&(this._cachedShadowRoot=(0,bi.kV)(this._rootElement)),this._cachedShadowRoot}},{key:"_getPreviewInsertionPoint",value:function(e,i){var o=this._previewContainer||"global";if("parent"===o)return e;if("global"===o){var a=this._document;return i||a.fullscreenElement||a.webkitFullscreenElement||a.mozFullScreenElement||a.msFullscreenElement||a.body}return(0,En.fI)(o)}},{key:"_getPreviewRect",value:function(){return(!this._previewRect||!this._previewRect.width&&!this._previewRect.height)&&(this._previewRect=this._preview?this._preview.getBoundingClientRect():this._initialClientRect),this._previewRect}},{key:"_getTargetHandle",value:function(e){return this._handles.find(function(i){return e.target&&(e.target===i||i.contains(e.target))})}}]),n}();function Iy(n,r){return"translate3d(".concat(Math.round(n),"px, ").concat(Math.round(r),"px, 0)")}function kR(n,r,e){return Math.max(r,Math.min(e,n))}function Py(n){return"t"===n.type[0]}function TR(n,r){var e=n.rootNodes;if(1===e.length&&e[0].nodeType===r.ELEMENT_NODE)return e[0];var i=r.createElement("div");return e.forEach(function(o){return i.appendChild(o)}),i}function w1(n,r){n.style.width="".concat(r.width,"px"),n.style.height="".concat(r.height,"px"),n.style.transform=Iy(r.left,r.top)}function Ry(n,r){return Math.max(0,Math.min(r,n))}var sU=function(){function n(r,e){(0,B.Z)(this,n),this._element=r,this._dragDropRegistry=e,this._itemPositions=[],this.orientation="vertical",this._previousSwap={drag:null,delta:0,overlaps:!1}}return(0,U.Z)(n,[{key:"start",value:function(e){this.withItems(e)}},{key:"sort",value:function(e,i,o,a){var s=this._itemPositions,l=this._getItemIndexFromPointerPosition(e,i,o,a);if(-1===l&&s.length>0)return null;var u="horizontal"===this.orientation,d=s.findIndex(function(ae){return ae.drag===e}),h=s[l],g=s[d].clientRect,y=h.clientRect,L=d>l?1:-1,z=this._getItemOffsetPx(g,y,L),q=this._getSiblingOffsetPx(d,s,L),re=s.slice();return function dE(n,r,e){var i=Ry(r,n.length-1),o=Ry(e,n.length-1);if(i!==o){for(var a=n[i],s=o-1&&l.splice(u,1),h&&!this._dragDropRegistry.isDragging(h)){var g=h.getRootElement();g.parentElement.insertBefore(d,g),l.splice(s,0,e)}else(0,En.fI)(this._element).appendChild(d),l.push(e);d.style.transform="",this._cacheItemPositions()}},{key:"withItems",value:function(e){this._activeDraggables=e.slice(),this._cacheItemPositions()}},{key:"withSortPredicate",value:function(e){this._sortPredicate=e}},{key:"reset",value:function(){var e=this;this._activeDraggables.forEach(function(i){var o,a=i.getRootElement();if(a){var s=null===(o=e._itemPositions.find(function(l){return l.drag===i}))||void 0===o?void 0:o.initialTransform;a.style.transform=s||""}}),this._itemPositions=[],this._activeDraggables=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._previousSwap.overlaps=!1}},{key:"getActiveItemsSnapshot",value:function(){return this._activeDraggables}},{key:"getItemIndex",value:function(e){return("horizontal"===this.orientation&&"rtl"===this.direction?this._itemPositions.slice().reverse():this._itemPositions).findIndex(function(o){return o.drag===e})}},{key:"updateOnScroll",value:function(e,i){var o=this;this._itemPositions.forEach(function(a){W_(a.clientRect,e,i)}),this._itemPositions.forEach(function(a){var s=a.drag;o._dragDropRegistry.isDragging(s)&&s._sortFromLastPointerPosition()})}},{key:"_cacheItemPositions",value:function(){var e="horizontal"===this.orientation;this._itemPositions=this._activeDraggables.map(function(i){var o=i.getVisibleElement();return{drag:i,offset:0,initialTransform:o.style.transform||"",clientRect:Ay(o)}}).sort(function(i,o){return e?i.clientRect.left-o.clientRect.left:i.clientRect.top-o.clientRect.top})}},{key:"_getItemOffsetPx",value:function(e,i,o){var a="horizontal"===this.orientation,s=a?i.left-e.left:i.top-e.top;return-1===o&&(s+=a?i.width-e.width:i.height-e.height),s}},{key:"_getSiblingOffsetPx",value:function(e,i,o){var a="horizontal"===this.orientation,s=i[e].clientRect,l=i[e+-1*o],u=s[a?"width":"height"]*o;if(l){var d=a?"left":"top",h=a?"right":"bottom";-1===o?u-=l.clientRect[d]-s[h]:u+=s[d]-l.clientRect[h]}return u}},{key:"_shouldEnterAsFirstChild",value:function(e,i){if(!this._activeDraggables.length)return!1;var o=this._itemPositions,a="horizontal"===this.orientation;if(o[0].drag!==this._activeDraggables[0]){var l=o[o.length-1].clientRect;return a?e>=l.right:i>=l.bottom}var u=o[0].clientRect;return a?e<=u.left:i<=u.top}},{key:"_getItemIndexFromPointerPosition",value:function(e,i,o,a){var s=this,l="horizontal"===this.orientation,u=this._itemPositions.findIndex(function(d){var h=d.drag,g=d.clientRect;if(h===e)return!1;if(a){var y=l?a.x:a.y;if(h===s._previousSwap.drag&&s._previousSwap.overlaps&&y===s._previousSwap.delta)return!1}return l?i>=Math.floor(g.left)&&i=Math.floor(g.top)&&o7&&void 0!==arguments[7]?arguments[7]:{};this._reset(),this.dropped.next({item:e,currentIndex:i,previousIndex:o,container:this,previousContainer:a,isPointerOverContainer:s,distance:l,dropPoint:u,event:d})}},{key:"withItems",value:function(e){var i=this,o=this._draggables;(this._draggables=e,e.forEach(function(s){return s._withDropContainer(i)}),this.isDragging())&&(o.filter(function(s){return s.isDragging()}).every(function(s){return-1===e.indexOf(s)})?this._reset():this._sortStrategy.withItems(this._draggables));return this}},{key:"withDirection",value:function(e){return this._sortStrategy.direction=e,this}},{key:"connectedTo",value:function(e){return this._siblings=e.slice(),this}},{key:"withOrientation",value:function(e){return this._sortStrategy.orientation=e,this}},{key:"withScrollableParents",value:function(e){var i=(0,En.fI)(this.element);return this._scrollableElements=-1===e.indexOf(i)?[i].concat((0,cn.Z)(e)):e.slice(),this}},{key:"getScrollableParents",value:function(){return this._scrollableElements}},{key:"getItemIndex",value:function(e){return this._isDragging?this._sortStrategy.getItemIndex(e):this._draggables.indexOf(e)}},{key:"isReceiving",value:function(){return this._activeSiblings.size>0}},{key:"_sortItem",value:function(e,i,o,a){if(!this.sortingDisabled&&this._clientRect&&mR(this._clientRect,.05,i,o)){var s=this._sortStrategy.sort(e,i,o,a);s&&this.sorted.next({previousIndex:s.previousIndex,currentIndex:s.currentIndex,container:this,item:e})}}},{key:"_startScrollingIfNecessary",value:function(e,i){var o=this;if(!this.autoScrollDisabled){var a,s=0,l=0;if(this._parentPositions.positions.forEach(function(y,L){if(L!==o._document&&y.clientRect&&!a&&mR(y.clientRect,.05,e,i)){var z=function lU(n,r,e,i){var o=Uh(r,i),a=fE(r,e),s=0,l=0;if(o){var u=n.scrollTop;1===o?u>0&&(s=1):n.scrollHeight-u>n.clientHeight&&(s=2)}if(a){var d=n.scrollLeft;1===a?d>0&&(l=1):n.scrollWidth-d>n.clientWidth&&(l=2)}return[s,l]}(L,y.clientRect,e,i),q=(0,Yn.Z)(z,2);s=q[0],l=q[1],(s||l)&&(a=L)}}),!s&&!l){var u=this._viewportRuler.getViewportSize(),d=u.width,h=u.height,g={width:d,height:h,top:0,right:d,bottom:h,left:0};s=Uh(g,i),l=fE(g,e),a=window}a&&(s!==this._verticalScrollDirection||l!==this._horizontalScrollDirection||a!==this._scrollNode)&&(this._verticalScrollDirection=s,this._horizontalScrollDirection=l,this._scrollNode=a,(s||l)&&a?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}}},{key:"_stopScrolling",value:function(){this._stopScrollTimers.next()}},{key:"_draggingStarted",value:function(){var e=(0,En.fI)(this.element).style;this.beforeStarted.next(),this._isDragging=!0,this._initialScrollSnap=e.msScrollSnapType||e.scrollSnapType||"",e.scrollSnapType=e.msScrollSnapType="none",this._sortStrategy.start(this._draggables),this._cacheParentPositions(),this._viewportScrollSubscription.unsubscribe(),this._listenToScrollEvents()}},{key:"_cacheParentPositions",value:function(){var e=(0,En.fI)(this.element);this._parentPositions.cache(this._scrollableElements),this._clientRect=this._parentPositions.positions.get(e).clientRect}},{key:"_reset",value:function(){var e=this;this._isDragging=!1;var i=(0,En.fI)(this.element).style;i.scrollSnapType=i.msScrollSnapType=this._initialScrollSnap,this._siblings.forEach(function(o){return o._stopReceiving(e)}),this._sortStrategy.reset(),this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()}},{key:"_isOverContainer",value:function(e,i){return null!=this._clientRect&&uE(this._clientRect,e,i)}},{key:"_getSiblingContainerFromPosition",value:function(e,i,o){return this._siblings.find(function(a){return a._canReceive(e,i,o)})}},{key:"_canReceive",value:function(e,i,o){if(!this._clientRect||!uE(this._clientRect,i,o)||!this.enterPredicate(e,this))return!1;var a=this._getShadowRoot().elementFromPoint(i,o);if(!a)return!1;var s=(0,En.fI)(this.element);return a===s||s.contains(a)}},{key:"_startReceiving",value:function(e,i){var o=this,a=this._activeSiblings;!a.has(e)&&i.every(function(s){return o.enterPredicate(s,o)||o._draggables.indexOf(s)>-1})&&(a.add(e),this._cacheParentPositions(),this._listenToScrollEvents())}},{key:"_stopReceiving",value:function(e){this._activeSiblings.delete(e),this._viewportScrollSubscription.unsubscribe()}},{key:"_listenToScrollEvents",value:function(){var e=this;this._viewportScrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(function(i){if(e.isDragging()){var o=e._parentPositions.handleScroll(i);o&&e._sortStrategy.updateOnScroll(o.top,o.left)}else e.isReceiving()&&e._cacheParentPositions()})}},{key:"_getShadowRoot",value:function(){if(!this._cachedShadowRoot){var e=(0,bi.kV)((0,En.fI)(this.element));this._cachedShadowRoot=e||this._document}return this._cachedShadowRoot}},{key:"_notifyReceivingSiblings",value:function(){var e=this,i=this._sortStrategy.getActiveItemsSnapshot().filter(function(o){return o.isDragging()});this._siblings.forEach(function(o){return o._startReceiving(e,i)})}}]),n}();function Uh(n,r){var e=n.top,i=n.bottom,a=.05*n.height;return r>=e-a&&r<=e+a?1:r>=i-a&&r<=i+a?2:0}function fE(n,r){var e=n.left,i=n.right,a=.05*n.width;return r>=e-a&&r<=e+a?1:r>=i-a&&r<=i+a?2:0}var pE=(0,bi.i$)({passive:!1,capture:!0}),Hh=function(){function n(r,e){var i=this;(0,B.Z)(this,n),this._ngZone=r,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=[],this._globalListeners=new Map,this._draggingPredicate=function(o){return o.isDragging()},this.pointerMove=new On.xQ,this.pointerUp=new On.xQ,this.scroll=new On.xQ,this._preventDefaultWhileDragging=function(o){i._activeDragInstances.length>0&&o.preventDefault()},this._persistentTouchmoveListener=function(o){i._activeDragInstances.length>0&&(i._activeDragInstances.some(i._draggingPredicate)&&o.preventDefault(),i.pointerMove.next(o))},this._document=e}return(0,U.Z)(n,[{key:"registerDropContainer",value:function(e){this._dropInstances.has(e)||this._dropInstances.add(e)}},{key:"registerDragItem",value:function(e){var i=this;this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(function(){i._document.addEventListener("touchmove",i._persistentTouchmoveListener,pE)})}},{key:"removeDropContainer",value:function(e){this._dropInstances.delete(e)}},{key:"removeDragItem",value:function(e){this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._persistentTouchmoveListener,pE)}},{key:"startDragging",value:function(e,i){var o=this;if(!(this._activeDragInstances.indexOf(e)>-1)&&(this._activeDragInstances.push(e),1===this._activeDragInstances.length)){var a=i.type.startsWith("touch");this._globalListeners.set(a?"touchend":"mouseup",{handler:function(l){return o.pointerUp.next(l)},options:!0}).set("scroll",{handler:function(l){return o.scroll.next(l)},options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:pE}),a||this._globalListeners.set("mousemove",{handler:function(l){return o.pointerMove.next(l)},options:pE}),this._ngZone.runOutsideAngular(function(){o._globalListeners.forEach(function(s,l){o._document.addEventListener(l,s.handler,s.options)})})}}},{key:"stopDragging",value:function(e){var i=this._activeDragInstances.indexOf(e);i>-1&&(this._activeDragInstances.splice(i,1),0===this._activeDragInstances.length&&this._clearGlobalListeners())}},{key:"isDragging",value:function(e){return this._activeDragInstances.indexOf(e)>-1}},{key:"scrolled",value:function(e){var i=this,o=[this.scroll];return e&&e!==this._document&&o.push(new oo.y(function(a){return i._ngZone.runOutsideAngular(function(){var l=function(d){i._activeDragInstances.length&&a.next(d)};return e.addEventListener("scroll",l,true),function(){e.removeEventListener("scroll",l,true)}})})),Gi.T.apply(void 0,o)}},{key:"ngOnDestroy",value:function(){var e=this;this._dragInstances.forEach(function(i){return e.removeDragItem(i)}),this._dropInstances.forEach(function(i){return e.removeDropContainer(i)}),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()}},{key:"_clearGlobalListeners",value:function(){var e=this;this._globalListeners.forEach(function(i,o){e._document.removeEventListener(o,i.handler,i.options)}),this._globalListeners.clear()}}]),n}();Hh.\u0275fac=function(r){return new(r||Hh)(t.LFG(t.R0b),t.LFG(le.K0))},Hh.\u0275prov=t.Yz7({token:Hh,factory:Hh.\u0275fac,providedIn:"root"});var hE={dragStartThreshold:5,pointerDirectionChangeThreshold:5},zf=function(){function n(r,e,i,o){(0,B.Z)(this,n),this._document=r,this._ngZone=e,this._viewportRuler=i,this._dragDropRegistry=o}return(0,U.Z)(n,[{key:"createDrag",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:hE;return new oU(e,i,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)}},{key:"createDropList",value:function(e){return new ER(e,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)}}]),n}();zf.\u0275fac=function(r){return new(r||zf)(t.LFG(le.K0),t.LFG(t.R0b),t.LFG(sa.rL),t.LFG(Hh))},zf.\u0275prov=t.Yz7({token:zf,factory:zf.\u0275fac,providedIn:"root"});var Ly=new t.OlP("CDK_DRAG_PARENT"),V_=new t.OlP("CdkDropListGroup"),Y_=function(){function n(){(0,B.Z)(this,n),this._items=new Set,this._disabled=!1}return(0,U.Z)(n,[{key:"disabled",get:function(){return this._disabled},set:function(e){this._disabled=(0,En.Ig)(e)}},{key:"ngOnDestroy",value:function(){this._items.clear()}}]),n}();Y_.\u0275fac=function(r){return new(r||Y_)},Y_.\u0275dir=t.lG2({type:Y_,selectors:[["","cdkDropListGroup",""]],inputs:{disabled:["cdkDropListGroupDisabled","disabled"]},exportAs:["cdkDropListGroup"],features:[t._Bn([{provide:V_,useExisting:Y_}])]});var xR=new t.OlP("CDK_DRAG_CONFIG");var uU=0,mE=new t.OlP("CdkDropList"),K_=function(){function n(r,e,i,o,a,s,l){var u=this;(0,B.Z)(this,n),this.element=r,this._changeDetectorRef=i,this._scrollDispatcher=o,this._dir=a,this._group=s,this._destroyed=new On.xQ,this.connectedTo=[],this.id="cdk-drop-list-".concat(uU++),this.enterPredicate=function(){return!0},this.sortPredicate=function(){return!0},this.dropped=new t.vpe,this.entered=new t.vpe,this.exited=new t.vpe,this.sorted=new t.vpe,this._unsortedItems=new Set,this._dropListRef=e.createDropList(r),this._dropListRef.data=this,l&&this._assignDefaults(l),this._dropListRef.enterPredicate=function(d,h){return u.enterPredicate(d.data,h.data)},this._dropListRef.sortPredicate=function(d,h,g){return u.sortPredicate(d,h.data,g.data)},this._setupInputSyncSubscription(this._dropListRef),this._handleEvents(this._dropListRef),n._dropLists.push(this),s&&s._items.add(this)}return(0,U.Z)(n,[{key:"disabled",get:function(){return this._disabled||!!this._group&&this._group.disabled},set:function(e){this._dropListRef.disabled=this._disabled=(0,En.Ig)(e)}},{key:"addItem",value:function(e){this._unsortedItems.add(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}},{key:"removeItem",value:function(e){this._unsortedItems.delete(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}},{key:"getSortedItems",value:function(){return Array.from(this._unsortedItems).sort(function(e,i){return e._dragRef.getVisibleElement().compareDocumentPosition(i._dragRef.getVisibleElement())&Node.DOCUMENT_POSITION_FOLLOWING?-1:1})}},{key:"ngOnDestroy",value:function(){var e=n._dropLists.indexOf(this);e>-1&&n._dropLists.splice(e,1),this._group&&this._group._items.delete(this),this._unsortedItems.clear(),this._dropListRef.dispose(),this._destroyed.next(),this._destroyed.complete()}},{key:"_setupInputSyncSubscription",value:function(e){var i=this;this._dir&&this._dir.change.pipe((0,Oo.O)(this._dir.value),(0,Ir.R)(this._destroyed)).subscribe(function(o){return e.withDirection(o)}),e.beforeStarted.subscribe(function(){var o=(0,En.Eq)(i.connectedTo).map(function(s){return"string"==typeof s?n._dropLists.find(function(u){return u.id===s}):s});if(i._group&&i._group._items.forEach(function(s){-1===o.indexOf(s)&&o.push(s)}),!i._scrollableParentsResolved){var a=i._scrollDispatcher.getAncestorScrollContainers(i.element).map(function(s){return s.getElementRef().nativeElement});i._dropListRef.withScrollableParents(a),i._scrollableParentsResolved=!0}e.disabled=i.disabled,e.lockAxis=i.lockAxis,e.sortingDisabled=(0,En.Ig)(i.sortingDisabled),e.autoScrollDisabled=(0,En.Ig)(i.autoScrollDisabled),e.autoScrollStep=(0,En.su)(i.autoScrollStep,2),e.connectedTo(o.filter(function(s){return s&&s!==i}).map(function(s){return s._dropListRef})).withOrientation(i.orientation)})}},{key:"_handleEvents",value:function(e){var i=this;e.beforeStarted.subscribe(function(){i._syncItemsWithRef(),i._changeDetectorRef.markForCheck()}),e.entered.subscribe(function(o){i.entered.emit({container:i,item:o.item.data,currentIndex:o.currentIndex})}),e.exited.subscribe(function(o){i.exited.emit({container:i,item:o.item.data}),i._changeDetectorRef.markForCheck()}),e.sorted.subscribe(function(o){i.sorted.emit({previousIndex:o.previousIndex,currentIndex:o.currentIndex,container:i,item:o.item.data})}),e.dropped.subscribe(function(o){i.dropped.emit({previousIndex:o.previousIndex,currentIndex:o.currentIndex,previousContainer:o.previousContainer.data,container:o.container.data,item:o.item.data,isPointerOverContainer:o.isPointerOverContainer,distance:o.distance,dropPoint:o.dropPoint,event:o.event}),i._changeDetectorRef.markForCheck()})}},{key:"_assignDefaults",value:function(e){var i=e.lockAxis,o=e.draggingDisabled,a=e.sortingDisabled,s=e.listAutoScrollDisabled,l=e.listOrientation;this.disabled=null!=o&&o,this.sortingDisabled=null!=a&&a,this.autoScrollDisabled=null!=s&&s,this.orientation=l||"vertical",i&&(this.lockAxis=i)}},{key:"_syncItemsWithRef",value:function(){this._dropListRef.withItems(this.getSortedItems().map(function(e){return e._dragRef}))}}]),n}();K_._dropLists=[],K_.\u0275fac=function(r){return new(r||K_)(t.Y36(t.SBq),t.Y36(zf),t.Y36(t.sBO),t.Y36(sa.mF),t.Y36(nl.Is,8),t.Y36(V_,12),t.Y36(xR,8))},K_.\u0275dir=t.lG2({type:K_,selectors:[["","cdkDropList",""],["cdk-drop-list"]],hostAttrs:[1,"cdk-drop-list"],hostVars:7,hostBindings:function(r,e){2&r&&(t.uIk("id",e.id),t.ekj("cdk-drop-list-disabled",e.disabled)("cdk-drop-list-dragging",e._dropListRef.isDragging())("cdk-drop-list-receiving",e._dropListRef.isReceiving()))},inputs:{connectedTo:["cdkDropListConnectedTo","connectedTo"],data:["cdkDropListData","data"],orientation:["cdkDropListOrientation","orientation"],id:"id",lockAxis:["cdkDropListLockAxis","lockAxis"],disabled:["cdkDropListDisabled","disabled"],sortingDisabled:["cdkDropListSortingDisabled","sortingDisabled"],enterPredicate:["cdkDropListEnterPredicate","enterPredicate"],sortPredicate:["cdkDropListSortPredicate","sortPredicate"],autoScrollDisabled:["cdkDropListAutoScrollDisabled","autoScrollDisabled"],autoScrollStep:["cdkDropListAutoScrollStep","autoScrollStep"]},outputs:{dropped:"cdkDropListDropped",entered:"cdkDropListEntered",exited:"cdkDropListExited",sorted:"cdkDropListSorted"},exportAs:["cdkDropList"],features:[t._Bn([{provide:V_,useValue:void 0},{provide:mE,useExisting:K_}])]});var DR=new t.OlP("CdkDragHandle"),Zy=function(){function n(r,e){(0,B.Z)(this,n),this.element=r,this._stateChanges=new On.xQ,this._disabled=!1,this._parentDrag=e}return(0,U.Z)(n,[{key:"disabled",get:function(){return this._disabled},set:function(e){this._disabled=(0,En.Ig)(e),this._stateChanges.next(this)}},{key:"ngOnDestroy",value:function(){this._stateChanges.complete()}}]),n}();Zy.\u0275fac=function(r){return new(r||Zy)(t.Y36(t.SBq),t.Y36(Ly,12))},Zy.\u0275dir=t.lG2({type:Zy,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:["cdkDragHandleDisabled","disabled"]},features:[t._Bn([{provide:DR,useExisting:Zy}])]});var AR=new t.OlP("CdkDragPlaceholder"),T1=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.templateRef=r});T1.\u0275fac=function(r){return new(r||T1)(t.Y36(t.Rgc))},T1.\u0275dir=t.lG2({type:T1,selectors:[["ng-template","cdkDragPlaceholder",""]],inputs:{data:"data"},features:[t._Bn([{provide:AR,useExisting:T1}])]});var _E=new t.OlP("CdkDragPreview"),M1=function(){function n(r){(0,B.Z)(this,n),this.templateRef=r,this._matchSize=!1}return(0,U.Z)(n,[{key:"matchSize",get:function(){return this._matchSize},set:function(e){this._matchSize=(0,En.Ig)(e)}}]),n}();M1.\u0275fac=function(r){return new(r||M1)(t.Y36(t.Rgc))},M1.\u0275dir=t.lG2({type:M1,selectors:[["ng-template","cdkDragPreview",""]],inputs:{data:"data",matchSize:"matchSize"},features:[t._Bn([{provide:_E,useExisting:M1}])]});var q_=function(){function n(r,e,i,o,a,s,l,u,d,h,g){var y=this;(0,B.Z)(this,n),this.element=r,this.dropContainer=e,this._ngZone=o,this._viewContainerRef=a,this._dir=l,this._changeDetectorRef=d,this._selfHandle=h,this._parentDrag=g,this._destroyed=new On.xQ,this.started=new t.vpe,this.released=new t.vpe,this.ended=new t.vpe,this.entered=new t.vpe,this.exited=new t.vpe,this.dropped=new t.vpe,this.moved=new oo.y(function(L){var z=y._dragRef.moved.pipe((0,$n.U)(function(q){return{source:y,pointerPosition:q.pointerPosition,event:q.event,delta:q.delta,distance:q.distance}})).subscribe(L);return function(){z.unsubscribe()}}),this._dragRef=u.createDrag(r,{dragStartThreshold:s&&null!=s.dragStartThreshold?s.dragStartThreshold:5,pointerDirectionChangeThreshold:s&&null!=s.pointerDirectionChangeThreshold?s.pointerDirectionChangeThreshold:5,zIndex:null==s?void 0:s.zIndex}),this._dragRef.data=this,n._dragInstances.push(this),s&&this._assignDefaults(s),e&&(this._dragRef._withDropContainer(e._dropListRef),e.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}return(0,U.Z)(n,[{key:"disabled",get:function(){return this._disabled||this.dropContainer&&this.dropContainer.disabled},set:function(e){this._disabled=(0,En.Ig)(e),this._dragRef.disabled=this._disabled}},{key:"getPlaceholderElement",value:function(){return this._dragRef.getPlaceholderElement()}},{key:"getRootElement",value:function(){return this._dragRef.getRootElement()}},{key:"reset",value:function(){this._dragRef.reset()}},{key:"getFreeDragPosition",value:function(){return this._dragRef.getFreeDragPosition()}},{key:"setFreeDragPosition",value:function(e){this._dragRef.setFreeDragPosition(e)}},{key:"ngAfterViewInit",value:function(){var e=this;this._ngZone.runOutsideAngular(function(){e._ngZone.onStable.pipe((0,Ri.q)(1),(0,Ir.R)(e._destroyed)).subscribe(function(){e._updateRootElement(),e._setupHandlesListener(),e.freeDragPosition&&e._dragRef.setFreeDragPosition(e.freeDragPosition)})})}},{key:"ngOnChanges",value:function(e){var i=e.rootElementSelector,o=e.freeDragPosition;i&&!i.firstChange&&this._updateRootElement(),o&&!o.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)}},{key:"ngOnDestroy",value:function(){var e=this;this.dropContainer&&this.dropContainer.removeItem(this);var i=n._dragInstances.indexOf(this);i>-1&&n._dragInstances.splice(i,1),this._ngZone.runOutsideAngular(function(){e._destroyed.next(),e._destroyed.complete(),e._dragRef.dispose()})}},{key:"_updateRootElement",value:function(){var e,i=this.element.nativeElement,o=i;this.rootElementSelector&&(o=void 0!==i.closest?i.closest(this.rootElementSelector):null===(e=i.parentElement)||void 0===e?void 0:e.closest(this.rootElementSelector)),this._dragRef.withRootElement(o||i)}},{key:"_getBoundaryElement",value:function(){var e=this.boundaryElement;return e?"string"==typeof e?this.element.nativeElement.closest(e):(0,En.fI)(e):null}},{key:"_syncInputs",value:function(e){var i=this;e.beforeStarted.subscribe(function(){if(!e.isDragging()){var o=i._dir,a=i.dragStartDelay,s=i._placeholderTemplate?{template:i._placeholderTemplate.templateRef,context:i._placeholderTemplate.data,viewContainer:i._viewContainerRef}:null,l=i._previewTemplate?{template:i._previewTemplate.templateRef,context:i._previewTemplate.data,matchSize:i._previewTemplate.matchSize,viewContainer:i._viewContainerRef}:null;e.disabled=i.disabled,e.lockAxis=i.lockAxis,e.dragStartDelay="object"==typeof a&&a?a:(0,En.su)(a),e.constrainPosition=i.constrainPosition,e.previewClass=i.previewClass,e.withBoundaryElement(i._getBoundaryElement()).withPlaceholderTemplate(s).withPreviewTemplate(l).withPreviewContainer(i.previewContainer||"global"),o&&e.withDirection(o.value)}}),e.beforeStarted.pipe((0,Ri.q)(1)).subscribe(function(){var o;if(i._parentDrag)e.withParent(i._parentDrag._dragRef);else for(var a=i.element.nativeElement.parentElement;a;){if(a.classList.contains("cdk-drag")){e.withParent((null===(o=n._dragInstances.find(function(s){return s.element.nativeElement===a}))||void 0===o?void 0:o._dragRef)||null);break}a=a.parentElement}})}},{key:"_handleEvents",value:function(e){var i=this;e.started.subscribe(function(o){i.started.emit({source:i,event:o.event}),i._changeDetectorRef.markForCheck()}),e.released.subscribe(function(o){i.released.emit({source:i,event:o.event})}),e.ended.subscribe(function(o){i.ended.emit({source:i,distance:o.distance,dropPoint:o.dropPoint,event:o.event}),i._changeDetectorRef.markForCheck()}),e.entered.subscribe(function(o){i.entered.emit({container:o.container.data,item:i,currentIndex:o.currentIndex})}),e.exited.subscribe(function(o){i.exited.emit({container:o.container.data,item:i})}),e.dropped.subscribe(function(o){i.dropped.emit({previousIndex:o.previousIndex,currentIndex:o.currentIndex,previousContainer:o.previousContainer.data,container:o.container.data,isPointerOverContainer:o.isPointerOverContainer,item:i,distance:o.distance,dropPoint:o.dropPoint,event:o.event})})}},{key:"_assignDefaults",value:function(e){var i=e.lockAxis,o=e.dragStartDelay,a=e.constrainPosition,s=e.previewClass,l=e.boundaryElement,u=e.draggingDisabled,d=e.rootElementSelector,h=e.previewContainer;this.disabled=null!=u&&u,this.dragStartDelay=o||0,i&&(this.lockAxis=i),a&&(this.constrainPosition=a),s&&(this.previewClass=s),l&&(this.boundaryElement=l),d&&(this.rootElementSelector=d),h&&(this.previewContainer=h)}},{key:"_setupHandlesListener",value:function(){var e=this;this._handles.changes.pipe((0,Oo.O)(this._handles),(0,aa.b)(function(i){var o=i.filter(function(a){return a._parentDrag===e}).map(function(a){return a.element});e._selfHandle&&e.rootElementSelector&&o.push(e.element),e._dragRef.withHandles(o)}),(0,Io.w)(function(i){return Gi.T.apply(void 0,(0,cn.Z)(i.map(function(o){return o._stateChanges.pipe((0,Oo.O)(o))})))}),(0,Ir.R)(this._destroyed)).subscribe(function(i){var o=e._dragRef,a=i.element.nativeElement;i.disabled?o.disableHandle(a):o.enableHandle(a)})}}]),n}();q_._dragInstances=[],q_.\u0275fac=function(r){return new(r||q_)(t.Y36(t.SBq),t.Y36(mE,12),t.Y36(le.K0),t.Y36(t.R0b),t.Y36(t.s_b),t.Y36(xR,8),t.Y36(nl.Is,8),t.Y36(zf),t.Y36(t.sBO),t.Y36(DR,10),t.Y36(Ly,12))},q_.\u0275dir=t.lG2({type:q_,selectors:[["","cdkDrag",""]],contentQueries:function(r,e,i){var o;(1&r&&(t.Suo(i,_E,5),t.Suo(i,AR,5),t.Suo(i,DR,5)),2&r)&&(t.iGM(o=t.CRH())&&(e._previewTemplate=o.first),t.iGM(o=t.CRH())&&(e._placeholderTemplate=o.first),t.iGM(o=t.CRH())&&(e._handles=o))},hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(r,e){2&r&&t.ekj("cdk-drag-disabled",e.disabled)("cdk-drag-dragging",e._dragRef.isDragging())},inputs:{data:["cdkDragData","data"],lockAxis:["cdkDragLockAxis","lockAxis"],rootElementSelector:["cdkDragRootElement","rootElementSelector"],boundaryElement:["cdkDragBoundary","boundaryElement"],dragStartDelay:["cdkDragStartDelay","dragStartDelay"],freeDragPosition:["cdkDragFreeDragPosition","freeDragPosition"],disabled:["cdkDragDisabled","disabled"],constrainPosition:["cdkDragConstrainPosition","constrainPosition"],previewClass:["cdkDragPreviewClass","previewClass"],previewContainer:["cdkDragPreviewContainer","previewContainer"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],features:[t._Bn([{provide:Ly,useExisting:q_}]),t.TTD]});var J_=(0,U.Z)(function n(){(0,B.Z)(this,n)});J_.\u0275fac=function(r){return new(r||J_)},J_.\u0275mod=t.oAB({type:J_}),J_.\u0275inj=t.cJS({providers:[zf],imports:[sa.ZD]});var Li=m(1314),Si=m(449),hs=m(3527),Qi=m(591),Ny=m(4715),Kn=m(1086),OR=[[["caption"]],[["colgroup"],["col"]]];function fU(n,r){if(1&n&&(t.TgZ(0,"th",3),t._uU(1),t.qZA()),2&n){var e=t.oxw();t.Udp("text-align",e.justify),t.xp6(1),t.hij(" ",e.headerText," ")}}function pU(n,r){if(1&n&&(t.TgZ(0,"td",4),t._uU(1),t.qZA()),2&n){var e=r.$implicit,i=t.oxw();t.Udp("text-align",i.justify),t.xp6(1),t.hij(" ",i.dataAccessor(e,i.name)," ")}}function gE(n){return function(r){(0,qe.Z)(i,r);var e=(0,Be.Z)(i);function i(){var o;(0,B.Z)(this,i);for(var a=arguments.length,s=new Array(a),l=0;l4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=arguments.length>6?arguments[6]:void 0;(0,B.Z)(this,n),this._isNativeHtmlTable=r,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=a,this._needsPositionStickyOnElement=s,this._positionListener=l,this._cachedCellWidths=[],this._borderCellCss={top:"".concat(e,"-border-elem-top"),bottom:"".concat(e,"-border-elem-bottom"),left:"".concat(e,"-border-elem-left"),right:"".concat(e,"-border-elem-right")}}return(0,U.Z)(n,[{key:"clearStickyPositioning",value:function(e,i){var l,o=this,a=[],s=(0,An.Z)(e);try{for(s.s();!(l=s.n()).done;){var u=l.value;if(u.nodeType===u.ELEMENT_NODE){a.push(u);for(var d=0;d3&&void 0!==arguments[3])||arguments[3];if(e.length&&this._isBrowser&&(i.some(function(z){return z})||o.some(function(z){return z}))){var l=e[0],u=l.children.length,d=this._getCellWidths(l,s),h=this._getStickyStartColumnPositions(d,i),g=this._getStickyEndColumnPositions(d,o),y=i.lastIndexOf(!0),L=o.indexOf(!0);this._coalescedStyleScheduler.schedule(function(){var Se,z="rtl"===a.direction,q=z?"right":"left",re=z?"left":"right",ae=(0,An.Z)(e);try{for(ae.s();!(Se=ae.n()).done;)for(var Ce=Se.value,Ee=0;Ee1&&void 0!==arguments[1])||arguments[1];if(!i&&this._cachedCellWidths.length)return this._cachedCellWidths;for(var o=[],a=e.children,s=0;s0;s--)i[s]&&(o[s]=a,a+=e[s]);return o}}]),n}();var yE=new t.OlP("CDK_SPL"),eg=(0,U.Z)(function n(){(0,B.Z)(this,n)});eg.\u0275fac=function(r){return new(r||eg)},eg.\u0275dir=t.lG2({type:eg,selectors:[["cdk-table","recycleRows",""],["table","cdk-table","","recycleRows",""]],features:[t._Bn([{provide:Si.k,useClass:Si.eX}])]});var Yf=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.viewContainer=r,this.elementRef=e});Yf.\u0275fac=function(r){return new(r||Yf)(t.Y36(t.s_b),t.Y36(t.SBq))},Yf.\u0275dir=t.lG2({type:Yf,selectors:[["","rowOutlet",""]]});var Kf=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.viewContainer=r,this.elementRef=e});Kf.\u0275fac=function(r){return new(r||Kf)(t.Y36(t.s_b),t.Y36(t.SBq))},Kf.\u0275dir=t.lG2({type:Kf,selectors:[["","headerRowOutlet",""]]});var qf=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.viewContainer=r,this.elementRef=e});qf.\u0275fac=function(r){return new(r||qf)(t.Y36(t.s_b),t.Y36(t.SBq))},qf.\u0275dir=t.lG2({type:qf,selectors:[["","footerRowOutlet",""]]});var Jf=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.viewContainer=r,this.elementRef=e});Jf.\u0275fac=function(r){return new(r||Jf)(t.Y36(t.s_b),t.Y36(t.SBq))},Jf.\u0275dir=t.lG2({type:Jf,selectors:[["","noDataRowOutlet",""]]});t.a5r;var zc=function(){function n(r,e,i,o,a,s,l,u,d,h,g,y){(0,B.Z)(this,n),this._differs=r,this._changeDetectorRef=e,this._elementRef=i,this._dir=a,this._platform=l,this._viewRepeater=u,this._coalescedStyleScheduler=d,this._viewportRuler=h,this._stickyPositioningListener=g,this._ngZone=y,this._onDestroy=new On.xQ,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new t.vpe,this.viewChange=new Qi.X({start:0,end:Number.MAX_VALUE}),o||this._elementRef.nativeElement.setAttribute("role","table"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}return(0,U.Z)(n,[{key:"trackBy",get:function(){return this._trackByFn},set:function(e){this._trackByFn=e}},{key:"dataSource",get:function(){return this._dataSource},set:function(e){this._dataSource!==e&&this._switchDataSource(e)}},{key:"multiTemplateDataRows",get:function(){return this._multiTemplateDataRows},set:function(e){this._multiTemplateDataRows=(0,En.Ig)(e),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}},{key:"fixedLayout",get:function(){return this._fixedLayout},set:function(e){this._fixedLayout=(0,En.Ig)(e),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}},{key:"ngOnInit",value:function(){var e=this;this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create(function(i,o){return e.trackBy?e.trackBy(o.dataIndex,o.data):o}),this._viewportRuler.change().pipe((0,Ir.R)(this._onDestroy)).subscribe(function(){e._forceRecalculateCellWidths=!0})}},{key:"ngAfterContentChecked",value:function(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;var 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()}},{key:"ngOnDestroy",value:function(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(function(e){e.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),(0,Si.Z9)(this.dataSource)&&this.dataSource.disconnect(this)}},{key:"renderRows",value:function(){var e=this;this._renderRows=this._getAllRenderRows();var i=this._dataDiffer.diff(this._renderRows);if(!i)return this._updateNoDataRow(),void this.contentChanged.next();var o=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(i,o,function(a,s,l){return e._getEmbeddedViewArgs(a.item,l)},function(a){return a.item.data},function(a){1===a.operation&&a.context&&e._renderCellTemplateForItem(a.record.item.rowDef,a.context)}),this._updateRowIndexContext(),i.forEachIdentityChange(function(a){o.get(a.currentIndex).context.$implicit=a.item.data}),this._updateNoDataRow(),this._ngZone&&t.R0b.isInAngularZone()?this._ngZone.onStable.pipe((0,Ri.q)(1),(0,Ir.R)(this._onDestroy)).subscribe(function(){e.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}},{key:"addColumnDef",value:function(e){this._customColumnDefs.add(e)}},{key:"removeColumnDef",value:function(e){this._customColumnDefs.delete(e)}},{key:"addRowDef",value:function(e){this._customRowDefs.add(e)}},{key:"removeRowDef",value:function(e){this._customRowDefs.delete(e)}},{key:"addHeaderRowDef",value:function(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}},{key:"removeHeaderRowDef",value:function(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}},{key:"addFooterRowDef",value:function(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}},{key:"removeFooterRowDef",value:function(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}},{key:"setNoDataRow",value:function(e){this._customNoDataRow=e}},{key:"updateStickyHeaderRowStyles",value:function(){var e=this._getRenderedRows(this._headerRowOutlet),o=this._elementRef.nativeElement.querySelector("thead");o&&(o.style.display=e.length?"":"none");var a=this._headerRowDefs.map(function(s){return s.sticky});this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,a,"top"),this._headerRowDefs.forEach(function(s){return s.resetStickyChanged()})}},{key:"updateStickyFooterRowStyles",value:function(){var e=this._getRenderedRows(this._footerRowOutlet),o=this._elementRef.nativeElement.querySelector("tfoot");o&&(o.style.display=e.length?"":"none");var a=this._footerRowDefs.map(function(s){return s.sticky});this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,a,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,a),this._footerRowDefs.forEach(function(s){return s.resetStickyChanged()})}},{key:"updateStickyColumnStyles",value:function(){var e=this,i=this._getRenderedRows(this._headerRowOutlet),o=this._getRenderedRows(this._rowOutlet),a=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([].concat((0,cn.Z)(i),(0,cn.Z)(o),(0,cn.Z)(a)),["left","right"]),this._stickyColumnStylesNeedReset=!1),i.forEach(function(s,l){e._addStickyColumnStyles([s],e._headerRowDefs[l])}),this._rowDefs.forEach(function(s){for(var l=[],u=0;u0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach(function(i,o){return e._renderRow(e._headerRowOutlet,i,o)}),this.updateStickyHeaderRowStyles()}},{key:"_forceRenderFooterRows",value:function(){var e=this;this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach(function(i,o){return e._renderRow(e._footerRowOutlet,i,o)}),this.updateStickyFooterRowStyles()}},{key:"_addStickyColumnStyles",value:function(e,i){var o=this,a=Array.from(i.columns||[]).map(function(u){return o._columnDefsByName.get(u)}),s=a.map(function(u){return u.sticky}),l=a.map(function(u){return u.stickyEnd});this._stickyStyler.updateStickyColumns(e,s,l,!this._fixedLayout||this._forceRecalculateCellWidths)}},{key:"_getRenderedRows",value:function(e){for(var i=[],o=0;o3&&void 0!==arguments[3]?arguments[3]:{},s=e.viewContainer.createEmbeddedView(i.template,a,o);return this._renderCellTemplateForItem(i,a),s}},{key:"_renderCellTemplateForItem",value:function(e,i){var a,o=(0,An.Z)(this._getCellTemplates(e));try{for(o.s();!(a=o.n()).done;){var s=a.value;kl.mostRecentCellOutlet&&kl.mostRecentCellOutlet._viewContainer.createEmbeddedView(s,i)}}catch(l){o.e(l)}finally{o.f()}this._changeDetectorRef.markForCheck()}},{key:"_updateRowIndexContext",value:function(){for(var e=this._rowOutlet.viewContainer,i=0,o=e.length;i open-instant",(0,Zt.jt)("0ms")),(0,Zt.eR)("void <=> open, open-instant => void",(0,Zt.jt)("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])};var CE=new t.OlP("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function UR(){return!1}}),A1=new t.OlP("MAT_DRAWER_CONTAINER");var Iu=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,a,s,l))._changeDetectorRef=i,u._container=o,u}return(0,U.Z)(e,[{key:"ngAfterContentInit",value:function(){var o=this;this._container._contentMarginChanges.subscribe(function(){o._changeDetectorRef.markForCheck()})}}]),e}(sa.PQ);Iu.\u0275fac=function(r){return new(r||Iu)(t.Y36(t.sBO),t.Y36((0,t.Gpc)(function(){return rg})),t.Y36(t.SBq),t.Y36(sa.mF),t.Y36(t.R0b))},Iu.\u0275cmp=t.Xpm({type:Iu,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:4,hostBindings:function(r,e){2&r&&t.Udp("margin-left",e._container._contentMargins.left,"px")("margin-right",e._container._contentMargins.right,"px")},features:[t._Bn([{provide:sa.PQ,useExisting:Iu}]),t.qOj],ngContentSelectors:D1,decls:1,vars:0,template:function(r,e){1&r&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0});var $f=function(){function n(r,e,i,o,a,s,l,u){var d=this;(0,B.Z)(this,n),this._elementRef=r,this._focusTrapFactory=e,this._focusMonitor=i,this._platform=o,this._ngZone=a,this._interactivityChecker=s,this._doc=l,this._container=u,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new On.xQ,this._animationEnd=new On.xQ,this._animationState="void",this.openedChange=new t.vpe(!0),this._openedStream=this.openedChange.pipe((0,$r.h)(function(h){return h}),(0,$n.U)(function(){})),this.openedStart=this._animationStarted.pipe((0,$r.h)(function(h){return h.fromState!==h.toState&&0===h.toState.indexOf("open")}),(0,x1.h)(void 0)),this._closedStream=this.openedChange.pipe((0,$r.h)(function(h){return!h}),(0,$n.U)(function(){})),this.closedStart=this._animationStarted.pipe((0,$r.h)(function(h){return h.fromState!==h.toState&&"void"===h.toState}),(0,x1.h)(void 0)),this._destroyed=new On.xQ,this.onPositionChanged=new t.vpe,this._modeChanged=new On.xQ,this.openedChange.subscribe(function(h){h?(d._doc&&(d._elementFocusedBeforeDrawerWasOpened=d._doc.activeElement),d._takeFocus()):d._isFocusWithinDrawer()&&d._restoreFocus(d._openedVia||"program")}),this._ngZone.runOutsideAngular(function(){(0,Xf.R)(d._elementRef.nativeElement,"keydown").pipe((0,$r.h)(function(h){return h.keyCode===Tr.hY&&!d.disableClose&&!(0,Tr.Vb)(h)}),(0,Ir.R)(d._destroyed)).subscribe(function(h){return d._ngZone.run(function(){d.close(),h.stopPropagation(),h.preventDefault()})})}),this._animationEnd.pipe((0,ts.x)(function(h,g){return h.fromState===g.fromState&&h.toState===g.toState})).subscribe(function(h){var g=h.fromState,y=h.toState;(0===y.indexOf("open")&&"void"===g||"void"===y&&0===g.indexOf("open"))&&d.openedChange.emit(d._opened)})}return(0,U.Z)(n,[{key:"position",get:function(){return this._position},set:function(e){(e="end"===e?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}},{key:"mode",get:function(){return this._mode},set:function(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}},{key:"disableClose",get:function(){return this._disableClose},set:function(e){this._disableClose=(0,En.Ig)(e)}},{key:"autoFocus",get:function(){var e=this._autoFocus;return null==e?"side"===this.mode?"dialog":"first-tabbable":e},set:function(e){("true"===e||"false"===e||null==e)&&(e=(0,En.Ig)(e)),this._autoFocus=e}},{key:"opened",get:function(){return this._opened},set:function(e){this.toggle((0,En.Ig)(e))}},{key:"_forceFocus",value:function(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(function(){var o=function a(){e.removeEventListener("blur",a),e.removeEventListener("mousedown",a),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}},{key:"_focusByCssSelector",value:function(e,i){var o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}},{key:"_takeFocus",value:function(){var e=this;if(this._focusTrap){var i=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(function(o){!o&&"function"==typeof e._elementRef.nativeElement.focus&&i.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}}},{key:"_restoreFocus",value:function(e){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}},{key:"_isFocusWithinDrawer",value:function(){var e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}},{key:"ngAfterViewInit",value:function(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}},{key:"ngAfterContentChecked",value:function(){this._platform.isBrowser&&(this._enableAnimations=!0)}},{key:"ngOnDestroy",value:function(){var e;this._focusTrap&&this._focusTrap.destroy(),null===(e=this._anchor)||void 0===e||e.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}},{key:"open",value:function(e){return this.toggle(!0,e)}},{key:"close",value:function(){return this.toggle(!1)}},{key:"_closeViaBackdropClick",value:function(){return this._setOpen(!1,!0,"mouse")}},{key:"toggle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!this.opened,i=arguments.length>1?arguments[1]:void 0;e&&i&&(this._openedVia=i);var o=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),o}},{key:"_setOpen",value:function(e,i,o){var a=this;return this._opened=e,e?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(o)),this._updateFocusTrapState(),new Promise(function(s){a.openedChange.pipe((0,Ri.q)(1)).subscribe(function(l){return s(l?"open":"close")})})}},{key:"_getWidth",value:function(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}},{key:"_updateFocusTrapState",value:function(){this._focusTrap&&(this._focusTrap.enabled=this.opened&&"side"!==this.mode)}},{key:"_updatePositionInParent",value:function(e){var i=this._elementRef.nativeElement,o=i.parentNode;"end"===e?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}}]),n}();$f.\u0275fac=function(r){return new(r||$f)(t.Y36(t.SBq),t.Y36(Yr.qV),t.Y36(Yr.tE),t.Y36(bi.t4),t.Y36(t.R0b),t.Y36(Yr.ic),t.Y36(le.K0,8),t.Y36(A1,8))},$f.\u0275cmp=t.Xpm({type:$f,selectors:[["mat-drawer"]],viewQuery:function(r,e){var i;(1&r&&t.Gf(dY,5),2&r)&&(t.iGM(i=t.CRH())&&(e._content=i.first))},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:12,hostBindings:function(r,e){1&r&&t.WFA("@transform.start",function(o){return e._animationStarted.next(o)})("@transform.done",function(o){return e._animationEnd.next(o)}),2&r&&(t.uIk("align",null),t.d8E("@transform",e._animationState),t.ekj("mat-drawer-end","end"===e.position)("mat-drawer-over","over"===e.mode)("mat-drawer-push","push"===e.mode)("mat-drawer-side","side"===e.mode)("mat-drawer-opened",e.opened))},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:D1,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(r,e){1&r&&(t.F$t(),t.TgZ(0,"div",0,1),t.Hsn(2),t.qZA())},dependencies:[sa.PQ],encapsulation:2,data:{animation:[FR.transformDrawer]},changeDetection:0});var rg=function(){function n(r,e,i,o,a){var s=this,l=arguments.length>5&&void 0!==arguments[5]&&arguments[5],u=arguments.length>6?arguments[6]:void 0;(0,B.Z)(this,n),this._dir=r,this._element=e,this._ngZone=i,this._changeDetectorRef=o,this._animationMode=u,this._drawers=new t.n_E,this.backdropClick=new t.vpe,this._destroyed=new On.xQ,this._doCheckSubject=new On.xQ,this._contentMargins={left:null,right:null},this._contentMarginChanges=new On.xQ,r&&r.change.pipe((0,Ir.R)(this._destroyed)).subscribe(function(){s._validateDrawers(),s.updateContentMargins()}),a.change().pipe((0,Ir.R)(this._destroyed)).subscribe(function(){return s.updateContentMargins()}),this._autosize=l}return(0,U.Z)(n,[{key:"start",get:function(){return this._start}},{key:"end",get:function(){return this._end}},{key:"autosize",get:function(){return this._autosize},set:function(e){this._autosize=(0,En.Ig)(e)}},{key:"hasBackdrop",get:function(){return null==this._backdropOverride?!this._start||"side"!==this._start.mode||!this._end||"side"!==this._end.mode:this._backdropOverride},set:function(e){this._backdropOverride=null==e?null:(0,En.Ig)(e)}},{key:"scrollable",get:function(){return this._userContent||this._content}},{key:"ngAfterContentInit",value:function(){var e=this;this._allDrawers.changes.pipe((0,Oo.O)(this._allDrawers),(0,Ir.R)(this._destroyed)).subscribe(function(i){e._drawers.reset(i.filter(function(o){return!o._container||o._container===e})),e._drawers.notifyOnChanges()}),this._drawers.changes.pipe((0,Oo.O)(null)).subscribe(function(){e._validateDrawers(),e._drawers.forEach(function(i){e._watchDrawerToggle(i),e._watchDrawerPosition(i),e._watchDrawerMode(i)}),(!e._drawers.length||e._isDrawerOpen(e._start)||e._isDrawerOpen(e._end))&&e.updateContentMargins(),e._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(function(){e._doCheckSubject.pipe((0,ng.b)(10),(0,Ir.R)(e._destroyed)).subscribe(function(){return e.updateContentMargins()})})}},{key:"ngOnDestroy",value:function(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}},{key:"open",value:function(){this._drawers.forEach(function(e){return e.open()})}},{key:"close",value:function(){this._drawers.forEach(function(e){return e.close()})}},{key:"updateContentMargins",value:function(){var e=this,i=0,o=0;if(this._left&&this._left.opened)if("side"==this._left.mode)i+=this._left._getWidth();else if("push"==this._left.mode){var a=this._left._getWidth();i+=a,o-=a}if(this._right&&this._right.opened)if("side"==this._right.mode)o+=this._right._getWidth();else if("push"==this._right.mode){var s=this._right._getWidth();o+=s,i-=s}o=o||null,((i=i||null)!==this._contentMargins.left||o!==this._contentMargins.right)&&(this._contentMargins={left:i,right:o},this._ngZone.run(function(){return e._contentMarginChanges.next(e._contentMargins)}))}},{key:"ngDoCheck",value:function(){var e=this;this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(function(){return e._doCheckSubject.next()})}},{key:"_watchDrawerToggle",value:function(e){var i=this;e._animationStarted.pipe((0,$r.h)(function(o){return o.fromState!==o.toState}),(0,Ir.R)(this._drawers.changes)).subscribe(function(o){"open-instant"!==o.toState&&"NoopAnimations"!==i._animationMode&&i._element.nativeElement.classList.add("mat-drawer-transition"),i.updateContentMargins(),i._changeDetectorRef.markForCheck()}),"side"!==e.mode&&e.openedChange.pipe((0,Ir.R)(this._drawers.changes)).subscribe(function(){return i._setContainerClass(e.opened)})}},{key:"_watchDrawerPosition",value:function(e){var i=this;!e||e.onPositionChanged.pipe((0,Ir.R)(this._drawers.changes)).subscribe(function(){i._ngZone.onMicrotaskEmpty.pipe((0,Ri.q)(1)).subscribe(function(){i._validateDrawers()})})}},{key:"_watchDrawerMode",value:function(e){var i=this;e&&e._modeChanged.pipe((0,Ir.R)((0,Gi.T)(this._drawers.changes,this._destroyed))).subscribe(function(){i.updateContentMargins(),i._changeDetectorRef.markForCheck()})}},{key:"_setContainerClass",value:function(e){var i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";e?i.add(o):i.remove(o)}},{key:"_validateDrawers",value:function(){var e=this;this._start=this._end=null,this._drawers.forEach(function(i){"end"==i.position?(e._end,e._end=i):(e._start,e._start=i)}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}},{key:"_isPushed",value:function(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}},{key:"_onBackdropClicked",value:function(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}},{key:"_closeModalDrawersViaBackdrop",value:function(){var e=this;[this._start,this._end].filter(function(i){return i&&!i.disableClose&&e._canHaveBackdrop(i)}).forEach(function(i){return i._closeViaBackdropClick()})}},{key:"_isShowingBackdrop",value:function(){return this._isDrawerOpen(this._start)&&this._canHaveBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._canHaveBackdrop(this._end)}},{key:"_canHaveBackdrop",value:function(e){return"side"!==e.mode||!!this._backdropOverride}},{key:"_isDrawerOpen",value:function(e){return null!=e&&e.opened}}]),n}();rg.\u0275fac=function(r){return new(r||rg)(t.Y36(nl.Is,8),t.Y36(t.SBq),t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(sa.rL),t.Y36(CE),t.Y36(t.QbO,8))},rg.\u0275cmp=t.Xpm({type:rg,selectors:[["mat-drawer-container"]],contentQueries:function(r,e,i){var o;(1&r&&(t.Suo(i,Iu,5),t.Suo(i,$f,5)),2&r)&&(t.iGM(o=t.CRH())&&(e._content=o.first),t.iGM(o=t.CRH())&&(e._allDrawers=o))},viewQuery:function(r,e){var i;(1&r&&t.Gf(Iu,5),2&r)&&(t.iGM(i=t.CRH())&&(e._userContent=i.first))},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("mat-drawer-container-explicit-backdrop",e._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[t._Bn([{provide:A1,useExisting:rg}])],ngContentSelectors:["mat-drawer","mat-drawer-content","*"],decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(r,e){1&r&&(t.F$t(NR),t.YNc(0,fY,1,2,"div",0),t.Hsn(1),t.Hsn(2,1),t.YNc(3,ZR,2,0,"mat-drawer-content",1)),2&r&&(t.Q6J("ngIf",e.hasBackdrop),t.xp6(3),t.Q6J("ngIf",!e._content))},dependencies:[le.O5,Iu],styles:['.mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;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}.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}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.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;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)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .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)}[dir=rtl] .mat-drawer{transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0});var ep=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){return(0,B.Z)(this,e),r.call(this,i,o,a,s,l)}return(0,U.Z)(e)}(Iu);ep.\u0275fac=function(r){return new(r||ep)(t.Y36(t.sBO),t.Y36((0,t.Gpc)(function(){return tp})),t.Y36(t.SBq),t.Y36(sa.mF),t.Y36(t.R0b))},ep.\u0275cmp=t.Xpm({type:ep,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(r,e){2&r&&t.Udp("margin-left",e._container._contentMargins.left,"px")("margin-right",e._container._contentMargins.right,"px")},features:[t._Bn([{provide:sa.PQ,useExisting:ep}]),t.qOj],ngContentSelectors:D1,decls:1,vars:0,template:function(r,e){1&r&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0});var ig=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments))._fixedInViewport=!1,i._fixedTopGap=0,i._fixedBottomGap=0,i}return(0,U.Z)(e,[{key:"fixedInViewport",get:function(){return this._fixedInViewport},set:function(o){this._fixedInViewport=(0,En.Ig)(o)}},{key:"fixedTopGap",get:function(){return this._fixedTopGap},set:function(o){this._fixedTopGap=(0,En.su)(o)}},{key:"fixedBottomGap",get:function(){return this._fixedBottomGap},set:function(o){this._fixedBottomGap=(0,En.su)(o)}}]),e}($f);ig.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(ig)))(e||ig)}}(),ig.\u0275cmp=t.Xpm({type:ig,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(r,e){2&r&&(t.uIk("align",null),t.Udp("top",e.fixedInViewport?e.fixedTopGap:null,"px")("bottom",e.fixedInViewport?e.fixedBottomGap:null,"px"),t.ekj("mat-drawer-end","end"===e.position)("mat-drawer-over","over"===e.mode)("mat-drawer-push","push"===e.mode)("mat-drawer-side","side"===e.mode)("mat-drawer-opened",e.opened)("mat-sidenav-fixed",e.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[t.qOj],ngContentSelectors:D1,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(r,e){1&r&&(t.F$t(),t.TgZ(0,"div",0,1),t.Hsn(2),t.qZA())},dependencies:[sa.PQ],encapsulation:2,data:{animation:[FR.transformDrawer]},changeDetection:0});var tp=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(rg);tp.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(tp)))(e||tp)}}(),tp.\u0275cmp=t.Xpm({type:tp,selectors:[["mat-sidenav-container"]],contentQueries:function(r,e,i){var o;(1&r&&(t.Suo(i,ep,5),t.Suo(i,ig,5)),2&r)&&(t.iGM(o=t.CRH())&&(e._content=o.first),t.iGM(o=t.CRH())&&(e._allDrawers=o))},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("mat-drawer-container-explicit-backdrop",e._backdropOverride)},exportAs:["matSidenavContainer"],features:[t._Bn([{provide:A1,useExisting:tp}]),t.qOj],ngContentSelectors:["mat-sidenav","mat-sidenav-content","*"],decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(r,e){1&r&&(t.F$t(kU),t.YNc(0,wU,1,2,"div",0),t.Hsn(1),t.Hsn(2,1),t.YNc(3,bE,2,0,"mat-sidenav-content",1)),2&r&&(t.Q6J("ngIf",e.hasBackdrop),t.xp6(3),t.Q6J("ngIf",!e._content))},dependencies:[le.O5,ep],styles:['.mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;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}.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}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.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;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)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .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)}[dir=rtl] .mat-drawer{transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0});var pc=(0,U.Z)(function n(){(0,B.Z)(this,n)});pc.\u0275fac=function(r){return new(r||pc)},pc.\u0275mod=t.oAB({type:pc}),pc.\u0275inj=t.cJS({imports:[le.ez,Gt.BQ,sa.ZD,sa.ZD,Gt.BQ]});function wE(n){return new t.vHH(3e3,!1)}function JR(n){return new t.vHH(3502,!1)}function LU(){return new t.vHH(3300,!1)}function ZU(n){return new t.vHH(3504,!1)}function I1(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function Vh(n){switch(n.length){case 0:return new Zt.ZN;case 1:return n[0];default:return new Zt.ZE(n)}}function P1(n,r,e,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new Map,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:new Map,s=[],l=[],u=-1,d=null;if(i.forEach(function(h){var g=h.get("offset"),y=g==u,L=y&&d||new Map;h.forEach(function(z,q){var re=q,ae=z;if("offset"!==q)switch(re=r.normalizePropertyName(re,s),ae){case Zt.k1:ae=o.get(q);break;case Zt.l3:ae=a.get(q);break;default:ae=r.normalizeStyleValue(q,re,ae,s)}L.set(re,ae)}),y||l.push(L),d=L,u=g}),s.length)throw JR();return l}function R1(n,r,e,i){switch(r){case"start":n.onStart(function(){return i(e&&TE(e,"start",n))});break;case"done":n.onDone(function(){return i(e&&TE(e,"done",n))});break;case"destroy":n.onDestroy(function(){return i(e&&TE(e,"destroy",n))})}}function TE(n,r,e){var i=e.totalTime,o=!!e.disabled,a=L1(n.element,n.triggerName,n.fromState,n.toState,r||n.phaseName,null==i?n.totalTime:i,o),s=n._data;return null!=s&&(a._data=s),a}function L1(n,r,e,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6?arguments[6]:void 0;return{element:n,triggerName:r,fromState:e,toState:i,phaseName:o,totalTime:a,disabled:!!s}}function Pu(n,r,e){var i=n.get(r);return i||n.set(r,i=e),i}function eL(n){var r=n.indexOf(":");return[n.substring(1,r),n.slice(r+1)]}var np=function(r,e){return!1},tL=function(r,e,i){return[]},Uy=null;function ME(n){var r=n.parentNode||n.host;return r===Uy?null:r}(I1()||"undefined"!=typeof Element)&&(function $R(){return"undefined"!=typeof window&&void 0!==window.document}()?(Uy=function(){return document.documentElement}(),np=function(r,e){for(;e;){if(e===r)return!0;e=ME(e)}return!1}):np=function(r,e){return r.contains(e)},tL=function(r,e,i){if(i)return Array.from(r.querySelectorAll(e));var o=r.querySelector(e);return o?[o]:[]});var rp=null,nL=!1;function og(n){rp||(rp=function CY(){return"undefined"!=typeof document?document.body:null}()||{},nL=!!rp.style&&"WebkitAppearance"in rp.style);var r=!0;rp.style&&!function yY(n){return"ebkit"==n.substring(1,6)}(n)&&(!(r=n in rp.style)&&nL)&&(r="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in rp.style);return r}var rL=np,SE=tL;var ag=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"validateStyleProperty",value:function(e){return og(e)}},{key:"matchesElement",value:function(e,i){return!1}},{key:"containsElement",value:function(e,i){return rL(e,i)}},{key:"getParentElement",value:function(e){return ME(e)}},{key:"query",value:function(e,i,o){return SE(e,i,o)}},{key:"computeStyle",value:function(e,i,o){return o||""}},{key:"animate",value:function(e,i,o,a,s){arguments.length>5&&void 0!==arguments[5]&&arguments[5],arguments.length>6&&arguments[6];return new Zt.ZN(o,a)}}]),n}();ag.\u0275fac=function(r){return new(r||ag)},ag.\u0275prov=t.Yz7({token:ag,factory:ag.\u0275fac});var Tl=(0,U.Z)(function n(){(0,B.Z)(this,n)});Tl.NOOP=new ag;var Wc="ng-enter",EE="ng-leave",sg="ng-trigger",N1=".ng-trigger",iL="ng-animating",Hy=".ng-animating";function Vc(n){if("number"==typeof n)return n;var r=n.match(/^(-?[\.\d]+)(m?s)/);return!r||r.length<2?0:B1(parseFloat(r[1]),r[2])}function B1(n,r){return"s"===r?1e3*n:n}function F1(n,r,e){return n.hasOwnProperty("duration")?n:function oL(n,r,e){var o,i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,a=0,s="";if("string"==typeof n){var l=n.match(i);if(null===l)return r.push(wE()),{duration:0,delay:0,easing:""};o=B1(parseFloat(l[1]),l[2]);var u=l[3];null!=u&&(a=B1(parseFloat(u),l[4]));var d=l[5];d&&(s=d)}else o=n;if(!e){var h=!1,g=r.length;o<0&&(r.push(function kE(){return new t.vHH(3100,!1)}()),h=!0),a<0&&(r.push(function MU(){return new t.vHH(3101,!1)}()),h=!0),h&&r.splice(g,0,wE())}return{duration:o,delay:a,easing:s}}(n,r,e)}function lg(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(n).forEach(function(e){r[e]=n[e]}),r}function Yh(n){var r=new Map;return Object.keys(n).forEach(function(e){var i=n[e];r.set(e,i)}),r}function Kh(n){return n.length?n[0]instanceof Map?n:n.map(function(r){return Yh(r)}):[]}function Ru(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map,e=arguments.length>2?arguments[2]:void 0;if(e){var o,i=(0,An.Z)(e);try{for(i.s();!(o=i.n()).done;){var a=(0,Yn.Z)(o.value,2),s=a[0],l=a[1];r.set(s,l)}}catch(L){i.e(L)}finally{i.f()}}var d,u=(0,An.Z)(n);try{for(u.s();!(d=u.n()).done;){var h=(0,Yn.Z)(d.value,2),g=h[0],y=h[1];r.set(g,y)}}catch(L){u.e(L)}finally{u.f()}return r}function hc(n,r,e){return e?r+":"+e+";":""}function xE(n){for(var r="",e=0;e *";case":leave":return"* => void";case":increment":return function(e,i){return parseFloat(i)>parseFloat(e)};case":decrement":return function(e,i){return parseFloat(i) *"}}(n,e);if("function"==typeof i)return void r.push(i);n=i}var o=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==o||o.length<4)return e.push(function KR(n){return new t.vHH(3015,!1)}()),r;var a=o[1],s=o[2],l=o[3];r.push(KU(a,l));var u="*"==a&&"*"==l;"<"==s[0]&&!u&&r.push(KU(l,a))}(i,e,r)}):e.push(n),e}var OE=new Set(["true","1"]),j1=new Set(["false","0"]);function KU(n,r){var e=OE.has(n)||j1.has(n),i=OE.has(r)||j1.has(r);return function(o,a){var s="*"==n||n==o,l="*"==r||r==a;return!s&&e&&"boolean"==typeof o&&(s=o?OE.has(n):j1.has(n)),!l&&i&&"boolean"==typeof a&&(l=a?OE.has(r):j1.has(r)),s&&l}}var qU=":self",mL=new RegExp("s*".concat(":self","s*,?"),"g");function G1(n,r,e,i){return new JU(n).build(r,e,i)}var JU=function(){function n(r){(0,B.Z)(this,n),this._driver=r}return(0,U.Z)(n,[{key:"build",value:function(e,i,o){var a=new TY(i);return this._resetContextStyleTimingState(a),Zu(this,jy(e),a)}},{key:"_resetContextStyleTimingState",value:function(e){e.currentQuerySelector="",e.collectedStyles=new Map,e.collectedStyles.set("",new Map),e.currentTime=0}},{key:"visitTrigger",value:function(e,i){var o=this,a=i.queryCount=0,s=i.depCount=0,l=[],u=[];return"@"==e.name.charAt(0)&&i.errors.push(function HR(){return new t.vHH(3006,!1)}()),e.definitions.forEach(function(d){if(o._resetContextStyleTimingState(i),0==d.type){var h=d,g=h.name;g.toString().split(/\s*,\s*/).forEach(function(L){h.name=L,l.push(o.visitState(h,i))}),h.name=g}else if(1==d.type){var y=o.visitTransition(d,i);a+=y.queryCount,s+=y.depCount,u.push(y)}else i.errors.push(function jR(){return new t.vHH(3007,!1)}())}),{type:7,name:e.name,states:l,transitions:u,queryCount:a,depCount:s,options:null}}},{key:"visitState",value:function(e,i){var o=this.visitStyle(e.styles,i),a=e.options&&e.options.params||null;if(o.containsDynamicStyles){var s=new Set,l=a||{};if(o.styles.forEach(function(d){d instanceof Map&&d.forEach(function(h){aL(h).forEach(function(g){l.hasOwnProperty(g)||s.add(g)})})}),s.size){U1(s.values());i.errors.push(function GR(n,r){return new t.vHH(3008,!1)}(e.name))}}return{type:0,name:e.name,style:o,options:a?{params:a}:null}}},{key:"visitTransition",value:function(e,i){i.queryCount=0,i.depCount=0;var o=Zu(this,jy(e.animation),i);return{type:1,matchers:YU(e.expr,i.errors),animation:o,queryCount:i.queryCount,depCount:i.depCount,options:qh(e.options)}}},{key:"visitSequence",value:function(e,i){var o=this;return{type:2,steps:e.steps.map(function(a){return Zu(o,a,i)}),options:qh(e.options)}}},{key:"visitGroup",value:function(e,i){var o=this,a=i.currentTime,s=0,l=e.steps.map(function(u){i.currentTime=a;var d=Zu(o,u,i);return s=Math.max(s,i.currentTime),d});return i.currentTime=s,{type:3,steps:l,options:qh(e.options)}}},{key:"visitAnimate",value:function(e,i){var o=function SY(n,r){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n){return Vy(F1(n,r).duration,0,"")}var i=n,o=i.split(/\s+/).some(function(l){return"{"==l.charAt(0)&&"{"==l.charAt(1)});if(o){var a=Vy(0,0,"");return a.dynamic=!0,a.strValue=i,a}var s=F1(i,r);return Vy(s.duration,s.delay,s.easing)}(e.timings,i.errors);i.currentAnimateTimings=o;var a,s=e.styles?e.styles:(0,Zt.oB)({});if(5==s.type)a=this.visitKeyframes(s,i);else{var l=e.styles,u=!1;if(!l){u=!0;var d={};o.easing&&(d.easing=o.easing),l=(0,Zt.oB)(d)}i.currentTime+=o.duration+o.delay;var h=this.visitStyle(l,i);h.isEmptyStep=u,a=h}return i.currentAnimateTimings=null,{type:4,timings:o,style:a,options:null}}},{key:"visitStyle",value:function(e,i){var o=this._makeStyleAst(e,i);return this._validateStyleAst(o,i),o}},{key:"_makeStyleAst",value:function(e,i){var l,o=[],a=Array.isArray(e.styles)?e.styles:[e.styles],s=(0,An.Z)(a);try{for(s.s();!(l=s.n()).done;){var u=l.value;"string"==typeof u?u===Zt.l3?o.push(u):i.errors.push(new t.vHH(3002,!1)):o.push(Yh(u))}}catch(g){s.e(g)}finally{s.f()}var d=!1,h=null;return o.forEach(function(g){if(g instanceof Map&&(g.has("easing")&&(h=g.get("easing"),g.delete("easing")),!d)){var L,y=(0,An.Z)(g.values());try{for(y.s();!(L=y.n()).done;){if(L.value.toString().indexOf("{{")>=0){d=!0;break}}}catch(q){y.e(q)}finally{y.f()}}}),{type:6,styles:o,easing:h,offset:e.offset,containsDynamicStyles:d,options:null}}},{key:"_validateStyleAst",value:function(e,i){var a=i.currentAnimateTimings,s=i.currentTime,l=i.currentTime;a&&l>0&&(l-=a.duration+a.delay),e.styles.forEach(function(u){"string"!=typeof u&&u.forEach(function(d,h){var g=i.collectedStyles.get(i.currentQuerySelector),y=g.get(h),L=!0;y&&(l!=s&&l>=y.startTime&&s<=y.endTime&&(i.errors.push(function zR(n,r,e,i,o){return new t.vHH(3010,!1)}(0,y.startTime,y.endTime)),L=!1),l=y.startTime),L&&g.set(h,{startTime:l,endTime:s}),i.options&&kY(d,i.options,i.errors)})})}},{key:"visitKeyframes",value:function(e,i){var o=this,a={type:5,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function OU(){return new t.vHH(3011,!1)}()),a;var l=0,u=[],d=!1,h=!1,g=0,y=e.steps.map(function(Ce){var Ee=o._makeStyleAst(Ce,i),Ke=null!=Ee.offset?Ee.offset:function MY(n){if("string"==typeof n)return null;var r=null;if(Array.isArray(n))n.forEach(function(i){if(i instanceof Map&&i.has("offset")){var o=i;r=parseFloat(o.get("offset")),o.delete("offset")}});else if(n instanceof Map&&n.has("offset")){var e=n;r=parseFloat(e.get("offset")),e.delete("offset")}return r}(Ee.styles),st=0;return null!=Ke&&(l++,st=Ee.offset=Ke),h=h||st<0||st>1,d=d||st0&&l0?Ee==q?1:z*Ee:u[Ee],st=Ke*Se;i.currentTime=re+ae.delay+st,ae.duration=st,o._validateStyleAst(Ce,i),Ce.offset=Ke,a.styles.push(Ce)}),a}},{key:"visitReference",value:function(e,i){return{type:8,animation:Zu(this,jy(e.animation),i),options:qh(e.options)}}},{key:"visitAnimateChild",value:function(e,i){return i.depCount++,{type:9,options:qh(e.options)}}},{key:"visitAnimateRef",value:function(e,i){return{type:10,animation:this.visitReference(e.animation,i),options:qh(e.options)}}},{key:"visitQuery",value:function(e,i){var o=i.currentQuerySelector,a=e.options||{};i.queryCount++,i.currentQuery=e;var s=function QU(n){var r=!!n.split(/\s*,\s*/).find(function(e){return e==qU});return r&&(n=n.replace(mL,"")),n=n.replace(/@\*/g,N1).replace(/@\w+/g,function(e){return N1+"-"+e.slice(1)}).replace(/:animating/g,Hy),[n,r]}(e.selector),l=(0,Yn.Z)(s,2),u=l[0],d=l[1];i.currentQuerySelector=o.length?o+" "+u:u,Pu(i.collectedStyles,i.currentQuerySelector,new Map);var h=Zu(this,jy(e.animation),i);return i.currentQuery=null,i.currentQuerySelector=o,{type:11,selector:u,limit:a.limit||0,optional:!!a.optional,includeSelf:d,animation:h,originalSelector:e.selector,options:qh(e.options)}}},{key:"visitStagger",value:function(e,i){i.currentQuery||i.errors.push(function VR(){return new t.vHH(3013,!1)}());var o="full"===e.timings?{duration:0,delay:0,easing:"full"}:F1(e.timings,i.errors,!0);return{type:12,animation:Zu(this,jy(e.animation),i),timings:o,options:null}}}]),n}();var TY=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.errors=r,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set});function qh(n){return n?(n=lg(n)).params&&(n.params=function XU(n){return n?lg(n):null}(n.params)):n={},n}function Vy(n,r,e){return{duration:n,delay:r,easing:e}}function gL(n,r,e,i,o,a){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]&&arguments[7];return{type:1,element:n,keyframes:r,preStyleProps:e,postStyleProps:i,duration:o,delay:a,totalTime:o+a,easing:s,subTimeline:l}}var IE=function(){function n(){(0,B.Z)(this,n),this._map=new Map}return(0,U.Z)(n,[{key:"get",value:function(e){return this._map.get(e)||[]}},{key:"append",value:function(e,i){var o,a=this._map.get(e);a||this._map.set(e,a=[]),(o=a).push.apply(o,(0,cn.Z)(i))}},{key:"has",value:function(e){return this._map.has(e)}},{key:"clear",value:function(){this._map.clear()}}]),n}(),vL=new RegExp(":enter","g"),RE=new RegExp(":leave","g");function $U(n,r,e,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:new Map,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new Map,l=arguments.length>7?arguments[7]:void 0,u=arguments.length>8?arguments[8]:void 0,d=arguments.length>9&&void 0!==arguments[9]?arguments[9]:[];return(new LE).buildKeyframes(n,r,e,i,o,a,s,l,u,d)}var LE=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"buildKeyframes",value:function(e,i,o,a,s,l,u,d,h){var g=arguments.length>9&&void 0!==arguments[9]?arguments[9]:[];h=h||new IE;var y=new yL(e,i,h,a,s,g,[]);y.options=d;var L=d.delay?Vc(d.delay):0;y.currentTimeline.delayNextStep(L),y.currentTimeline.setStyles([l],null,y.errors,d),Zu(this,o,y);var z=y.timelines.filter(function(Se){return Se.containsAnimation()});if(z.length&&u.size){for(var q,re=z.length-1;re>=0;re--){var ae=z[re];if(ae.element===i){q=ae;break}}q&&!q.allowOnlyTimelineStyles()&&q.setStyles([u],null,y.errors,d)}return z.length?z.map(function(Se){return Se.buildKeyframes()}):[gL(i,[],[],[],0,L,"",!1)]}},{key:"visitTrigger",value:function(e,i){}},{key:"visitState",value:function(e,i){}},{key:"visitTransition",value:function(e,i){}},{key:"visitAnimateChild",value:function(e,i){var o=i.subInstructions.get(i.element);if(o){var a=i.createSubContext(e.options),s=i.currentTimeline.currentTime,l=this._visitSubInstructions(o,a,a.options);s!=l&&i.transformIntoNewTimeline(l)}i.previousNode=e}},{key:"visitAnimateRef",value:function(e,i){var o=i.createSubContext(e.options);o.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],i,o),this.visitReference(e.animation,o),i.transformIntoNewTimeline(o.currentTimeline.currentTime),i.previousNode=e}},{key:"_applyAnimationRefDelays",value:function(e,i,o){var a,l,s=(0,An.Z)(e);try{for(s.s();!(l=s.n()).done;){var u=l.value,d=null==u?void 0:u.delay;if(d){var h="number"==typeof d?d:Vc(Gy(d,null!==(a=null==u?void 0:u.params)&&void 0!==a?a:{},i.errors));o.delayNextStep(h)}}}catch(g){s.e(g)}finally{s.f()}}},{key:"_visitSubInstructions",value:function(e,i,o){var s=i.currentTimeline.currentTime,l=null!=o.duration?Vc(o.duration):null,u=null!=o.delay?Vc(o.delay):null;return 0!==l&&e.forEach(function(d){var h=i.appendInstructionToTimeline(d,l,u);s=Math.max(s,h.duration+h.delay)}),s}},{key:"visitReference",value:function(e,i){i.updateOptions(e.options,!0),Zu(this,e.animation,i),i.previousNode=e}},{key:"visitSequence",value:function(e,i){var o=this,a=i.subContextCount,s=i,l=e.options;if(l&&(l.params||l.delay)&&((s=i.createSubContext(l)).transformIntoNewTimeline(),null!=l.delay)){6==s.previousNode.type&&(s.currentTimeline.snapshotCurrentStyles(),s.previousNode=ug);var u=Vc(l.delay);s.delayNextStep(u)}e.steps.length&&(e.steps.forEach(function(d){return Zu(o,d,s)}),s.currentTimeline.applyStylesToKeyframe(),s.subContextCount>a&&s.transformIntoNewTimeline()),i.previousNode=e}},{key:"visitGroup",value:function(e,i){var o=this,a=[],s=i.currentTimeline.currentTime,l=e.options&&e.options.delay?Vc(e.options.delay):0;e.steps.forEach(function(u){var d=i.createSubContext(e.options);l&&d.delayNextStep(l),Zu(o,u,d),s=Math.max(s,d.currentTimeline.currentTime),a.push(d.currentTimeline)}),a.forEach(function(u){return i.currentTimeline.mergeTimelineCollectedStyles(u)}),i.transformIntoNewTimeline(s),i.previousNode=e}},{key:"_visitTiming",value:function(e,i){if(e.dynamic){var o=e.strValue;return F1(i.params?Gy(o,i.params,i.errors):o,i.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}},{key:"visitAnimate",value:function(e,i){var o=i.currentAnimateTimings=this._visitTiming(e.timings,i),a=i.currentTimeline;o.delay&&(i.incrementTime(o.delay),a.snapshotCurrentStyles());var s=e.style;5==s.type?this.visitKeyframes(s,i):(i.incrementTime(o.duration),this.visitStyle(s,i),a.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=e}},{key:"visitStyle",value:function(e,i){var o=i.currentTimeline,a=i.currentAnimateTimings;!a&&o.hasCurrentStyleProperties()&&o.forwardFrame();var s=a&&a.easing||e.easing;e.isEmptyStep?o.applyEmptyStep(s):o.setStyles(e.styles,s,i.errors,i.options),i.previousNode=e}},{key:"visitKeyframes",value:function(e,i){var o=i.currentAnimateTimings,a=i.currentTimeline.duration,s=o.duration,u=i.createSubContext().currentTimeline;u.easing=o.easing,e.styles.forEach(function(d){var h=d.offset||0;u.forwardTime(h*s),u.setStyles(d.styles,d.easing,i.errors,i.options),u.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(u),i.transformIntoNewTimeline(a+s),i.previousNode=e}},{key:"visitQuery",value:function(e,i){var o=this,a=i.currentTimeline.currentTime,s=e.options||{},l=s.delay?Vc(s.delay):0;l&&(6===i.previousNode.type||0==a&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=ug);var u=a,d=i.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!s.optional,i.errors);i.currentQueryTotal=d.length;var h=null;d.forEach(function(g,y){i.currentQueryIndex=y;var L=i.createSubContext(e.options,g);l&&L.delayNextStep(l),g===i.element&&(h=L.currentTimeline),Zu(o,e.animation,L),L.currentTimeline.applyStylesToKeyframe();var z=L.currentTimeline.currentTime;u=Math.max(u,z)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(u),h&&(i.currentTimeline.mergeTimelineCollectedStyles(h),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=e}},{key:"visitStagger",value:function(e,i){var o=i.parentContext,a=i.currentTimeline,s=e.timings,l=Math.abs(s.duration),u=l*(i.currentQueryTotal-1),d=l*i.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=u-d;break;case"full":d=o.currentStaggerTime}var g=i.currentTimeline;d&&g.delayNextStep(d);var y=g.currentTime;Zu(this,e.animation,i),i.previousNode=e,o.currentStaggerTime=a.currentTime-y+(a.startTime-o.currentTimeline.startTime)}}]),n}(),ug={},yL=function(){function n(r,e,i,o,a,s,l,u){(0,B.Z)(this,n),this._driver=r,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=a,this.errors=s,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=ug,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=u||new e7(this._driver,e,0),l.push(this.currentTimeline)}return(0,U.Z)(n,[{key:"params",get:function(){return this.options.params}},{key:"updateOptions",value:function(e,i){var o=this;if(e){var a=e,s=this.options;null!=a.duration&&(s.duration=Vc(a.duration)),null!=a.delay&&(s.delay=Vc(a.delay));var l=a.params;if(l){var u=s.params;u||(u=this.options.params={}),Object.keys(l).forEach(function(d){(!i||!u.hasOwnProperty(d))&&(u[d]=Gy(l[d],u,o.errors))})}}}},{key:"_copyOptions",value:function(){var e={};if(this.options){var i=this.options.params;if(i){var o=e.params={};Object.keys(i).forEach(function(a){o[a]=i[a]})}}return e}},{key:"createSubContext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0,a=i||this.element,s=new n(this._driver,a,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(a,o||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}},{key:"transformIntoNewTimeline",value:function(e){return this.previousNode=ug,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}},{key:"appendInstructionToTimeline",value:function(e,i,o){var a={duration:null!=i?i:e.duration,delay:this.currentTimeline.currentTime+(null!=o?o:0)+e.delay,easing:""},s=new xY(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,a,e.stretchStartingKeyframe);return this.timelines.push(s),a}},{key:"incrementTime",value:function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}},{key:"delayNextStep",value:function(e){e>0&&this.currentTimeline.delayNextStep(e)}},{key:"invokeQuery",value:function(e,i,o,a,s,l){var u=[];if(a&&u.push(this.element),e.length>0){e=(e=e.replace(vL,"."+this._enterClassName)).replace(RE,"."+this._leaveClassName);var d=1!=o,h=this._driver.query(this.element,e,d);0!==o&&(h=o<0?h.slice(h.length+o,h.length):h.slice(0,o)),u.push.apply(u,(0,cn.Z)(h))}return!s&&0==u.length&&l.push(function YR(n){return new t.vHH(3014,!1)}()),u}}]),n}(),e7=function(){function n(r,e,i,o){(0,B.Z)(this,n),this._driver=r,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,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()}return(0,U.Z)(n,[{key:"containsAnimation",value:function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}},{key:"hasCurrentStyleProperties",value:function(){return this._currentKeyframe.size>0}},{key:"currentTime",get:function(){return this.startTime+this.duration}},{key:"delayNextStep",value:function(e){var i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+e),i&&this.snapshotCurrentStyles()):this.startTime+=e}},{key:"fork",value:function(e,i){return this.applyStylesToKeyframe(),new n(this._driver,e,i||this.currentTime,this._elementTimelineStylesLookup)}},{key:"_loadKeyframe",value:function(){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))}},{key:"forwardFrame",value:function(){this.duration+=1,this._loadKeyframe()}},{key:"forwardTime",value:function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}},{key:"_updateStyle",value:function(e,i){this._localTimelineStyles.set(e,i),this._globalTimelineStyles.set(e,i),this._styleSummary.set(e,{time:this.currentTime,value:i})}},{key:"allowOnlyTimelineStyles",value:function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}},{key:"applyEmptyStep",value:function(e){e&&this._previousKeyframe.set("easing",e);var o,i=(0,An.Z)(this._globalTimelineStyles);try{for(i.s();!(o=i.n()).done;){var a=(0,Yn.Z)(o.value,2),s=a[0],l=a[1];this._backFill.set(s,l||Zt.l3),this._currentKeyframe.set(s,Zt.l3)}}catch(u){i.e(u)}finally{i.f()}this._currentEmptyStepKeyframe=this._currentKeyframe}},{key:"setStyles",value:function(e,i,o,a){var s;i&&this._previousKeyframe.set("easing",i);var h,l=a&&a.params||{},u=function DY(n,r){var i,e=new Map;return n.forEach(function(o){if("*"===o){i=i||r.keys();var s,a=(0,An.Z)(i);try{for(a.s();!(s=a.n()).done;){var l=s.value;e.set(l,Zt.l3)}}catch(u){a.e(u)}finally{a.f()}}else Ru(o,e)}),e}(e,this._globalTimelineStyles),d=(0,An.Z)(u);try{for(d.s();!(h=d.n()).done;){var g=(0,Yn.Z)(h.value,2),y=g[0],z=Gy(g[1],l,o);this._pendingStyles.set(y,z),this._localTimelineStyles.has(y)||this._backFill.set(y,null!==(s=this._globalTimelineStyles.get(y))&&void 0!==s?s:Zt.l3),this._updateStyle(y,z)}}catch(q){d.e(q)}finally{d.f()}}},{key:"applyStylesToKeyframe",value:function(){var e=this;0!=this._pendingStyles.size&&(this._pendingStyles.forEach(function(i,o){e._currentKeyframe.set(o,i)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach(function(i,o){e._currentKeyframe.has(o)||e._currentKeyframe.set(o,i)}))}},{key:"snapshotCurrentStyles",value:function(){var i,e=(0,An.Z)(this._localTimelineStyles);try{for(e.s();!(i=e.n()).done;){var o=(0,Yn.Z)(i.value,2),a=o[0],s=o[1];this._pendingStyles.set(a,s),this._updateStyle(a,s)}}catch(l){e.e(l)}finally{e.f()}}},{key:"getFinalKeyframe",value:function(){return this._keyframes.get(this.duration)}},{key:"properties",get:function(){var e=[];for(var i in this._currentKeyframe)e.push(i);return e}},{key:"mergeTimelineCollectedStyles",value:function(e){var i=this;e._styleSummary.forEach(function(o,a){var s=i._styleSummary.get(a);(!s||o.time>s.time)&&i._updateStyle(a,o.value)})}},{key:"buildKeyframes",value:function(){var e=this;this.applyStylesToKeyframe();var i=new Set,o=new Set,a=1===this._keyframes.size&&0===this.duration,s=[];this._keyframes.forEach(function(g,y){var L=Ru(g,new Map,e._backFill);L.forEach(function(z,q){z===Zt.k1?i.add(q):z===Zt.l3&&o.add(q)}),a||L.set("offset",y/e.duration),s.push(L)});var l=i.size?U1(i.values()):[],u=o.size?U1(o.values()):[];if(a){var d=s[0],h=new Map(d);d.set("offset",0),h.set("offset",1),s=[d,h]}return gL(this.element,s,l,u,this.duration,this.startTime,this.easing,!1)}}]),n}(),xY=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u){var d,h=arguments.length>6&&void 0!==arguments[6]&&arguments[6];return(0,B.Z)(this,e),(d=r.call(this,i,o,u.delay)).keyframes=a,d.preStyleProps=s,d.postStyleProps=l,d._stretchStartingKeyframe=h,d.timings={duration:u.duration,delay:u.delay,easing:u.easing},d}return(0,U.Z)(e,[{key:"containsAnimation",value:function(){return this.keyframes.length>1}},{key:"buildKeyframes",value:function(){var o=this.keyframes,a=this.timings,s=a.delay,l=a.duration,u=a.easing;if(this._stretchStartingKeyframe&&s){var d=[],h=l+s,g=s/h,y=Ru(o[0]);y.set("offset",0),d.push(y);var L=Ru(o[0]);L.set("offset",t7(g)),d.push(L);for(var z=o.length-1,q=1;q<=z;q++){var re=Ru(o[q]),Se=s+re.get("offset")*l;re.set("offset",t7(Se/h)),d.push(re)}l=h,s=0,u="",o=d}return gL(this.element,o,this.preStyleProps,this.postStyleProps,l,s,u,!0)}}]),e}(e7);function t7(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,e=Math.pow(10,r-1);return Math.round(n*e)/e}var ZE=(0,U.Z)(function n(){(0,B.Z)(this,n)}),r7=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"]),i7=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"normalizePropertyName",value:function(o,a){return lL(o)}},{key:"normalizeStyleValue",value:function(o,a,s,l){var u="",d=s.toString().trim();if(r7.has(a)&&0!==s&&"0"!==s)if("number"==typeof s)u="px";else{var h=s.match(/^[+-]?[\d\.]+([a-z]*)$/);h&&0==h[1].length&&l.push(function xU(n,r){return new t.vHH(3005,!1)}())}return d+u}}]),e}(ZE);function NE(n,r,e,i,o,a,s,l,u,d,h,g,y){return{type:0,element:n,triggerName:r,isRemovalTransition:o,fromState:e,fromStyles:a,toState:i,toStyles:s,timelines:l,queriedElements:u,preStyleProps:d,postStyleProps:h,totalTime:g,errors:y}}var z1={},BE=function(){function n(r,e,i){(0,B.Z)(this,n),this._triggerName=r,this.ast=e,this._stateStyles=i}return(0,U.Z)(n,[{key:"match",value:function(e,i,o,a){return function o7(n,r,e,i,o){return n.some(function(a){return a(r,e,i,o)})}(this.ast.matchers,e,i,o,a)}},{key:"buildStyles",value:function(e,i,o){var a=this._stateStyles.get("*");return void 0!==e&&(a=this._stateStyles.get(null==e?void 0:e.toString())||a),a?a.buildStyles(i,o):new Map}},{key:"build",value:function(e,i,o,a,s,l,u,d,h,g){var y,L=[],z=this.ast.options&&this.ast.options.params||z1,q=u&&u.params||z1,re=this.buildStyles(o,q,L),ae=d&&d.params||z1,Se=this.buildStyles(a,ae,L),Ce=new Set,Ee=new Map,Ke=new Map,st="void"===a,De={params:bL(ae,z),delay:null===(y=this.ast.options)||void 0===y?void 0:y.delay},it=g?[]:$U(e,i,this.ast.animation,s,l,re,Se,De,h,L),ft=0;if(it.forEach(function($e){ft=Math.max($e.duration+$e.delay,ft)}),L.length)return NE(i,this._triggerName,o,a,st,re,Se,[],[],Ee,Ke,ft,L);it.forEach(function($e){var Pe=$e.element,ct=Pu(Ee,Pe,new Set);$e.preStyleProps.forEach(function(Ht){return ct.add(Ht)});var Bt=Pu(Ke,Pe,new Set);$e.postStyleProps.forEach(function(Ht){return Bt.add(Ht)}),Pe!==i&&Ce.add(Pe)});var bt=U1(Ce.values());return NE(i,this._triggerName,o,a,st,re,Se,it,bt,Ee,Ke,ft)}}]),n}();function bL(n,r){var e=lg(r);for(var i in n)n.hasOwnProperty(i)&&null!=n[i]&&(e[i]=n[i]);return e}var Yy=function(){function n(r,e,i){(0,B.Z)(this,n),this.styles=r,this.defaultParams=e,this.normalizer=i}return(0,U.Z)(n,[{key:"buildStyles",value:function(e,i){var o=this,a=new Map,s=lg(this.defaultParams);return Object.keys(e).forEach(function(l){var u=e[l];null!==u&&(s[l]=u)}),this.styles.styles.forEach(function(l){"string"!=typeof l&&l.forEach(function(u,d){u&&(u=Gy(u,s,i));var h=o.normalizer.normalizePropertyName(d,i);u=o.normalizer.normalizeStyleValue(d,h,u,i),a.set(h,u)})}),a}}]),n}();var CL=function(){function n(r,e,i){var o=this;(0,B.Z)(this,n),this.name=r,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(function(a){var s=a.options&&a.options.params||{};o.states.set(a.name,new Yy(a.style,s,i))}),wL(this.states,"true","1"),wL(this.states,"false","0"),e.transitions.forEach(function(a){o.transitionFactories.push(new BE(r,a,o.states))}),this.fallbackTransition=function Ky(n,r,e){return new BE(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(s,l){return!0}],options:null,queryCount:0,depCount:0},r)}(r,this.states,this._normalizer)}return(0,U.Z)(n,[{key:"containsQueries",get:function(){return this.ast.queryCount>0}},{key:"matchTransition",value:function(e,i,o,a){return this.transitionFactories.find(function(l){return l.match(e,i,o,a)})||null}},{key:"matchStyles",value:function(e,i,o){return this.fallbackTransition.buildStyles(e,i,o)}}]),n}();function wL(n,r,e){n.has(r)?n.has(e)||n.set(e,n.get(r)):n.has(e)&&n.set(r,n.get(e))}var a7=new IE,PY=function(){function n(r,e,i){(0,B.Z)(this,n),this.bodyNode=r,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}return(0,U.Z)(n,[{key:"register",value:function(e,i){var o=[],a=[],s=G1(this._driver,i,o,a);if(o.length)throw function QR(n){return new t.vHH(3503,!1)}();a.length,this._animations.set(e,s)}},{key:"_buildPlayer",value:function(e,i,o){var a=e.element,s=P1(this._driver,this._normalizer,a,e.keyframes,i,o);return this._driver.animate(a,s,e.duration,e.delay,e.easing,[],!0)}},{key:"create",value:function(e,i){var u,o=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[],l=this._animations.get(e),d=new Map;if(l?(u=$U(this._driver,i,l,Wc,EE,new Map,new Map,a,a7,s)).forEach(function(y){var L=Pu(d,y.element,new Map);y.postStyleProps.forEach(function(z){return L.set(z,null)})}):(s.push(LU()),u=[]),s.length)throw ZU();d.forEach(function(y,L){y.forEach(function(z,q){y.set(q,o._driver.computeStyle(L,q,Zt.l3))})});var h=u.map(function(y){var L=d.get(y.element);return o._buildPlayer(y,new Map,L)}),g=Vh(h);return this._playersById.set(e,g),g.onDestroy(function(){return o.destroy(e)}),this.players.push(g),g}},{key:"destroy",value:function(e){var i=this._getPlayer(e);i.destroy(),this._playersById.delete(e);var o=this.players.indexOf(i);o>=0&&this.players.splice(o,1)}},{key:"_getPlayer",value:function(e){var i=this._playersById.get(e);if(!i)throw function NU(n){return new t.vHH(3301,!1)}();return i}},{key:"listen",value:function(e,i,o,a){var s=L1(i,"","","");return R1(this._getPlayer(e),o,s,a),function(){}}},{key:"command",value:function(e,i,o,a){if("register"!=o)if("create"!=o){var l=this._getPlayer(e);switch(o){case"play":l.play();break;case"pause":l.pause();break;case"reset":l.reset();break;case"restart":l.restart();break;case"finish":l.finish();break;case"init":l.init();break;case"setPosition":l.setPosition(parseFloat(a[0]));break;case"destroy":this.destroy(e)}}else{var s=a[0]||{};this.create(e,i,s)}else this.register(e,a[0])}}]),n}(),s7="ng-animate-queued",op="ng-animate-disabled",RY="ng-star-inserted",ZY=[],c7={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},NY={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Nu="__ng_removed",kL=function(){function n(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,B.Z)(this,n),this.namespaceId=e;var i=r&&r.hasOwnProperty("value"),o=i?r.value:r;if(this.value=f(o),i){var a=lg(r);delete a.value,this.options=a}else this.options={};this.options.params||(this.options.params={})}return(0,U.Z)(n,[{key:"params",get:function(){return this.options.params}},{key:"absorbOptions",value:function(e){var i=e.params;if(i){var o=this.options.params;Object.keys(i).forEach(function(a){null==o[a]&&(o[a]=i[a])})}}}]),n}(),W1="void",TL=new kL(W1),BY=function(){function n(r,e,i){(0,B.Z)(this,n),this.id=r,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+r,ee(e,this._hostClassName)}return(0,U.Z)(n,[{key:"listen",value:function(e,i,o,a){var s=this;if(!this._triggers.has(i))throw function BU(n,r){return new t.vHH(3302,!1)}();if(null==o||0==o.length)throw function FU(n){return new t.vHH(3303,!1)}();if(!function _(n){return"start"==n||"done"==n}(o))throw function UU(n,r){return new t.vHH(3400,!1)}();var l=Pu(this._elementListeners,e,[]),u={name:i,phase:o,callback:a};l.push(u);var d=Pu(this._engine.statesByElement,e,new Map);return d.has(i)||(ee(e,sg),ee(e,sg+"-"+i),d.set(i,TL)),function(){s._engine.afterFlush(function(){var h=l.indexOf(u);h>=0&&l.splice(h,1),s._triggers.has(i)||d.delete(i)})}}},{key:"register",value:function(e,i){return!this._triggers.has(e)&&(this._triggers.set(e,i),!0)}},{key:"_getTrigger",value:function(e){var i=this._triggers.get(e);if(!i)throw function HU(n){return new t.vHH(3401,!1)}();return i}},{key:"trigger",value:function(e,i,o){var a=this,s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],l=this._getTrigger(i),u=new ML(this.id,i,e),d=this._engine.statesByElement.get(e);d||(ee(e,sg),ee(e,sg+"-"+i),this._engine.statesByElement.set(e,d=new Map));var h=d.get(i),g=new kL(o,this.id),y=o&&o.hasOwnProperty("value");!y&&h&&g.absorbOptions(h.options),d.set(i,g),h||(h=TL);var L=g.value===W1;if(L||h.value!==g.value){var ae=Pu(this._engine.playersByElement,e,[]);ae.forEach(function(Ee){Ee.namespaceId==a.id&&Ee.triggerName==i&&Ee.queued&&Ee.destroy()});var Se=l.matchTransition(h.value,g.value,e,g.params),Ce=!1;if(!Se){if(!s)return;Se=l.fallbackTransition,Ce=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:i,transition:Se,fromState:h,toState:g,player:u,isFallbackTransition:Ce}),Ce||(ee(e,s7),u.onStart(function(){oe(e,s7)})),u.onDone(function(){var Ee=a.players.indexOf(u);Ee>=0&&a.players.splice(Ee,1);var Ke=a._engine.playersByElement.get(e);if(Ke){var st=Ke.indexOf(u);st>=0&&Ke.splice(st,1)}}),this.players.push(u),ae.push(u),u}if(!dt(h.params,g.params)){var z=[],q=l.matchStyles(h.value,h.params,z),re=l.matchStyles(g.value,g.params,z);z.length?this._engine.reportError(z):this._engine.afterFlush(function(){il(e,q),Lu(e,re)})}}},{key:"deregister",value:function(e){var i=this;this._triggers.delete(e),this._engine.statesByElement.forEach(function(o){return o.delete(e)}),this._elementListeners.forEach(function(o,a){i._elementListeners.set(a,o.filter(function(s){return s.name!=e}))})}},{key:"clearElementCache",value:function(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);var i=this._engine.playersByElement.get(e);i&&(i.forEach(function(o){return o.destroy()}),this._engine.playersByElement.delete(e))}},{key:"_signalRemovalForInnerTriggers",value:function(e,i){var o=this,a=this._engine.driver.query(e,N1,!0);a.forEach(function(s){if(!s[Nu]){var l=o._engine.fetchNamespacesByElement(s);l.size?l.forEach(function(u){return u.triggerLeaveAnimation(s,i,!1,!0)}):o.clearElementCache(s)}}),this._engine.afterFlushAnimationsDone(function(){return a.forEach(function(s){return o.clearElementCache(s)})})}},{key:"triggerLeaveAnimation",value:function(e,i,o,a){var s=this,l=this._engine.statesByElement.get(e),u=new Map;if(l){var d=[];if(l.forEach(function(h,g){if(u.set(g,h.value),s._triggers.has(g)){var y=s.trigger(e,g,W1,a);y&&d.push(y)}}),d.length)return this._engine.markElementAsRemoved(this.id,e,!0,i,u),o&&Vh(d).onDone(function(){return s._engine.processLeaveNode(e)}),!0}return!1}},{key:"prepareLeaveAnimationListeners",value:function(e){var i=this,o=this._elementListeners.get(e),a=this._engine.statesByElement.get(e);if(o&&a){var s=new Set;o.forEach(function(l){var u=l.name;if(!s.has(u)){s.add(u);var h=i._triggers.get(u).fallbackTransition,g=a.get(u)||TL,y=new kL(W1),L=new ML(i.id,u,e);i._engine.totalQueuedPlayers++,i._queue.push({element:e,triggerName:u,transition:h,fromState:g,toState:y,player:L,isFallbackTransition:!0})}})}}},{key:"removeNode",value:function(e,i){var o=this,a=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,i),!this.triggerLeaveAnimation(e,i,!0)){var s=!1;if(a.totalAnimations){var l=a.players.length?a.playersByQueriedElement.get(e):[];if(l&&l.length)s=!0;else for(var u=e;u=u.parentNode;){if(a.statesByElement.get(u)){s=!0;break}}}if(this.prepareLeaveAnimationListeners(e),s)a.markElementAsRemoved(this.id,e,!1,i);else{var h=e[Nu];(!h||h===c7)&&(a.afterFlush(function(){return o.clearElementCache(e)}),a.destroyInnerAnimations(e),a._onRemovalComplete(e,i))}}}},{key:"insertNode",value:function(e,i){ee(e,this._hostClassName)}},{key:"drainQueuedTransitions",value:function(e){var i=this,o=[];return this._queue.forEach(function(a){var s=a.player;if(!s.destroyed){var l=a.element,u=i._elementListeners.get(l);u&&u.forEach(function(d){if(d.name==a.triggerName){var h=L1(l,a.triggerName,a.fromState.value,a.toState.value);h._data=e,R1(a.player,d.phase,h,d.callback)}}),s.markedForDestroy?i._engine.afterFlush(function(){s.destroy()}):o.push(a)}}),this._queue=[],o.sort(function(a,s){var l=a.transition.ast.depCount,u=s.transition.ast.depCount;return 0==l||0==u?l-u:i._engine.driver.containsElement(a.element,s.element)?1:-1})}},{key:"destroy",value:function(e){this.players.forEach(function(i){return i.destroy()}),this._signalRemovalForInnerTriggers(this.hostElement,e)}},{key:"elementContainsData",value:function(e){var i=!1;return this._elementListeners.has(e)&&(i=!0),i=!!this._queue.find(function(o){return o.element===e})||i}}]),n}(),FY=function(){function n(r,e,i){(0,B.Z)(this,n),this.bodyNode=r,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(o,a){}}return(0,U.Z)(n,[{key:"_onRemovalComplete",value:function(e,i){this.onRemovalComplete(e,i)}},{key:"queuedPlayers",get:function(){var e=[];return this._namespaceList.forEach(function(i){i.players.forEach(function(o){o.queued&&e.push(o)})}),e}},{key:"createNamespace",value:function(e,i){var o=new BY(e,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(o,i):(this.newHostElements.set(i,o),this.collectEnterElement(i)),this._namespaceLookup[e]=o}},{key:"_balanceNamespaceList",value:function(e,i){var o=this._namespaceList,a=this.namespacesByHostElement;if(o.length-1>=0){for(var l=!1,u=this.driver.getParentElement(i);u;){var d=a.get(u);if(d){var h=o.indexOf(d);o.splice(h+1,0,e),l=!0;break}u=this.driver.getParentElement(u)}l||o.unshift(e)}else o.push(e);return a.set(i,e),e}},{key:"register",value:function(e,i){var o=this._namespaceLookup[e];return o||(o=this.createNamespace(e,i)),o}},{key:"registerTrigger",value:function(e,i,o){var a=this._namespaceLookup[e];a&&a.register(i,o)&&this.totalAnimations++}},{key:"destroy",value:function(e,i){var o=this;if(e){var a=this._fetchNamespace(e);this.afterFlush(function(){o.namespacesByHostElement.delete(a.hostElement),delete o._namespaceLookup[e];var s=o._namespaceList.indexOf(a);s>=0&&o._namespaceList.splice(s,1)}),this.afterFlushAnimationsDone(function(){return a.destroy(i)})}}},{key:"_fetchNamespace",value:function(e){return this._namespaceLookup[e]}},{key:"fetchNamespacesByElement",value:function(e){var i=new Set,o=this.statesByElement.get(e);if(o){var s,a=(0,An.Z)(o.values());try{for(a.s();!(s=a.n()).done;){var l=s.value;if(l.namespaceId){var u=this._fetchNamespace(l.namespaceId);u&&i.add(u)}}}catch(d){a.e(d)}finally{a.f()}}return i}},{key:"trigger",value:function(e,i,o,a){if(p(i)){var s=this._fetchNamespace(e);if(s)return s.trigger(i,o,a),!0}return!1}},{key:"insertNode",value:function(e,i,o,a){if(p(i)){var s=i[Nu];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;var l=this.collectedLeaveElements.indexOf(i);l>=0&&this.collectedLeaveElements.splice(l,1)}if(e){var u=this._fetchNamespace(e);u&&u.insertNode(i,o)}a&&this.collectEnterElement(i)}}},{key:"collectEnterElement",value:function(e){this.collectedEnterElements.push(e)}},{key:"markElementAsDisabled",value:function(e,i){i?this.disabledNodes.has(e)||(this.disabledNodes.add(e),ee(e,op)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),oe(e,op))}},{key:"removeNode",value:function(e,i,o,a){if(p(i)){var s=e?this._fetchNamespace(e):null;if(s?s.removeNode(i,a):this.markElementAsRemoved(e,i,!1,a),o){var l=this.namespacesByHostElement.get(i);l&&l.id!==e&&l.removeNode(i,a)}}else this._onRemovalComplete(i,a)}},{key:"markElementAsRemoved",value:function(e,i,o,a,s){this.collectedLeaveElements.push(i),i[Nu]={namespaceId:e,setForRemoval:a,hasAnimation:o,removedBeforeQueried:!1,previousTriggersValues:s}}},{key:"listen",value:function(e,i,o,a,s){return p(i)?this._fetchNamespace(e).listen(i,o,a,s):function(){}}},{key:"_buildInstruction",value:function(e,i,o,a,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,o,a,e.fromState.options,e.toState.options,i,s)}},{key:"destroyInnerAnimations",value:function(e){var i=this,o=this.driver.query(e,N1,!0);o.forEach(function(a){return i.destroyActiveAnimationsForElement(a)}),0!=this.playersByQueriedElement.size&&(o=this.driver.query(e,Hy,!0)).forEach(function(a){return i.finishActiveQueriedAnimationOnElement(a)})}},{key:"destroyActiveAnimationsForElement",value:function(e){var i=this.playersByElement.get(e);i&&i.forEach(function(o){o.queued?o.markedForDestroy=!0:o.destroy()})}},{key:"finishActiveQueriedAnimationOnElement",value:function(e){var i=this.playersByQueriedElement.get(e);i&&i.forEach(function(o){return o.finish()})}},{key:"whenRenderingDone",value:function(){var e=this;return new Promise(function(i){if(e.players.length)return Vh(e.players).onDone(function(){return i()});i()})}},{key:"processLeaveNode",value:function(e){var o,i=this,a=e[Nu];if(a&&a.setForRemoval){if(e[Nu]=c7,a.namespaceId){this.destroyInnerAnimations(e);var s=this._fetchNamespace(a.namespaceId);s&&s.clearElementCache(e)}this._onRemovalComplete(e,a.setForRemoval)}!(null===(o=e.classList)||void 0===o)&&o.contains(op)&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(function(l){i.markElementAsDisabled(l,!1)})}},{key:"flush",value:function(){var e=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,o=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(y,L){return e._balanceNamespaceList(y,L)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var a=0;a=0;Pe--){this._namespaceList[Pe].drainQueuedTransitions(i).forEach(function(bn){var Nn=bn.player,rr=bn.element;if(bt.push(Nn),o.collectedEnterElements.length){var gr=rr[Nu];if(gr&&gr.setForMove){if(gr.previousTriggersValues&&gr.previousTriggersValues.has(bn.triggerName)){var eo=gr.previousTriggersValues.get(bn.triggerName),Xu=o.statesByElement.get(bn.element);if(Xu&&Xu.has(bn.triggerName)){var Dv=Xu.get(bn.triggerName);Dv.value=eo,Xu.set(bn.triggerName,Dv)}}return void Nn.destroy()}}var Av=!L||!o.driver.containsElement(L,rr),Qm=it.get(rr),cC=re.get(rr),Pa=o._buildInstruction(bn,a,cC,Qm,Av);if(Pa.errors&&Pa.errors.length)$e.push(Pa);else{if(Av)return Nn.onStart(function(){return il(rr,Pa.fromStyles)}),Nn.onDestroy(function(){return Lu(rr,Pa.toStyles)}),void s.push(Nn);if(bn.isFallbackTransition)return Nn.onStart(function(){return il(rr,Pa.fromStyles)}),Nn.onDestroy(function(){return Lu(rr,Pa.toStyles)}),void s.push(Nn);var yP=[];Pa.timelines.forEach(function(th){th.stretchStartingKeyframe=!0,o.disabledNodes.has(th.element)||yP.push(th)}),Pa.timelines=yP,a.append(rr,Pa.timelines);var GW={instruction:Pa,player:Nn,element:rr};u.push(GW),Pa.queriedElements.forEach(function(th){return Pu(d,th,[]).push(Nn)}),Pa.preStyleProps.forEach(function(th,bP){if(th.size){var dC=h.get(bP);dC||h.set(bP,dC=new Set),th.forEach(function(N$e,zW){return dC.add(zW)})}}),Pa.postStyleProps.forEach(function(th,bP){var dC=g.get(bP);dC||g.set(bP,dC=new Set),th.forEach(function(N$e,zW){return dC.add(zW)})})}})}if($e.length){var Bt=[];$e.forEach(function(bn){Bt.push(function XR(n,r){return new t.vHH(3505,!1)}(bn.triggerName,bn.errors))}),bt.forEach(function(bn){return bn.destroy()}),this.reportError(Bt)}var Ht=new Map,Pt=new Map;u.forEach(function(bn){var Nn=bn.element;a.has(Nn)&&(Pt.set(Nn,Nn),o._beforeAnimationBuild(bn.player.namespaceId,bn.instruction,Ht))}),s.forEach(function(bn){var Nn=bn.element;o._getPreviousPlayers(Nn,!1,bn.namespaceId,bn.triggerName,null).forEach(function(gr){Pu(Ht,Nn,[]).push(gr),gr.destroy()})});var Tn=Se.filter(function(bn){return kt(bn,h,g)}),jn=new Map;O(jn,this.driver,Ee,g,Zt.l3).forEach(function(bn){kt(bn,h,g)&&Tn.push(bn)});var ar=new Map;q.forEach(function(bn,Nn){O(ar,o.driver,new Set(bn),h,Zt.k1)}),Tn.forEach(function(bn){var Nn,rr,gr=jn.get(bn),eo=ar.get(bn);jn.set(bn,new Map([].concat((0,cn.Z)(Array.from(null!==(Nn=null==gr?void 0:gr.entries())&&void 0!==Nn?Nn:[])),(0,cn.Z)(Array.from(null!==(rr=null==eo?void 0:eo.entries())&&void 0!==rr?rr:[])))))});var kr=[],_r=[],Wr={};u.forEach(function(bn){var Nn=bn.element,rr=bn.player,gr=bn.instruction;if(a.has(Nn)){if(y.has(Nn))return rr.onDestroy(function(){return Lu(Nn,gr.toStyles)}),rr.disabled=!0,rr.overrideTotalTime(gr.totalTime),void s.push(rr);var eo=Wr;if(Pt.size>1){for(var Xu=Nn,Dv=[];Xu=Xu.parentNode;){var Av=Pt.get(Xu);if(Av){eo=Av;break}Dv.push(Xu)}Dv.forEach(function(Pa){return Pt.set(Pa,eo)})}var Qm=o._buildAnimation(rr.namespaceId,gr,Ht,l,ar,jn);if(rr.setRealPlayer(Qm),eo===Wr)kr.push(rr);else{var cC=o.playersByElement.get(eo);cC&&cC.length&&(rr.parentPlayer=Vh(cC)),s.push(rr)}}else il(Nn,gr.fromStyles),rr.onDestroy(function(){return Lu(Nn,gr.toStyles)}),_r.push(rr),y.has(Nn)&&s.push(rr)}),_r.forEach(function(bn){var Nn=l.get(bn.element);if(Nn&&Nn.length){var rr=Vh(Nn);bn.setRealPlayer(rr)}}),s.forEach(function(bn){bn.parentPlayer?bn.syncPlayerEvents(bn.parentPlayer):bn.destroy()});for(var Hr=0;Hr0?this.driver.animate(e.element,i,e.duration,e.delay,e.easing,o):new Zt.ZN(e.duration,e.delay)}}]),n}(),ML=function(){function n(r,e,i){(0,B.Z)(this,n),this.namespaceId=r,this.triggerName=e,this.element=i,this._player=new Zt.ZN,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return(0,U.Z)(n,[{key:"setRealPlayer",value:function(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach(function(i,o){i.forEach(function(a){return R1(e,o,void 0,a)})}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}},{key:"getRealPlayer",value:function(){return this._player}},{key:"overrideTotalTime",value:function(e){this.totalTime=e}},{key:"syncPlayerEvents",value:function(e){var i=this,o=this._player;o.triggerCallback&&e.onStart(function(){return o.triggerCallback("start")}),e.onDone(function(){return i.finish()}),e.onDestroy(function(){return i.destroy()})}},{key:"_queueEvent",value:function(e,i){Pu(this._queuedCallbacks,e,[]).push(i)}},{key:"onDone",value:function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}},{key:"onStart",value:function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}},{key:"onDestroy",value:function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}},{key:"init",value:function(){this._player.init()}},{key:"hasStarted",value:function(){return!this.queued&&this._player.hasStarted()}},{key:"play",value:function(){!this.queued&&this._player.play()}},{key:"pause",value:function(){!this.queued&&this._player.pause()}},{key:"restart",value:function(){!this.queued&&this._player.restart()}},{key:"finish",value:function(){this._player.finish()}},{key:"destroy",value:function(){this.destroyed=!0,this._player.destroy()}},{key:"reset",value:function(){!this.queued&&this._player.reset()}},{key:"setPosition",value:function(e){this.queued||this._player.setPosition(e)}},{key:"getPosition",value:function(){return this.queued?0:this._player.getPosition()}},{key:"triggerCallback",value:function(e){var i=this._player;i.triggerCallback&&i.triggerCallback(e)}}]),n}();function f(n){return null!=n?n:null}function p(n){return n&&1===n.nodeType}function C(n,r){var e=n.style.display;return n.style.display=null!=r?r:"none",e}function O(n,r,e,i,o){var a=[];e.forEach(function(u){return a.push(C(u))});var s=[];i.forEach(function(u,d){var h=new Map;u.forEach(function(g){var y=r.computeStyle(d,g,o);h.set(g,y),(!y||0==y.length)&&(d[Nu]=NY,s.push(d))}),n.set(d,h)});var l=0;return e.forEach(function(u){return C(u,a[l++])}),s}function Y(n,r){var e=new Map;if(n.forEach(function(l){return e.set(l,[])}),0==r.length)return e;var o=new Set(r),a=new Map;function s(l){if(!l)return 1;var u=a.get(l);if(u)return u;var d=l.parentNode;return u=e.has(d)?d:o.has(d)?1:s(d),a.set(l,u),u}return r.forEach(function(l){var u=s(l);1!==u&&e.get(u).push(l)}),e}function ee(n,r){var e;null===(e=n.classList)||void 0===e||e.add(r)}function oe(n,r){var e;null===(e=n.classList)||void 0===e||e.remove(r)}function ve(n,r,e){Vh(e).onDone(function(){return n.processLeaveNode(r)})}function nt(n,r){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:-1;this._transitionEngine.flush(e)}},{key:"players",get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)}},{key:"whenRenderingDone",value:function(){return this._transitionEngine.whenRenderingDone()}}]),n}();function _n(n,r){var e=null,i=null;return Array.isArray(r)&&r.length?(e=Jn(r[0]),r.length>1&&(i=Jn(r[r.length-1]))):r instanceof Map&&(e=Jn(r)),e||i?new Fn(n,e,i):null}var Fn=function(){function n(r,e,i){(0,B.Z)(this,n),this._element=r,this._startStyles=e,this._endStyles=i,this._state=0;var o=n.initialStylesByElement.get(r);o||n.initialStylesByElement.set(r,o=new Map),this._initialStyles=o}return(0,U.Z)(n,[{key:"start",value:function(){this._state<1&&(this._startStyles&&Lu(this._element,this._startStyles,this._initialStyles),this._state=1)}},{key:"finish",value:function(){this.start(),this._state<2&&(Lu(this._element,this._initialStyles),this._endStyles&&(Lu(this._element,this._endStyles),this._endStyles=null),this._state=1)}},{key:"destroy",value:function(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(il(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(il(this._element,this._endStyles),this._endStyles=null),Lu(this._element,this._initialStyles),this._state=3)}}]),n}();function Jn(n){var r=null;return n.forEach(function(e,i){(function er(n){return"display"===n||"position"===n})(i)&&(r=r||new Map).set(i,e)}),r}Fn.initialStylesByElement=new WeakMap;var Cn=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.element=r,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}return(0,U.Z)(n,[{key:"_onFinish",value:function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])}},{key:"init",value:function(){this._buildPlayer(),this._preparePlayerBeforeStart()}},{key:"_buildPlayer",value:function(){var e=this;if(!this._initialized){this._initialized=!0;var i=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,i,this.options),this._finalKeyframe=i.length?i[i.length-1]:new Map,this.domPlayer.addEventListener("finish",function(){return e._onFinish()})}}},{key:"_preparePlayerBeforeStart",value:function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}},{key:"_convertKeyframesToObject",value:function(e){var i=[];return e.forEach(function(o){i.push(Object.fromEntries(o))}),i}},{key:"_triggerWebAnimation",value:function(e,i,o){return e.animate(this._convertKeyframesToObject(i),o)}},{key:"onStart",value:function(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}},{key:"onDone",value:function(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}},{key:"onDestroy",value:function(e){this._onDestroyFns.push(e)}},{key:"play",value:function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}},{key:"pause",value:function(){this.init(),this.domPlayer.pause()}},{key:"finish",value:function(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}},{key:"reset",value:function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}},{key:"_resetDomPlayerState",value:function(){this.domPlayer&&this.domPlayer.cancel()}},{key:"restart",value:function(){this.reset(),this.play()}},{key:"hasStarted",value:function(){return this._started}},{key:"destroy",value:function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])}},{key:"setPosition",value:function(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}},{key:"getPosition",value:function(){return this.domPlayer.currentTime/this.time}},{key:"totalTime",get:function(){return this._delay+this._duration}},{key:"beforeDestroy",value:function(){var e=this,i=new Map;this.hasStarted()&&this._finalKeyframe.forEach(function(a,s){"offset"!==s&&i.set(s,e._finished?a:H1(e.element,s))});this.currentSnapshot=i}},{key:"triggerCallback",value:function(e){var i="start"===e?this._onStartFns:this._onDoneFns;i.forEach(function(o){return o()}),i.length=0}}]),n}(),Or=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"validateStyleProperty",value:function(e){return!0}},{key:"validateAnimatableStyleProperty",value:function(e){return!0}},{key:"matchesElement",value:function(e,i){return!1}},{key:"containsElement",value:function(e,i){return rL(e,i)}},{key:"getParentElement",value:function(e){return ME(e)}},{key:"query",value:function(e,i,o){return SE(e,i,o)}},{key:"computeStyle",value:function(e,i,o){return window.getComputedStyle(e)[i]}},{key:"animate",value:function(e,i,o,a,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],u=0==a?"both":"forwards",d={duration:o,delay:a,fill:u};s&&(d.easing=s);var h=new Map,g=l.filter(function(z){return z instanceof Cn});WU(o,a)&&g.forEach(function(z){z.currentSnapshot.forEach(function(q,re){return h.set(re,q)})});var y=Kh(i).map(function(z){return Ru(z)}),L=_n(e,y=cL(e,y,h));return new Cn(e,y,d,L)}}]),n}(),ei=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;(0,B.Z)(this,e),(a=r.call(this))._nextAnimationId=0;var s={id:"0",encapsulation:t.ifc.None,styles:[],data:{animation:[]}};return a._renderer=i.createRenderer(o.body,s),a}return(0,U.Z)(e,[{key:"build",value:function(o){var a=this._nextAnimationId.toString();this._nextAnimationId++;var s=Array.isArray(o)?(0,Zt.vP)(o):o;return Ns(this._renderer,null,a,"register",[s]),new Ei(a,this._renderer)}}]),e}(Zt._j);ei.\u0275fac=function(r){return new(r||ei)(t.LFG(t.FYo),t.LFG(le.K0))},ei.\u0275prov=t.Yz7({token:ei,factory:ei.\u0275fac});var Ei=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),(a=r.call(this))._id=i,a._renderer=o,a}return(0,U.Z)(e,[{key:"create",value:function(o,a){return new ms(this._id,o,a||{},this._renderer)}}]),e}(Zt.LC),ms=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.id=r,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}return(0,U.Z)(n,[{key:"_listen",value:function(e,i){return this._renderer.listen(this.element,"@@".concat(this.id,":").concat(e),i)}},{key:"_command",value:function(e){for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a=0&&e3&&void 0!==arguments[3])||arguments[3];this.delegate.insertBefore(e,i,o),this.engine.onInsert(this.namespaceId,i,e,a)}},{key:"removeChild",value:function(e,i,o){this.engine.onRemove(this.namespaceId,i,this.delegate,o)}},{key:"selectRootElement",value:function(e,i){return this.delegate.selectRootElement(e,i)}},{key:"parentNode",value:function(e){return this.delegate.parentNode(e)}},{key:"nextSibling",value:function(e){return this.delegate.nextSibling(e)}},{key:"setAttribute",value:function(e,i,o,a){this.delegate.setAttribute(e,i,o,a)}},{key:"removeAttribute",value:function(e,i,o){this.delegate.removeAttribute(e,i,o)}},{key:"addClass",value:function(e,i){this.delegate.addClass(e,i)}},{key:"removeClass",value:function(e,i){this.delegate.removeClass(e,i)}},{key:"setStyle",value:function(e,i,o,a){this.delegate.setStyle(e,i,o,a)}},{key:"removeStyle",value:function(e,i,o){this.delegate.removeStyle(e,i,o)}},{key:"setProperty",value:function(e,i,o){"@"==i.charAt(0)&&i==Bd?this.disableAnimations(e,!!o):this.delegate.setProperty(e,i,o)}},{key:"setValue",value:function(e,i){this.delegate.setValue(e,i)}},{key:"listen",value:function(e,i,o){return this.delegate.listen(e,i,o)}},{key:"disableAnimations",value:function(e,i){this.engine.disableAnimations(e,i)}}]),n}(),qy=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,o,a,s,l)).factory=i,u.namespaceId=o,u}return(0,U.Z)(e,[{key:"setProperty",value:function(o,a,s){"@"==a.charAt(0)?"."==a.charAt(1)&&a==Bd?(s=void 0===s||!!s,this.disableAnimations(o,s)):this.engine.process(this.namespaceId,o,a.slice(1),s):this.delegate.setProperty(o,a,s)}},{key:"listen",value:function(o,a,s){var l=this;if("@"==a.charAt(0)){var u=function dg(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(o),d=a.slice(1),h="";if("@"!=d.charAt(0)){var g=function Jy(n){var r=n.indexOf("."),e=n.substring(0,r),i=n.slice(r+1);return[e,i]}(d),y=(0,Yn.Z)(g,2);d=y[0],h=y[1]}return this.engine.listen(this.namespaceId,u,d,h,function(L){var z=L._data||-1;l.factory.scheduleListenerCallback(z,s,L)})}return this.delegate.listen(o,a,s)}}]),e}(cg);var ap=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){return(0,B.Z)(this,e),r.call(this,i.body,o,a)}return(0,U.Z)(e,[{key:"ngOnDestroy",value:function(){this.flush()}}]),e}(Xt);ap.\u0275fac=function(r){return new(r||ap)(t.LFG(le.K0),t.LFG(Tl),t.LFG(ZE),t.LFG(t.z2F))},ap.\u0275prov=t.Yz7({token:ap,factory:ap.\u0275fac});var UY=[{provide:Zt._j,useClass:ei},{provide:ZE,useFactory:function Mue(){return new i7}},{provide:Xt,useClass:ap},{provide:t.FYo,useFactory:function Sue(n,r,e){return new Kc(n,r,e)},deps:[Ye,Xt,t.R0b]}],d7=[{provide:Tl,useFactory:function(){return new Or}},{provide:t.QbO,useValue:"BrowserAnimations"}].concat(UY),f7=[{provide:Tl,useClass:ag},{provide:t.QbO,useValue:"NoopAnimations"}].concat(UY),V1=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,null,[{key:"withConfig",value:function(e){return{ngModule:n,providers:e.disableAnimations?f7:d7}}}]),n}();V1.\u0275fac=function(r){return new(r||V1)},V1.\u0275mod=t.oAB({type:V1}),V1.\u0275inj=t.cJS({providers:d7,imports:[na]});var FE=(0,U.Z)(function n(){(0,B.Z)(this,n)});FE.\u0275fac=function(r){return new(r||FE)},FE.\u0275mod=t.oAB({type:FE}),FE.\u0275inj=t.cJS({providers:f7,imports:[na]});var HY=m(839),Y1=m(6053),_s=m(1709),K1=m(8117),p7=m(2821),Eue=m(3906),jY=m(519);function h7(n,r){return n=function xue(n,r){return void 0===n?void 0===r?n:r:n}(n,r),"function"==typeof n?function(){for(var i=arguments,o=arguments.length,a=Array(o),s=0;s0;)e[i]=r[i+1];return Due(n,e=e.map(g7))}function Oue(n){for(var r=arguments,e=[],i=arguments.length-1;i-- >0;)e[i]=r[i+1];return e.map(g7).reduce(function(o,a){var s=zY(n,a);return-1!==s?o.concat(n.splice(s,1)):o},[])}function g7(n,r){if("string"==typeof n)try{return document.querySelector(n)}catch(e){throw e}if(!GY(n)&&!r)throw new TypeError(n+" is not a DOM element.");return n}function WY(n){if(n===window)return function Pue(){var n={top:{value:0,enumerable:!0},left:{value:0,enumerable:!0},right:{value:window.innerWidth,enumerable:!0},bottom:{value:window.innerHeight,enumerable:!0},width:{value:window.innerWidth,enumerable:!0},height:{value:window.innerHeight,enumerable:!0},x:{value:0,enumerable:!0},y:{value:0,enumerable:!0}};if(Object.create)return Object.create({},n);var r={};return Object.defineProperties(r,n),r}();try{var r=n.getBoundingClientRect();return void 0===r.x&&(r.x=r.left,r.y=r.top),r}catch(e){throw new TypeError("Can't call getBoundingClientRect on "+n)}}var r,v7=void 0;"function"!=typeof Object.create?(r=function(){},v7=function(e,i){if(e!==Object(e)&&null!==e)throw TypeError("Argument must be an object, or null");r.prototype=e||{};var o=new r;return r.prototype=null,void 0!==i&&Object.defineProperties(o,i),null===e&&(o.__proto__=null),o}):v7=Object.create;var Lue=v7,Qy=["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","region","relatedTarget","screenX","screenY","shiftKey","which","x","y"];function y7(n,r){r=r||{};for(var e=Lue(n),i=0;iPe.right-e.margin.right?Math.ceil(Math.min(1,(s.x-Pe.right)/e.margin.right+1)*e.maxSpeed.right):0,Bt=s.yPe.bottom-e.margin.bottom?Math.ceil(Math.min(1,(s.y-Pe.bottom)/e.margin.bottom+1)*e.maxSpeed.bottom):0,e.syncMove()&&u.dispatch($e,{pageX:s.pageX+ct,pageY:s.pageY+Bt,clientX:s.x+ct,clientY:s.y+Bt}),setTimeout(function(){Bt&&function ft($e,Pe){$e===window?window.scrollTo($e.pageXOffset,$e.pageYOffset+Pe):$e.scrollTop+=Pe}($e,Bt),ct&&function bt($e,Pe){$e===window?window.scrollTo($e.pageXOffset+Pe,$e.pageYOffset):$e.scrollLeft+=Pe}($e,ct)})}window.addEventListener("mousedown",q,!1),window.addEventListener("touchstart",q,!1),window.addEventListener("mouseup",re,!1),window.addEventListener("touchend",re,!1),window.addEventListener("pointerup",re,!1),window.addEventListener("mousemove",Ke,!1),window.addEventListener("touchmove",Ke,!1),window.addEventListener("mouseleave",Se,!1),window.addEventListener("scroll",z,!0)}function VY(n,r,e){return e?n.y>e.top&&n.ye.left&&n.xe.top&&n.ye.left&&n.x0&&e.zone.run(function(){e.dragPointerDown.next({x:0,y:0})});var h=(0,Gi.T)(e.pointerUp$,e.pointerDown$,d,e.destroy$).pipe((0,K1.B)()),g=(0,Y1.aj)([e.pointerMove$,l]).pipe((0,$n.U)(function(z){var q=(0,Yn.Z)(z,2),re=q[0],ae=q[1];return{currentDrag$:u,transformX:re.clientX-o.clientX,transformY:re.clientY-o.clientY,clientX:re.clientX,clientY:re.clientY,scrollLeft:ae.left,scrollTop:ae.top,target:re.event.target}}),(0,$n.U)(function(z){return e.dragSnapGrid.x&&(z.transformX=Math.round(z.transformX/e.dragSnapGrid.x)*e.dragSnapGrid.x),e.dragSnapGrid.y&&(z.transformY=Math.round(z.transformY/e.dragSnapGrid.y)*e.dragSnapGrid.y),z}),(0,$n.U)(function(z){return e.dragAxis.x||(z.transformX=0),e.dragAxis.y||(z.transformY=0),z}),(0,$n.U)(function(z){var q=z.scrollLeft-s.left,re=z.scrollTop-s.top;return Object.assign(Object.assign({},z),{x:z.transformX+q,y:z.transformY+re})}),(0,$r.h)(function(z){var q=z.x,re=z.y,ae=z.transformX,Se=z.transformY;return!e.validateDrag||e.validateDrag({x:q,y:re,transform:{x:ae,y:Se}})}),(0,Ir.R)(h),(0,K1.B)()),y=g.pipe((0,Ri.q)(1),(0,K1.B)()),L=g.pipe((0,p7.h)(1),(0,K1.B)());return y.subscribe(function(z){var q=z.clientX,re=z.clientY,ae=z.x,Se=z.y;if(e.dragStart.observers.length>0&&e.zone.run(function(){e.dragStart.next({cancelDrag$:d})}),e.scroller=Fue([e.scrollContainer?e.scrollContainer.elementRef.nativeElement:e.document.defaultView],Object.assign(Object.assign({},e.autoScroll),{autoScroll:function(){return!0}})),C7(e.renderer,e.element,e.dragActiveClass),e.ghostDragEnabled){var Ce=e.element.nativeElement.getBoundingClientRect(),Ee=e.element.nativeElement.cloneNode(!0);if(e.showOriginalElementWhileDragging||e.renderer.setStyle(e.element.nativeElement,"visibility","hidden"),e.ghostElementAppendTo?e.ghostElementAppendTo.appendChild(Ee):e.element.nativeElement.parentNode.insertBefore(Ee,e.element.nativeElement.nextSibling),e.ghostElement=Ee,e.document.body.style.cursor=e.dragCursor,e.setElementStyles(Ee,{position:"fixed",top:"".concat(Ce.top,"px"),left:"".concat(Ce.left,"px"),width:"".concat(Ce.width,"px"),height:"".concat(Ce.height,"px"),cursor:e.dragCursor,margin:"0",willChange:"transform",pointerEvents:"none"}),e.ghostElementTemplate){var Ke=e.vcr.createEmbeddedView(e.ghostElementTemplate);Ee.innerHTML="",Ke.rootNodes.filter(function(st){return st instanceof Node}).forEach(function(st){Ee.appendChild(st)}),L.subscribe(function(){e.vcr.remove(e.vcr.indexOf(Ke))})}e.ghostElementCreated.observers.length>0&&e.zone.run(function(){e.ghostElementCreated.emit({clientX:q-ae,clientY:re-Se,element:Ee})}),L.subscribe(function(){Ee.parentElement.removeChild(Ee),e.ghostElement=null,e.renderer.setStyle(e.element.nativeElement,"visibility","")})}e.draggableHelper.currentDrag.next(u)}),L.pipe((0,_s.zg)(function(z){var q=d.pipe((0,Eue.Q)(),(0,Ri.q)(1),(0,$n.U)(function(re){return Object.assign(Object.assign({},z),{dragCancelled:re>0})}));return d.complete(),q})).subscribe(function(z){var q=z.x,re=z.y,ae=z.dragCancelled;e.scroller.destroy(),e.dragEnd.observers.length>0&&e.zone.run(function(){e.dragEnd.next({x:q,y:re,dragCancelled:ae})}),SL(e.renderer,e.element,e.dragActiveClass),u.complete()}),(0,Gi.T)(h,L).pipe((0,Ri.q)(1)).subscribe(function(){requestAnimationFrame(function(){e.document.head.removeChild(a)})}),g}),(0,K1.B)());(0,Gi.T)(i.pipe((0,Ri.q)(1),(0,$n.U)(function(o){return[,o]})),i.pipe((0,jY.G)())).pipe((0,$r.h)(function(o){var a=(0,Yn.Z)(o,2),s=a[0],l=a[1];return!s||(s.x!==l.x||s.y!==l.y)}),(0,$n.U)(function(o){var a=(0,Yn.Z)(o,2);a[0];return a[1]})).subscribe(function(o){var a=o.x,s=o.y,l=o.currentDrag$,u=o.clientX,d=o.clientY,h=o.transformX,g=o.transformY,y=o.target;e.dragging.observers.length>0&&e.zone.run(function(){e.dragging.next({x:a,y:s})}),requestAnimationFrame(function(){if(e.ghostElement){var L="translate3d(".concat(h,"px, ").concat(g,"px, 0px)");e.setElementStyles(e.ghostElement,{transform:L,"-webkit-transform":L,"-ms-transform":L,"-moz-transform":L,"-o-transform":L})}}),l.next({clientX:u,clientY:d,dropData:e.dropData,target:y})})}},{key:"ngOnChanges",value:function(e){e.dragAxis&&this.checkEventListeners()}},{key:"ngOnDestroy",value:function(){this.unsubscribeEventListeners(),this.pointerDown$.complete(),this.pointerMove$.complete(),this.pointerUp$.complete(),this.destroy$.next()}},{key:"checkEventListeners",value:function(){var e=this,i=this.canDrag(),o=Object.keys(this.eventListenerSubscriptions).length>0;i&&!o?this.zone.runOutsideAngular(function(){e.eventListenerSubscriptions.mousedown=e.renderer.listen(e.element.nativeElement,"mousedown",function(a){e.onMouseDown(a)}),e.eventListenerSubscriptions.mouseup=e.renderer.listen("document","mouseup",function(a){e.onMouseUp(a)}),e.eventListenerSubscriptions.touchstart=e.renderer.listen(e.element.nativeElement,"touchstart",function(a){e.onTouchStart(a)}),e.eventListenerSubscriptions.touchend=e.renderer.listen("document","touchend",function(a){e.onTouchEnd(a)}),e.eventListenerSubscriptions.touchcancel=e.renderer.listen("document","touchcancel",function(a){e.onTouchEnd(a)}),e.eventListenerSubscriptions.mouseenter=e.renderer.listen(e.element.nativeElement,"mouseenter",function(){e.onMouseEnter()}),e.eventListenerSubscriptions.mouseleave=e.renderer.listen(e.element.nativeElement,"mouseleave",function(){e.onMouseLeave()})}):!i&&o&&this.unsubscribeEventListeners()}},{key:"onMouseDown",value:function(e){var i=this;0===e.button&&(this.eventListenerSubscriptions.mousemove||(this.eventListenerSubscriptions.mousemove=this.renderer.listen("document","mousemove",function(o){i.pointerMove$.next({event:o,clientX:o.clientX,clientY:o.clientY})})),this.pointerDown$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}},{key:"onMouseUp",value:function(e){0===e.button&&(this.eventListenerSubscriptions.mousemove&&(this.eventListenerSubscriptions.mousemove(),delete this.eventListenerSubscriptions.mousemove),this.pointerUp$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}},{key:"onTouchStart",value:function(e){var o,a,s,i=this;if(this.touchStartLongPress&&(this.timeLongPress.timerBegin=Date.now(),a=!1,s=this.hasScrollbar(),o=this.getScrollPosition()),!this.eventListenerSubscriptions.touchmove){var l=(0,Xf.R)(this.document,"contextmenu").subscribe(function(d){d.preventDefault()}),u=(0,Xf.R)(this.document,"touchmove",{passive:!1}).subscribe(function(d){i.touchStartLongPress&&!a&&s&&(a=i.shouldBeginDrag(e,d,o)),(!i.touchStartLongPress||!s||a)&&(d.preventDefault(),i.pointerMove$.next({event:d,clientX:d.targetTouches[0].clientX,clientY:d.targetTouches[0].clientY}))});this.eventListenerSubscriptions.touchmove=function(){l.unsubscribe(),u.unsubscribe()}}this.pointerDown$.next({event:e,clientX:e.touches[0].clientX,clientY:e.touches[0].clientY})}},{key:"onTouchEnd",value:function(e){this.eventListenerSubscriptions.touchmove&&(this.eventListenerSubscriptions.touchmove(),delete this.eventListenerSubscriptions.touchmove,this.touchStartLongPress&&this.enableScroll()),this.pointerUp$.next({event:e,clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY})}},{key:"onMouseEnter",value:function(){this.setCursor(this.dragCursor)}},{key:"onMouseLeave",value:function(){this.setCursor("")}},{key:"canDrag",value:function(){return this.dragAxis.x||this.dragAxis.y}},{key:"setCursor",value:function(e){this.eventListenerSubscriptions.mousemove||this.renderer.setStyle(this.element.nativeElement,"cursor",e)}},{key:"unsubscribeEventListeners",value:function(){var e=this;Object.keys(this.eventListenerSubscriptions).forEach(function(i){e.eventListenerSubscriptions[i](),delete e.eventListenerSubscriptions[i]})}},{key:"setElementStyles",value:function(e,i){var o=this;Object.keys(i).forEach(function(a){o.renderer.setStyle(e,a,i[a])})}},{key:"getScrollElement",value:function(){return this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.body}},{key:"getScrollPosition",value:function(){return this.scrollContainer?{top:this.scrollContainer.elementRef.nativeElement.scrollTop,left:this.scrollContainer.elementRef.nativeElement.scrollLeft}:{top:window.pageYOffset||this.document.documentElement.scrollTop,left:window.pageXOffset||this.document.documentElement.scrollLeft}}},{key:"shouldBeginDrag",value:function(e,i,o){var a=this.getScrollPosition(),s_top=Math.abs(a.top-o.top),s_left=Math.abs(a.left-o.left),d=Math.abs(i.targetTouches[0].clientX-e.touches[0].clientX)-s_left+(Math.abs(i.targetTouches[0].clientY-e.touches[0].clientY)-s_top),h=this.touchStartLongPress;return(d>h.delta||s_top>0||s_left>0)&&(this.timeLongPress.timerBegin=Date.now()),this.timeLongPress.timerEnd=Date.now(),this.timeLongPress.timerEnd-this.timeLongPress.timerBegin>=h.delay&&(this.disableScroll(),!0)}},{key:"enableScroll",value:function(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow",""),this.renderer.setStyle(this.document.body,"overflow","")}},{key:"disableScroll",value:function(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow","hidden"),this.renderer.setStyle(this.document.body,"overflow","hidden")}},{key:"hasScrollbar",value:function(){var e=this.getScrollElement(),i=e.scrollWidth>e.clientWidth,o=e.scrollHeight>e.clientHeight;return i||o}}]),n}();function YY(n,r,e){return n>=e.left&&n<=e.right&&r>=e.top&&r<=e.bottom}jE.\u0275fac=function(r){return new(r||jE)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(Xy),t.Y36(t.R0b),t.Y36(t.s_b),t.Y36(J1,8),t.Y36(le.K0))},jE.\u0275dir=t.lG2({type:jE,selectors:[["","mwlDraggable",""]],inputs:{dropData:"dropData",dragAxis:"dragAxis",dragSnapGrid:"dragSnapGrid",ghostDragEnabled:"ghostDragEnabled",showOriginalElementWhileDragging:"showOriginalElementWhileDragging",validateDrag:"validateDrag",dragCursor:"dragCursor",dragActiveClass:"dragActiveClass",ghostElementAppendTo:"ghostElementAppendTo",ghostElementTemplate:"ghostElementTemplate",touchStartLongPress:"touchStartLongPress",autoScroll:"autoScroll"},outputs:{dragPointerDown:"dragPointerDown",dragStart:"dragStart",ghostElementCreated:"ghostElementCreated",dragging:"dragging",dragEnd:"dragEnd"},features:[t.TTD]});var EL=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.element=r,this.draggableHelper=e,this.zone=i,this.renderer=o,this.scrollContainer=a,this.dragEnter=new t.vpe,this.dragLeave=new t.vpe,this.dragOver=new t.vpe,this.drop=new t.vpe}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this.currentDragSubscription=this.draggableHelper.currentDrag.subscribe(function(i){C7(e.renderer,e.element,e.dragActiveClass);var s,d,o={updateCache:!0},a=e.renderer.listen(e.scrollContainer?e.scrollContainer.elementRef.nativeElement:"window","scroll",function(){o.updateCache=!0}),l=i.pipe((0,$n.U)(function(h){var g=h.clientX,y=h.clientY,L=h.dropData,z=h.target;s={clientX:g,clientY:y,dropData:L,target:z},o.updateCache&&(o.rect=e.element.nativeElement.getBoundingClientRect(),e.scrollContainer&&(o.scrollContainerRect=e.scrollContainer.elementRef.nativeElement.getBoundingClientRect()),o.updateCache=!1);var q=YY(g,y,o.rect),re=!e.validateDrop||e.validateDrop({clientX:g,clientY:y,target:z,dropData:L});return o.scrollContainerRect?q&&re&&YY(g,y,o.scrollContainerRect):q&&re})),u=l.pipe((0,ts.x)());u.pipe((0,$r.h)(function(h){return h})).subscribe(function(){d=!0,C7(e.renderer,e.element,e.dragOverClass),e.dragEnter.observers.length>0&&e.zone.run(function(){e.dragEnter.next(s)})}),l.pipe((0,$r.h)(function(h){return h})).subscribe(function(){e.dragOver.observers.length>0&&e.zone.run(function(){e.dragOver.next(s)})}),u.pipe((0,jY.G)(),(0,$r.h)(function(h){var g=(0,Yn.Z)(h,2),y=g[0],L=g[1];return y&&!L})).subscribe(function(){d=!1,SL(e.renderer,e.element,e.dragOverClass),e.dragLeave.observers.length>0&&e.zone.run(function(){e.dragLeave.next(s)})}),i.subscribe({complete:function(){a(),SL(e.renderer,e.element,e.dragActiveClass),d&&(SL(e.renderer,e.element,e.dragOverClass),e.drop.observers.length>0&&e.zone.run(function(){e.drop.next(s)}))}})})}},{key:"ngOnDestroy",value:function(){this.currentDragSubscription&&this.currentDragSubscription.unsubscribe()}}]),n}();EL.\u0275fac=function(r){return new(r||EL)(t.Y36(t.SBq),t.Y36(Xy),t.Y36(t.R0b),t.Y36(t.Qsj),t.Y36(J1,8))},EL.\u0275dir=t.lG2({type:EL,selectors:[["","mwlDroppable",""]],inputs:{dragOverClass:"dragOverClass",dragActiveClass:"dragActiveClass",validateDrop:"validateDrop"},outputs:{dragEnter:"dragEnter",dragLeave:"dragLeave",dragOver:"dragOver",drop:"drop"}});var Q1=(0,U.Z)(function n(){(0,B.Z)(this,n)});Q1.\u0275fac=function(r){return new(r||Q1)},Q1.\u0275mod=t.oAB({type:Q1}),Q1.\u0275inj=t.cJS({});var KY=m(2072);function $y(n,r){return nr?1:n>=r?0:NaN}function w7(n){return 1===n.length&&(n=function Uue(n){return function(r,e){return $y(n(r),e)}}(n)),{left:function(e,i,o,a){for(null==o&&(o=0),null==a&&(a=e.length);o>>1;n(e[s],i)<0?o=s+1:a=s}return o},right:function(e,i,o,a){for(null==o&&(o=0),null==a&&(a=e.length);o>>1;n(e[s],i)>0?a=s:o=s+1}return o}}}var qY=w7($y),JY=qY.right,Hue=qY.left,X1=JY;function jue(n,r){null==r&&(r=QY);for(var e=0,i=n.length-1,o=n[0],a=new Array(i<0?0:i);en?1:r>=n?0:NaN}function fg(n){return null===n?NaN:+n}function XY(n,r){var s,l,e=n.length,i=0,o=-1,a=0,u=0;if(null==r)for(;++o1)return u/(i-1)}function $Y(n,r){var e=XY(n,r);return e&&Math.sqrt(e)}function k7(n,r){var o,a,s,e=n.length,i=-1;if(null==r){for(;++i=o)for(a=s=o;++io&&(a=o),s=o)for(a=s=o;++io&&(a=o),s0)return[n];if((i=r0)for(n=Math.ceil(n/l),r=Math.floor(r/l),s=new Array(a=Math.ceil(r-n+1));++o=0?(a>=T7?10:a>=M7?5:a>=S7?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a>=T7?10:a>=M7?5:a>=S7?2:1)}function e0(n,r,e){var i=Math.abs(r-n)/Math.max(0,e),o=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),a=i/o;return a>=T7?o*=10:a>=M7?o*=5:a>=S7&&(o*=2),rg;)y.pop(),--L;var q,z=new Array(L+1);for(a=0;a<=L;++a)(q=z[a]=[]).x0=a>0?y[a-1]:h,q.x1=a=1)return+e(n[i-1],i-1,n);var i,o=(i-1)*r,a=Math.floor(o),s=+e(n[a],a,n);return s+(+e(n[a+1],a+1,n)-s)*(o-a)}}function que(n,r,e){return n=Vue.call(n,fg).sort($y),Math.ceil((e-r)/(2*(zE(n,.75)-zE(n,.25))*Math.pow(n.length,-1/3)))}function Jue(n,r,e){return Math.ceil((e-r)/(3.5*$Y(n)*Math.pow(n.length,-1/3)))}function tK(n,r){var o,a,e=n.length,i=-1;if(null==r){for(;++i=o)for(a=o;++ia&&(a=o)}else for(;++i=o)for(a=o;++ia&&(a=o);return a}function Que(n,r){var a,e=n.length,i=e,o=-1,s=0;if(null==r)for(;++o=0;)for(e=(s=n[r]).length;--e>=0;)a[--o]=s[e];return a}function nK(n,r){var o,a,e=n.length,i=-1;if(null==r){for(;++i=o)for(a=o;++io&&(a=o)}else for(;++i=o)for(a=o;++io&&(a=o);return a}function $ue(n,r){for(var e=r.length,i=new Array(e);e--;)i[e]=n[r[e]];return i}function ece(n,r){if(e=n.length){var e,a,i=0,o=0,s=n[o];for(null==r&&(r=$y);++i=0&&(i=e.slice(o+1),e=e.slice(0,o)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}function gce(n,r){for(var o,e=0,i=n.length;e0)for(var a,s,i=new Array(a),o=0;or?1:n>=r?0:NaN}var P7="http://www.w3.org/1999/xhtml",dK={svg:"http://www.w3.org/2000/svg",xhtml:P7,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function RL(n){var r=n+="",e=r.indexOf(":");return e>=0&&"xmlns"!==(r=n.slice(0,e))&&(n=n.slice(e+1)),dK.hasOwnProperty(r)?{space:dK[r],local:n}:n}function Uce(n){return function(){this.removeAttribute(n)}}function Hce(n){return function(){this.removeAttributeNS(n.space,n.local)}}function jce(n,r){return function(){this.setAttribute(n,r)}}function Gce(n,r){return function(){this.setAttributeNS(n.space,n.local,r)}}function zce(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Wce(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function fK(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Yce(n){return function(){this.style.removeProperty(n)}}function Kce(n,r,e){return function(){this.style.setProperty(n,r,e)}}function qce(n,r,e){return function(){var i=r.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function $1(n,r){return n.style.getPropertyValue(r)||fK(n).getComputedStyle(n,null).getPropertyValue(r)}function Qce(n){return function(){delete this[n]}}function Xce(n,r){return function(){this[n]=r}}function $ce(n,r){return function(){var e=r.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function pK(n){return n.trim().split(/^|\s+/)}function R7(n){return n.classList||new hK(n)}function hK(n){this._node=n,this._names=pK(n.getAttribute("class")||"")}function mK(n,r){for(var e=R7(n),i=-1,o=r.length;++i=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};var vK={},Ln=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(vK={mouseenter:"mouseover",mouseleave:"mouseout"}));function Dde(n,r,e){return n=yK(n,r,e),function(i){var o=i.relatedTarget;(!o||o!==this&&!(8&o.compareDocumentPosition(this)))&&n.call(this,i)}}function yK(n,r,e){return function(i){var o=Ln;Ln=i;try{n.call(this,this.__data__,r,e)}finally{Ln=o}}}function Ade(n){return n.trim().split(/^|\s+/).map(function(r){var e="",i=r.indexOf(".");return i>=0&&(e=r.slice(i+1),r=r.slice(0,i)),{type:r,name:e}})}function Ode(n){return function(){var r=this.__on;if(r){for(var a,e=0,i=-1,o=r.length;e=Ce&&(Ce=Se+1);!(Ke=re[Ce])&&++Ce=0;)(s=i[o])&&(a&&4^s.compareDocumentPosition(a)&&a.parentNode.insertBefore(s,a),a=s);return this},sort:function Ice(n){function r(g,y){return g&&y?n(g.__data__,y.__data__):!g-!y}n||(n=Pce);for(var e=this._groups,i=e.length,o=new Array(i),a=0;a1?this.each((null==r?Yce:"function"==typeof r?qce:Kce)(n,r,null==e?"":e)):$1(this.node(),n)},property:function ede(n,r){return arguments.length>1?this.each((null==r?Qce:"function"==typeof r?$ce:Xce)(n,r)):this.node()[n]},classed:function ide(n,r){var e=pK(n+"");if(arguments.length<2){for(var i=R7(this.node()),o=-1,a=e.length;++o>8&15|r>>4&240,r>>4&15|240&r,(15&r)<<4|15&r,1):8===e?FL(r>>24&255,r>>16&255,r>>8&255,(255&r)/255):4===e?FL(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|240&r,((15&r)<<4|15&r)/255):null):(r=Bde.exec(n))?new Ql(r[1],r[2],r[3],1):(r=Fde.exec(n))?new Ql(255*r[1]/100,255*r[2]/100,255*r[3]/100,1):(r=Ude.exec(n))?FL(r[1],r[2],r[3],r[4]):(r=Hde.exec(n))?FL(255*r[1]/100,255*r[2]/100,255*r[3]/100,r[4]):(r=jde.exec(n))?AK(r[1],r[2]/100,r[3]/100,1):(r=Gde.exec(n))?AK(r[1],r[2]/100,r[3]/100,r[4]):kK.hasOwnProperty(n)?SK(kK[n]):"transparent"===n?new Ql(NaN,NaN,NaN,0):null}function SK(n){return new Ql(n>>16&255,n>>8&255,255&n,1)}function FL(n,r,e,i){return i<=0&&(n=r=e=NaN),new Ql(n,r,e,i)}function EK(n){return n instanceof tw||(n=r0(n)),n?new Ql((n=n.rgb()).r,n.g,n.b,n.opacity):new Ql}function UL(n,r,e,i){return 1===arguments.length?EK(n):new Ql(n,r,e,null==i?1:i)}function Ql(n,r,e,i){this.r=+n,this.g=+r,this.b=+e,this.opacity=+i}function xK(){return"#"+N7(this.r)+N7(this.g)+N7(this.b)}function DK(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function N7(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function AK(n,r,e,i){return i<=0?n=r=e=NaN:e<=0||e>=1?n=r=NaN:r<=0&&(n=NaN),new lp(n,r,e,i)}function OK(n){if(n instanceof lp)return new lp(n.h,n.s,n.l,n.opacity);if(n instanceof tw||(n=r0(n)),!n)return new lp;if(n instanceof lp)return n;var r=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,o=Math.min(r,e,i),a=Math.max(r,e,i),s=NaN,l=a-o,u=(a+o)/2;return l?(s=r===a?(e-i)/l+6*(e0&&u<1?0:s,new lp(s,l,u,n.opacity)}function lp(n,r,e,i){this.h=+n,this.s=+r,this.l=+e,this.opacity=+i}function B7(n,r,e){return 255*(n<60?r+(e-r)*n/60:n<180?e:n<240?r+(e-r)*(240-n)/60:r)}function IK(n,r,e,i,o){var a=n*n,s=a*n;return((1-3*n+3*a-s)*r+(4-6*a+3*s)*e+(1+3*n+3*a-3*s)*i+s*o)/6}function HL(n){return function(){return n}}function PK(n,r){return function(e){return n+e*r}}function Jde(n){return 1==(n=+n)?iw:function(r,e){return e-r?function Kde(n,r,e){return n=Math.pow(n,e),r=Math.pow(r,e)-n,e=1/e,function(i){return Math.pow(n+i*r,e)}}(r,e,n):HL(isNaN(r)?e:r)}}function iw(n,r){var e=r-n;return e?PK(n,e):HL(isNaN(n)?r:n)}BL(tw,r0,{copy:function(r){return Object.assign(new this.constructor,this,r)},displayable:function(){return this.rgb().displayable()},hex:TK,formatHex:TK,formatHsl:function zde(){return OK(this).formatHsl()},formatRgb:MK,toString:MK}),BL(Ql,UL,Z7(tw,{brighter:function(r){return r=null==r?nw:Math.pow(nw,r),new Ql(this.r*r,this.g*r,this.b*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new Ql(this.r*r,this.g*r,this.b*r,this.opacity)},rgb:function(){return this},displayable:function(){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:xK,formatHex:xK,formatRgb:DK,toString:DK})),BL(lp,function Wde(n,r,e,i){return 1===arguments.length?OK(n):new lp(n,r,e,null==i?1:i)},Z7(tw,{brighter:function(r){return r=null==r?nw:Math.pow(nw,r),new lp(this.h,this.s,this.l*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new lp(this.h,this.s,this.l*r,this.opacity)},rgb:function(){var r=this.h%360+360*(this.h<0),e=isNaN(r)||isNaN(this.s)?0:this.s,i=this.l,o=i+(i<.5?i:1-i)*e,a=2*i-o;return new Ql(B7(r>=240?r-240:r+120,a,o),B7(r,a,o),B7(r<120?r+240:r-120,a,o),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var r=this.opacity;return(1===(r=isNaN(r)?1:Math.max(0,Math.min(1,r)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===r?")":", "+r+")")}}));var jL=function n(r){var e=Jde(r);function i(o,a){var s=e((o=UL(o)).r,(a=UL(a)).r),l=e(o.g,a.g),u=e(o.b,a.b),d=iw(o.opacity,a.opacity);return function(h){return o.r=s(h),o.g=l(h),o.b=u(h),o.opacity=d(h),o+""}}return i.gamma=n,i}(1);function RK(n){return function(r){var s,l,e=r.length,i=new Array(e),o=new Array(e),a=new Array(e);for(s=0;s=1?(e=1,r-1):Math.floor(e*r),o=n[i],a=n[i+1],s=i>0?n[i-1]:2*o-a,l=ie&&(a=r.slice(e,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,u.push({i:s,x:qc(i,o)})),e=U7.lastIndex;return e=0&&n._call.call(null,r),n=n._next;--ow}function jK(){i0=(WL=JE.now())+VL,ow=YE=0;try{HK()}finally{ow=0,function afe(){for(var n,e,r=zL,i=1/0;r;)r._call?(i>r._time&&(i=r._time),n=r,r=r._next):(e=r._next,r._next=null,r=n?n._next=e:zL=e);qE=n,H7(i)}(),i0=0}}function ofe(){var n=JE.now(),r=n-WL;r>1e3&&(VL-=r,WL=n)}function H7(n){ow||(YE&&(YE=clearTimeout(YE)),n-i0>24?(n<1/0&&(YE=setTimeout(jK,n-JE.now()-VL)),KE&&(KE=clearInterval(KE))):(KE||(WL=JE.now(),KE=setInterval(ofe,1e3)),ow=1,UK(jK)))}function $E(n,r,e){var i=new QE;return r=null==r?0:+r,i.restart(function(o){i.stop(),n(o+r)},r,e),i}QE.prototype=XE.prototype={constructor:QE,restart:function(r,e,i){if("function"!=typeof r)throw new TypeError("callback is not a function");i=(null==i?hg():+i)+(null==e?0:+e),!this._next&&qE!==this&&(qE?qE._next=this:zL=this,qE=this),this._call=r,this._time=i,H7()},stop:function(){this._call&&(this._call=null,this._time=1/0,H7())}};var sfe=t0("start","end","cancel","interrupt"),lfe=[];function qL(n,r,e,i,o,a){var s=n.__transition;if(s){if(e in s)return}else n.__transition={};!function ufe(n,r,e){var o,i=n.__transition;function a(d){e.state=1,e.timer.restart(s,e.delay,e.time),e.delay<=d&&s(d-e.delay)}function s(d){var h,g,y,L;if(1!==e.state)return u();for(h in i)if((L=i[h]).name===e.name){if(3===L.state)return $E(s);4===L.state?(L.state=6,L.timer.stop(),L.on.call("interrupt",n,n.__data__,L.index,L.group),delete i[h]):+h0)throw new Error("too late; already scheduled");return e}function Qh(n,r){var e=Ud(n,r);if(e.state>3)throw new Error("too late; already running");return e}function Ud(n,r){var e=n.__transition;if(!e||!(e=e[r]))throw new Error("transition not found");return e}function aw(n,r){var i,o,s,e=n.__transition,a=!0;if(e){for(s in r=null==r?null:r+"",e)(i=e[s]).name===r?(o=i.state>2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(o?"interrupt":"cancel",n,n.__data__,i.index,i.group),delete e[s]):a=!1;a&&delete n.__transition}}var ex,V7,KK,JL,VK=180/Math.PI,W7={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function YK(n,r,e,i,o,a){var s,l,u;return(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s),(u=n*e+r*i)&&(e-=n*u,i-=r*u),(l=Math.sqrt(e*e+i*i))&&(e/=l,i/=l,u/=l),n*i180?h+=360:h-d>180&&(d+=360),y.push({i:g.push(o(g)+"rotate(",null,i)-2,x:qc(d,h)})):h&&g.push(o(g)+"rotate("+h+i)}(d.rotate,h.rotate,g,y),function l(d,h,g,y){d!==h?y.push({i:g.push(o(g)+"skewX(",null,i)-2,x:qc(d,h)}):h&&g.push(o(g)+"skewX("+h+i)}(d.skewX,h.skewX,g,y),function u(d,h,g,y,L,z){if(d!==g||h!==y){var q=L.push(o(L)+"scale(",null,",",null,")");z.push({i:q-4,x:qc(d,g)},{i:q-2,x:qc(h,y)})}else(1!==g||1!==y)&&L.push(o(L)+"scale("+g+","+y+")")}(d.scaleX,d.scaleY,h.scaleX,h.scaleY,g,y),d=h=null,function(L){for(var re,z=-1,q=y.length;++z=0&&(r=r.slice(0,e)),!r||"start"===r})}(r)?z7:Qh;return function(){var s=a(this,n),l=s.on;l!==i&&(o=(i=l).copy()).on(r,e),s.on=o}}var Yfe=pg.prototype.constructor;function QK(n){return function(){this.style.removeProperty(n)}}function epe(n,r,e){return function(i){this.style.setProperty(n,r.call(this,i),e)}}function tpe(n,r,e){var i,o;function a(){var s=r.apply(this,arguments);return s!==o&&(i=(o=s)&&epe(n,s,e)),i}return a._value=r,a}function ape(n){return function(r){this.textContent=n.call(this,r)}}function spe(n){var r,e;function i(){var o=n.apply(this,arguments);return o!==e&&(r=(e=o)&&ape(o)),r}return i._value=n,i}var dpe=0;function Xh(n,r,e,i){this._groups=n,this._parents=r,this._name=e,this._id=i}function K7(n){return pg().transition(n)}function XK(){return++dpe}var sw=pg.prototype;function fpe(n){return n*n*n}function ppe(n){return--n*n*n+1}function QL(n){return((n*=2)<=1?n*n*n:(n-=2)*n*n+2)/2}Xh.prototype=K7.prototype={constructor:Xh,select:function Wfe(n){var r=this._name,e=this._id;"function"!=typeof n&&(n=I7(n));for(var i=this._groups,o=i.length,a=new Array(o),s=0;sMath.abs(bn[1]-Wr[1])?kr=!0:ar=!0),Wr=bn,jn=!0,XL(),Mn()}function Mn(){var bn;switch(Pt=Wr[0]-_r[0],Tn=Wr[1]-_r[1],z){case J7:case tq:q&&(Pt=Math.max(Ee-Ke,Math.min(bt-$e,Pt)),st=Ke+Pt,Pe=$e+Pt),re&&(Tn=Math.max(De-it,Math.min(ct-Bt,Tn)),ft=it+Tn,Ht=Bt+Tn);break;case lw:q<0?(Pt=Math.max(Ee-Ke,Math.min(bt-Ke,Pt)),st=Ke+Pt,Pe=$e):q>0&&(Pt=Math.max(Ee-$e,Math.min(bt-$e,Pt)),st=Ke,Pe=$e+Pt),re<0?(Tn=Math.max(De-it,Math.min(ct-it,Tn)),ft=it+Tn,Ht=Bt):re>0&&(Tn=Math.max(De-Bt,Math.min(ct-Bt,Tn)),ft=it,Ht=Bt+Tn);break;case uw:q&&(st=Math.max(Ee,Math.min(bt,Ke-Pt*q)),Pe=Math.max(Ee,Math.min(bt,$e+Pt*q))),re&&(ft=Math.max(De,Math.min(ct,it-Tn*re)),Ht=Math.max(De,Math.min(ct,Bt+Tn*re)))}Pe0&&(Ke=st-Pt),re<0?Bt=Ht-Tn:re>0&&(it=ft-Tn),z=J7,Ho.attr("cursor",$h.selection),Mn());break;default:return}XL()}function un(){switch(Ln.keyCode){case 16:zn&&(ar=kr=zn=!1,Mn());break;case 18:z===uw&&(q<0?$e=Pe:q>0&&(Ke=st),re<0?Bt=Ht:re>0&&(it=ft),z=lw,Mn());break;case 32:z===J7&&(Ln.altKey?(q&&($e=Pe-Pt*q,Ke=st+Pt*q),re&&(Bt=Ht-Tn*re,it=ft+Tn*re),z=uw):(q<0?$e=Pe:q>0&&(Ke=st),re<0?Bt=Ht:re>0&&(it=ft),z=lw),Ho.attr("cursor",$h[L]),Mn());break;default:return}XL()}}function g(){var y=this.__brush||{selection:null};return y.extent=r.apply(this,arguments),y.dim=n,y}return s.move=function(y,L){y.selection?y.on("start.brush",function(){u(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){u(this,arguments).end()}).tween("brush",function(){var z=this,q=z.__brush,re=u(z,arguments),ae=q.selection,Se=n.input("function"==typeof L?L.apply(this,arguments):L,q.extent),Ce=GL(ae,Se);function Ee(Ke){q.selection=1===Ke&&X7(Se)?null:Ce(Ke),l.call(z),re.brush()}return ae&&Se?Ee:Ee(1)}):y.each(function(){var z=this,q=arguments,re=z.__brush,ae=n.input("function"==typeof L?L.apply(z,q):L,re.extent),Se=u(z,q).beforestart();aw(z),re.selection=null==ae||X7(ae)?null:ae,l.call(z),Se.start().brush().end()})},d.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(L){LL(new gpe(s,L,n.output(this.state.selection)),i.apply,i,[L,this.that,this.args])}},s.extent=function(y){return arguments.length?(r="function"==typeof y?y:$K([[+y[0][0],+y[0][1]],[+y[1][0],+y[1][1]]]),s):r},s.filter=function(y){return arguments.length?(e="function"==typeof y?y:$K(!!y),s):e},s.handleSize=function(y){return arguments.length?(o=+y,s):o},s.on=function(){var y=i.on.apply(i,arguments);return y===i?s:y},s}var iq=Math.cos,oq=Math.sin,aq=Math.PI,tZ=aq/2,sq=2*aq,lq=Math.max;function Epe(n){return function(r,e){return n(r.source.value+r.target.value,e.source.value+e.target.value)}}function xpe(){var n=0,r=null,e=null,i=null;function o(a){var L,z,q,re,ae,Se,s=a.length,l=[],u=mc(s),d=[],h=[],g=h.groups=new Array(s),y=new Array(s*s);for(L=0,ae=-1;++aeo0)if(Math.abs(g*u-d*h)>o0&&a){var L=i-s,z=o-l,q=u*u+d*d,re=L*L+z*z,ae=Math.sqrt(q),Se=Math.sqrt(y),Ce=a*Math.tan((t9-Math.acos((q+y-re)/(2*ae*Se)))/2),Ee=Ce/Se,Ke=Ce/ae;Math.abs(Ee-1)>o0&&(this._+="L"+(r+Ee*h)+","+(e+Ee*g)),this._+="A"+a+","+a+",0,0,"+ +(g*L>h*z)+","+(this._x1=r+Ke*u)+","+(this._y1=e+Ke*d)}else this._+="L"+(this._x1=r)+","+(this._y1=e)},arc:function(r,e,i,o,a,s){r=+r,e=+e,s=!!s;var l=(i=+i)*Math.cos(o),u=i*Math.sin(o),d=r+l,h=e+u,g=1^s,y=s?o-a:a-o;if(i<0)throw new Error("negative radius: "+i);null===this._x1?this._+="M"+d+","+h:(Math.abs(this._x1-d)>o0||Math.abs(this._y1-h)>o0)&&(this._+="L"+d+","+h),i&&(y<0&&(y=y%n9+n9),y>Ape?this._+="A"+i+","+i+",0,1,"+g+","+(r-l)+","+(e-u)+"A"+i+","+i+",0,1,"+g+","+(this._x1=d)+","+(this._y1=h):y>o0&&(this._+="A"+i+","+i+",0,"+ +(y>=t9)+","+g+","+(this._x1=r+i*Math.cos(a))+","+(this._y1=e+i*Math.sin(a))))},rect:function(r,e,i,o){this._+="M"+(this._x0=this._x1=+r)+","+(this._y0=this._y1=+e)+"h"+ +i+"v"+ +o+"h"+-i+"Z"},toString:function(){return this._}};var Hd=uq;function Ope(n){return n.source}function Ipe(n){return n.target}function Ppe(n){return n.radius}function Rpe(n){return n.startAngle}function Lpe(n){return n.endAngle}function Zpe(){var n=Ope,r=Ipe,e=Ppe,i=Rpe,o=Lpe,a=null;function s(){var l,u=Dpe.call(arguments),d=n.apply(this,u),h=r.apply(this,u),g=+e.apply(this,(u[0]=d,u)),y=i.apply(this,u)-tZ,L=o.apply(this,u)-tZ,z=g*iq(y),q=g*oq(y),re=+e.apply(this,(u[0]=h,u)),ae=i.apply(this,u)-tZ,Se=o.apply(this,u)-tZ;if(a||(a=l=Hd()),a.moveTo(z,q),a.arc(0,0,g,y,L),(y!==ae||L!==Se)&&(a.quadraticCurveTo(0,0,re*iq(ae),re*oq(ae)),a.arc(0,0,re,ae,Se)),a.quadraticCurveTo(0,0,z,q),a.closePath(),l)return a=null,l+""||null}return s.radius=function(l){return arguments.length?(e="function"==typeof l?l:e9(+l),s):e},s.startAngle=function(l){return arguments.length?(i="function"==typeof l?l:e9(+l),s):i},s.endAngle=function(l){return arguments.length?(o="function"==typeof l?l:e9(+l),s):o},s.source=function(l){return arguments.length?(n=l,s):n},s.target=function(l){return arguments.length?(r=l,s):r},s.context=function(l){return arguments.length?(a=null==l?null:l,s):a},s}var Jc="$";function nZ(){}function cq(n,r){var e=new nZ;if(n instanceof nZ)n.each(function(l,u){e.set(u,l)});else if(Array.isArray(n)){var a,i=-1,o=n.length;if(null==r)for(;++i=n.length)return null!=e&&l.sort(e),null!=i?i(l):l;for(var z,q,ae,g=-1,y=l.length,L=n[u++],re=mg(),Se=d();++gn.length)return l;var d,h=r[u-1];return null!=i&&u>=n.length?d=l.entries():(d=[],l.each(function(g,y){d.push({key:y,values:s(g,u)})})),null!=h?d.sort(function(g,y){return h(g.key,y.key)}):d}return o={object:function(u){return a(u,0,Bpe,Fpe)},map:function(u){return a(u,0,dq,fq)},entries:function(u){return s(a(u,0,dq,fq),0)},key:function(u){return n.push(u),o},sortKeys:function(u){return r[n.length-1]=u,o},sortValues:function(u){return e=u,o},rollup:function(u){return i=u,o}}}function Bpe(){return{}}function Fpe(n,r,e){n[r]=e}function dq(){return mg()}function fq(n,r,e){n.set(r,e)}function rZ(){}var a0=mg.prototype;function pq(n,r){var e=new rZ;if(n instanceof rZ)n.each(function(a){e.add(a)});else if(n){var i=-1,o=n.length;if(null==r)for(;++i>8&15|r>>4&240,r>>4&15|240&r,(15&r)<<4|15&r,1):(r=Wpe.exec(n))?mq(parseInt(r[1],16)):(r=Vpe.exec(n))?new ol(r[1],r[2],r[3],1):(r=Ype.exec(n))?new ol(255*r[1]/100,255*r[2]/100,255*r[3]/100,1):(r=Kpe.exec(n))?_q(r[1],r[2],r[3],r[4]):(r=qpe.exec(n))?_q(255*r[1]/100,255*r[2]/100,255*r[3]/100,r[4]):(r=Jpe.exec(n))?vq(r[1],r[2]/100,r[3]/100,1):(r=Qpe.exec(n))?vq(r[1],r[2]/100,r[3]/100,r[4]):hq.hasOwnProperty(n)?mq(hq[n]):"transparent"===n?new ol(NaN,NaN,NaN,0):null}function mq(n){return new ol(n>>16&255,n>>8&255,255&n,1)}function _q(n,r,e,i){return i<=0&&(n=r=e=NaN),new ol(n,r,e,i)}function i9(n){return n instanceof _g||(n=iZ(n)),n?new ol((n=n.rgb()).r,n.g,n.b,n.opacity):new ol}function gq(n,r,e,i){return 1===arguments.length?i9(n):new ol(n,r,e,null==i?1:i)}function ol(n,r,e,i){this.r=+n,this.g=+r,this.b=+e,this.opacity=+i}function vq(n,r,e,i){return i<=0?n=r=e=NaN:e<=0||e>=1?n=r=NaN:r<=0&&(n=NaN),new cp(n,r,e,i)}function Xpe(n){if(n instanceof cp)return new cp(n.h,n.s,n.l,n.opacity);if(n instanceof _g||(n=iZ(n)),!n)return new cp;if(n instanceof cp)return n;var r=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,o=Math.min(r,e,i),a=Math.max(r,e,i),s=NaN,l=a-o,u=(a+o)/2;return l?(s=r===a?(e-i)/l+6*(e0&&u<1?0:s,new cp(s,l,u,n.opacity)}function yq(n,r,e,i){return 1===arguments.length?Xpe(n):new cp(n,r,e,null==i?1:i)}function cp(n,r,e,i){this.h=+n,this.s=+r,this.l=+e,this.opacity=+i}function o9(n,r,e){return 255*(n<60?r+(e-r)*n/60:n<180?e:n<240?r+(e-r)*(240-n)/60:r)}cw(_g,iZ,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),cw(ol,gq,nx(_g,{brighter:function(r){return r=null==r?dw:Math.pow(dw,r),new ol(this.r*r,this.g*r,this.b*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new ol(this.r*r,this.g*r,this.b*r,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var r=this.opacity;return(1===(r=isNaN(r)?1:Math.max(0,Math.min(1,r)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===r?")":", "+r+")")}})),cw(cp,yq,nx(_g,{brighter:function(r){return r=null==r?dw:Math.pow(dw,r),new cp(this.h,this.s,this.l*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new cp(this.h,this.s,this.l*r,this.opacity)},rgb:function(){var r=this.h%360+360*(this.h<0),e=isNaN(r)||isNaN(this.s)?0:this.s,i=this.l,o=i+(i<.5?i:1-i)*e,a=2*i-o;return new ol(o9(r>=240?r-240:r+120,a,o),o9(r,a,o),o9(r<120?r+240:r-120,a,o),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var bq=Math.PI/180,Cq=180/Math.PI,Mq=4/29,pw=6/29,Sq=3*pw*pw;function a9(n){if(n instanceof dp)return new dp(n.l,n.a,n.b,n.opacity);if(n instanceof em){if(isNaN(n.h))return new dp(n.l,0,0,n.opacity);var r=n.h*bq;return new dp(n.l,Math.cos(r)*n.c,Math.sin(r)*n.c,n.opacity)}n instanceof ol||(n=i9(n));var s,l,e=c9(n.r),i=c9(n.g),o=c9(n.b),a=s9((.2225045*e+.7168786*i+.0606169*o)/1);return e===i&&i===o?s=l=a:(s=s9((.4360747*e+.3850649*i+.1430804*o)/.96422),l=s9((.0139322*e+.0971045*i+.7141733*o)/.82521)),new dp(116*a-16,500*(s-a),200*(a-l),n.opacity)}function Eq(n,r,e,i){return 1===arguments.length?a9(n):new dp(n,r,e,null==i?1:i)}function dp(n,r,e,i){this.l=+n,this.a=+r,this.b=+e,this.opacity=+i}function s9(n){return n>.008856451679035631?Math.pow(n,1/3):n/Sq+Mq}function l9(n){return n>pw?n*n*n:Sq*(n-Mq)}function u9(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function c9(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function ehe(n){if(n instanceof em)return new em(n.h,n.c,n.l,n.opacity);if(n instanceof dp||(n=a9(n)),0===n.a&&0===n.b)return new em(NaN,0,n.l,n.opacity);var r=Math.atan2(n.b,n.a)*Cq;return new em(r<0?r+360:r,Math.sqrt(n.a*n.a+n.b*n.b),n.l,n.opacity)}function xq(n,r,e,i){return 1===arguments.length?ehe(n):new em(n,r,e,null==i?1:i)}function em(n,r,e,i){this.h=+n,this.c=+r,this.l=+e,this.opacity=+i}cw(dp,Eq,nx(_g,{brighter:function(r){return new dp(this.l+18*(null==r?1:r),this.a,this.b,this.opacity)},darker:function(r){return new dp(this.l-18*(null==r?1:r),this.a,this.b,this.opacity)},rgb:function(){var r=(this.l+16)/116,e=isNaN(this.a)?r:r+this.a/500,i=isNaN(this.b)?r:r-this.b/200;return new ol(u9(3.1338561*(e=.96422*l9(e))-1.6168667*(r=1*l9(r))-.4906146*(i=.82521*l9(i))),u9(-.9787684*e+1.9161415*r+.033454*i),u9(.0719453*e-.2289914*r+1.4052427*i),this.opacity)}})),cw(em,xq,nx(_g,{brighter:function(r){return new em(this.h,this.c,this.l+18*(null==r?1:r),this.opacity)},darker:function(r){return new em(this.h,this.c,this.l-18*(null==r?1:r),this.opacity)},rgb:function(){return a9(this).rgb()}}));var d9=1.78277,f9=-.29227,aZ=-.90649,ix=1.97294,Aq=ix*aZ,Oq=ix*d9,Iq=d9*f9- -.14861*aZ;function the(n){if(n instanceof l0)return new l0(n.h,n.s,n.l,n.opacity);n instanceof ol||(n=i9(n));var r=n.r/255,e=n.g/255,i=n.b/255,o=(Iq*i+Aq*r-Oq*e)/(Iq+Aq-Oq),a=i-o,s=(ix*(e-o)-f9*a)/aZ,l=Math.sqrt(s*s+a*a)/(ix*o*(1-o)),u=l?Math.atan2(s,a)*Cq-120:NaN;return new l0(u<0?u+360:u,l,o,n.opacity)}function Pq(n,r,e,i){return 1===arguments.length?the(n):new l0(n,r,e,null==i?1:i)}function l0(n,r,e,i){this.h=+n,this.s=+r,this.l=+e,this.opacity=+i}cw(l0,Pq,nx(_g,{brighter:function(r){return r=null==r?dw:Math.pow(dw,r),new l0(this.h,this.s,this.l*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new l0(this.h,this.s,this.l*r,this.opacity)},rgb:function(){var r=isNaN(this.h)?0:(this.h+120)*bq,e=+this.l,i=isNaN(this.s)?0:this.s*e*(1-e),o=Math.cos(r),a=Math.sin(r);return new ol(255*(e+i*(-.14861*o+d9*a)),255*(e+i*(f9*o+aZ*a)),255*(e+i*(ix*o)),this.opacity)}}));var Rq=Array.prototype.slice;function rhe(n,r){return n-r}function u0(n){return function(){return n}}function ohe(n,r){for(var o,e=-1,i=r.length;++ei!=L>i&&e<(y-d)*(i-h)/(L-h)+d&&(o=-o)}return o}function she(n,r,e){var i;return function lhe(n,r,e){return(r[0]-n[0])*(e[1]-n[1])==(e[0]-n[0])*(r[1]-n[1])}(n,r,e)&&function uhe(n,r,e){return n<=r&&r<=e||e<=r&&r<=n}(n[i=+(n[0]===r[0])],e[i],r[i])}function che(){}var tm=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Lq(){var n=1,r=1,e=x7,i=u;function o(d){var h=e(d);if(Array.isArray(h))h=h.slice().sort(rhe);else{var g=k7(d),y=g[0],L=g[1];h=e0(y,L,h),h=mc(Math.floor(y/h)*h,Math.floor(L/h)*h,h)}return h.map(function(z){return a(d,z)})}function a(d,h){var g=[],y=[];return function s(d,h,g){var z,q,re,ae,Se,Ce,y=new Array,L=new Array;for(z=q=-1,ae=d[0]>=h,tm[ae<<1].forEach(Ee);++z=h,tm[re|ae<<1].forEach(Ee);for(tm[ae<<0].forEach(Ee);++q=h,Se=d[q*n]>=h,tm[ae<<1|Se<<2].forEach(Ee);++z=h,Ce=Se,Se=d[q*n+z+1]>=h,tm[re|ae<<1|Se<<2|Ce<<3].forEach(Ee);tm[ae|Se<<3].forEach(Ee)}for(z=-1,Se=d[q*n]>=h,tm[Se<<2].forEach(Ee);++z=h,tm[Se<<2|Ce<<3].forEach(Ee);function Ee(Ke){var bt,$e,st=[Ke[0][0]+z,Ke[0][1]+q],De=[Ke[1][0]+z,Ke[1][1]+q],it=l(st),ft=l(De);(bt=L[it])?($e=y[ft])?(delete L[bt.end],delete y[$e.start],bt===$e?(bt.ring.push(De),g(bt.ring)):y[bt.start]=L[$e.end]={start:bt.start,end:$e.end,ring:bt.ring.concat($e.ring)}):(delete L[bt.end],bt.ring.push(De),L[bt.end=ft]=bt):(bt=y[ft])?($e=L[it])?(delete y[bt.start],delete L[$e.end],bt===$e?(bt.ring.push(De),g(bt.ring)):y[$e.start]=L[bt.end]={start:$e.start,end:bt.end,ring:$e.ring.concat(bt.ring)}):(delete y[bt.start],bt.ring.unshift(st),y[bt.start=it]=bt):y[it]=L[ft]={start:it,end:ft,ring:[st,De]}}tm[Se<<3].forEach(Ee)}(d,h,function(L){i(L,d,h),function ihe(n){for(var r=0,e=n.length,i=n[e-1][1]*n[0][0]-n[e-1][0]*n[0][1];++r0?g.push([L]):y.push(L)}),y.forEach(function(L){for(var re,z=0,q=g.length;z0&&L0&&z0&&g>0))throw new Error("invalid size");return n=h,r=g,o},o.thresholds=function(d){return arguments.length?(e="function"==typeof d?d:Array.isArray(d)?u0(Rq.call(d)):u0(d),o):e},o.smooth=function(d){return arguments.length?(i=d?u:che,o):i===u},o}function p9(n,r,e){for(var i=n.width,o=n.height,a=1+(e<<1),s=0;s=e&&(l>=a&&(u-=n.data[l-a+s*i]),r.data[l-e+s*i]=u/Math.min(l+1,i-1+a-l,a))}function h9(n,r,e){for(var i=n.width,o=n.height,a=1+(e<<1),s=0;s=e&&(l>=a&&(u-=n.data[s+(l-a)*i]),r.data[s+(l-e)*i]=u/Math.min(l+1,o-1+a-l,a))}function dhe(n){return n[0]}function fhe(n){return n[1]}function phe(){var n=dhe,r=fhe,e=960,i=500,o=20,a=2,s=3*o,l=e+2*s>>a,u=i+2*s>>a,d=u0(20);function h(re){var ae=new Float32Array(l*u),Se=new Float32Array(l*u);re.forEach(function(Ke,st,De){var it=n(Ke,st,De)+s>>a,ft=r(Ke,st,De)+s>>a;it>=0&&it=0&&ft>a),h9({width:l,height:u,data:Se},{width:l,height:u,data:ae},o>>a),p9({width:l,height:u,data:ae},{width:l,height:u,data:Se},o>>a),h9({width:l,height:u,data:Se},{width:l,height:u,data:ae},o>>a),p9({width:l,height:u,data:ae},{width:l,height:u,data:Se},o>>a),h9({width:l,height:u,data:Se},{width:l,height:u,data:ae},o>>a);var Ce=d(ae);if(!Array.isArray(Ce)){var Ee=tK(ae);Ce=e0(0,Ee,Ce),(Ce=mc(0,Math.floor(Ee/Ce)*Ce,Ce)).shift()}return Lq().thresholds(Ce).size([l,u])(ae).map(g)}function g(re){return re.value*=Math.pow(2,-2*a),re.coordinates.forEach(y),re}function y(re){re.forEach(L)}function L(re){re.forEach(z)}function z(re){re[0]=re[0]*Math.pow(2,a)-s,re[1]=re[1]*Math.pow(2,a)-s}function q(){return l=e+2*(s=3*o)>>a,u=i+2*s>>a,h}return h.x=function(re){return arguments.length?(n="function"==typeof re?re:u0(+re),h):n},h.y=function(re){return arguments.length?(r="function"==typeof re?re:u0(+re),h):r},h.size=function(re){if(!arguments.length)return[e,i];var ae=Math.ceil(re[0]),Se=Math.ceil(re[1]);if(!(ae>=0||ae>=0))throw new Error("invalid size");return e=ae,i=Se,q()},h.cellSize=function(re){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(re)/Math.LN2),q()},h.thresholds=function(re){return arguments.length?(d="function"==typeof re?re:Array.isArray(re)?u0(Rq.call(re)):u0(re),h):d},h.bandwidth=function(re){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((re=+re)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*re*re+1)-1)/2),q()},h}function m9(n,r,e){arguments.length<3&&(e=r,r=NK().changedTouches);for(var a,i=0,o=r?r.length:0;ig}o.mouse("drag")}function q(){Ci(Ln.view).on("mousemove.drag mouseup.drag",null),NL(Ln.view,d),ew(),o.mouse("end")}function re(){if(n.apply(this,arguments)){var De,it,Ee=Ln.changedTouches,Ke=r.apply(this,arguments),st=Ee.length;for(De=0;De=y?re=!0:10===(st=d.charCodeAt(L++))?ae=!0:13===st&&(ae=!0,10===d.charCodeAt(L)&&++L),d.slice(Ke+1,Ee-1).replace(/""/g,'"')}for(;L=(g=(l+d)/2))?l=g:d=g,(re=e>=(y=(u+h)/2))?u=y:h=y,o=a,!(a=a[ae=re<<1|q]))return o[ae]=s,n;if(L=+n._x.call(null,a.data),z=+n._y.call(null,a.data),r===L&&e===z)return s.next=a,o?o[ae]=s:n._root=s,n;do{o=o?o[ae]=new Array(4):n._root=new Array(4),(q=r>=(g=(l+d)/2))?l=g:d=g,(re=e>=(y=(u+h)/2))?u=y:h=y}while((ae=re<<1|q)==(Se=(z>=y)<<1|L>=g));return o[Se]=a,o[ae]=s,n}function Xl(n,r,e,i,o){this.node=n,this.x0=r,this.y0=e,this.x1=i,this.y1=o}function fme(n){return n[0]}function hme(n){return n[1]}function dZ(n,r,e){var i=new S9(null==r?fme:r,null==e?hme:e,NaN,NaN,NaN,NaN);return null==n?i:i.addAll(n)}function S9(n,r,e,i,o,a){this._x=n,this._y=r,this._x0=e,this._y0=i,this._x1=o,this._y1=a,this._root=void 0}function Kq(n){for(var r={data:n.data},e=r;n=n.next;)e=e.next={data:n.data};return r}var $l=dZ.prototype=S9.prototype;function _me(n){return n.x+n.vx}function gme(n){return n.y+n.vy}function vme(n){var r,e,i=1,o=1;function a(){for(var u,h,g,y,L,z,q,d=r.length,re=0;rey+ft||KeL+ft||stg.index){var bt=y-De.x-De.vx,$e=L-De.y-De.vy,Pe=bt*bt+$e*$e;Peu.r&&(u.r=u[d].r)}function l(){if(r){var u,h,d=r.length;for(e=new Array(d),u=0;uh&&(h=o),ag&&(g=a));if(u>h||d>g)return this;for(this.cover(u,d).cover(h,g),e=0;en||n>=o||i>r||r>=a;)switch(d=(rh||(l=z.y0)>g||(u=z.x1)=ae)<<1|n>=re)&&(z=y[y.length-1],y[y.length-1]=y[y.length-1-q],y[y.length-1-q]=z)}else{var Se=n-+this._x.call(null,L.data),Ce=r-+this._y.call(null,L.data),Ee=Se*Se+Ce*Ce;if(Ee=(y=(s+u)/2))?s=y:u=y,(q=g>=(L=(l+d)/2))?l=L:d=L,r=e,!(e=e[re=q<<1|z]))return this;if(!e.length)break;(r[re+1&3]||r[re+2&3]||r[re+3&3])&&(i=r,ae=re)}for(;e.data!==n;)if(o=e,!(e=e.next))return this;return(a=e.next)&&delete e.next,o?(a?o.next=a:delete o.next,this):r?(a?r[re]=a:delete r[re],(e=r[0]||r[1]||r[2]||r[3])&&e===(r[3]||r[2]||r[1]||r[0])&&!e.length&&(i?i[ae]=e:this._root=e),this):(this._root=a,this)},$l.removeAll=function sme(n){for(var r=0,e=n.length;r1?(null==re?l.remove(q):l.set(q,L(re)),r):l.get(q)},find:function(q,re,ae){var Ee,Ke,st,De,it,Se=0,Ce=n.length;for(null==ae?ae=1/0:ae*=ae,Se=0;Se1?(d.on(q,re),r):d.on(q)}}}function Sme(){var n,r,e,o,i=gs(-30),a=1,s=1/0,l=.81;function u(y){var L,z=n.length,q=dZ(n,Cme,wme).visitAfter(h);for(e=y,L=0;L=s)){(y.data!==r||y.next)&&(0===re&&(Ce+=(re=yg())*re),0===ae&&(Ce+=(ae=yg())*ae),Ce1?i[0]+i.slice(2):i,+n.slice(e+1)]}function mw(n){return(n=fZ(Math.abs(n)))?n[1]:NaN}function Qq(n,r){var e=fZ(n,r);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}var Xq={"":function Ime(n,r){e:for(var a,e=(n=n.toPrecision(r)).length,i=1,o=-1;i0&&(o=0)}return o>0?n.slice(0,o)+n.slice(a+1):n},"%":function(r,e){return(100*r).toFixed(e)},b:function(r){return Math.round(r).toString(2)},c:function(r){return r+""},d:function(r){return Math.round(r).toString(10)},e:function(r,e){return r.toExponential(e)},f:function(r,e){return r.toFixed(e)},g:function(r,e){return r.toPrecision(e)},o:function(r){return Math.round(r).toString(8)},p:function(r,e){return Qq(100*r,e)},r:Qq,s:function Pme(n,r){var e=fZ(n,r);if(!e)return n+"";var i=e[0],o=e[1],a=o-(Jq=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,s=i.length;return a===s?i:a>s?i+new Array(a-s+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+fZ(n,Math.max(0,r+a-1))[0]},X:function(r){return Math.round(r).toString(16).toUpperCase()},x:function(r){return Math.round(r).toString(16)}},Rme=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;function pZ(n){return new E9(n)}function E9(n){if(!(r=Rme.exec(n)))throw new Error("invalid format: "+n);var r,e=r[1]||" ",i=r[2]||">",o=r[3]||"-",a=r[4]||"",s=!!r[5],l=r[6]&&+r[6],u=!!r[7],d=r[8]&&+r[8].slice(1),h=r[9]||"";"n"===h?(u=!0,h="g"):Xq[h]||(h=""),(s||"0"===e&&"="===i)&&(s=!0,e="0",i="="),this.fill=e,this.align=i,this.sign=o,this.symbol=a,this.zero=s,this.width=l,this.comma=u,this.precision=d,this.type=h}function $q(n){return n}pZ.prototype=E9.prototype,E9.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var hZ,nJ,rJ,eJ=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function tJ(n){var r=n.grouping&&n.thousands?function Ame(n,r){return function(e,i){for(var o=e.length,a=[],s=0,l=n[0],u=0;o>0&&l>0&&(u+l+1>i&&(l=Math.max(1,i-u)),a.push(e.substring(o-=l,o+l)),!((u+=l+1)>i));)l=n[s=(s+1)%n.length];return a.reverse().join(r)}}(n.grouping,n.thousands):$q,e=n.currency,i=n.decimal,o=n.numerals?function Ome(n){return function(r){return r.replace(/[0-9]/g,function(e){return n[+e]})}}(n.numerals):$q,a=n.percent||"%";function s(u){var d=(u=pZ(u)).fill,h=u.align,g=u.sign,y=u.symbol,L=u.zero,z=u.width,q=u.comma,re=u.precision,ae=u.type,Se="$"===y?e[0]:"#"===y&&/[boxX]/.test(ae)?"0"+ae.toLowerCase():"",Ce="$"===y?e[1]:/[%p]/.test(ae)?a:"",Ee=Xq[ae],Ke=!ae||/[defgprs%]/.test(ae);function st(De){var bt,$e,Pe,it=Se,ft=Ce;if("c"===ae)ft=Ee(De)+ft,De="";else{var ct=(De=+De)<0;if(De=Ee(Math.abs(De),re),ct&&0==+De&&(ct=!1),it=(ct?"("===g?g:"-":"-"===g||"("===g?"":g)+it,ft=("s"===ae?eJ[8+Jq/3]:"")+ft+(ct&&"("===g?")":""),Ke)for(bt=-1,$e=De.length;++bt<$e;)if(48>(Pe=De.charCodeAt(bt))||Pe>57){ft=(46===Pe?i+De.slice(bt+1):De.slice(bt))+ft,De=De.slice(0,bt);break}}q&&!L&&(De=r(De,1/0));var Bt=it.length+De.length+ft.length,Ht=Bt>1)+it+De+ft+Ht.slice(Bt);break;default:De=Ht+it+De+ft}return o(De)}return re=null==re?ae?6:12:/[gprs]/.test(ae)?Math.max(1,Math.min(21,re)):Math.max(0,Math.min(20,re)),st.toString=function(){return u+""},st}return{format:s,formatPrefix:function l(u,d){var h=s(((u=pZ(u)).type="f",u)),g=3*Math.max(-8,Math.min(8,Math.floor(mw(d)/3))),y=Math.pow(10,-g),L=eJ[8+g/3];return function(z){return h(y*z)+L}}}}function iJ(n){return hZ=tJ(n),nJ=hZ.format,rJ=hZ.formatPrefix,hZ}function Lme(n){return Math.max(0,-mw(Math.abs(n)))}function Zme(n,r){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(mw(r)/3)))-mw(Math.abs(n)))}function Nme(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,mw(r)-mw(n))+1}function bg(){return new mZ}function mZ(){this.reset()}iJ({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),mZ.prototype={constructor:mZ,reset:function(){this.s=this.t=0},add:function(r){oJ(_Z,r,this.t),oJ(this,_Z.s,this.s),this.s?this.t+=_Z.t:this.s=_Z.t},valueOf:function(){return this.s}};var _Z=new mZ;function oJ(n,r,e){var i=n.s=r+e,o=i-r,a=i-o;n.t=r-a+(e-o)}var Mr=1e-6,Zi=Math.PI,Da=Zi/2,gZ=Zi/4,Bu=2*Zi,zo=180/Zi,Lr=Zi/180,Xi=Math.abs,_w=Math.atan,eu=Math.atan2,Sr=Math.cos,vZ=Math.ceil,sJ=Math.exp,yZ=(Math.floor,Math.log),x9=Math.pow,mr=Math.sin,sx=Math.sign||function(n){return n>0?1:n<0?-1:0},vs=Math.sqrt,D9=Math.tan;function lJ(n){return n>1?0:n<-1?Zi:Math.acos(n)}function gc(n){return n>1?Da:n<-1?-Da:Math.asin(n)}function uJ(n){return(n=mr(n/2))*n}function _a(){}function bZ(n,r){n&&dJ.hasOwnProperty(n.type)&&dJ[n.type](n,r)}var cJ={Feature:function(r,e){bZ(r.geometry,e)},FeatureCollection:function(r,e){for(var i=r.features,o=-1,a=i.length;++o=0?1:-1,o=i*e,a=Sr(r=(r*=Lr)/2+gZ),s=mr(r),l=P9*s,u=I9*a+l*Sr(o),d=l*i*mr(o);CZ.add(eu(d,u)),O9=n,I9=a,P9=s}function Hme(n){return wZ.reset(),jd(n,fp),2*wZ}function kZ(n){return[eu(n[1],n[0]),gc(n[2])]}function c0(n){var r=n[0],e=n[1],i=Sr(e);return[i*Sr(r),i*mr(r),mr(e)]}function TZ(n,r){return n[0]*r[0]+n[1]*r[1]+n[2]*r[2]}function gw(n,r){return[n[1]*r[2]-n[2]*r[1],n[2]*r[0]-n[0]*r[2],n[0]*r[1]-n[1]*r[0]]}function R9(n,r){n[0]+=r[0],n[1]+=r[1],n[2]+=r[2]}function MZ(n,r){return[n[0]*r,n[1]*r,n[2]*r]}function SZ(n){var r=vs(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=r,n[1]/=r,n[2]/=r}var Aa,vc,Ha,Qc,d0,_J,gJ,vw,Cg,nm,lx=bg(),rm={point:L9,lineStart:yJ,lineEnd:bJ,polygonStart:function(){rm.point=CJ,rm.lineStart=jme,rm.lineEnd=Gme,lx.reset(),fp.polygonStart()},polygonEnd:function(){fp.polygonEnd(),rm.point=L9,rm.lineStart=yJ,rm.lineEnd=bJ,CZ<0?(Aa=-(Ha=180),vc=-(Qc=90)):lx>Mr?Qc=90:lx<-Mr&&(vc=-90),nm[0]=Aa,nm[1]=Ha}};function L9(n,r){Cg.push(nm=[Aa=n,Ha=n]),rQc&&(Qc=r)}function vJ(n,r){var e=c0([n*Lr,r*Lr]);if(vw){var i=gw(vw,e),a=gw([i[1],-i[0],0],i);SZ(a),a=kZ(a);var d,s=n-d0,l=s>0?1:-1,u=a[0]*zo*l,h=Xi(s)>180;h^(l*d0Qc&&(Qc=d):h^(l*d0<(u=(u+360)%360-180)&&uQc&&(Qc=r)),h?nyc(Aa,Ha)&&(Ha=n):yc(n,Ha)>yc(Aa,Ha)&&(Aa=n):Ha>=Aa?(nHa&&(Ha=n)):n>d0?yc(Aa,n)>yc(Aa,Ha)&&(Ha=n):yc(n,Ha)>yc(Aa,Ha)&&(Aa=n)}else Cg.push(nm=[Aa=n,Ha=n]);rQc&&(Qc=r),vw=e,d0=n}function yJ(){rm.point=vJ}function bJ(){nm[0]=Aa,nm[1]=Ha,rm.point=L9,vw=null}function CJ(n,r){if(vw){var e=n-d0;lx.add(Xi(e)>180?e+(e>0?360:-360):e)}else _J=n,gJ=r;fp.point(n,r),vJ(n,r)}function jme(){fp.lineStart()}function Gme(){CJ(_J,gJ),fp.lineEnd(),Xi(lx)>Mr&&(Aa=-(Ha=180)),nm[0]=Aa,nm[1]=Ha,vw=null}function yc(n,r){return(r-=n)<0?r+360:r}function zme(n,r){return n[0]-r[0]}function wJ(n,r){return n[0]<=n[1]?n[0]<=r&&r<=n[1]:ryc(i[0],i[1])&&(i[1]=o[1]),yc(o[0],i[1])>yc(i[0],i[1])&&(i[0]=o[0])):a.push(i=o);for(s=-1/0,r=0,i=a[e=a.length-1];r<=e;i=o,++r)o=a[r],(l=yc(i[1],o[0]))>s&&(s=l,Aa=o[0],Ha=i[1])}return Cg=nm=null,Aa===1/0||vc===1/0?[[NaN,NaN],[NaN,NaN]]:[[Aa,vc],[Ha,Qc]]}var ux,EZ,xZ,DZ,AZ,OZ,IZ,PZ,Z9,N9,B9,kJ,TJ,tu,nu,ru,Gd={sphere:_a,point:F9,lineStart:MJ,lineEnd:SJ,polygonStart:function(){Gd.lineStart=Kme,Gd.lineEnd=qme},polygonEnd:function(){Gd.lineStart=MJ,Gd.lineEnd=SJ}};function F9(n,r){n*=Lr;var e=Sr(r*=Lr);cx(e*Sr(n),e*mr(n),mr(r))}function cx(n,r,e){++ux,xZ+=(n-xZ)/ux,DZ+=(r-DZ)/ux,AZ+=(e-AZ)/ux}function MJ(){Gd.point=Vme}function Vme(n,r){n*=Lr;var e=Sr(r*=Lr);tu=e*Sr(n),nu=e*mr(n),ru=mr(r),Gd.point=Yme,cx(tu,nu,ru)}function Yme(n,r){n*=Lr;var e=Sr(r*=Lr),i=e*Sr(n),o=e*mr(n),a=mr(r),s=eu(vs((s=nu*a-ru*o)*s+(s=ru*i-tu*a)*s+(s=tu*o-nu*i)*s),tu*i+nu*o+ru*a);EZ+=s,OZ+=s*(tu+(tu=i)),IZ+=s*(nu+(nu=o)),PZ+=s*(ru+(ru=a)),cx(tu,nu,ru)}function SJ(){Gd.point=F9}function Kme(){Gd.point=Jme}function qme(){EJ(kJ,TJ),Gd.point=F9}function Jme(n,r){kJ=n,TJ=r,n*=Lr,r*=Lr,Gd.point=EJ;var e=Sr(r);tu=e*Sr(n),nu=e*mr(n),ru=mr(r),cx(tu,nu,ru)}function EJ(n,r){n*=Lr;var e=Sr(r*=Lr),i=e*Sr(n),o=e*mr(n),a=mr(r),s=nu*a-ru*o,l=ru*i-tu*a,u=tu*o-nu*i,d=vs(s*s+l*l+u*u),h=gc(d),g=d&&-h/d;Z9+=g*s,N9+=g*l,B9+=g*u,EZ+=h,OZ+=h*(tu+(tu=i)),IZ+=h*(nu+(nu=o)),PZ+=h*(ru+(ru=a)),cx(tu,nu,ru)}function Qme(n){ux=EZ=xZ=DZ=AZ=OZ=IZ=PZ=Z9=N9=B9=0,jd(n,Gd);var r=Z9,e=N9,i=B9,o=r*r+e*e+i*i;return o<1e-12&&(r=OZ,e=IZ,i=PZ,EZZi?n-Bu:n<-Zi?n+Bu:n,r]}function j9(n,r,e){return(n%=Bu)?r||e?U9(DJ(n),AJ(r,e)):DJ(n):r||e?AJ(r,e):H9}function xJ(n){return function(r,e){return[(r+=n)>Zi?r-Bu:r<-Zi?r+Bu:r,e]}}function DJ(n){var r=xJ(n);return r.invert=xJ(-n),r}function AJ(n,r){var e=Sr(n),i=mr(n),o=Sr(r),a=mr(r);function s(l,u){var d=Sr(u),h=Sr(l)*d,g=mr(l)*d,y=mr(u),L=y*e+h*i;return[eu(g*o-L*a,h*e-y*i),gc(L*o+g*a)]}return s.invert=function(l,u){var d=Sr(u),h=Sr(l)*d,g=mr(l)*d,y=mr(u),L=y*o-g*a;return[eu(g*o+y*a,h*e+L*i),gc(L*e-h*i)]},s}function OJ(n){function r(e){return(e=n(e[0]*Lr,e[1]*Lr))[0]*=zo,e[1]*=zo,e}return n=j9(n[0]*Lr,n[1]*Lr,n.length>2?n[2]*Lr:0),r.invert=function(e){return(e=n.invert(e[0]*Lr,e[1]*Lr))[0]*=zo,e[1]*=zo,e},r}function IJ(n,r,e,i,o,a){if(e){var s=Sr(r),l=mr(r),u=i*e;null==o?(o=r+i*Bu,a=r-u/2):(o=PJ(s,o),a=PJ(s,a),(i>0?oa)&&(o+=i*Bu));for(var d,h=o;i>0?h>a:h1&&n.push(n.pop().concat(n.shift()))},result:function(){var i=n;return n=[],r=null,i}}}function RZ(n,r){return Xi(n[0]-r[0])=0;--l)o.point((g=h[l])[0],g[1]);else i(y.x,y.p.x,-1,o);y=y.p}h=(y=y.o).z,L=!L}while(!y.v);o.lineEnd()}}}function ZJ(n){if(r=n.length){for(var r,o,e=0,i=n[0];++e=0?1:-1,ft=it*De,bt=ft>Zi,$e=q*Ke;if(G9.add(eu($e*it*mr(ft),re*st+$e*Sr(ft))),s+=bt?De+it*Bu:De,bt^L>=e^Ce>=e){var Pe=gw(c0(y),c0(Se));SZ(Pe);var ct=gw(a,Pe);SZ(ct);var Bt=(bt^De>=0?-1:1)*gc(ct[2]);(i>Bt||i===Bt&&(Pe[0]||Pe[1]))&&(l+=bt^De>=0?1:-1)}}return(s<-Mr||s0){for(u||(o.polygonStart(),u=!0),o.lineStart(),st=0;st1&&2&Ee&&Ke.push(Ke.pop().concat(Ke.shift())),h.push(Ke.filter($me))}}return y}}function $me(n){return n.length>1}function e_e(n,r){return((n=n.x)[0]<0?n[1]-Da-Mr:Da-n[1])-((r=r.x)[0]<0?r[1]-Da-Mr:Da-r[1])}var z9=BJ(function(){return!0},function t_e(n){var o,r=NaN,e=NaN,i=NaN;return{lineStart:function(){n.lineStart(),o=1},point:function(s,l){var u=s>0?Zi:-Zi,d=Xi(s-r);Xi(d-Zi)0?Da:-Da),n.point(i,e),n.lineEnd(),n.lineStart(),n.point(u,e),n.point(s,e),o=0):i!==u&&d>=Zi&&(Xi(r-i)Mr?_w((mr(r)*(a=Sr(i))*mr(e)-mr(i)*(o=Sr(r))*mr(n))/(o*a*s)):(r+i)/2}(r,e,s,l),n.point(i,e),n.lineEnd(),n.lineStart(),n.point(u,e),o=0),n.point(r=s,e=l),i=u},lineEnd:function(){n.lineEnd(),r=e=NaN},clean:function(){return 2-o}}},function r_e(n,r,e,i){var o;if(null==n)o=e*Da,i.point(-Zi,o),i.point(0,o),i.point(Zi,o),i.point(Zi,0),i.point(Zi,-o),i.point(0,-o),i.point(-Zi,-o),i.point(-Zi,0),i.point(-Zi,o);else if(Xi(n[0]-r[0])>Mr){var a=n[0]0,o=Xi(r)>Mr;function s(h,g){return Sr(h)*Sr(g)>r}function u(h,g,y){var q=[1,0,0],re=gw(c0(h),c0(g)),ae=TZ(re,re),Se=re[0],Ce=ae-Se*Se;if(!Ce)return!y&&h;var Ee=r*ae/Ce,Ke=-r*Se/Ce,st=gw(q,re),De=MZ(q,Ee);R9(De,MZ(re,Ke));var ft=st,bt=TZ(De,ft),$e=TZ(ft,ft),Pe=bt*bt-$e*(TZ(De,De)-1);if(!(Pe<0)){var ct=vs(Pe),Bt=MZ(ft,(-bt-ct)/$e);if(R9(Bt,De),Bt=kZ(Bt),!y)return Bt;var zn,Ht=h[0],Pt=g[0],Tn=h[1],jn=g[1];Pt0^Bt[1]<(Xi(Bt[0]-Ht)Zi^(Ht<=Bt[0]&&Bt[0]<=Pt)){var Wr=MZ(ft,(-bt+ct)/$e);return R9(Wr,De),[Bt,kZ(Wr)]}}}function d(h,g){var y=i?n:Zi-n,L=0;return h<-y?L|=1:h>y&&(L|=2),g<-y?L|=4:g>y&&(L|=8),L}return BJ(s,function l(h){var g,y,L,z,q;return{lineStart:function(){z=L=!1,q=1},point:function(ae,Se){var Ee,Ce=[ae,Se],Ke=s(ae,Se),st=i?Ke?0:d(ae,Se):Ke?d(ae+(ae<0?Zi:-Zi),Se):0;if(!g&&(z=L=Ke)&&h.lineStart(),Ke!==L&&((!(Ee=u(g,Ce))||RZ(g,Ee)||RZ(Ce,Ee))&&(Ce[0]+=Mr,Ce[1]+=Mr,Ke=s(Ce[0],Ce[1]))),Ke!==L)q=0,Ke?(h.lineStart(),Ee=u(Ce,g),h.point(Ee[0],Ee[1])):(Ee=u(g,Ce),h.point(Ee[0],Ee[1]),h.lineEnd()),g=Ee;else if(o&&g&&i^Ke){var De;!(st&y)&&(De=u(Ce,g,!0))&&(q=0,i?(h.lineStart(),h.point(De[0][0],De[0][1]),h.point(De[1][0],De[1][1]),h.lineEnd()):(h.point(De[1][0],De[1][1]),h.lineEnd(),h.lineStart(),h.point(De[0][0],De[0][1])))}Ke&&(!g||!RZ(g,Ce))&&h.point(Ce[0],Ce[1]),g=Ce,L=Ke,y=st},lineEnd:function(){L&&h.lineEnd(),g=null},clean:function(){return q|(z&&L)<<1}}},function a(h,g,y,L){IJ(L,n,e,y,h,g)},i?[0,-n]:[-Zi,n-Zi])}var dx=1e9,ZZ=-dx;function NZ(n,r,e,i){function o(d,h){return n<=d&&d<=e&&r<=h&&h<=i}function a(d,h,g,y){var L=0,z=0;if(null==d||(L=s(d,g))!==(z=s(h,g))||u(d,h)<0^g>0)do{y.point(0===L||3===L?n:e,L>1?i:r)}while((L=(L+g+4)%4)!==z);else y.point(h[0],h[1])}function s(d,h){return Xi(d[0]-n)0?0:3:Xi(d[0]-e)0?2:1:Xi(d[1]-r)0?1:0:h>0?3:2}function l(d,h){return u(d.x,h.x)}function u(d,h){var g=s(d,1),y=s(h,1);return g!==y?g-y:0===g?h[1]-d[1]:1===g?d[0]-h[0]:2===g?d[1]-h[1]:h[0]-d[0]}return function(d){var y,L,z,q,re,ae,Se,Ce,Ee,Ke,st,h=d,g=RJ(),De={point:it,lineStart:function Pe(){De.point=Bt,L&&L.push(z=[]),Ke=!0,Ee=!1,Se=Ce=NaN},lineEnd:function ct(){y&&(Bt(q,re),ae&&Ee&&g.rejoin(),y.push(g.result())),De.point=it,Ee&&h.lineEnd()},polygonStart:function bt(){h=g,y=[],L=[],st=!0},polygonEnd:function $e(){var Ht=function ft(){for(var Ht=0,Pt=0,Tn=L.length;Pti&&(Hr-_r)*(i-Wr)>(Kr-Wr)*(n-_r)&&++Ht:Kr<=i&&(Hr-_r)*(i-Wr)<(Kr-Wr)*(n-_r)&&--Ht;return Ht}(),Pt=st&&Ht,Tn=(y=D7(y)).length;(Pt||Tn)&&(d.polygonStart(),Pt&&(d.lineStart(),a(null,null,1,d),d.lineEnd()),Tn&&LJ(y,l,Ht,a,d),d.polygonEnd()),h=d,y=L=z=null}};function it(Ht,Pt){o(Ht,Pt)&&h.point(Ht,Pt)}function Bt(Ht,Pt){var Tn=o(Ht,Pt);if(L&&z.push([Ht,Pt]),Ke)q=Ht,re=Pt,ae=Tn,Ke=!1,Tn&&(h.lineStart(),h.point(Ht,Pt));else if(Tn&&Ee)h.point(Ht,Pt);else{var jn=[Se=Math.max(ZZ,Math.min(dx,Se)),Ce=Math.max(ZZ,Math.min(dx,Ce))],zn=[Ht=Math.max(ZZ,Math.min(dx,Ht)),Pt=Math.max(ZZ,Math.min(dx,Pt))];!function i_e(n,r,e,i,o,a){var z,s=n[0],l=n[1],h=0,g=1,y=r[0]-s,L=r[1]-l;if(z=e-s,y||!(z>0)){if(z/=y,y<0){if(z0){if(z>g)return;z>h&&(h=z)}if(z=o-s,y||!(z<0)){if(z/=y,y<0){if(z>g)return;z>h&&(h=z)}else if(y>0){if(z0)){if(z/=L,L<0){if(z0){if(z>g)return;z>h&&(h=z)}if(z=a-l,L||!(z<0)){if(z/=L,L<0){if(z>g)return;z>h&&(h=z)}else if(L>0){if(z0&&(n[0]=s+h*y,n[1]=l+h*L),g<1&&(r[0]=s+g*y,r[1]=l+g*L),!0}}}}}(jn,zn,n,r,e,i)?Tn&&(h.lineStart(),h.point(Ht,Pt),st=!1):(Ee||(h.lineStart(),h.point(jn[0],jn[1])),h.point(zn[0],zn[1]),Tn||h.lineEnd(),st=!1)}Se=Ht,Ce=Pt,Ee=Tn}return De}}function o_e(){var o,a,s,n=0,r=0,e=960,i=500;return s={stream:function(u){return o&&a===u?o:o=NZ(n,r,e,i)(a=u)},extent:function(u){return arguments.length?(n=+u[0][0],r=+u[0][1],e=+u[1][0],i=+u[1][1],o=a=null,s):[[n,r],[e,i]]}}}var V9,BZ,FZ,W9=bg(),bw={sphere:_a,point:_a,lineStart:function a_e(){bw.point=l_e,bw.lineEnd=s_e},lineEnd:_a,polygonStart:_a,polygonEnd:_a};function s_e(){bw.point=bw.lineEnd=_a}function l_e(n,r){V9=n*=Lr,BZ=mr(r*=Lr),FZ=Sr(r),bw.point=u_e}function u_e(n,r){n*=Lr;var e=mr(r*=Lr),i=Sr(r),o=Xi(n-V9),a=Sr(o),l=i*mr(o),u=FZ*e-BZ*i*a,d=BZ*e+FZ*i*a;W9.add(eu(vs(l*l+u*u),d)),V9=n,BZ=e,FZ=i}function UJ(n){return W9.reset(),jd(n,bw),+W9}var Y9=[null,null],c_e={type:"LineString",coordinates:Y9};function fx(n,r){return Y9[0]=n,Y9[1]=r,UJ(c_e)}var HJ={Feature:function(r,e){return UZ(r.geometry,e)},FeatureCollection:function(r,e){for(var i=r.features,o=-1,a=i.length;++oMr}).map(y)).concat(mc(vZ(a/d)*d,o,d).filter(function(Ce){return Xi(Ce%g)>Mr}).map(L))}return ae.lines=function(){return Se().map(function(Ce){return{type:"LineString",coordinates:Ce}})},ae.outline=function(){return{type:"Polygon",coordinates:[z(i).concat(q(s).slice(1),z(e).reverse().slice(1),q(l).reverse().slice(1))]}},ae.extent=function(Ce){return arguments.length?ae.extentMajor(Ce).extentMinor(Ce):ae.extentMinor()},ae.extentMajor=function(Ce){return arguments.length?(i=+Ce[0][0],e=+Ce[1][0],l=+Ce[0][1],s=+Ce[1][1],i>e&&(Ce=i,i=e,e=Ce),l>s&&(Ce=l,l=s,s=Ce),ae.precision(re)):[[i,l],[e,s]]},ae.extentMinor=function(Ce){return arguments.length?(r=+Ce[0][0],n=+Ce[1][0],a=+Ce[0][1],o=+Ce[1][1],r>n&&(Ce=r,r=n,n=Ce),a>o&&(Ce=a,a=o,o=Ce),ae.precision(re)):[[r,a],[n,o]]},ae.step=function(Ce){return arguments.length?ae.stepMajor(Ce).stepMinor(Ce):ae.stepMinor()},ae.stepMajor=function(Ce){return arguments.length?(h=+Ce[0],g=+Ce[1],ae):[h,g]},ae.stepMinor=function(Ce){return arguments.length?(u=+Ce[0],d=+Ce[1],ae):[u,d]},ae.precision=function(Ce){return arguments.length?(re=+Ce,y=YJ(a,o,90),L=KJ(r,n,re),z=YJ(l,s,90),q=KJ(i,e,re),ae):re},ae.extentMajor([[-180,-90+Mr],[180,90-Mr]]).extentMinor([[-180,-80-Mr],[180,80+Mr]])}function p_e(){return qJ()()}function h_e(n,r){var e=n[0]*Lr,i=n[1]*Lr,o=r[0]*Lr,a=r[1]*Lr,s=Sr(i),l=mr(i),u=Sr(a),d=mr(a),h=s*Sr(e),g=s*mr(e),y=u*Sr(o),L=u*mr(o),z=2*gc(vs(uJ(a-i)+s*u*uJ(o-e))),q=mr(z),re=z?function(ae){var Se=mr(ae*=z)/q,Ce=mr(z-ae)/q,Ee=Ce*h+Se*y,Ke=Ce*g+Se*L,st=Ce*l+Se*d;return[eu(Ke,Ee)*zo,eu(st,vs(Ee*Ee+Ke*Ke))*zo]}:function(){return[e*zo,i*zo]};return re.distance=z,re}function f0(n){return n}var JJ,QJ,J9,Q9,K9=bg(),q9=bg(),wg={point:_a,lineStart:_a,lineEnd:_a,polygonStart:function(){wg.lineStart=m_e,wg.lineEnd=g_e},polygonEnd:function(){wg.lineStart=wg.lineEnd=wg.point=_a,K9.add(Xi(q9)),q9.reset()},result:function(){var r=K9/2;return K9.reset(),r}};function m_e(){wg.point=__e}function __e(n,r){wg.point=XJ,JJ=J9=n,QJ=Q9=r}function XJ(n,r){q9.add(Q9*n-J9*r),J9=n,Q9=r}function g_e(){XJ(JJ,QJ)}var $J=wg,Cw=1/0,HZ=Cw,px=-Cw,jZ=px,v_e={point:function y_e(n,r){npx&&(px=n),rjZ&&(jZ=r)},lineStart:_a,lineEnd:_a,polygonStart:_a,polygonEnd:_a,result:function(){var r=[[Cw,HZ],[px,jZ]];return px=jZ=-(HZ=Cw=1/0),r}};var eQ,tQ,pp,hp,GZ=v_e,X9=0,$9=0,hx=0,zZ=0,WZ=0,ww=0,eH=0,tH=0,mx=0,zd={point:p0,lineStart:nQ,lineEnd:rQ,polygonStart:function(){zd.lineStart=w_e,zd.lineEnd=k_e},polygonEnd:function(){zd.point=p0,zd.lineStart=nQ,zd.lineEnd=rQ},result:function(){var r=mx?[eH/mx,tH/mx]:ww?[zZ/ww,WZ/ww]:hx?[X9/hx,$9/hx]:[NaN,NaN];return X9=$9=hx=zZ=WZ=ww=eH=tH=mx=0,r}};function p0(n,r){X9+=n,$9+=r,++hx}function nQ(){zd.point=b_e}function b_e(n,r){zd.point=C_e,p0(pp=n,hp=r)}function C_e(n,r){var e=n-pp,i=r-hp,o=vs(e*e+i*i);zZ+=o*(pp+n)/2,WZ+=o*(hp+r)/2,ww+=o,p0(pp=n,hp=r)}function rQ(){zd.point=p0}function w_e(){zd.point=T_e}function k_e(){iQ(eQ,tQ)}function T_e(n,r){zd.point=iQ,p0(eQ=pp=n,tQ=hp=r)}function iQ(n,r){var e=n-pp,i=r-hp,o=vs(e*e+i*i);zZ+=o*(pp+n)/2,WZ+=o*(hp+r)/2,ww+=o,eH+=(o=hp*n-pp*r)*(pp+n),tH+=o*(hp+r),mx+=3*o,p0(pp=n,hp=r)}var oQ=zd;function aQ(n){this._context=n}aQ.prototype={_radius:4.5,pointRadius:function(r){return this._radius=r,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(r,e){switch(this._point){case 0:this._context.moveTo(r,e),this._point=1;break;case 1:this._context.lineTo(r,e);break;default:this._context.moveTo(r+this._radius,e),this._context.arc(r,e,this._radius,0,Bu)}},result:_a};var rH,sQ,lQ,_x,gx,nH=bg(),VZ={point:_a,lineStart:function(){VZ.point=M_e},lineEnd:function(){rH&&uQ(sQ,lQ),VZ.point=_a},polygonStart:function(){rH=!0},polygonEnd:function(){rH=null},result:function(){var r=+nH;return nH.reset(),r}};function M_e(n,r){VZ.point=uQ,sQ=_x=n,lQ=gx=r}function uQ(n,r){_x-=n,gx-=r,nH.add(vs(_x*_x+gx*gx)),_x=n,gx=r}var cQ=VZ;function dQ(){this._string=[]}function fQ(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function S_e(n,r){var i,o,e=4.5;function a(s){return s&&("function"==typeof e&&o.pointRadius(+e.apply(this,arguments)),jd(s,i(o))),o.result()}return a.area=function(s){return jd(s,i($J)),$J.result()},a.measure=function(s){return jd(s,i(cQ)),cQ.result()},a.bounds=function(s){return jd(s,i(GZ)),GZ.result()},a.centroid=function(s){return jd(s,i(oQ)),oQ.result()},a.projection=function(s){return arguments.length?(i=null==s?(n=null,f0):(n=s).stream,a):n},a.context=function(s){return arguments.length?(o=null==s?(r=null,new dQ):new aQ(r=s),"function"!=typeof e&&o.pointRadius(e),a):r},a.pointRadius=function(s){return arguments.length?(e="function"==typeof s?s:(o.pointRadius(+s),+s),a):e},a.projection(n).context(r)}function E_e(n){return{stream:vx(n)}}function vx(n){return function(r){var e=new iH;for(var i in n)e[i]=n[i];return e.stream=r,e}}function iH(){}function oH(n,r,e){var i=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=i&&n.clipExtent(null),jd(e,n.stream(GZ)),r(GZ.result()),null!=i&&n.clipExtent(i),n}function YZ(n,r,e){return oH(n,function(i){var o=r[1][0]-r[0][0],a=r[1][1]-r[0][1],s=Math.min(o/(i[1][0]-i[0][0]),a/(i[1][1]-i[0][1])),l=+r[0][0]+(o-s*(i[1][0]+i[0][0]))/2,u=+r[0][1]+(a-s*(i[1][1]+i[0][1]))/2;n.scale(150*s).translate([l,u])},e)}function aH(n,r,e){return YZ(n,[[0,0],r],e)}function sH(n,r,e){return oH(n,function(i){var o=+r,a=o/(i[1][0]-i[0][0]),s=(o-a*(i[1][0]+i[0][0]))/2,l=-a*i[0][1];n.scale(150*a).translate([s,l])},e)}function lH(n,r,e){return oH(n,function(i){var o=+r,a=o/(i[1][1]-i[0][1]),s=-a*i[0][0],l=(o-a*(i[1][1]+i[0][1]))/2;n.scale(150*a).translate([s,l])},e)}dQ.prototype={_radius:4.5,_circle:fQ(4.5),pointRadius:function(r){return(r=+r)!==this._radius&&(this._radius=r,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(r,e){switch(this._point){case 0:this._string.push("M",r,",",e),this._point=1;break;case 1:this._string.push("L",r,",",e);break;default:null==this._circle&&(this._circle=fQ(this._radius)),this._string.push("M",r,",",e,this._circle)}},result:function(){if(this._string.length){var r=this._string.join("");return this._string=[],r}return null}},iH.prototype={constructor:iH,point:function(r,e){this.stream.point(r,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var x_e=Sr(30*Lr);function hQ(n,r){return+r?function A_e(n,r){function e(i,o,a,s,l,u,d,h,g,y,L,z,q,re){var ae=d-i,Se=h-o,Ce=ae*ae+Se*Se;if(Ce>4*r&&q--){var Ee=s+y,Ke=l+L,st=u+z,De=vs(Ee*Ee+Ke*Ke+st*st),it=gc(st/=De),ft=Xi(Xi(st)-1)r||Xi((ae*ct+Se*Bt)/Ce-.5)>.3||s*y+l*L+u*z2?ct[2]%360*Lr:0,$e()):[l*zo,u*zo,d*zo]},ft.angle=function(ct){return arguments.length?(g=ct%360*Lr,$e()):g*zo},ft.precision=function(ct){return arguments.length?(Ee=hQ(Ke,Ce=ct*ct),Pe()):vs(Ce)},ft.fitExtent=function(ct,Bt){return YZ(ft,ct,Bt)},ft.fitSize=function(ct,Bt){return aH(ft,ct,Bt)},ft.fitWidth=function(ct,Bt){return sH(ft,ct,Bt)},ft.fitHeight=function(ct,Bt){return lH(ft,ct,Bt)},function(){return r=n.apply(this,arguments),ft.invert=r.invert&&bt,$e()}}function cH(n){var r=0,e=Zi/3,i=uH(n),o=i(r,e);return o.parallels=function(a){return arguments.length?i(r=a[0]*Lr,e=a[1]*Lr):[r*zo,e*zo]},o}function _Q(n,r){var e=mr(n),i=(e+mr(r))/2;if(Xi(i)=.12&&re<.234&&q>=-.425&&q<-.214?o:re>=.166&&re<.234&&q>=-.214&&q<-.115?s:e).invert(y)},h.stream=function(y){return n&&r===y?n:n=function L_e(n){var r=n.length;return{point:function(i,o){for(var a=-1;++a0?l<-Da+Mr&&(l=-Da+Mr):l>Da-Mr&&(l=Da-Mr);var u=o/x9(qZ(l),i);return[u*mr(i*s),o-u*Sr(i*s)]}return a.invert=function(s,l){var u=o-l,d=sx(i)*vs(s*s+u*u);return[eu(s,Xi(u))/i*sx(u),2*_w(x9(o/d,1/i))-Da]},a}function U_e(){return cH(bQ).scale(109.5).parallels([30,30])}function Cx(n,r){return[n,r]}function H_e(){return im(Cx).scale(152.63)}function CQ(n,r){var e=Sr(n),i=n===r?mr(n):(e-Sr(r))/(r-n),o=e/i+n;if(Xi(i)2?i[2]+90:90]):[(i=e())[0],i[1],i[2]-90]},e([0,0,90]).scale(159.155)}function q_e(n,r){return n.parent===r.parent?1:2}function Q_e(n,r){return n+r.x}function $_e(n,r){return Math.max(n,r.y)}function nge(){var n=q_e,r=1,e=1,i=!1;function o(a){var s,l=0;a.eachAfter(function(y){var L=y.children;L?(y.x=function J_e(n){return n.reduce(Q_e,0)/n.length}(L),y.y=function X_e(n){return 1+n.reduce($_e,0)}(L)):(y.x=s?l+=n(y,s):0,y.y=0,s=y)});var u=function ege(n){for(var r;r=n.children;)n=r[0];return n}(a),d=function tge(n){for(var r;r=n.children;)n=r[r.length-1];return n}(a),h=u.x-n(u,d)/2,g=d.x+n(d,u)/2;return a.eachAfter(i?function(y){y.x=(y.x-a.x)*r,y.y=(a.y-y.y)*e}:function(y){y.x=(y.x-h)/(g-h)*r,y.y=(1-(a.y?y.y/a.y:1))*e})}return o.separation=function(a){return arguments.length?(n=a,o):n},o.size=function(a){return arguments.length?(i=!1,r=+a[0],e=+a[1],o):i?null:[r,e]},o.nodeSize=function(a){return arguments.length?(i=!0,r=+a[0],e=+a[1],o):i?[r,e]:null},o}function rge(n){var r=0,e=n.children,i=e&&e.length;if(i)for(;--i>=0;)r+=e[i].value;else r=1;n.value=r}function vH(n,r){var o,s,l,u,d,e=new kw(n),i=+n.value&&(e.value=n.value),a=[e];for(null==r&&(r=gge);o=a.pop();)if(i&&(o.value=+o.data.value),(l=r(o.data))&&(d=l.length))for(o.children=new Array(d),u=d-1;u>=0;--u)a.push(s=o.children[u]=new kw(l[u])),s.parent=o,s.depth=o.depth+1;return e.eachBefore(wQ)}function gge(n){return n.children}function vge(n){n.data=n.data.data}function wQ(n){var r=0;do{n.height=r}while((n=n.parent)&&n.height<++r)}function kw(n){this.data=n,this.depth=this.height=0,this.parent=null}fH.invert=yx(function(n){return n}),bx.invert=function(n,r){return[n,2*_w(sJ(r))-Da]},Cx.invert=Cx,pH.invert=yx(_w),hH.invert=function(n,r){var o,e=r,i=25;do{var a=e*e,s=a*a;e-=o=(e*(1.007226+a*(.015085+s*(.028874*a-.044475-.005916*s)))-r)/(1.007226+a*(.045255+s*(.259866*a-.311325-.005916*11*s)))}while(Xi(o)>Mr&&--i>0);return[n/(.8707+(a=e*e)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),e]},mH.invert=yx(gc),_H.invert=yx(function(n){return 2*_w(n)}),gH.invert=function(n,r){return[-r,2*_w(sJ(n))-Da]},kw.prototype=vH.prototype={constructor:kw,count:function ige(){return this.eachAfter(rge)},each:function oge(n){var e,o,a,s,r=this,i=[r];do{for(e=i.reverse(),i=[];r=e.pop();)if(n(r),o=r.children)for(a=0,s=o.length;a=0;--o)e.push(i[o]);return this},sum:function lge(n){return this.eachAfter(function(r){for(var e=+n(r.data)||0,i=r.children,o=i&&i.length;--o>=0;)e+=i[o].value;r.value=e})},sort:function uge(n){return this.eachBefore(function(r){r.children&&r.children.sort(n)})},path:function cge(n){for(var r=this,e=function dge(n,r){if(n===r)return n;var e=n.ancestors(),i=r.ancestors(),o=null;for(n=e.pop(),r=i.pop();n===r;)o=n,n=e.pop(),r=i.pop();return o}(r,n),i=[r];r!==e;)r=r.parent,i.push(r);for(var o=i.length;n!==e;)i.splice(o,0,n),n=n.parent;return i},ancestors:function fge(){for(var n=this,r=[n];n=n.parent;)r.push(n);return r},descendants:function pge(){var n=[];return this.each(function(r){n.push(r)}),n},leaves:function hge(){var n=[];return this.eachBefore(function(r){r.children||n.push(r)}),n},links:function mge(){var n=this,r=[];return n.each(function(e){e!==n&&r.push({source:e.parent,target:e})}),r},copy:function _ge(){return vH(this).eachBefore(vge)}};var yge=Array.prototype.slice;function kQ(n){for(var o,a,r=0,e=(n=function bge(n){for(var e,i,r=n.length;r;)i=Math.random()*r--|0,e=n[r],n[r]=n[i],n[i]=e;return n}(yge.call(n))).length,i=[];r0&&e*e>i*i+o*o}function yH(n,r){for(var e=0;e(u*=u)?(o=(d+u-a)/(2*d),l=Math.sqrt(Math.max(0,u/d-o*o)),e.x=n.x-o*i-l*s,e.y=n.y-o*s+l*i):(o=(d+a-u)/(2*d),l=Math.sqrt(Math.max(0,a/d-o*o)),e.x=r.x+o*i-l*s,e.y=r.y+o*s+l*i)):(e.x=r.x+e.r,e.y=r.y)}function EQ(n,r){var e=n.r+r.r-1e-6,i=r.x-n.x,o=r.y-n.y;return e>0&&e*e>i*i+o*o}function xQ(n){var r=n._,e=n.next._,i=r.r+e.r,o=(r.x*e.r+e.x*r.r)/i,a=(r.y*e.r+e.y*r.r)/i;return o*o+a*a}function XZ(n){this._=n,this.next=null,this.previous=null}function DQ(n){if(!(o=n.length))return 0;var r,e,i,o,a,s,l,u,d,h,g;if((r=n[0]).x=0,r.y=0,!(o>1))return r.r;if(e=n[1],r.x=-e.r,e.x=r.r,e.y=0,!(o>2))return r.r+e.r;SQ(e,r,i=n[2]),r=new XZ(r),e=new XZ(e),i=new XZ(i),r.next=i.previous=e,e.next=r.previous=i,i.next=e.previous=r;e:for(l=3;l0)throw new Error("cycle");return l}return e.id=function(i){return arguments.length?(n=$Z(i),e):n},e.parentId=function(i){return arguments.length?(r=$Z(i),e):r},e}function Pge(n,r){return n.parent===r.parent?1:2}function CH(n){var r=n.children;return r?r[0]:n.t}function wH(n){var r=n.children;return r?r[r.length-1]:n.t}function Rge(n,r,e){var i=e/(r.i-n.i);r.c-=i,r.s+=e,n.c+=i,r.z+=e,r.m+=e}function Zge(n,r,e){return n.a.parent===r.parent?n.a:e}function eN(n,r){this._=n,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=r}function Bge(){var n=Pge,r=1,e=1,i=null;function o(d){var h=function Nge(n){for(var e,o,a,s,l,r=new eN(n,0),i=[r];e=i.pop();)if(a=e._.children)for(e.children=new Array(l=a.length),s=l-1;s>=0;--s)i.push(o=e.children[s]=new eN(a[s],s)),o.parent=e;return(r.parent=new eN(null,0)).children=[r],r}(d);if(h.eachAfter(a),h.parent.m=-h.z,h.eachBefore(s),i)d.eachBefore(u);else{var g=d,y=d,L=d;d.eachBefore(function(Se){Se.xy.x&&(y=Se),Se.depth>L.depth&&(L=Se)});var z=g===y?1:n(g,y)/2,q=z-g.x,re=r/(y.x+z+q),ae=e/(L.depth||1);d.eachBefore(function(Se){Se.x=(Se.x+q)*re,Se.y=Se.depth*ae})}return d}function a(d){var h=d.children,g=d.parent.children,y=d.i?g[d.i-1]:null;if(h){!function Lge(n){for(var a,r=0,e=0,i=n.children,o=i.length;--o>=0;)(a=i[o]).z+=r,a.m+=r,r+=a.s+(e+=a.c)}(d);var L=(h[0].z+h[h.length-1].z)/2;y?(d.z=y.z+n(d._,y._),d.m=d.z-L):d.z=L}else y&&(d.z=y.z+n(d._,y._));d.parent.A=function l(d,h,g){if(h){for(var Ee,y=d,L=d,z=h,q=y.parent.children[0],re=y.m,ae=L.m,Se=z.m,Ce=q.m;z=wH(z),y=CH(y),z&&y;)q=CH(q),(L=wH(L)).a=d,(Ee=z.z+Se-y.z-re+n(z._,y._))>0&&(Rge(Zge(z,d,g),d,Ee),re+=Ee,ae+=Ee),Se+=z.m,re+=y.m,Ce+=q.m,ae+=L.m;z&&!wH(L)&&(L.t=z,L.m+=Se-ae),y&&!CH(q)&&(q.t=y,q.m+=re-Ce,g=d)}return g}(d,y,d.parent.A||g[0])}function s(d){d._.x=d.z+d.parent.m,d.m+=d.parent.m}function u(d){d.x*=r,d.y=d.depth*e}return o.separation=function(d){return arguments.length?(n=d,o):n},o.size=function(d){return arguments.length?(i=!1,r=+d[0],e=+d[1],o):i?null:[r,e]},o.nodeSize=function(d){return arguments.length?(i=!0,r=+d[0],e=+d[1],o):i?[r,e]:null},o}function tN(n,r,e,i,o){for(var s,a=n.children,l=-1,u=a.length,d=n.value&&(o-e)/n.value;++lSe&&(Se=d),st=re*re*Ke,(Ce=Math.max(Se/st,st/ae))>Ee){re-=d;break}Ee=Ce}s.push(u={value:re,dice:L1?i:1)},e}(LQ);function Fge(){var n=NQ,r=!1,e=1,i=1,o=[0],a=h0,s=h0,l=h0,u=h0,d=h0;function h(y){return y.x0=y.y0=0,y.x1=e,y.y1=i,y.eachBefore(g),o=[0],r&&y.eachBefore(IQ),y}function g(y){var L=o[y.depth],z=y.x0+L,q=y.y0+L,re=y.x1-L,ae=y.y1-L;re=y-1){var Se=a[g];return Se.x0=z,Se.y0=q,Se.x1=re,void(Se.y1=ae)}for(var Ce=d[g],Ee=L/2+Ce,Ke=g+1,st=y-1;Ke>>1;d[De]ae-q){var bt=(z*ft+re*it)/L;h(g,Ke,it,z,q,bt,ae),h(Ke,y,ft,bt,q,re,ae)}else{var $e=(q*ft+ae*it)/L;h(g,Ke,it,z,q,re,$e),h(Ke,y,ft,z,$e,re,ae)}}(0,l,n.value,r,e,i,o)}function Hge(n,r,e,i,o){(1&n.depth?tN:kx)(n,r,e,i,o)}var jge=function n(r){function e(i,o,a,s,l){if((u=i._squarify)&&u.ratio===r)for(var u,d,h,g,L,y=-1,z=u.length,q=i.value;++y1?i:1)},e}(LQ);function Mw(n,r,e){n.prototype=r.prototype=e,e.constructor=n}function Tx(n,r){var e=Object.create(n.prototype);for(var i in r)e[i]=r[i];return e}function kg(){}var Sw=1/.7,Ew="\\s*([+-]?\\d+)\\s*",Mx="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",mp="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Gge=/^#([0-9a-f]{3,8})$/,zge=new RegExp("^rgb\\("+[Ew,Ew,Ew]+"\\)$"),Wge=new RegExp("^rgb\\("+[mp,mp,mp]+"\\)$"),Vge=new RegExp("^rgba\\("+[Ew,Ew,Ew,Mx]+"\\)$"),Yge=new RegExp("^rgba\\("+[mp,mp,mp,Mx]+"\\)$"),Kge=new RegExp("^hsl\\("+[Mx,mp,mp]+"\\)$"),qge=new RegExp("^hsla\\("+[Mx,mp,mp,Mx]+"\\)$"),BQ={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function FQ(){return this.rgb().formatHex()}function UQ(){return this.rgb().formatRgb()}function Sx(n){var r,e;return n=(n+"").trim().toLowerCase(),(r=Gge.exec(n))?(e=r[1].length,r=parseInt(r[1],16),6===e?HQ(r):3===e?new al(r>>8&15|r>>4&240,r>>4&15|240&r,(15&r)<<4|15&r,1):8===e?nN(r>>24&255,r>>16&255,r>>8&255,(255&r)/255):4===e?nN(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|240&r,((15&r)<<4|15&r)/255):null):(r=zge.exec(n))?new al(r[1],r[2],r[3],1):(r=Wge.exec(n))?new al(255*r[1]/100,255*r[2]/100,255*r[3]/100,1):(r=Vge.exec(n))?nN(r[1],r[2],r[3],r[4]):(r=Yge.exec(n))?nN(255*r[1]/100,255*r[2]/100,255*r[3]/100,r[4]):(r=Kge.exec(n))?zQ(r[1],r[2]/100,r[3]/100,1):(r=qge.exec(n))?zQ(r[1],r[2]/100,r[3]/100,r[4]):BQ.hasOwnProperty(n)?HQ(BQ[n]):"transparent"===n?new al(NaN,NaN,NaN,0):null}function HQ(n){return new al(n>>16&255,n>>8&255,255&n,1)}function nN(n,r,e,i){return i<=0&&(n=r=e=NaN),new al(n,r,e,i)}function kH(n){return n instanceof kg||(n=Sx(n)),n?new al((n=n.rgb()).r,n.g,n.b,n.opacity):new al}function rN(n,r,e,i){return 1===arguments.length?kH(n):new al(n,r,e,null==i?1:i)}function al(n,r,e,i){this.r=+n,this.g=+r,this.b=+e,this.opacity=+i}function jQ(){return"#"+TH(this.r)+TH(this.g)+TH(this.b)}function GQ(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function TH(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function zQ(n,r,e,i){return i<=0?n=r=e=NaN:e<=0||e>=1?n=r=NaN:r<=0&&(n=NaN),new _p(n,r,e,i)}function WQ(n){if(n instanceof _p)return new _p(n.h,n.s,n.l,n.opacity);if(n instanceof kg||(n=Sx(n)),!n)return new _p;if(n instanceof _p)return n;var r=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,o=Math.min(r,e,i),a=Math.max(r,e,i),s=NaN,l=a-o,u=(a+o)/2;return l?(s=r===a?(e-i)/l+6*(e0&&u<1?0:s,new _p(s,l,u,n.opacity)}function MH(n,r,e,i){return 1===arguments.length?WQ(n):new _p(n,r,e,null==i?1:i)}function _p(n,r,e,i){this.h=+n,this.s=+r,this.l=+e,this.opacity=+i}function SH(n,r,e){return 255*(n<60?r+(e-r)*n/60:n<180?e:n<240?r+(e-r)*(240-n)/60:r)}function VQ(n,r,e,i,o){var a=n*n,s=a*n;return((1-3*n+3*a-s)*r+(4-6*a+3*s)*e+(1+3*n+3*a-3*s)*i+s*o)/6}function YQ(n){var r=n.length-1;return function(e){var i=e<=0?e=0:e>=1?(e=1,r-1):Math.floor(e*r),o=n[i],a=n[i+1],s=i>0?n[i-1]:2*o-a,l=i180||e<-180?e-360*Math.round(e/360):e):iN(isNaN(n)?r:n)}function Xge(n){return 1==(n=+n)?Fs:function(r,e){return e-r?function Qge(n,r,e){return n=Math.pow(n,e),r=Math.pow(r,e)-n,e=1/e,function(i){return Math.pow(n+i*r,e)}}(r,e,n):iN(isNaN(r)?e:r)}}function Fs(n,r){var e=r-n;return e?qQ(n,e):iN(isNaN(n)?r:n)}Mw(kg,Sx,{copy:function(r){return Object.assign(new this.constructor,this,r)},displayable:function(){return this.rgb().displayable()},hex:FQ,formatHex:FQ,formatHsl:function Jge(){return WQ(this).formatHsl()},formatRgb:UQ,toString:UQ}),Mw(al,rN,Tx(kg,{brighter:function(r){return r=null==r?Sw:Math.pow(Sw,r),new al(this.r*r,this.g*r,this.b*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new al(this.r*r,this.g*r,this.b*r,this.opacity)},rgb:function(){return this},displayable:function(){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:jQ,formatHex:jQ,formatRgb:GQ,toString:GQ})),Mw(_p,MH,Tx(kg,{brighter:function(r){return r=null==r?Sw:Math.pow(Sw,r),new _p(this.h,this.s,this.l*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new _p(this.h,this.s,this.l*r,this.opacity)},rgb:function(){var r=this.h%360+360*(this.h<0),e=isNaN(r)||isNaN(this.s)?0:this.s,i=this.l,o=i+(i<.5?i:1-i)*e,a=2*i-o;return new al(SH(r>=240?r-240:r+120,a,o),SH(r,a,o),SH(r<120?r+240:r-120,a,o),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var r=this.opacity;return(1===(r=isNaN(r)?1:Math.max(0,Math.min(1,r)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===r?")":", "+r+")")}}));var xH=function n(r){var e=Xge(r);function i(o,a){var s=e((o=rN(o)).r,(a=rN(a)).r),l=e(o.g,a.g),u=e(o.b,a.b),d=Fs(o.opacity,a.opacity);return function(h){return o.r=s(h),o.g=l(h),o.b=u(h),o.opacity=d(h),o+""}}return i.gamma=n,i}(1);function JQ(n){return function(r){var s,l,e=r.length,i=new Array(e),o=new Array(e),a=new Array(e);for(s=0;se&&(a=r.slice(e,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,u.push({i:s,x:gp(i,o)})),e=AH.lastIndex;return e180?h+=360:h-d>180&&(d+=360),y.push({i:g.push(o(g)+"rotate(",null,i)-2,x:gp(d,h)})):h&&g.push(o(g)+"rotate("+h+i)}(d.rotate,h.rotate,g,y),function l(d,h,g,y){d!==h?y.push({i:g.push(o(g)+"skewX(",null,i)-2,x:gp(d,h)}):h&&g.push(o(g)+"skewX("+h+i)}(d.skewX,h.skewX,g,y),function u(d,h,g,y,L,z){if(d!==g||h!==y){var q=L.push(o(L)+"scale(",null,",",null,")");z.push({i:q-4,x:gp(d,g)},{i:q-2,x:gp(h,y)})}else(1!==g||1!==y)&&L.push(o(L)+"scale("+g+","+y+")")}(d.scaleX,d.scaleY,h.scaleX,h.scaleY,g,y),d=h=null,function(L){for(var re,z=-1,q=y.length;++z.008856451679035631?Math.pow(n,1/3):n/hX+pX}function NH(n){return n>xw?n*n*n:hX*(n-pX)}function BH(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function FH(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _X(n){if(n instanceof vp)return new vp(n.h,n.c,n.l,n.opacity);if(n instanceof Wd||(n=mX(n)),0===n.a&&0===n.b)return new vp(NaN,01&&Tve(n[e[i-2]],n[e[i-1]],n[o])<=0;)--i;e[i++]=o}return e.slice(0,i)}function Sve(n){if((e=n.length)<3)return null;var r,e,i=new Array(e),o=new Array(e);for(r=0;r=0;--r)d.push(n[i[a[r]][2]]);for(r=+l;ra!=l>a&&o<(s-u)*(a-d)/(l-d)+u&&(h=!h),s=u,l=d;return h}function xve(n){for(var o,a,r=-1,e=n.length,i=n[e-1],s=i[0],l=i[1],u=0;++r1);return i+o*l*Math.sqrt(-2*Math.log(s)/s)}}return e.source=n,e}(Dw),Ave=function n(r){function e(){var i=MX.source(r).apply(this,arguments);return function(){return Math.exp(i())}}return e.source=n,e}(Dw),SX=function n(r){function e(i){return function(){for(var o=0,a=0;a2?Bve:Nve,l=u=null,h}function h(g){return(l||(l=s(e,i,a?function Lve(n){return function(r,e){var i=n(r=+r,e=+e);return function(o){return o<=r?0:o>=e?1:i(o)}}}(n):n,o)))(+g)}return h.invert=function(g){return(u||(u=s(i,e,qH,a?function Zve(n){return function(r,e){var i=n(r=+r,e=+e);return function(o){return o<=0?r:o>=1?e:i(o)}}}(r):r)))(+g)},h.domain=function(g){return arguments.length?(e=zH.call(g,DX),d()):e.slice()},h.range=function(g){return arguments.length?(i=Tg.call(g),d()):i.slice()},h.rangeRound=function(g){return i=Tg.call(g),o=Rve,d()},h.clamp=function(g){return arguments.length?(a=!!g,d()):a},h.interpolate=function(g){return arguments.length?(o=g,d()):o},d()}var OX,Fve=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cN(n){if(!(r=Fve.exec(n)))throw new Error("invalid format: "+n);var r;return new JH({fill:r[1],align:r[2],sign:r[3],symbol:r[4],zero:r[5],width:r[6],comma:r[7],precision:r[8]&&r[8].slice(1),trim:r[9],type:r[10]})}function JH(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function dN(n,r){if((e=(n=r?n.toExponential(r-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Aw(n){return(n=dN(Math.abs(n)))?n[1]:NaN}function IX(n,r){var e=dN(n,r);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}cN.prototype=JH.prototype,JH.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var PX={"%":function(r,e){return(100*r).toFixed(e)},b:function(r){return Math.round(r).toString(2)},c:function(r){return r+""},d:function Uve(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)},e:function(r,e){return r.toExponential(e)},f:function(r,e){return r.toFixed(e)},g:function(r,e){return r.toPrecision(e)},o:function(r){return Math.round(r).toString(8)},p:function(r,e){return IX(100*r,e)},r:IX,s:function Wve(n,r){var e=dN(n,r);if(!e)return n+"";var i=e[0],o=e[1],a=o-(OX=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,s=i.length;return a===s?i:a>s?i+new Array(a-s+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+dN(n,Math.max(0,r+a-1))[0]},X:function(r){return Math.round(r).toString(16).toUpperCase()},x:function(r){return Math.round(r).toString(16)}};function RX(n){return n}var fN,QH,NX,LX=Array.prototype.map,ZX=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Vve(n){var r=void 0===n.grouping||void 0===n.thousands?RX:function jve(n,r){return function(e,i){for(var o=e.length,a=[],s=0,l=n[0],u=0;o>0&&l>0&&(u+l+1>i&&(l=Math.max(1,i-u)),a.push(e.substring(o-=l,o+l)),!((u+=l+1)>i));)l=n[s=(s+1)%n.length];return a.reverse().join(r)}}(LX.call(n.grouping,Number),n.thousands+""),e=void 0===n.currency?"":n.currency[0]+"",i=void 0===n.currency?"":n.currency[1]+"",o=void 0===n.decimal?".":n.decimal+"",a=void 0===n.numerals?RX:function Gve(n){return function(r){return r.replace(/[0-9]/g,function(e){return n[+e]})}}(LX.call(n.numerals,String)),s=void 0===n.percent?"%":n.percent+"",l=void 0===n.minus?"-":n.minus+"",u=void 0===n.nan?"NaN":n.nan+"";function d(g){var y=(g=cN(g)).fill,L=g.align,z=g.sign,q=g.symbol,re=g.zero,ae=g.width,Se=g.comma,Ce=g.precision,Ee=g.trim,Ke=g.type;"n"===Ke?(Se=!0,Ke="g"):PX[Ke]||(void 0===Ce&&(Ce=12),Ee=!0,Ke="g"),(re||"0"===y&&"="===L)&&(re=!0,y="0",L="=");var st="$"===q?e:"#"===q&&/[boxX]/.test(Ke)?"0"+Ke.toLowerCase():"",De="$"===q?i:/[%p]/.test(Ke)?s:"",it=PX[Ke],ft=/[defgprs%]/.test(Ke);function bt($e){var Bt,Ht,Pt,Pe=st,ct=De;if("c"===Ke)ct=it($e)+ct,$e="";else{var Tn=($e=+$e)<0||1/$e<0;if($e=isNaN($e)?u:it(Math.abs($e),Ce),Ee&&($e=function zve(n){e:for(var o,r=n.length,e=1,i=-1;e0&&(i=0)}return i>0?n.slice(0,i)+n.slice(o+1):n}($e)),Tn&&0==+$e&&"+"!==z&&(Tn=!1),Pe=(Tn?"("===z?z:l:"-"===z||"("===z?"":z)+Pe,ct=("s"===Ke?ZX[8+OX/3]:"")+ct+(Tn&&"("===z?")":""),ft)for(Bt=-1,Ht=$e.length;++Bt(Pt=$e.charCodeAt(Bt))||Pt>57){ct=(46===Pt?o+$e.slice(Bt+1):$e.slice(Bt))+ct,$e=$e.slice(0,Bt);break}}Se&&!re&&($e=r($e,1/0));var jn=Pe.length+$e.length+ct.length,zn=jn>1)+Pe+$e+ct+zn.slice(jn);break;default:$e=zn+Pe+$e+ct}return a($e)}return Ce=void 0===Ce?6:/[gprs]/.test(Ke)?Math.max(1,Math.min(21,Ce)):Math.max(0,Math.min(20,Ce)),bt.toString=function(){return g+""},bt}return{format:d,formatPrefix:function h(g,y){var L=d(((g=cN(g)).type="f",g)),z=3*Math.max(-8,Math.min(8,Math.floor(Aw(y)/3))),q=Math.pow(10,-z),re=ZX[8+z/3];return function(ae){return L(q*ae)+re}}}}function Jve(n,r,e){var s,i=n[0],o=n[n.length-1],a=e0(i,o,null==r?10:r);switch((e=cN(null==e?",f":e)).type){case"s":var l=Math.max(Math.abs(i),Math.abs(o));return null==e.precision&&!isNaN(s=function Hve(n,r){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Aw(r)/3)))-Aw(Math.abs(n)))}(a,l))&&(e.precision=s),NX(e,l);case"":case"e":case"g":case"p":case"r":null==e.precision&&!isNaN(s=function Kve(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,Aw(r)-Aw(n))+1}(a,Math.max(Math.abs(i),Math.abs(o))))&&(e.precision=s-("e"===e.type));break;case"f":case"%":null==e.precision&&!isNaN(s=function qve(n){return Math.max(0,-Aw(Math.abs(n)))}(a))&&(e.precision=s-2*("%"===e.type))}return QH(e)}function Ax(n){var r=n.domain;return n.ticks=function(e){var i=r();return E7(i[0],i[i.length-1],null==e?10:e)},n.tickFormat=function(e,i){return Jve(r(),e,i)},n.nice=function(e){null==e&&(e=10);var u,i=r(),o=0,a=i.length-1,s=i[o],l=i[a];return l0?u=GE(s=Math.floor(s/u)*u,l=Math.ceil(l/u)*u,e):u<0&&(u=GE(s=Math.ceil(s*u)/u,l=Math.floor(l*u)/u,e)),u>0?(i[o]=Math.floor(s/u)*u,i[a]=Math.ceil(l/u)*u,r(i)):u<0&&(i[o]=Math.ceil(s*u)/u,i[a]=Math.floor(l*u)/u,r(i)),n},n}function BX(){var n=uN(qH,qc);return n.copy=function(){return lN(n,BX())},Ax(n)}function FX(){var n=[0,1];function r(e){return+e}return r.invert=r,r.domain=r.range=function(e){return arguments.length?(n=zH.call(e,DX),r):n.slice()},r.copy=function(){return FX().domain(n)},Ax(r)}function UX(n,r){var s,e=0,i=(n=n.slice()).length-1,o=n[e],a=n[i];return a0){for(;gd)break;ae.push(q)}}else for(;g=1;--z)if(!((q=L*z)d)break;ae.push(q)}}else ae=E7(g,y,Math.min(y-g,re)).map(o);return h?ae.reverse():ae},n.tickFormat=function(s,l){if(null==l&&(l=10===e?".0e":","),"function"!=typeof l&&(l=QH(l)),s===1/0)return l;null==s&&(s=10);var u=Math.max(1,e*s/n.ticks().length);return function(d){var h=d/o(Math.round(i(d)));return h*e0?e[s-1]:n[0],s=e?[i[e-1],r]:[i[u-1],i[u]]},a.copy=function(){return VX().domain([n,r]).range(o)},Ax(a)}function YX(){var n=[.5],r=[0,1],e=1;function i(o){if(o<=o)return r[X1(n,o,0,e)]}return i.domain=function(o){return arguments.length?(n=Tg.call(o),e=Math.min(n.length,r.length-1),i):n.slice()},i.range=function(o){return arguments.length?(r=Tg.call(o),e=Math.min(n.length,r.length-1),i):r.slice()},i.invertExtent=function(o){var a=r.indexOf(o);return[n[a-1],n[a]]},i.copy=function(){return YX().domain(n).range(r)},i}!function Yve(n){return fN=Vve(n),QH=fN.format,NX=fN.formatPrefix,fN}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var $H=new Date,ej=new Date;function Us(n,r,e,i){function o(a){return n(a=0===arguments.length?new Date:new Date(+a)),a}return o.floor=function(a){return n(a=new Date(+a)),a},o.ceil=function(a){return n(a=new Date(a-1)),r(a,1),n(a),a},o.round=function(a){var s=o(a),l=o.ceil(a);return a-s0))return u;do{u.push(d=new Date(+a)),r(a,l),n(a)}while(d=s)for(;n(s),!a(s);)s.setTime(s-1)},function(s,l){if(s>=s)if(l<0)for(;++l<=0;)for(;r(s,-1),!a(s););else for(;--l>=0;)for(;r(s,1),!a(s););})},e&&(o.count=function(a,s){return $H.setTime(+a),ej.setTime(+s),n($H),n(ej),Math.floor(e($H,ej))},o.every=function(a){return a=Math.floor(a),isFinite(a)&&a>0?a>1?o.filter(i?function(s){return i(s)%a==0}:function(s){return o.count(0,s)%a==0}):o:null}),o}var tj=Us(function(n){n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,r){n.setFullYear(n.getFullYear()+r)},function(n,r){return r.getFullYear()-n.getFullYear()},function(n){return n.getFullYear()});tj.every=function(n){return isFinite(n=Math.floor(n))&&n>0?Us(function(r){r.setFullYear(Math.floor(r.getFullYear()/n)*n),r.setMonth(0,1),r.setHours(0,0,0,0)},function(r,e){r.setFullYear(r.getFullYear()+e*n)}):null};var Vd=tj,KX=(tj.range,Us(function(n){n.setDate(1),n.setHours(0,0,0,0)},function(n,r){n.setMonth(n.getMonth()+r)},function(n,r){return r.getMonth()-n.getMonth()+12*(r.getFullYear()-n.getFullYear())},function(n){return n.getMonth()})),tye=KX,g0=(KX.range,6e4),hN=36e5,JX=6048e5;function v0(n){return Us(function(r){r.setDate(r.getDate()-(r.getDay()+7-n)%7),r.setHours(0,0,0,0)},function(r,e){r.setDate(r.getDate()+7*e)},function(r,e){return(e-r-(e.getTimezoneOffset()-r.getTimezoneOffset())*g0)/JX})}var mN=v0(0),y0=v0(1),nye=v0(2),rye=v0(3),om=v0(4),iye=v0(5),oye=v0(6),QX=(mN.range,y0.range,nye.range,rye.range,om.range,iye.range,oye.range,Us(function(n){n.setHours(0,0,0,0)},function(n,r){n.setDate(n.getDate()+r)},function(n,r){return(r-n-(r.getTimezoneOffset()-n.getTimezoneOffset())*g0)/864e5},function(n){return n.getDate()-1})),Ox=QX,XX=(QX.range,Us(function(n){n.setTime(n-n.getMilliseconds()-1e3*n.getSeconds()-n.getMinutes()*g0)},function(n,r){n.setTime(+n+r*hN)},function(n,r){return(r-n)/hN},function(n){return n.getHours()})),aye=XX,$X=(XX.range,Us(function(n){n.setTime(n-n.getMilliseconds()-1e3*n.getSeconds())},function(n,r){n.setTime(+n+r*g0)},function(n,r){return(r-n)/g0},function(n){return n.getMinutes()})),sye=$X,e$=($X.range,Us(function(n){n.setTime(n-n.getMilliseconds())},function(n,r){n.setTime(+n+1e3*r)},function(n,r){return(r-n)/1e3},function(n){return n.getUTCSeconds()})),t$=e$,_N=(e$.range,Us(function(){},function(n,r){n.setTime(+n+r)},function(n,r){return r-n}));_N.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?Us(function(r){r.setTime(Math.floor(r/n)*n)},function(r,e){r.setTime(+r+e*n)},function(r,e){return(e-r)/n}):_N:null};var n$=_N;_N.range;function b0(n){return Us(function(r){r.setUTCDate(r.getUTCDate()-(r.getUTCDay()+7-n)%7),r.setUTCHours(0,0,0,0)},function(r,e){r.setUTCDate(r.getUTCDate()+7*e)},function(r,e){return(e-r)/JX})}var gN=b0(0),C0=b0(1),lye=b0(2),uye=b0(3),am=b0(4),cye=b0(5),dye=b0(6),r$=(gN.range,C0.range,lye.range,uye.range,am.range,cye.range,dye.range,Us(function(n){n.setUTCHours(0,0,0,0)},function(n,r){n.setUTCDate(n.getUTCDate()+r)},function(n,r){return(r-n)/864e5},function(n){return n.getUTCDate()-1})),Ix=r$,nj=(r$.range,Us(function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,r){n.setUTCFullYear(n.getUTCFullYear()+r)},function(n,r){return r.getUTCFullYear()-n.getUTCFullYear()},function(n){return n.getUTCFullYear()}));nj.every=function(n){return isFinite(n=Math.floor(n))&&n>0?Us(function(r){r.setUTCFullYear(Math.floor(r.getUTCFullYear()/n)*n),r.setUTCMonth(0,1),r.setUTCHours(0,0,0,0)},function(r,e){r.setUTCFullYear(r.getUTCFullYear()+e*n)}):null};var Yd=nj;nj.range;function rj(n){if(0<=n.y&&n.y<100){var r=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return r.setFullYear(n.y),r}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function ij(n){if(0<=n.y&&n.y<100){var r=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return r.setUTCFullYear(n.y),r}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Px(n,r,e){return{y:n,m:r,d:e,H:0,M:0,S:0,L:0}}var Iw,v$,y$,i$={"-":"",_:" ",0:"0"},Hs=/^\s*\d+/,pye=/^%/,hye=/[\\^$*+?|[\]().{}]/g;function Wi(n,r,e){var i=n<0?"-":"",o=(i?-n:n)+"",a=o.length;return i+(a68?1900:2e3),e+i[0].length):-1}function Cye(n,r,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(r.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function wye(n,r,e){var i=Hs.exec(r.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function kye(n,r,e){var i=Hs.exec(r.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function s$(n,r,e){var i=Hs.exec(r.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function Tye(n,r,e){var i=Hs.exec(r.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function l$(n,r,e){var i=Hs.exec(r.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function Mye(n,r,e){var i=Hs.exec(r.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function Sye(n,r,e){var i=Hs.exec(r.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function Eye(n,r,e){var i=Hs.exec(r.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function xye(n,r,e){var i=Hs.exec(r.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function Dye(n,r,e){var i=pye.exec(r.slice(e,e+1));return i?e+i[0].length:-1}function Aye(n,r,e){var i=Hs.exec(r.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function Oye(n,r,e){var i=Hs.exec(r.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function u$(n,r){return Wi(n.getDate(),r,2)}function Iye(n,r){return Wi(n.getHours(),r,2)}function Pye(n,r){return Wi(n.getHours()%12||12,r,2)}function Rye(n,r){return Wi(1+Ox.count(Vd(n),n),r,3)}function c$(n,r){return Wi(n.getMilliseconds(),r,3)}function Lye(n,r){return c$(n,r)+"000"}function Zye(n,r){return Wi(n.getMonth()+1,r,2)}function Nye(n,r){return Wi(n.getMinutes(),r,2)}function Bye(n,r){return Wi(n.getSeconds(),r,2)}function Fye(n){var r=n.getDay();return 0===r?7:r}function Uye(n,r){return Wi(mN.count(Vd(n)-1,n),r,2)}function d$(n){var r=n.getDay();return r>=4||0===r?om(n):om.ceil(n)}function Hye(n,r){return n=d$(n),Wi(om.count(Vd(n),n)+(4===Vd(n).getDay()),r,2)}function jye(n){return n.getDay()}function Gye(n,r){return Wi(y0.count(Vd(n)-1,n),r,2)}function zye(n,r){return Wi(n.getFullYear()%100,r,2)}function Wye(n,r){return Wi((n=d$(n)).getFullYear()%100,r,2)}function Vye(n,r){return Wi(n.getFullYear()%1e4,r,4)}function Yye(n,r){var e=n.getDay();return Wi((n=e>=4||0===e?om(n):om.ceil(n)).getFullYear()%1e4,r,4)}function Kye(n){var r=n.getTimezoneOffset();return(r>0?"-":(r*=-1,"+"))+Wi(r/60|0,"0",2)+Wi(r%60,"0",2)}function f$(n,r){return Wi(n.getUTCDate(),r,2)}function qye(n,r){return Wi(n.getUTCHours(),r,2)}function Jye(n,r){return Wi(n.getUTCHours()%12||12,r,2)}function Qye(n,r){return Wi(1+Ix.count(Yd(n),n),r,3)}function p$(n,r){return Wi(n.getUTCMilliseconds(),r,3)}function Xye(n,r){return p$(n,r)+"000"}function $ye(n,r){return Wi(n.getUTCMonth()+1,r,2)}function e0e(n,r){return Wi(n.getUTCMinutes(),r,2)}function t0e(n,r){return Wi(n.getUTCSeconds(),r,2)}function n0e(n){var r=n.getUTCDay();return 0===r?7:r}function r0e(n,r){return Wi(gN.count(Yd(n)-1,n),r,2)}function h$(n){var r=n.getUTCDay();return r>=4||0===r?am(n):am.ceil(n)}function i0e(n,r){return n=h$(n),Wi(am.count(Yd(n),n)+(4===Yd(n).getUTCDay()),r,2)}function o0e(n){return n.getUTCDay()}function a0e(n,r){return Wi(C0.count(Yd(n)-1,n),r,2)}function s0e(n,r){return Wi(n.getUTCFullYear()%100,r,2)}function l0e(n,r){return Wi((n=h$(n)).getUTCFullYear()%100,r,2)}function u0e(n,r){return Wi(n.getUTCFullYear()%1e4,r,4)}function c0e(n,r){var e=n.getUTCDay();return Wi((n=e>=4||0===e?am(n):am.ceil(n)).getUTCFullYear()%1e4,r,4)}function d0e(){return"+0000"}function m$(){return"%"}function _$(n){return+n}function g$(n){return Math.floor(+n/1e3)}!function h0e(n){return Iw=function fye(n){var r=n.dateTime,e=n.date,i=n.time,o=n.periods,a=n.days,s=n.shortDays,l=n.months,u=n.shortMonths,d=Rx(o),h=Lx(o),g=Rx(a),y=Lx(a),L=Rx(s),z=Lx(s),q=Rx(l),re=Lx(l),ae=Rx(u),Se=Lx(u),Ce={a:function Tn(Mn){return s[Mn.getDay()]},A:function jn(Mn){return a[Mn.getDay()]},b:function zn(Mn){return u[Mn.getMonth()]},B:function ar(Mn){return l[Mn.getMonth()]},c:null,d:u$,e:u$,f:Lye,g:Wye,G:Yye,H:Iye,I:Pye,j:Rye,L:c$,m:Zye,M:Nye,p:function kr(Mn){return o[+(Mn.getHours()>=12)]},q:function _r(Mn){return 1+~~(Mn.getMonth()/3)},Q:_$,s:g$,S:Bye,u:Fye,U:Uye,V:Hye,w:jye,W:Gye,x:null,X:null,y:zye,Y:Vye,Z:Kye,"%":m$},Ee={a:function Wr(Mn){return s[Mn.getUTCDay()]},A:function Hr(Mn){return a[Mn.getUTCDay()]},b:function Kr(Mn){return u[Mn.getUTCMonth()]},B:function Ho(Mn){return l[Mn.getUTCMonth()]},c:null,d:f$,e:f$,f:Xye,g:l0e,G:c0e,H:qye,I:Jye,j:Qye,L:p$,m:$ye,M:e0e,p:function tr(Mn){return o[+(Mn.getUTCHours()>=12)]},q:function yr(Mn){return 1+~~(Mn.getUTCMonth()/3)},Q:_$,s:g$,S:t0e,u:n0e,U:r0e,V:i0e,w:o0e,W:a0e,x:null,X:null,y:s0e,Y:u0e,Z:d0e,"%":m$},Ke={a:function bt(Mn,gn,nr){var un=L.exec(gn.slice(nr));return un?(Mn.w=z[un[0].toLowerCase()],nr+un[0].length):-1},A:function $e(Mn,gn,nr){var un=g.exec(gn.slice(nr));return un?(Mn.w=y[un[0].toLowerCase()],nr+un[0].length):-1},b:function Pe(Mn,gn,nr){var un=ae.exec(gn.slice(nr));return un?(Mn.m=Se[un[0].toLowerCase()],nr+un[0].length):-1},B:function ct(Mn,gn,nr){var un=q.exec(gn.slice(nr));return un?(Mn.m=re[un[0].toLowerCase()],nr+un[0].length):-1},c:function Bt(Mn,gn,nr){return it(Mn,r,gn,nr)},d:s$,e:s$,f:xye,g:a$,G:o$,H:l$,I:l$,j:Tye,L:Eye,m:kye,M:Mye,p:function ft(Mn,gn,nr){var un=d.exec(gn.slice(nr));return un?(Mn.p=h[un[0].toLowerCase()],nr+un[0].length):-1},q:wye,Q:Aye,s:Oye,S:Sye,u:gye,U:vye,V:yye,w:_ye,W:bye,x:function Ht(Mn,gn,nr){return it(Mn,e,gn,nr)},X:function Pt(Mn,gn,nr){return it(Mn,i,gn,nr)},y:a$,Y:o$,Z:Cye,"%":Dye};function st(Mn,gn){return function(nr){var gr,eo,Xu,un=[],bn=-1,Nn=0,rr=Mn.length;for(nr instanceof Date||(nr=new Date(+nr));++bn53)return null;"w"in un||(un.w=1),"Z"in un?(rr=(Nn=ij(Px(un.y,0,1))).getUTCDay(),Nn=rr>4||0===rr?C0.ceil(Nn):C0(Nn),Nn=Ix.offset(Nn,7*(un.V-1)),un.y=Nn.getUTCFullYear(),un.m=Nn.getUTCMonth(),un.d=Nn.getUTCDate()+(un.w+6)%7):(rr=(Nn=rj(Px(un.y,0,1))).getDay(),Nn=rr>4||0===rr?y0.ceil(Nn):y0(Nn),Nn=Ox.offset(Nn,7*(un.V-1)),un.y=Nn.getFullYear(),un.m=Nn.getMonth(),un.d=Nn.getDate()+(un.w+6)%7)}else("W"in un||"U"in un)&&("w"in un||(un.w="u"in un?un.u%7:"W"in un?1:0),rr="Z"in un?ij(Px(un.y,0,1)).getUTCDay():rj(Px(un.y,0,1)).getDay(),un.m=0,un.d="W"in un?(un.w+6)%7+7*un.W-(rr+5)%7:un.w+7*un.U-(rr+6)%7);return"Z"in un?(un.H+=un.Z/100|0,un.M+=un.Z%100,ij(un)):rj(un)}}function it(Mn,gn,nr,un){for(var gr,eo,bn=0,Nn=gn.length,rr=nr.length;bn=rr)return-1;if(37===(gr=gn.charCodeAt(bn++))){if(gr=gn.charAt(bn++),!(eo=Ke[gr in i$?gn.charAt(bn++):gr])||(un=eo(Mn,nr,un))<0)return-1}else if(gr!=nr.charCodeAt(un++))return-1}return un}return Ce.x=st(e,Ce),Ce.X=st(i,Ce),Ce.c=st(r,Ce),Ee.x=st(e,Ee),Ee.X=st(i,Ee),Ee.c=st(r,Ee),{format:function(gn){var nr=st(gn+="",Ce);return nr.toString=function(){return gn},nr},parse:function(gn){var nr=De(gn+="",!1);return nr.toString=function(){return gn},nr},utcFormat:function(gn){var nr=st(gn+="",Ee);return nr.toString=function(){return gn},nr},utcParse:function(gn){var nr=De(gn+="",!0);return nr.toString=function(){return gn},nr}}}(n),v$=Iw.format,Iw.parse,y$=Iw.utcFormat,Iw.utcParse,Iw}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Zx=1e3,Nx=6e4,Bx=60*Nx,Fx=24*Bx,b$=30*Fx,oj=365*Fx;function _0e(n){return new Date(n)}function g0e(n){return n instanceof Date?+n:+new Date(+n)}function aj(n,r,e,i,o,a,s,l,u){var d=uN(qH,qc),h=d.invert,g=d.domain,y=u(".%L"),L=u(":%S"),z=u("%I:%M"),q=u("%I %p"),re=u("%a %d"),ae=u("%b %d"),Se=u("%B"),Ce=u("%Y"),Ee=[[s,1,Zx],[s,5,5e3],[s,15,15e3],[s,30,3e4],[a,1,Nx],[a,5,5*Nx],[a,15,15*Nx],[a,30,30*Nx],[o,1,Bx],[o,3,3*Bx],[o,6,6*Bx],[o,12,12*Bx],[i,1,Fx],[i,2,2*Fx],[e,1,6048e5],[r,1,b$],[r,3,3*b$],[n,1,oj]];function Ke(De){return(s(De)180||e<-180?e-360*Math.round(e/360):e):HL(isNaN(n)?r:n)});var uj=nee(iw),lbe=uj(yp(300,.5,0),yp(-240,.5,1)),ube=uj(yp(-100,.75,.35),yp(80,1.5,.8)),cbe=uj(yp(260,.75,.35),yp(80,1.5,.8)),yN=yp();function dbe(n){(n<0||n>1)&&(n-=Math.floor(n));var r=Math.abs(n-.5);return yN.h=360*n-100,yN.s=1.5-1.5*r,yN.l=.8-.9*r,yN+""}function bN(n){var r=n.length;return function(e){return n[Math.max(0,Math.min(r-1,Math.floor(e*r)))]}}var fbe=bN(ui("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),pbe=bN(ui("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),hbe=bN(ui("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),mbe=bN(ui("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),cj="http://www.w3.org/1999/xhtml",dj={svg:"http://www.w3.org/2000/svg",xhtml:cj,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fj(n){var r=n+="",e=r.indexOf(":");return e>=0&&"xmlns"!==(r=n.slice(0,e))&&(n=n.slice(e+1)),dj.hasOwnProperty(r)?{space:dj[r],local:n}:n}function _be(n){return function(){var r=this.ownerDocument,e=this.namespaceURI;return e===cj&&r.documentElement.namespaceURI===cj?r.createElement(n):r.createElementNS(e,n)}}function gbe(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function CN(n){var r=fj(n);return(r.local?gbe:_be)(r)}function vbe(){}function pj(n){return null==n?vbe:function(){return this.querySelector(n)}}function bbe(){return[]}function ree(n){return null==n?bbe:function(){return this.querySelectorAll(n)}}var iee=function(r){return function(){return this.matches(r)}};if("undefined"!=typeof document){var Hx=document.documentElement;if(!Hx.matches){var wbe=Hx.webkitMatchesSelector||Hx.msMatchesSelector||Hx.mozMatchesSelector||Hx.oMatchesSelector;iee=function(r){return function(){return wbe.call(this,r)}}}}var oee=iee;function aee(n){return new Array(n.length)}function wN(n,r){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=r}wN.prototype={constructor:wN,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,e){return this._parent.insertBefore(r,e)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function Sbe(n,r,e,i,o,a){for(var l,s=0,u=r.length,d=a.length;sr?1:n>=r?0:NaN}function Ube(n){return function(){this.removeAttribute(n)}}function Hbe(n){return function(){this.removeAttributeNS(n.space,n.local)}}function jbe(n,r){return function(){this.setAttribute(n,r)}}function Gbe(n,r){return function(){this.setAttributeNS(n.space,n.local,r)}}function zbe(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Wbe(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function hj(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Ybe(n){return function(){this.style.removeProperty(n)}}function Kbe(n,r,e){return function(){this.style.setProperty(n,r,e)}}function qbe(n,r,e){return function(){var i=r.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function lee(n,r){return n.style.getPropertyValue(r)||hj(n).getComputedStyle(n,null).getPropertyValue(r)}function Qbe(n){return function(){delete this[n]}}function Xbe(n,r){return function(){this[n]=r}}function $be(n,r){return function(){var e=r.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function uee(n){return n.trim().split(/^|\s+/)}function mj(n){return n.classList||new cee(n)}function cee(n){this._node=n,this._names=uee(n.getAttribute("class")||"")}function dee(n,r){for(var e=mj(n),i=-1,o=r.length;++i=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};var pee={},sm=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(pee={mouseenter:"mouseover",mouseleave:"mouseout"}));function ECe(n,r,e){return n=hee(n,r,e),function(i){var o=i.relatedTarget;(!o||o!==this&&!(8&o.compareDocumentPosition(this)))&&n.call(this,i)}}function hee(n,r,e){return function(i){var o=sm;sm=i;try{n.call(this,this.__data__,r,e)}finally{sm=o}}}function xCe(n){return n.trim().split(/^|\s+/).map(function(r){var e="",i=r.indexOf(".");return i>=0&&(e=r.slice(i+1),r=r.slice(0,i)),{type:r,name:e}})}function DCe(n){return function(){var r=this.__on;if(r){for(var a,e=0,i=-1,o=r.length;e=Ce&&(Ce=Se+1);!(Ke=re[Ce])&&++Ce=0;)(s=i[o])&&(a&&a!==s.nextSibling&&a.parentNode.insertBefore(s,a),a=s);return this},sort:function Ibe(n){function r(g,y){return g&&y?n(g.__data__,y.__data__):!g-!y}n||(n=Pbe);for(var e=this._groups,i=e.length,o=new Array(i),a=0;a1?this.each((null==r?Ybe:"function"==typeof r?qbe:Kbe)(n,r,null==e?"":e)):lee(this.node(),n)},property:function eCe(n,r){return arguments.length>1?this.each((null==r?Qbe:"function"==typeof r?$be:Xbe)(n,r)):this.node()[n]},classed:function iCe(n,r){var e=uee(n+"");if(arguments.length<2){for(var i=mj(this.node()),o=-1,a=e.length;++o1?0:n<-1?T0:Math.acos(n)}function bee(n){return n>=1?TN:n<=-1?-TN:Math.asin(n)}function a1e(n){return n.innerRadius}function s1e(n){return n.outerRadius}function l1e(n){return n.startAngle}function u1e(n){return n.endAngle}function c1e(n){return n&&n.padAngle}function d1e(n,r,e,i,o,a,s,l){var u=e-n,d=i-r,h=s-o,g=l-a,y=g*u-h*d;if(!(y*yBt*Bt+Ht*Ht&&(it=bt,ft=$e),{cx:it,cy:ft,x01:-h,y01:-g,x11:it*(o/Ke-1),y11:ft*(o/Ke-1)}}function f1e(){var n=a1e,r=s1e,e=gi(0),i=null,o=l1e,a=u1e,s=c1e,l=null;function u(){var d,h,g=+n.apply(this,arguments),y=+r.apply(this,arguments),L=o.apply(this,arguments)-TN,z=a.apply(this,arguments)-TN,q=yee(z-L),re=z>L;if(l||(l=d=Hd()),ysl)if(q>lm-sl)l.moveTo(y*k0(L),y*bp(L)),l.arc(0,0,y,L,z,!re),g>sl&&(l.moveTo(g*k0(z),g*bp(z)),l.arc(0,0,g,z,L,re));else{var Pe,ct,ae=L,Se=z,Ce=L,Ee=z,Ke=q,st=q,De=s.apply(this,arguments)/2,it=De>sl&&(i?+i.apply(this,arguments):Pw(g*g+y*y)),ft=yj(yee(y-g)/2,+e.apply(this,arguments)),bt=ft,$e=ft;if(it>sl){var Bt=bee(it/g*bp(De)),Ht=bee(it/y*bp(De));(Ke-=2*Bt)>sl?(Ce+=Bt*=re?1:-1,Ee-=Bt):(Ke=0,Ce=Ee=(L+z)/2),(st-=2*Ht)>sl?(ae+=Ht*=re?1:-1,Se-=Ht):(st=0,ae=Se=(L+z)/2)}var Pt=y*k0(ae),Tn=y*bp(ae),jn=g*k0(Ee),zn=g*bp(Ee);if(ft>sl){var Hr,ar=y*k0(Se),kr=y*bp(Se),_r=g*k0(Ce),Wr=g*bp(Ce);if(q<=lm-sl&&(Hr=d1e(Pt,Tn,_r,Wr,ar,kr,jn,zn))){var Kr=Pt-Hr[0],Ho=Tn-Hr[1],tr=ar-Hr[0],yr=kr-Hr[1],Mn=1/bp(o1e((Kr*tr+Ho*yr)/(Pw(Kr*Kr+Ho*Ho)*Pw(tr*tr+yr*yr)))/2),gn=Pw(Hr[0]*Hr[0]+Hr[1]*Hr[1]);bt=yj(ft,(g-gn)/(Mn-1)),$e=yj(ft,(y-gn)/(Mn+1))}}st>sl?$e>sl?(Pe=MN(_r,Wr,Pt,Tn,y,$e,re),ct=MN(ar,kr,jn,zn,y,$e,re),l.moveTo(Pe.cx+Pe.x01,Pe.cy+Pe.y01),$esl&&Ke>sl?bt>sl?(Pe=MN(jn,zn,ar,kr,g,-bt,re),ct=MN(Pt,Tn,_r,Wr,g,-bt,re),l.lineTo(Pe.cx+Pe.x01,Pe.cy+Pe.y01),bt=y;--L)l.point(Se[L],Ce[L]);l.lineEnd(),l.areaEnd()}re&&(Se[g]=+n(q,g,h),Ce[g]=+e(q,g,h),l.point(r?+r(q,g,h):Se[g],i?+i(q,g,h):Ce[g]))}if(ae)return l=null,ae+""||null}function d(){return EN().defined(o).curve(s).context(a)}return u.x=function(h){return arguments.length?(n="function"==typeof h?h:gi(+h),r=null,u):n},u.x0=function(h){return arguments.length?(n="function"==typeof h?h:gi(+h),u):n},u.x1=function(h){return arguments.length?(r=null==h?null:"function"==typeof h?h:gi(+h),u):r},u.y=function(h){return arguments.length?(e="function"==typeof h?h:gi(+h),i=null,u):e},u.y0=function(h){return arguments.length?(e="function"==typeof h?h:gi(+h),u):e},u.y1=function(h){return arguments.length?(i=null==h?null:"function"==typeof h?h:gi(+h),u):i},u.lineX0=u.lineY0=function(){return d().x(n).y(e)},u.lineY1=function(){return d().x(n).y(i)},u.lineX1=function(){return d().x(r).y(e)},u.defined=function(h){return arguments.length?(o="function"==typeof h?h:gi(!!h),u):o},u.curve=function(h){return arguments.length?(s=h,null!=a&&(l=s(a)),u):s},u.context=function(h){return arguments.length?(null==h?a=l=null:l=s(a=h),u):a},u}function p1e(n,r){return rn?1:r>=n?0:NaN}function h1e(n){return n}function m1e(){var n=h1e,r=p1e,e=null,i=gi(0),o=gi(lm),a=gi(0);function s(l){var u,h,g,ae,Ee,d=l.length,y=0,L=new Array(d),z=new Array(d),q=+i.apply(this,arguments),re=Math.min(lm,Math.max(-lm,o.apply(this,arguments)-q)),Se=Math.min(Math.abs(re)/d,a.apply(this,arguments)),Ce=Se*(re<0?-1:1);for(u=0;u0&&(y+=Ee);for(null!=r?L.sort(function(Ke,st){return r(z[Ke],z[st])}):null!=e&&L.sort(function(Ke,st){return e(l[Ke],l[st])}),u=0,g=y?(re-d*Ce)/y:0;u0?Ee*g:0)+Ce,z[h]={data:l[h],index:u,value:Ee,startAngle:q,endAngle:ae,padAngle:Se};return z}return s.value=function(l){return arguments.length?(n="function"==typeof l?l:gi(+l),s):n},s.sortValues=function(l){return arguments.length?(r=l,e=null,s):r},s.sort=function(l){return arguments.length?(e=l,r=null,s):e},s.startAngle=function(l){return arguments.length?(i="function"==typeof l?l:gi(+l),s):i},s.endAngle=function(l){return arguments.length?(o="function"==typeof l?l:gi(+l),s):o},s.padAngle=function(l){return arguments.length?(a="function"==typeof l?l:gi(+l),s):a},s}Cee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(r,e):this._context.moveTo(r,e);break;case 1:this._point=2;default:this._context.lineTo(r,e)}}};var kee=wj(SN);function Tee(n){this._curve=n}function wj(n){function r(e){return new Tee(n(e))}return r._curve=n,r}function jx(n){var r=n.curve;return n.angle=n.x,delete n.x,n.radius=n.y,delete n.y,n.curve=function(e){return arguments.length?r(wj(e)):r()._curve},n}function Mee(){return jx(EN().curve(kee))}function See(){var n=wee().curve(kee),r=n.curve,e=n.lineX0,i=n.lineX1,o=n.lineY0,a=n.lineY1;return n.angle=n.x,delete n.x,n.startAngle=n.x0,delete n.x0,n.endAngle=n.x1,delete n.x1,n.radius=n.y,delete n.y,n.innerRadius=n.y0,delete n.y0,n.outerRadius=n.y1,delete n.y1,n.lineStartAngle=function(){return jx(e())},delete n.lineX0,n.lineEndAngle=function(){return jx(i())},delete n.lineX1,n.lineInnerRadius=function(){return jx(o())},delete n.lineY0,n.lineOuterRadius=function(){return jx(a())},delete n.lineY1,n.curve=function(s){return arguments.length?r(wj(s)):r()._curve},n}function Gx(n,r){return[(r=+r)*Math.cos(n-=Math.PI/2),r*Math.sin(n)]}Tee.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(r,e){this._curve.point(e*Math.sin(r),e*-Math.cos(r))}};var kj=Array.prototype.slice;function _1e(n){return n.source}function g1e(n){return n.target}function Tj(n){var r=_1e,e=g1e,i=bj,o=Cj,a=null;function s(){var l,u=kj.call(arguments),d=r.apply(this,u),h=e.apply(this,u);if(a||(a=l=Hd()),n(a,+i.apply(this,(u[0]=d,u)),+o.apply(this,u),+i.apply(this,(u[0]=h,u)),+o.apply(this,u)),l)return a=null,l+""||null}return s.source=function(l){return arguments.length?(r=l,s):r},s.target=function(l){return arguments.length?(e=l,s):e},s.x=function(l){return arguments.length?(i="function"==typeof l?l:gi(+l),s):i},s.y=function(l){return arguments.length?(o="function"==typeof l?l:gi(+l),s):o},s.context=function(l){return arguments.length?(a=null==l?null:l,s):a},s}function v1e(n,r,e,i,o){n.moveTo(r,e),n.bezierCurveTo(r=(r+i)/2,e,r,o,i,o)}function y1e(n,r,e,i,o){n.moveTo(r,e),n.bezierCurveTo(r,e=(e+o)/2,i,e,i,o)}function b1e(n,r,e,i,o){var a=Gx(r,e),s=Gx(r,e=(e+o)/2),l=Gx(i,e),u=Gx(i,o);n.moveTo(a[0],a[1]),n.bezierCurveTo(s[0],s[1],l[0],l[1],u[0],u[1])}function C1e(){return Tj(v1e)}function w1e(){return Tj(y1e)}function k1e(){var n=Tj(b1e);return n.angle=n.x,delete n.x,n.radius=n.y,delete n.y,n}var Mj={draw:function(r,e){var i=Math.sqrt(e/T0);r.moveTo(i,0),r.arc(0,0,i,0,lm)}},Eee={draw:function(r,e){var i=Math.sqrt(e/5)/2;r.moveTo(-3*i,-i),r.lineTo(-i,-i),r.lineTo(-i,-3*i),r.lineTo(i,-3*i),r.lineTo(i,-i),r.lineTo(3*i,-i),r.lineTo(3*i,i),r.lineTo(i,i),r.lineTo(i,3*i),r.lineTo(-i,3*i),r.lineTo(-i,i),r.lineTo(-3*i,i),r.closePath()}},xee=Math.sqrt(1/3),T1e=2*xee,Dee={draw:function(r,e){var i=Math.sqrt(e/T1e),o=i*xee;r.moveTo(0,-i),r.lineTo(o,0),r.lineTo(0,i),r.lineTo(-o,0),r.closePath()}},Aee=Math.sin(T0/10)/Math.sin(7*T0/10),S1e=Math.sin(lm/10)*Aee,E1e=-Math.cos(lm/10)*Aee,Oee={draw:function(r,e){var i=Math.sqrt(.8908130915292852*e),o=S1e*i,a=E1e*i;r.moveTo(0,-i),r.lineTo(o,a);for(var s=1;s<5;++s){var l=lm*s/5,u=Math.cos(l),d=Math.sin(l);r.lineTo(d*i,-u*i),r.lineTo(u*o-d*a,d*o+u*a)}r.closePath()}},Iee={draw:function(r,e){var i=Math.sqrt(e),o=-i/2;r.rect(o,o,i,i)}},Sj=Math.sqrt(3),Pee={draw:function(r,e){var i=-Math.sqrt(e/(3*Sj));r.moveTo(0,2*i),r.lineTo(-Sj*i,-i),r.lineTo(Sj*i,-i),r.closePath()}},Xc=-.5,$c=Math.sqrt(3)/2,Ej=1/Math.sqrt(12),x1e=3*(Ej/2+1),Ree={draw:function(r,e){var i=Math.sqrt(e/x1e),o=i/2,a=i*Ej,s=o,l=i*Ej+i,u=-s,d=l;r.moveTo(o,a),r.lineTo(s,l),r.lineTo(u,d),r.lineTo(Xc*o-$c*a,$c*o+Xc*a),r.lineTo(Xc*s-$c*l,$c*s+Xc*l),r.lineTo(Xc*u-$c*d,$c*u+Xc*d),r.lineTo(Xc*o+$c*a,Xc*a-$c*o),r.lineTo(Xc*s+$c*l,Xc*l-$c*s),r.lineTo(Xc*u+$c*d,Xc*d-$c*u),r.closePath()}},D1e=[Mj,Eee,Dee,Iee,Oee,Pee,Ree];function A1e(){var n=gi(Mj),r=gi(64),e=null;function i(){var o;if(e||(e=o=Hd()),n.apply(this,arguments).draw(e,+r.apply(this,arguments)),o)return e=null,o+""||null}return i.type=function(o){return arguments.length?(n="function"==typeof o?o:gi(o),i):n},i.size=function(o){return arguments.length?(r="function"==typeof o?o:gi(+o),i):r},i.context=function(o){return arguments.length?(e=null==o?null:o,i):e},i}function Mg(){}function xN(n,r,e){n._context.bezierCurveTo((2*n._x0+n._x1)/3,(2*n._y0+n._y1)/3,(n._x0+2*n._x1)/3,(n._y0+2*n._y1)/3,(n._x0+4*n._x1+r)/6,(n._y0+4*n._y1+e)/6)}function DN(n){this._context=n}function O1e(n){return new DN(n)}function Lee(n){this._context=n}function I1e(n){return new Lee(n)}function Zee(n){this._context=n}function P1e(n){return new Zee(n)}function Nee(n,r){this._basis=new DN(n),this._beta=r}DN.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:xN(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(r,e):this._context.moveTo(r,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:xN(this,r,e)}this._x0=this._x1,this._x1=r,this._y0=this._y1,this._y1=e}},Lee.prototype={areaStart:Mg,areaEnd:Mg,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._x2=r,this._y2=e;break;case 1:this._point=2,this._x3=r,this._y3=e;break;case 2:this._point=3,this._x4=r,this._y4=e,this._context.moveTo((this._x0+4*this._x1+r)/6,(this._y0+4*this._y1+e)/6);break;default:xN(this,r,e)}this._x0=this._x1,this._x1=r,this._y0=this._y1,this._y1=e}},Zee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+r)/6,o=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,o):this._context.moveTo(i,o);break;case 3:this._point=4;default:xN(this,r,e)}this._x0=this._x1,this._x1=r,this._y0=this._y1,this._y1=e}},Nee.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var r=this._x,e=this._y,i=r.length-1;if(i>0)for(var d,o=r[0],a=e[0],s=r[i]-o,l=e[i]-a,u=-1;++u<=i;)d=u/i,this._basis.point(this._beta*r[u]+(1-this._beta)*(o+d*s),this._beta*e[u]+(1-this._beta)*(a+d*l));this._x=this._y=null,this._basis.lineEnd()},point:function(r,e){this._x.push(+r),this._y.push(+e)}};var R1e=function n(r){function e(i){return 1===r?new DN(i):new Nee(i,r)}return e.beta=function(i){return n(+i)},e}(.85);function AN(n,r,e){n._context.bezierCurveTo(n._x1+n._k*(n._x2-n._x0),n._y1+n._k*(n._y2-n._y0),n._x2+n._k*(n._x1-r),n._y2+n._k*(n._y1-e),n._x2,n._y2)}function xj(n,r){this._context=n,this._k=(1-r)/6}xj.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:AN(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(r,e):this._context.moveTo(r,e);break;case 1:this._point=2,this._x1=r,this._y1=e;break;case 2:this._point=3;default:AN(this,r,e)}this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var L1e=function n(r){function e(i){return new xj(i,r)}return e.tension=function(i){return n(+i)},e}(0);function Dj(n,r){this._context=n,this._k=(1-r)/6}Dj.prototype={areaStart:Mg,areaEnd:Mg,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._x3=r,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=r,this._y4=e);break;case 2:this._point=3,this._x5=r,this._y5=e;break;default:AN(this,r,e)}this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Z1e=function n(r){function e(i){return new Dj(i,r)}return e.tension=function(i){return n(+i)},e}(0);function Aj(n,r){this._context=n,this._k=(1-r)/6}Aj.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:AN(this,r,e)}this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var N1e=function n(r){function e(i){return new Aj(i,r)}return e.tension=function(i){return n(+i)},e}(0);function Oj(n,r,e){var i=n._x1,o=n._y1,a=n._x2,s=n._y2;if(n._l01_a>sl){var l=2*n._l01_2a+3*n._l01_a*n._l12_a+n._l12_2a,u=3*n._l01_a*(n._l01_a+n._l12_a);i=(i*l-n._x0*n._l12_2a+n._x2*n._l01_2a)/u,o=(o*l-n._y0*n._l12_2a+n._y2*n._l01_2a)/u}if(n._l23_a>sl){var d=2*n._l23_2a+3*n._l23_a*n._l12_a+n._l12_2a,h=3*n._l23_a*(n._l23_a+n._l12_a);a=(a*d+n._x1*n._l23_2a-r*n._l12_2a)/h,s=(s*d+n._y1*n._l23_2a-e*n._l12_2a)/h}n._context.bezierCurveTo(i,o,a,s,n._x2,n._y2)}function Bee(n,r){this._context=n,this._alpha=r}Bee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){if(r=+r,e=+e,this._point){var i=this._x2-r,o=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(r,e):this._context.moveTo(r,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Oj(this,r,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var B1e=function n(r){function e(i){return r?new Bee(i,r):new xj(i,0)}return e.alpha=function(i){return n(+i)},e}(.5);function Fee(n,r){this._context=n,this._alpha=r}Fee.prototype={areaStart:Mg,areaEnd:Mg,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(r,e){if(r=+r,e=+e,this._point){var i=this._x2-r,o=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=r,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=r,this._y4=e);break;case 2:this._point=3,this._x5=r,this._y5=e;break;default:Oj(this,r,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var F1e=function n(r){function e(i){return r?new Fee(i,r):new Dj(i,0)}return e.alpha=function(i){return n(+i)},e}(.5);function Uee(n,r){this._context=n,this._alpha=r}Uee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(r,e){if(r=+r,e=+e,this._point){var i=this._x2-r,o=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+o*o,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Oj(this,r,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=r,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var U1e=function n(r){function e(i){return r?new Uee(i,r):new Aj(i,0)}return e.alpha=function(i){return n(+i)},e}(.5);function Hee(n){this._context=n}function H1e(n){return new Hee(n)}function jee(n){return n<0?-1:1}function Gee(n,r,e){var i=n._x1-n._x0,o=r-n._x1,a=(n._y1-n._y0)/(i||o<0&&-0),s=(e-n._y1)/(o||i<0&&-0),l=(a*o+s*i)/(i+o);return(jee(a)+jee(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function zee(n,r){var e=n._x1-n._x0;return e?(3*(n._y1-n._y0)/e-r)/2:r}function Ij(n,r,e){var i=n._x0,o=n._y0,a=n._x1,s=n._y1,l=(a-i)/3;n._context.bezierCurveTo(i+l,o+l*r,a-l,s-l*e,a,s)}function ON(n){this._context=n}function Wee(n){this._context=new Vee(n)}function Vee(n){this._context=n}function j1e(n){return new ON(n)}function G1e(n){return new Wee(n)}function Yee(n){this._context=n}function Kee(n){var r,i,e=n.length-1,o=new Array(e),a=new Array(e),s=new Array(e);for(o[0]=0,a[0]=2,s[0]=n[0]+2*n[1],r=1;r=0;--r)o[r]=(s[r]-o[r+1])/a[r];for(a[e-1]=(n[e]+o[e-1])/2,r=0;r1)for(var i,o,s,e=1,a=n[r[0]],l=a.length;e=0;)e[r]=r;return e}function K1e(n,r){return n[r]}function q1e(){var n=gi([]),r=Lw,e=Rw,i=K1e;function o(a){var l,g,s=n.apply(this,arguments),u=a.length,d=s.length,h=new Array(d);for(l=0;l0){for(var e,i,s,o=0,a=n[0].length;o1)for(var e,o,a,s,l,u,i=0,d=n[r[0]].length;i=0?(o[0]=s,o[1]=s+=a):a<0?(o[1]=l,o[0]=l+=a):o[0]=s}function X1e(n,r){if((o=n.length)>0){for(var o,e=0,i=n[r[0]],a=i.length;e0&&(a=(o=n[r[0]]).length)>0){for(var o,a,s,e=0,i=1;i=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(r,e){switch(r=+r,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(r,e):this._context.moveTo(r,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(r,e);else{var i=this._x*(1-this._t)+r*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}}this._x=r,this._y=e}};var Pj=new Date,Rj=new Date;function ys(n,r,e,i){function o(a){return n(a=new Date(+a)),a}return o.floor=o,o.ceil=function(a){return n(a=new Date(a-1)),r(a,1),n(a),a},o.round=function(a){var s=o(a),l=o.ceil(a);return a-s0))return u;do{u.push(d=new Date(+a)),r(a,l),n(a)}while(d=s)for(;n(s),!a(s);)s.setTime(s-1)},function(s,l){if(s>=s)if(l<0)for(;++l<=0;)for(;r(s,-1),!a(s););else for(;--l>=0;)for(;r(s,1),!a(s););})},e&&(o.count=function(a,s){return Pj.setTime(+a),Rj.setTime(+s),n(Pj),n(Rj),Math.floor(e(Pj,Rj))},o.every=function(a){return a=Math.floor(a),isFinite(a)&&a>0?a>1?o.filter(i?function(s){return i(s)%a==0}:function(s){return o.count(0,s)%a==0}):o:null}),o}var PN=ys(function(){},function(n,r){n.setTime(+n+r)},function(n,r){return r-n});PN.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?ys(function(r){r.setTime(Math.floor(r/n)*n)},function(r,e){r.setTime(+r+e*n)},function(r,e){return(e-r)/n}):PN:null};var Qee=PN,Xee=PN.range,M0=6e4,LN=36e5,tte=ys(function(n){n.setTime(n-n.getMilliseconds())},function(n,r){n.setTime(+n+1e3*r)},function(n,r){return(r-n)/1e3},function(n){return n.getUTCSeconds()}),nte=tte,rte=tte.range,ite=ys(function(n){n.setTime(n-n.getMilliseconds()-1e3*n.getSeconds())},function(n,r){n.setTime(+n+r*M0)},function(n,r){return(r-n)/M0},function(n){return n.getMinutes()}),rwe=ite,iwe=ite.range,ote=ys(function(n){n.setTime(n-n.getMilliseconds()-1e3*n.getSeconds()-n.getMinutes()*M0)},function(n,r){n.setTime(+n+r*LN)},function(n,r){return(r-n)/LN},function(n){return n.getHours()}),owe=ote,awe=ote.range,ate=ys(function(n){n.setHours(0,0,0,0)},function(n,r){n.setDate(n.getDate()+r)},function(n,r){return(r-n-(r.getTimezoneOffset()-n.getTimezoneOffset())*M0)/864e5},function(n){return n.getDate()-1}),swe=ate,lwe=ate.range;function S0(n){return ys(function(r){r.setDate(r.getDate()-(r.getDay()+7-n)%7),r.setHours(0,0,0,0)},function(r,e){r.setDate(r.getDate()+7*e)},function(r,e){return(e-r-(e.getTimezoneOffset()-r.getTimezoneOffset())*M0)/6048e5})}var Lj=S0(0),ste=S0(1),lte=S0(2),ute=S0(3),cte=S0(4),dte=S0(5),fte=S0(6),pte=Lj.range,uwe=ste.range,cwe=lte.range,dwe=ute.range,fwe=cte.range,pwe=dte.range,hwe=fte.range,hte=ys(function(n){n.setDate(1),n.setHours(0,0,0,0)},function(n,r){n.setMonth(n.getMonth()+r)},function(n,r){return r.getMonth()-n.getMonth()+12*(r.getFullYear()-n.getFullYear())},function(n){return n.getMonth()}),mwe=hte,_we=hte.range,Zj=ys(function(n){n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,r){n.setFullYear(n.getFullYear()+r)},function(n,r){return r.getFullYear()-n.getFullYear()},function(n){return n.getFullYear()});Zj.every=function(n){return isFinite(n=Math.floor(n))&&n>0?ys(function(r){r.setFullYear(Math.floor(r.getFullYear()/n)*n),r.setMonth(0,1),r.setHours(0,0,0,0)},function(r,e){r.setFullYear(r.getFullYear()+e*n)}):null};var gwe=Zj,vwe=Zj.range,mte=ys(function(n){n.setUTCSeconds(0,0)},function(n,r){n.setTime(+n+r*M0)},function(n,r){return(r-n)/M0},function(n){return n.getUTCMinutes()}),ywe=mte,bwe=mte.range,_te=ys(function(n){n.setUTCMinutes(0,0,0)},function(n,r){n.setTime(+n+r*LN)},function(n,r){return(r-n)/LN},function(n){return n.getUTCHours()}),Cwe=_te,wwe=_te.range,gte=ys(function(n){n.setUTCHours(0,0,0,0)},function(n,r){n.setUTCDate(n.getUTCDate()+r)},function(n,r){return(r-n)/864e5},function(n){return n.getUTCDate()-1}),kwe=gte,Twe=gte.range;function E0(n){return ys(function(r){r.setUTCDate(r.getUTCDate()-(r.getUTCDay()+7-n)%7),r.setUTCHours(0,0,0,0)},function(r,e){r.setUTCDate(r.getUTCDate()+7*e)},function(r,e){return(e-r)/6048e5})}var Nj=E0(0),vte=E0(1),yte=E0(2),bte=E0(3),Cte=E0(4),wte=E0(5),kte=E0(6),Tte=Nj.range,Mwe=vte.range,Swe=yte.range,Ewe=bte.range,xwe=Cte.range,Dwe=wte.range,Awe=kte.range,Mte=ys(function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)},function(n,r){n.setUTCMonth(n.getUTCMonth()+r)},function(n,r){return r.getUTCMonth()-n.getUTCMonth()+12*(r.getUTCFullYear()-n.getUTCFullYear())},function(n){return n.getUTCMonth()}),Owe=Mte,Iwe=Mte.range,Bj=ys(function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,r){n.setUTCFullYear(n.getUTCFullYear()+r)},function(n,r){return r.getUTCFullYear()-n.getUTCFullYear()},function(n){return n.getUTCFullYear()});Bj.every=function(n){return isFinite(n=Math.floor(n))&&n>0?ys(function(r){r.setUTCFullYear(Math.floor(r.getUTCFullYear()/n)*n),r.setUTCMonth(0,1),r.setUTCHours(0,0,0,0)},function(r,e){r.setUTCFullYear(r.getUTCFullYear()+e*n)}):null};var Pwe=Bj,Rwe=Bj.range;function Lwe(n){if(0<=n.y&&n.y<100){var r=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return r.setFullYear(n.y),r}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function ZN(n){if(0<=n.y&&n.y<100){var r=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return r.setUTCFullYear(n.y),r}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function zx(n){return{y:n,m:0,d:1,H:0,M:0,S:0,L:0}}function Ste(n){var r=n.dateTime,e=n.date,i=n.time,o=n.periods,a=n.days,s=n.shortDays,l=n.months,u=n.shortMonths,d=Wx(o),h=Vx(o),g=Wx(a),y=Vx(a),L=Wx(s),z=Vx(s),q=Wx(l),re=Vx(l),ae=Wx(u),Se=Vx(u),Ce={a:function Tn(tr){return s[tr.getDay()]},A:function jn(tr){return a[tr.getDay()]},b:function zn(tr){return u[tr.getMonth()]},B:function ar(tr){return l[tr.getMonth()]},c:null,d:Ate,e:Ate,f:oke,H:nke,I:rke,j:ike,L:Ote,m:ake,M:ske,p:function kr(tr){return o[+(tr.getHours()>=12)]},Q:Lte,s:Zte,S:lke,u:uke,U:cke,V:dke,w:fke,W:pke,x:null,X:null,y:hke,Y:mke,Z:_ke,"%":Rte},Ee={a:function _r(tr){return s[tr.getUTCDay()]},A:function Wr(tr){return a[tr.getUTCDay()]},b:function Hr(tr){return u[tr.getUTCMonth()]},B:function Kr(tr){return l[tr.getUTCMonth()]},c:null,d:Ite,e:Ite,f:bke,H:gke,I:vke,j:yke,L:Pte,m:Cke,M:wke,p:function Ho(tr){return o[+(tr.getUTCHours()>=12)]},Q:Lte,s:Zte,S:kke,u:Tke,U:Mke,V:Ske,w:Eke,W:xke,x:null,X:null,y:Dke,Y:Ake,Z:Oke,"%":Rte},Ke={a:function bt(tr,yr,Mn){var gn=L.exec(yr.slice(Mn));return gn?(tr.w=z[gn[0].toLowerCase()],Mn+gn[0].length):-1},A:function $e(tr,yr,Mn){var gn=g.exec(yr.slice(Mn));return gn?(tr.w=y[gn[0].toLowerCase()],Mn+gn[0].length):-1},b:function Pe(tr,yr,Mn){var gn=ae.exec(yr.slice(Mn));return gn?(tr.m=Se[gn[0].toLowerCase()],Mn+gn[0].length):-1},B:function ct(tr,yr,Mn){var gn=q.exec(yr.slice(Mn));return gn?(tr.m=re[gn[0].toLowerCase()],Mn+gn[0].length):-1},c:function Bt(tr,yr,Mn){return it(tr,r,yr,Mn)},d:xte,e:xte,f:Xwe,H:Dte,I:Dte,j:Kwe,L:Qwe,m:Ywe,M:qwe,p:function ft(tr,yr,Mn){var gn=d.exec(yr.slice(Mn));return gn?(tr.p=h[gn[0].toLowerCase()],Mn+gn[0].length):-1},Q:eke,s:tke,S:Jwe,u:Uwe,U:Hwe,V:jwe,w:Fwe,W:Gwe,x:function Ht(tr,yr,Mn){return it(tr,e,yr,Mn)},X:function Pt(tr,yr,Mn){return it(tr,i,yr,Mn)},y:Wwe,Y:zwe,Z:Vwe,"%":$we};function st(tr,yr){return function(Mn){var Nn,rr,gr,gn=[],nr=-1,un=0,bn=tr.length;for(Mn instanceof Date||(Mn=new Date(+Mn));++nr53)return null;"w"in gn||(gn.w=1),"Z"in gn?(bn=(un=ZN(zx(gn.y))).getUTCDay(),un=bn>4||0===bn?C0.ceil(un):C0(un),un=Ix.offset(un,7*(gn.V-1)),gn.y=un.getUTCFullYear(),gn.m=un.getUTCMonth(),gn.d=un.getUTCDate()+(gn.w+6)%7):(bn=(un=yr(zx(gn.y))).getDay(),un=bn>4||0===bn?y0.ceil(un):y0(un),un=Ox.offset(un,7*(gn.V-1)),gn.y=un.getFullYear(),gn.m=un.getMonth(),gn.d=un.getDate()+(gn.w+6)%7)}else("W"in gn||"U"in gn)&&("w"in gn||(gn.w="u"in gn?gn.u%7:"W"in gn?1:0),bn="Z"in gn?ZN(zx(gn.y)).getUTCDay():yr(zx(gn.y)).getDay(),gn.m=0,gn.d="W"in gn?(gn.w+6)%7+7*gn.W-(bn+5)%7:gn.w+7*gn.U-(bn+6)%7);return"Z"in gn?(gn.H+=gn.Z/100|0,gn.M+=gn.Z%100,ZN(gn)):yr(gn)}}function it(tr,yr,Mn,gn){for(var Nn,rr,nr=0,un=yr.length,bn=Mn.length;nr=bn)return-1;if(37===(Nn=yr.charCodeAt(nr++))){if(Nn=yr.charAt(nr++),!(rr=Ke[Nn in Ete?yr.charAt(nr++):Nn])||(gn=rr(tr,Mn,gn))<0)return-1}else if(Nn!=Mn.charCodeAt(gn++))return-1}return gn}return Ce.x=st(e,Ce),Ce.X=st(i,Ce),Ce.c=st(r,Ce),Ee.x=st(e,Ee),Ee.X=st(i,Ee),Ee.c=st(r,Ee),{format:function(yr){var Mn=st(yr+="",Ce);return Mn.toString=function(){return yr},Mn},parse:function(yr){var Mn=De(yr+="",Lwe);return Mn.toString=function(){return yr},Mn},utcFormat:function(yr){var Mn=st(yr+="",Ee);return Mn.toString=function(){return yr},Mn},utcParse:function(yr){var Mn=De(yr,ZN);return Mn.toString=function(){return yr},Mn}}}var Zw,Nte,Bte,Fj,Uj,Ete={"-":"",_:" ",0:"0"},ll=/^\s*\d+/,Zwe=/^%/,Nwe=/[\\^$*+?|[\]().{}]/g;function vo(n,r,e){var i=n<0?"-":"",o=(i?-n:n)+"",a=o.length;return i+(a68?1900:2e3),e+i[0].length):-1}function Vwe(n,r,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(r.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function Ywe(n,r,e){var i=ll.exec(r.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function xte(n,r,e){var i=ll.exec(r.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function Kwe(n,r,e){var i=ll.exec(r.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function Dte(n,r,e){var i=ll.exec(r.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function qwe(n,r,e){var i=ll.exec(r.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function Jwe(n,r,e){var i=ll.exec(r.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function Qwe(n,r,e){var i=ll.exec(r.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function Xwe(n,r,e){var i=ll.exec(r.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function $we(n,r,e){var i=Zwe.exec(r.slice(e,e+1));return i?e+i[0].length:-1}function eke(n,r,e){var i=ll.exec(r.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function tke(n,r,e){var i=ll.exec(r.slice(e));return i?(n.Q=1e3*+i[0],e+i[0].length):-1}function Ate(n,r){return vo(n.getDate(),r,2)}function nke(n,r){return vo(n.getHours(),r,2)}function rke(n,r){return vo(n.getHours()%12||12,r,2)}function ike(n,r){return vo(1+Ox.count(Vd(n),n),r,3)}function Ote(n,r){return vo(n.getMilliseconds(),r,3)}function oke(n,r){return Ote(n,r)+"000"}function ake(n,r){return vo(n.getMonth()+1,r,2)}function ske(n,r){return vo(n.getMinutes(),r,2)}function lke(n,r){return vo(n.getSeconds(),r,2)}function uke(n){var r=n.getDay();return 0===r?7:r}function cke(n,r){return vo(mN.count(Vd(n),n),r,2)}function dke(n,r){var e=n.getDay();return n=e>=4||0===e?om(n):om.ceil(n),vo(om.count(Vd(n),n)+(4===Vd(n).getDay()),r,2)}function fke(n){return n.getDay()}function pke(n,r){return vo(y0.count(Vd(n),n),r,2)}function hke(n,r){return vo(n.getFullYear()%100,r,2)}function mke(n,r){return vo(n.getFullYear()%1e4,r,4)}function _ke(n){var r=n.getTimezoneOffset();return(r>0?"-":(r*=-1,"+"))+vo(r/60|0,"0",2)+vo(r%60,"0",2)}function Ite(n,r){return vo(n.getUTCDate(),r,2)}function gke(n,r){return vo(n.getUTCHours(),r,2)}function vke(n,r){return vo(n.getUTCHours()%12||12,r,2)}function yke(n,r){return vo(1+Ix.count(Yd(n),n),r,3)}function Pte(n,r){return vo(n.getUTCMilliseconds(),r,3)}function bke(n,r){return Pte(n,r)+"000"}function Cke(n,r){return vo(n.getUTCMonth()+1,r,2)}function wke(n,r){return vo(n.getUTCMinutes(),r,2)}function kke(n,r){return vo(n.getUTCSeconds(),r,2)}function Tke(n){var r=n.getUTCDay();return 0===r?7:r}function Mke(n,r){return vo(gN.count(Yd(n),n),r,2)}function Ske(n,r){var e=n.getUTCDay();return n=e>=4||0===e?am(n):am.ceil(n),vo(am.count(Yd(n),n)+(4===Yd(n).getUTCDay()),r,2)}function Eke(n){return n.getUTCDay()}function xke(n,r){return vo(C0.count(Yd(n),n),r,2)}function Dke(n,r){return vo(n.getUTCFullYear()%100,r,2)}function Ake(n,r){return vo(n.getUTCFullYear()%1e4,r,4)}function Oke(){return"+0000"}function Rte(){return"%"}function Lte(n){return+n}function Zte(n){return Math.floor(+n/1e3)}function Fte(n){return Zw=Ste(n),Nte=Zw.format,Bte=Zw.parse,Fj=Zw.utcFormat,Uj=Zw.utcParse,Zw}Fte({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Ute="%Y-%m-%dT%H:%M:%S.%LZ";var Pke=Date.prototype.toISOString?function Ike(n){return n.toISOString()}:Fj(Ute),Rke=Pke;var Zke=+new Date("2000-01-01T00:00:00.000Z")?function Lke(n){var r=new Date(n);return isNaN(r)?null:r}:Uj(Ute),Nke=Zke;function Bke(n,r,e){var i=new QE,o=r;return null==r?(i.restart(n,r,e),i):(r=+r,e=null==e?hg():+e,i.restart(function a(s){s+=o,i.restart(a,o+=r,e),n(s)},r,e),i)}function Fke(){}function Hj(n){return null==n?Fke:function(){return this.querySelector(n)}}function Hke(){return[]}function Hte(n){return null==n?Hke:function(){return this.querySelectorAll(n)}}function jte(n){return function(){return this.matches(n)}}function Gte(n){return new Array(n.length)}function NN(n,r){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=r}NN.prototype={constructor:NN,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,e){return this._parent.insertBefore(r,e)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function Vke(n,r,e,i,o,a){for(var l,s=0,u=r.length,d=a.length;sr?1:n>=r?0:NaN}var jj="http://www.w3.org/1999/xhtml",Wte={svg:"http://www.w3.org/2000/svg",xhtml:jj,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function BN(n){var r=n+="",e=r.indexOf(":");return e>=0&&"xmlns"!==(r=n.slice(0,e))&&(n=n.slice(e+1)),Wte.hasOwnProperty(r)?{space:Wte[r],local:n}:n}function sTe(n){return function(){this.removeAttribute(n)}}function lTe(n){return function(){this.removeAttributeNS(n.space,n.local)}}function uTe(n,r){return function(){this.setAttribute(n,r)}}function cTe(n,r){return function(){this.setAttributeNS(n.space,n.local,r)}}function dTe(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function fTe(n,r){return function(){var e=r.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function Vte(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function hTe(n){return function(){this.style.removeProperty(n)}}function mTe(n,r,e){return function(){this.style.setProperty(n,r,e)}}function _Te(n,r,e){return function(){var i=r.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Nw(n,r){return n.style.getPropertyValue(r)||Vte(n).getComputedStyle(n,null).getPropertyValue(r)}function vTe(n){return function(){delete this[n]}}function yTe(n,r){return function(){this[n]=r}}function bTe(n,r){return function(){var e=r.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function Yte(n){return n.trim().split(/^|\s+/)}function Gj(n){return n.classList||new Kte(n)}function Kte(n){this._node=n,this._names=Yte(n.getAttribute("class")||"")}function qte(n,r){for(var e=Gj(n),i=-1,o=r.length;++i=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};var Xte={},x0=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Xte={mouseenter:"mouseover",mouseleave:"mouseout"}));function JTe(n,r,e){return n=$te(n,r,e),function(i){var o=i.relatedTarget;(!o||o!==this&&!(8&o.compareDocumentPosition(this)))&&n.call(this,i)}}function $te(n,r,e){return function(i){var o=x0;x0=i;try{n.call(this,this.__data__,r,e)}finally{x0=o}}}function QTe(n){return n.trim().split(/^|\s+/).map(function(r){var e="",i=r.indexOf(".");return i>=0&&(e=r.slice(i+1),r=r.slice(0,i)),{type:r,name:e}})}function XTe(n){return function(){var r=this.__on;if(r){for(var a,e=0,i=-1,o=r.length;e=Ce&&(Ce=Se+1);!(Ke=re[Ce])&&++Ce=0;)(s=i[o])&&(a&&4^s.compareDocumentPosition(a)&&a.parentNode.insertBefore(s,a),a=s);return this},sort:function $ke(n){function r(g,y){return g&&y?n(g.__data__,y.__data__):!g-!y}n||(n=eTe);for(var e=this._groups,i=e.length,o=new Array(i),a=0;a1?this.each((null==r?hTe:"function"==typeof r?_Te:mTe)(n,r,null==e?"":e)):Nw(this.node(),n)},property:function CTe(n,r){return arguments.length>1?this.each((null==r?vTe:"function"==typeof r?bTe:yTe)(n,r)):this.node()[n]},classed:function MTe(n,r){var e=Yte(n+"");if(arguments.length<2){for(var i=Gj(this.node()),o=-1,a=e.length;++o0)throw new Error("too late; already scheduled");return e}function D0(n,r){var e=qd(n,r);if(e.state>2)throw new Error("too late; already started");return e}function qd(n,r){var e=n.__transition;if(!e||!(e=e[r]))throw new Error("transition not found");return e}function ine(n,r){var i,o,s,e=n.__transition,a=!0;if(e){for(s in r=null==r?null:r+"",e)(i=e[s]).name===r?(o=i.state>2&&i.state<5,i.state=6,i.timer.stop(),o&&i.on.call("interrupt",n,n.__data__,i.index,i.group),delete e[s]):a=!1;a&&delete n.__transition}}function Sg(n,r){return n=+n,r=+r,function(e){return n*(1-e)+r*e}}var Kx,qj,sne,jN,one=180/Math.PI,Kj={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ane(n,r,e,i,o,a){var s,l,u;return(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s),(u=n*e+r*i)&&(e-=n*u,i-=r*u),(l=Math.sqrt(e*e+i*i))&&(e/=l,i/=l,u/=l),n*i180?h+=360:h-d>180&&(d+=360),y.push({i:g.push(o(g)+"rotate(",null,i)-2,x:Sg(d,h)})):h&&g.push(o(g)+"rotate("+h+i)}(d.rotate,h.rotate,g,y),function l(d,h,g,y){d!==h?y.push({i:g.push(o(g)+"skewX(",null,i)-2,x:Sg(d,h)}):h&&g.push(o(g)+"skewX("+h+i)}(d.skewX,h.skewX,g,y),function u(d,h,g,y,L,z){if(d!==g||h!==y){var q=L.push(o(L)+"scale(",null,",",null,")");z.push({i:q-4,x:Sg(d,g)},{i:q-2,x:Sg(h,y)})}else(1!==g||1!==y)&&L.push(o(L)+"scale("+g+","+y+")")}(d.scaleX,d.scaleY,h.scaleX,h.scaleY,g,y),d=h=null,function(L){for(var re,z=-1,q=y.length;++z>8&15|r>>4&240,r>>4&15|240&r,(15&r)<<4|15&r,1):8===e?zN(r>>24&255,r>>16&255,r>>8&255,(255&r)/255):4===e?zN(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|240&r,((15&r)<<4|15&r)/255):null):(r=gMe.exec(n))?new bc(r[1],r[2],r[3],1):(r=vMe.exec(n))?new bc(255*r[1]/100,255*r[2]/100,255*r[3]/100,1):(r=yMe.exec(n))?zN(r[1],r[2],r[3],r[4]):(r=bMe.exec(n))?zN(255*r[1]/100,255*r[2]/100,255*r[3]/100,r[4]):(r=CMe.exec(n))?_ne(r[1],r[2]/100,r[3]/100,1):(r=wMe.exec(n))?_ne(r[1],r[2]/100,r[3]/100,r[4]):cne.hasOwnProperty(n)?pne(cne[n]):"transparent"===n?new bc(NaN,NaN,NaN,0):null}function pne(n){return new bc(n>>16&255,n>>8&255,255&n,1)}function zN(n,r,e,i){return i<=0&&(n=r=e=NaN),new bc(n,r,e,i)}function TMe(n){return n instanceof qx||(n=Xx(n)),n?new bc((n=n.rgb()).r,n.g,n.b,n.opacity):new bc}function WN(n,r,e,i){return 1===arguments.length?TMe(n):new bc(n,r,e,null==i?1:i)}function bc(n,r,e,i){this.r=+n,this.g=+r,this.b=+e,this.opacity=+i}function hne(){return"#"+Xj(this.r)+Xj(this.g)+Xj(this.b)}function mne(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function Xj(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function _ne(n,r,e,i){return i<=0?n=r=e=NaN:e<=0||e>=1?n=r=NaN:r<=0&&(n=NaN),new wp(n,r,e,i)}function gne(n){if(n instanceof wp)return new wp(n.h,n.s,n.l,n.opacity);if(n instanceof qx||(n=Xx(n)),!n)return new wp;if(n instanceof wp)return n;var r=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,o=Math.min(r,e,i),a=Math.max(r,e,i),s=NaN,l=a-o,u=(a+o)/2;return l?(s=r===a?(e-i)/l+6*(e0&&u<1?0:s,new wp(s,l,u,n.opacity)}function wp(n,r,e,i){this.h=+n,this.s=+r,this.l=+e,this.opacity=+i}function $j(n,r,e){return 255*(n<60?r+(e-r)*n/60:n<180?e:n<240?r+(e-r)*(240-n)/60:r)}function vne(n,r,e,i,o){var a=n*n,s=a*n;return((1-3*n+3*a-s)*r+(4-6*a+3*s)*e+(1+3*n+3*a-3*s)*i+s*o)/6}function yne(n){return function(){return n}}function bne(n,r){return function(e){return n+e*r}}function DMe(n){return 1==(n=+n)?Cne:function(r,e){return e-r?function xMe(n,r,e){return n=Math.pow(n,e),r=Math.pow(r,e)-n,e=1/e,function(i){return Math.pow(n+i*r,e)}}(r,e,n):yne(isNaN(r)?e:r)}}function Cne(n,r){var e=r-n;return e?bne(n,e):yne(isNaN(n)?r:n)}Qj(qx,Xx,{copy:function(r){return Object.assign(new this.constructor,this,r)},displayable:function(){return this.rgb().displayable()},hex:dne,formatHex:dne,formatHsl:function kMe(){return gne(this).formatHsl()},formatRgb:fne,toString:fne}),Qj(bc,WN,une(qx,{brighter:function(r){return r=null==r?GN:Math.pow(GN,r),new bc(this.r*r,this.g*r,this.b*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new bc(this.r*r,this.g*r,this.b*r,this.opacity)},rgb:function(){return this},displayable:function(){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:hne,formatHex:hne,formatRgb:mne,toString:mne})),Qj(wp,function MMe(n,r,e,i){return 1===arguments.length?gne(n):new wp(n,r,e,null==i?1:i)},une(qx,{brighter:function(r){return r=null==r?GN:Math.pow(GN,r),new wp(this.h,this.s,this.l*r,this.opacity)},darker:function(r){return r=null==r?.7:Math.pow(.7,r),new wp(this.h,this.s,this.l*r,this.opacity)},rgb:function(){var r=this.h%360+360*(this.h<0),e=isNaN(r)||isNaN(this.s)?0:this.s,i=this.l,o=i+(i<.5?i:1-i)*e,a=2*i-o;return new bc($j(r>=240?r-240:r+120,a,o),$j(r,a,o),$j(r<120?r+240:r-120,a,o),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var r=this.opacity;return(1===(r=isNaN(r)?1:Math.max(0,Math.min(1,r)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===r?")":", "+r+")")}}));var wne=function n(r){var e=DMe(r);function i(o,a){var s=e((o=WN(o)).r,(a=WN(a)).r),l=e(o.g,a.g),u=e(o.b,a.b),d=Cne(o.opacity,a.opacity);return function(h){return o.r=s(h),o.g=l(h),o.b=u(h),o.opacity=d(h),o+""}}return i.gamma=n,i}(1);function kne(n){return function(r){var s,l,e=r.length,i=new Array(e),o=new Array(e),a=new Array(e);for(s=0;s=1?(e=1,r-1):Math.floor(e*r),o=n[i],a=n[i+1],s=i>0?n[i-1]:2*o-a,l=ie&&(a=r.slice(e,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,u.push({i:s,x:Sg(i,o)})),e=tG.lastIndex;return e=0&&(r=r.slice(0,e)),!r||"start"===r})}(r)?Yj:D0;return function(){var s=a(this,n),l=s.on;l!==i&&(o=(i=l).copy()).on(r,e),s.on=o}}var aSe=Yx.prototype.constructor;function pSe(n,r,e){function i(){var o=this,a=r.apply(o,arguments);return a&&function(s){o.style.setProperty(n,a(s),e)}}return i._value=r,i}var ySe=0;function kp(n,r,e,i){this._groups=n,this._parents=r,this._name=e,this._id=i}function Mne(n){return Yx().transition(n)}function Sne(){return++ySe}var Fw=Yx.prototype;kp.prototype=Mne.prototype={constructor:kp,select:function iSe(n){var r=this._name,e=this._id;"function"!=typeof n&&(n=Hj(n));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s1&&i.name===r)return new kp([[n]],wSe,r,+o);return null}function Ene(n){return function(){return n}}function TSe(n){return n[0]}function MSe(n){return n[1]}function rG(){this._=null}function VN(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function $x(n,r){var e=r,i=r.R,o=e.U;o?o.L===e?o.L=i:o.R=i:n._=i,i.U=o,e.U=i,e.R=i.L,e.R&&(e.R.U=e),i.L=e}function eD(n,r){var e=r,i=r.L,o=e.U;o?o.L===e?o.L=i:o.R=i:n._=i,i.U=o,e.U=i,e.L=i.R,e.L&&(e.L.U=e),i.R=e}function xne(n){for(;n.L;)n=n.L;return n}rG.prototype={constructor:rG,insert:function(r,e){var i,o,a;if(r){if(e.P=r,e.N=r.N,r.N&&(r.N.P=e),r.N=e,r.R){for(r=r.R;r.L;)r=r.L;r.L=e}else r.R=e;i=r}else this._?(r=xne(this._),e.P=null,e.N=r,r.P=r.L=e,i=r):(e.P=e.N=null,this._=e,i=null);for(e.L=e.R=null,e.U=i,e.C=!0,r=e;i&&i.C;)i===(o=i.U).L?(a=o.R)&&a.C?(i.C=a.C=!1,o.C=!0,r=o):(r===i.R&&($x(this,i),i=(r=i).U),i.C=!1,o.C=!0,eD(this,o)):(a=o.L)&&a.C?(i.C=a.C=!1,o.C=!0,r=o):(r===i.L&&(eD(this,i),i=(r=i).U),i.C=!1,o.C=!0,$x(this,o)),i=r.U;this._.C=!1},remove:function(r){r.N&&(r.N.P=r.P),r.P&&(r.P.N=r.N),r.N=r.P=null;var i,s,l,e=r.U,o=r.L,a=r.R;if(s=o?a?xne(a):o:a,e?e.L===r?e.L=s:e.R=s:this._=s,o&&a?(l=s.C,s.C=r.C,s.L=o,o.U=s,s!==a?(e=s.U,s.U=r.U,r=s.R,e.L=r,s.R=a,a.U=s):(s.U=e,e=s,r=s.R)):(l=r.C,r=s),r&&(r.U=e),!l){if(r&&r.C)return void(r.C=!1);do{if(r===this._)break;if(r===e.L){if((i=e.R).C&&(i.C=!1,e.C=!0,$x(this,e),i=e.R),i.L&&i.L.C||i.R&&i.R.C){(!i.R||!i.R.C)&&(i.L.C=!1,i.C=!0,eD(this,i),i=e.R),i.C=e.C,e.C=i.R.C=!1,$x(this,e),r=this._;break}}else if((i=e.L).C&&(i.C=!1,e.C=!0,eD(this,e),i=e.L),i.L&&i.L.C||i.R&&i.R.C){(!i.L||!i.L.C)&&(i.R.C=!1,i.C=!0,$x(this,i),i=e.L),i.C=e.C,e.C=i.L.C=!1,eD(this,e),r=this._;break}i.C=!0,r=e,e=e.U}while(!r.C);r&&(r.C=!1)}}};var Dne=rG;function tD(n,r,e,i){var o=[null,null],a=Sl.push(o)-1;return o.left=n,o.right=r,e&&YN(o,n,r,e),i&&YN(o,r,n,i),Cc[n.index].halfedges.push(a),Cc[r.index].halfedges.push(a),o}function nD(n,r,e){var i=[r,e];return i.left=n,i}function YN(n,r,e,i){n[0]||n[1]?n.left===e?n[1]=i:n[0]=i:(n[0]=i,n.left=r,n.right=e)}function SSe(n,r,e,i,o){var q,a=n[0],s=n[1],l=a[0],u=a[1],g=0,y=1,L=s[0]-l,z=s[1]-u;if(q=r-l,L||!(q>0)){if(q/=L,L<0){if(q0){if(q>y)return;q>g&&(g=q)}if(q=i-l,L||!(q<0)){if(q/=L,L<0){if(q>y)return;q>g&&(g=q)}else if(L>0){if(q0)){if(q/=z,z<0){if(q0){if(q>y)return;q>g&&(g=q)}if(q=o-u,z||!(q<0)){if(q/=z,z<0){if(q>y)return;q>g&&(g=q)}else if(z>0){if(q0)&&!(y<1)||(g>0&&(n[0]=[l+g*L,u+g*z]),y<1&&(n[1]=[l+y*L,u+y*z])),!0}}}}}function ESe(n,r,e,i,o){var a=n[1];if(a)return!0;var q,re,s=n[0],l=n.left,u=n.right,d=l[0],h=l[1],g=u[0],y=u[1],L=(d+g)/2,z=(h+y)/2;if(y===h){if(L=i)return;if(d>g){if(s){if(s[1]>=o)return}else s=[L,e];a=[L,o]}else{if(s){if(s[1]1)if(d>g){if(s){if(s[1]>=o)return}else s=[(e-re)/q,e];a=[(o-re)/q,o]}else{if(s){if(s[1]=i)return}else s=[r,q*r+re];a=[i,q*i+re]}else{if(s){if(s[0]=-FSe)){var L=u*u+d*d,z=h*h+g*g,q=(g*L-d*z)/y,re=(u*z-h*L)/y,ae=One.pop()||new RSe;ae.arc=n,ae.site=o,ae.x=q+s,ae.y=(ae.cy=re+l)+Math.sqrt(q*q+re*re),n.circle=ae;for(var Se=null,Ce=rD._;Ce;)if(ae.yyo)l=l.L;else{if(!((s=r-BSe(l,e))>yo)){a>-yo?(i=l.P,o=l):s>-yo?(i=l,o=l.N):i=o=l;break}if(!l.R){i=l;break}l=l.R}!function DSe(n){return Cc[n.index]={site:n,halfedges:[]}}(n);var u=Pne(n);if(jw.insert(i,u),i||o){if(i===o)return Hw(i),o=Pne(i.site),jw.insert(u,o),u.edge=o.edge=tD(i.site,u.site),Uw(i),void Uw(o);if(!o)return void(u.edge=tD(i.site,u.site));Hw(i),Hw(o);var d=i.site,h=d[0],g=d[1],y=n[0]-h,L=n[1]-g,z=o.site,q=z[0]-h,re=z[1]-g,ae=2*(y*re-L*q),Se=y*y+L*L,Ce=q*q+re*re,Ee=[(re*Se-L*Ce)/ae+h,(y*Ce-q*Se)/ae+g];YN(o.edge,d,z,Ee),u.edge=tD(d,n,null,Ee),o.edge=tD(n,z,null,Ee),Uw(i),Uw(o)}}function Rne(n,r){var e=n.site,i=e[0],o=e[1],a=o-r;if(!a)return i;var s=n.P;if(!s)return-1/0;var l=(e=s.site)[0],u=e[1],d=u-r;if(!d)return l;var h=l-i,g=1/a-1/d,y=h/d;return g?(-y+Math.sqrt(y*y-2*g*(h*h/(-2*d)-u+d/2+o-a/2)))/g+i:(i+l)/2}function BSe(n,r){var e=n.N;if(e)return Rne(e,r);var i=n.site;return i[1]===r?i[0]:1/0}var jw,Cc,rD,Sl,yo=1e-6,FSe=1e-12;function USe(n,r,e){return(n[0]-e[0])*(r[1]-n[1])-(n[0]-r[0])*(e[1]-n[1])}function HSe(n,r){return r[1]-n[1]||r[0]-n[0]}function aG(n,r){var i,o,a,e=n.sort(HSe).pop();for(Sl=[],Cc=new Array(n.length),jw=new Dne,rD=new Dne;;)if(a=iG,e&&(!a||e[1]yo||Math.abs(a[0][1]-a[1][1])>yo)||delete Sl[o]})(s,l,u,d),function PSe(n,r,e,i){var a,s,l,u,d,h,g,y,L,z,q,re,o=Cc.length,ae=!0;for(a=0;ayo||Math.abs(re-L)>yo)&&(d.splice(u,0,Sl.push(nD(l,z,Math.abs(q-n)yo?[n,Math.abs(y-n)yo?[Math.abs(L-i)yo?[e,Math.abs(y-e)yo?[Math.abs(L-r)=l)return null;var d=r-u.site[0],h=e-u.site[1],g=d*d+h*h;do{u=o.cells[a=s],s=null,u.halfedges.forEach(function(y){var L=o.edges[y],z=L.left;if(z!==u.site&&z||(z=L.right)){var q=r-z[0],re=e-z[1],ae=q*q+re*re;aei?(i+o)/2:Math.min(0,i)||Math.max(0,o),s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s))}function Fne(){var h,g,n=KSe,r=qSe,e=XSe,i=JSe,o=QSe,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],l=250,u=VSe,d=t0("start","zoom","end"),y=500,z=0;function q(Pe){Pe.property("__zoom",Bne).on("wheel.zoom",st).on("mousedown.zoom",De).on("dblclick.zoom",it).filter(o).on("touchstart.zoom",ft).on("touchmove.zoom",bt).on("touchend.zoom touchcancel.zoom",$e).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function re(Pe,ct){return(ct=Math.max(a[0],Math.min(a[1],ct)))===Pe.k?Pe:new um(ct,Pe.x,Pe.y)}function ae(Pe,ct,Bt){var Ht=ct[0]-Bt[0]*Pe.k,Pt=ct[1]-Bt[1]*Pe.k;return Ht===Pe.x&&Pt===Pe.y?Pe:new um(Pe.k,Ht,Pt)}function Se(Pe){return[(+Pe[0][0]+ +Pe[1][0])/2,(+Pe[0][1]+ +Pe[1][1])/2]}function Ce(Pe,ct,Bt){Pe.on("start.zoom",function(){Ee(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){Ee(this,arguments).end()}).tween("zoom",function(){var Ht=this,Pt=arguments,Tn=Ee(Ht,Pt),jn=r.apply(Ht,Pt),zn=Bt||Se(jn),ar=Math.max(jn[1][0]-jn[0][0],jn[1][1]-jn[0][1]),kr=Ht.__zoom,_r="function"==typeof ct?ct.apply(Ht,Pt):ct,Wr=u(kr.invert(zn).concat(ar/kr.k),_r.invert(zn).concat(ar/_r.k));return function(Hr){if(1===Hr)Hr=_r;else{var Kr=Wr(Hr),Ho=ar/Kr[2];Hr=new um(Ho,zn[0]-Kr[0]*Ho,zn[1]-Kr[1]*Ho)}Tn.zoom(null,Hr)}})}function Ee(Pe,ct,Bt){return!Bt&&Pe.__zooming||new Ke(Pe,ct)}function Ke(Pe,ct){this.that=Pe,this.args=ct,this.active=0,this.extent=r.apply(Pe,ct),this.taps=0}function st(){if(n.apply(this,arguments)){var Pe=Ee(this,arguments),ct=this.__zoom,Bt=Math.max(a[0],Math.min(a[1],ct.k*Math.pow(2,i.apply(this,arguments)))),Ht=Fd(this);ct.k!==Bt&&(Pe.wheel?((Pe.mouse[0][0]!==Ht[0]||Pe.mouse[0][1]!==Ht[1])&&(Pe.mouse[1]=ct.invert(Pe.mouse[0]=Ht)),clearTimeout(Pe.wheel)):(Pe.mouse=[Ht,ct.invert(Ht)],aw(this),Pe.start()),oD(),Pe.wheel=setTimeout(Pt,150),Pe.zoom("mouse",e(ae(re(ct,Bt),Pe.mouse[0],Pe.mouse[1]),Pe.extent,s)))}function Pt(){Pe.wheel=null,Pe.end()}}function De(){if(!g&&n.apply(this,arguments)){var Pe=Ee(this,arguments,!0),ct=Ci(Ln.view).on("mousemove.zoom",Tn,!0).on("mouseup.zoom",jn,!0),Bt=Fd(this),Ht=Ln.clientX,Pt=Ln.clientY;ZL(Ln.view),lG(),Pe.mouse=[Bt,this.__zoom.invert(Bt)],aw(this),Pe.start()}function Tn(){if(oD(),!Pe.moved){var zn=Ln.clientX-Ht,ar=Ln.clientY-Pt;Pe.moved=zn*zn+ar*ar>z}Pe.zoom("mouse",e(ae(Pe.that.__zoom,Pe.mouse[0]=Fd(Pe.that),Pe.mouse[1]),Pe.extent,s))}function jn(){ct.on("mousemove.zoom mouseup.zoom",null),NL(Ln.view,Pe.moved),oD(),Pe.end()}}function it(){if(n.apply(this,arguments)){var Pe=this.__zoom,ct=Fd(this),Bt=Pe.invert(ct),Ht=Pe.k*(Ln.shiftKey?.5:2),Pt=e(ae(re(Pe,Ht),ct,Bt),r.apply(this,arguments),s);oD(),l>0?Ci(this).transition().duration(l).call(Ce,Pt,ct):Ci(this).call(q.transform,Pt)}}function ft(){if(n.apply(this,arguments)){var Ht,Pt,Tn,jn,Pe=Ln.touches,ct=Pe.length,Bt=Ee(this,arguments,Ln.changedTouches.length===ct);for(lG(),Pt=0;Pt=0;l--)(s=n[l])&&(a=(o<3?s(a):o>3?s(r,e,a):s(r,e))||a);return o>3&&a&&Object.defineProperty(r,e,a),a}([(0,t.GSi)(),function(n,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(n,r)}("design:paramtypes",[])],uG);var Tp=m(8723);function tEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"linearGradient"),t._UZ(1,"stop",5)(2,"stop",6),t.qZA()),2&n){var e=t.oxw(2);t.uIk("id",e.svg.outerLinearGradient.id),t.xp6(1),t.uIk("stop-color",e.svg.outerLinearGradient.colorStop1)("stop-opacity",1),t.xp6(1),t.uIk("stop-color",e.svg.outerLinearGradient.colorStop2)("stop-opacity",1)}}function nEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"radialGradient"),t._UZ(1,"stop",5)(2,"stop",6),t.qZA()),2&n){var e=t.oxw(2);t.uIk("id",e.svg.radialGradient.id),t.xp6(1),t.uIk("stop-color",e.svg.radialGradient.colorStop1)("stop-opacity",1),t.xp6(1),t.uIk("stop-color",e.svg.radialGradient.colorStop2)("stop-opacity",1)}}function rEe(n,r){if(1&n&&(t.O4$(),t._UZ(0,"circle")),2&n){var e=t.oxw(3);t.uIk("cx",e.svg.backgroundCircle.cx)("cy",e.svg.backgroundCircle.cy)("r",e.svg.backgroundCircle.r)("fill",e.svg.backgroundCircle.fill)("fill-opacity",e.svg.backgroundCircle.fillOpacity)("stroke",e.svg.backgroundCircle.stroke)("stroke-width",e.svg.backgroundCircle.strokeWidth)}}function iEe(n,r){if(1&n&&(t.O4$(),t._UZ(0,"circle")),2&n){var e=t.oxw(3);t.zWS("fill","url(",e.window.location.href,"#",e.svg.radialGradient.id,")"),t.uIk("cx",e.svg.backgroundCircle.cx)("cy",e.svg.backgroundCircle.cy)("r",e.svg.backgroundCircle.r)("fill-opacity",e.svg.backgroundCircle.fillOpacity)("stroke",e.svg.backgroundCircle.stroke)("stroke-width",e.svg.backgroundCircle.strokeWidth)}}function oEe(n,r){if(1&n&&(t.O4$(),t.ynx(0),t.YNc(1,rEe,1,7,"circle",2),t.YNc(2,iEe,1,8,"circle",2),t.BQk()),2&n){var e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!e.options.backgroundGradient),t.xp6(1),t.Q6J("ngIf",e.options.backgroundGradient)}}function aEe(n,r){if(1&n&&(t.O4$(),t._UZ(0,"circle")),2&n){var e=t.oxw(2);t.uIk("cx",e.svg.circle.cx)("cy",e.svg.circle.cy)("r",e.svg.circle.r)("fill",e.svg.circle.fill)("stroke",e.svg.circle.stroke)("stroke-width",e.svg.circle.strokeWidth)}}function sEe(n,r){if(1&n&&(t.O4$(),t._UZ(0,"path")),2&n){var e=t.oxw(3);t.uIk("d",e.svg.path.d)("stroke",e.svg.path.stroke)("stroke-width",e.svg.path.strokeWidth)("stroke-linecap",e.svg.path.strokeLinecap)("fill",e.svg.path.fill)}}function lEe(n,r){if(1&n&&(t.O4$(),t._UZ(0,"path")),2&n){var e=t.oxw(3);t.zWS("stroke","url(",e.window.location.href,"#",e.svg.outerLinearGradient.id,")"),t.uIk("d",e.svg.path.d)("stroke-width",e.svg.path.strokeWidth)("stroke-linecap",e.svg.path.strokeLinecap)("fill",e.svg.path.fill)}}function uEe(n,r){if(1&n&&(t.O4$(),t.ynx(0),t.YNc(1,sEe,1,5,"path",2),t.YNc(2,lEe,1,6,"path",2),t.BQk()),2&n){var e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!e.options.outerStrokeGradient),t.xp6(1),t.Q6J("ngIf",e.options.outerStrokeGradient)}}function cEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"tspan"),t._uU(1),t.qZA()),2&n){var e=r.$implicit,i=t.oxw(4);t.uIk("x",i.svg.title.x)("y",i.svg.title.y)("dy",e.dy)("font-size",i.svg.title.fontSize)("font-weight",i.svg.title.fontWeight)("fill",i.svg.title.color),t.xp6(1),t.Oqu(e.span)}}function dEe(n,r){if(1&n&&(t.O4$(),t.ynx(0),t.YNc(1,cEe,2,7,"tspan",8),t.BQk()),2&n){var e=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",e.svg.title.tspans)}}function fEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"tspan"),t._uU(1),t.qZA()),2&n){var e=t.oxw(3);t.uIk("font-size",e.svg.units.fontSize)("font-weight",e.svg.units.fontWeight)("fill",e.svg.units.color),t.xp6(1),t.Oqu(e.svg.units.text)}}function pEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"tspan"),t._uU(1),t.qZA()),2&n){var e=r.$implicit,i=t.oxw(4);t.uIk("x",i.svg.subtitle.x)("y",i.svg.subtitle.y)("dy",e.dy)("font-size",i.svg.subtitle.fontSize)("font-weight",i.svg.subtitle.fontWeight)("fill",i.svg.subtitle.color),t.xp6(1),t.Oqu(e.span)}}function hEe(n,r){if(1&n&&(t.O4$(),t.ynx(0),t.YNc(1,pEe,2,7,"tspan",8),t.BQk()),2&n){var e=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",e.svg.subtitle.tspans)}}function mEe(n,r){if(1&n&&(t.O4$(),t.TgZ(0,"text",7),t.YNc(1,dEe,2,1,"ng-container",2),t.YNc(2,fEe,2,4,"tspan",2),t.YNc(3,hEe,2,1,"ng-container",2),t.qZA()),2&n){var e=t.oxw(2);t.uIk("x",e.svg.circle.cx)("y",e.svg.circle.cy)("text-anchor",e.svg.title.textAnchor),t.xp6(1),t.Q6J("ngIf",e.options.showTitle),t.xp6(1),t.Q6J("ngIf",e.options.showUnits),t.xp6(1),t.Q6J("ngIf",e.options.showSubtitle)}}function _Ee(n,r){if(1&n&&(t.O4$(),t._UZ(0,"image",9)),2&n){var e=t.oxw(2);t.uIk("height",e.svg.image.height)("width",e.svg.image.width)("href",e.svg.image.src,null,"xlink")("x",e.svg.image.x)("y",e.svg.image.y)}}function gEe(n,r){if(1&n){var e=t.EpF();t.O4$(),t.TgZ(0,"svg",1),t.NdJ("click",function(a){t.CHM(e);var s=t.oxw();return t.KtG(s.emitClickEvent(a))}),t.TgZ(1,"defs"),t.YNc(2,tEe,3,5,"linearGradient",2),t.YNc(3,nEe,3,5,"radialGradient",2),t.qZA(),t.YNc(4,oEe,3,2,"ng-container",2),t.YNc(5,aEe,1,6,"circle",2),t.YNc(6,uEe,3,2,"ng-container",2),t.YNc(7,mEe,4,6,"text",3),t.YNc(8,_Ee,1,5,"image",4),t.qZA()}if(2&n){var i=t.oxw();t.uIk("viewBox",i.svg.viewBox)("height",i.svg.height)("width",i.svg.width)("class",i.options.class),t.xp6(2),t.Q6J("ngIf",i.options.outerStrokeGradient),t.xp6(1),t.Q6J("ngIf",i.options.backgroundGradient),t.xp6(1),t.Q6J("ngIf",i.options.showBackground),t.xp6(1),t.Q6J("ngIf",i.options.showInnerStroke),t.xp6(1),t.Q6J("ngIf",0!=+i.options.percent||i.options.showZeroOuterStroke),t.xp6(1),t.Q6J("ngIf",!i.options.showImage&&(i.options.showTitle||i.options.showUnits||i.options.showSubtitle)),t.xp6(1),t.Q6J("ngIf",i.options.showImage)}}var JN=(0,U.Z)(function n(){(0,B.Z)(this,n),this.class="",this.backgroundGradient=!1,this.backgroundColor="transparent",this.backgroundGradientStopColor="transparent",this.backgroundOpacity=1,this.backgroundStroke="transparent",this.backgroundStrokeWidth=0,this.backgroundPadding=5,this.percent=0,this.radius=90,this.space=4,this.toFixed=0,this.maxPercent=1e3,this.renderOnClick=!0,this.units="%",this.unitsFontSize="10",this.unitsFontWeight="normal",this.unitsColor="#444444",this.outerStrokeGradient=!1,this.outerStrokeWidth=8,this.outerStrokeColor="#78C000",this.outerStrokeGradientStopColor="transparent",this.outerStrokeLinecap="round",this.innerStrokeColor="#C7E596",this.innerStrokeWidth=4,this.titleFormat=void 0,this.title="auto",this.titleColor="#444444",this.titleFontSize="20",this.titleFontWeight="normal",this.subtitleFormat=void 0,this.subtitle="progress",this.subtitleColor="#A9A9A9",this.subtitleFontSize="10",this.subtitleFontWeight="normal",this.imageSrc=void 0,this.imageHeight=0,this.imageWidth=0,this.animation=!0,this.animateTitle=!0,this.animateSubtitle=!1,this.animationDuration=500,this.showTitle=!0,this.showSubtitle=!0,this.showUnits=!0,this.showImage=!1,this.showBackground=!0,this.showInnerStroke=!0,this.clockwise=!0,this.responsive=!1,this.startFromZero=!0,this.showZeroOuterStroke=!0,this.lazy=!1}),aD=function(){function n(r,e,i,o){var a=this;(0,B.Z)(this,n),this.ngZone=e,this.elRef=i,this.onClick=new t.vpe,this.svgElement=null,this.isInViewport=!1,this.onViewportChanged=new t.vpe,this._viewportChangedSubscriber=null,this.options=new JN,this.defaultOptions=new JN,this._lastPercent=0,this._gradientUUID=null,this.render=function(){a.applyOptions(),a.options.lazy?(null===a.svgElement&&a.draw(a._lastPercent),a.isInViewport&&(a.options.animation&&a.options.animationDuration>0?a.animate(a._lastPercent,a.options.percent):a.draw(a.options.percent),a._lastPercent=a.options.percent)):(a.options.animation&&a.options.animationDuration>0?a.animate(a._lastPercent,a.options.percent):a.draw(a.options.percent),a._lastPercent=a.options.percent)},this.polarToCartesian=function(s,l,u,d){var h=d*Math.PI/180;return{x:s+Math.sin(h)*u,y:l-Math.cos(h)*u}},this.draw=function(s){var l=(s=void 0===s?a.options.percent:Math.abs(s))>100?100:s,u=2*a.options.radius+2*a.options.outerStrokeWidth;a.options.showBackground&&(u+=2*a.options.backgroundStrokeWidth+a.max(0,2*a.options.backgroundPadding));var y,L,d={x:u/2,y:u/2},h={x:d.x,y:d.y-a.options.radius},g=a.polarToCartesian(d.x,d.y,a.options.radius,360*(a.options.clockwise?l:100-l)/100);if(100===l&&(g.x=g.x+(a.options.clockwise?-.01:.01)),l>50){var z=a.options.clockwise?[1,1]:[1,0],q=(0,Yn.Z)(z,2);y=q[0],L=q[1]}else{var re=a.options.clockwise?[0,1]:[0,0],ae=(0,Yn.Z)(re,2);y=ae[0],L=ae[1]}var Se=a.options.animateTitle?s:a.options.percent,Ce=Se>a.options.maxPercent?"".concat(a.options.maxPercent.toFixed(a.options.toFixed),"+"):Se.toFixed(a.options.toFixed),Ee=a.options.animateSubtitle?s:a.options.percent,Ke={x:d.x,y:d.y,textAnchor:"middle",color:a.options.titleColor,fontSize:a.options.titleFontSize,fontWeight:a.options.titleFontWeight,texts:[],tspans:[]};if(void 0!==a.options.titleFormat&&"Function"===a.options.titleFormat.constructor.name){var st=a.options.titleFormat(Se);st instanceof Array?Ke.texts=(0,cn.Z)(st):Ke.texts.push(st.toString())}else"auto"===a.options.title?Ke.texts.push(Ce):a.options.title instanceof Array?Ke.texts=(0,cn.Z)(a.options.title):Ke.texts.push(a.options.title.toString());var De={x:d.x,y:d.y,textAnchor:"middle",color:a.options.subtitleColor,fontSize:a.options.subtitleFontSize,fontWeight:a.options.subtitleFontWeight,texts:[],tspans:[]};if(void 0!==a.options.subtitleFormat&&"Function"===a.options.subtitleFormat.constructor.name){var it=a.options.subtitleFormat(Ee);it instanceof Array?De.texts=(0,cn.Z)(it):De.texts.push(it.toString())}else a.options.subtitle instanceof Array?De.texts=(0,cn.Z)(a.options.subtitle):De.texts.push(a.options.subtitle.toString());var ft={text:"".concat(a.options.units),fontSize:a.options.unitsFontSize,fontWeight:a.options.unitsFontWeight,color:a.options.unitsColor},bt=0,$e=1;if(a.options.showTitle&&(bt+=Ke.texts.length),a.options.showSubtitle&&(bt+=De.texts.length),a.options.showTitle){var ct,Pe=(0,An.Z)(Ke.texts);try{for(Pe.s();!(ct=Pe.n()).done;){var Bt=ct.value;Ke.tspans.push({span:Bt,dy:a.getRelativeY($e,bt)}),$e++}}catch(jn){Pe.e(jn)}finally{Pe.f()}}if(a.options.showSubtitle){var Pt,Ht=(0,An.Z)(De.texts);try{for(Ht.s();!(Pt=Ht.n()).done;){var Tn=Pt.value;De.tspans.push({span:Tn,dy:a.getRelativeY($e,bt)}),$e++}}catch(jn){Ht.e(jn)}finally{Ht.f()}}null===a._gradientUUID&&(a._gradientUUID=a.uuid()),a.svg={viewBox:"0 0 ".concat(u," ").concat(u),width:a.options.responsive?"100%":u,height:a.options.responsive?"100%":u,backgroundCircle:{cx:d.x,cy:d.y,r:a.options.radius+a.options.outerStrokeWidth/2+a.options.backgroundPadding,fill:a.options.backgroundColor,fillOpacity:a.options.backgroundOpacity,stroke:a.options.backgroundStroke,strokeWidth:a.options.backgroundStrokeWidth},path:{d:"M ".concat(h.x," ").concat(h.y,"\n A ").concat(a.options.radius," ").concat(a.options.radius," 0 ").concat(y," ").concat(L," ").concat(g.x," ").concat(g.y),stroke:a.options.outerStrokeColor,strokeWidth:a.options.outerStrokeWidth,strokeLinecap:a.options.outerStrokeLinecap,fill:"none"},circle:{cx:d.x,cy:d.y,r:a.options.radius-a.options.space-a.options.outerStrokeWidth/2-a.options.innerStrokeWidth/2,fill:"none",stroke:a.options.innerStrokeColor,strokeWidth:a.options.innerStrokeWidth},title:Ke,units:ft,subtitle:De,image:{x:d.x-a.options.imageWidth/2,y:d.y-a.options.imageHeight/2,src:a.options.imageSrc,width:a.options.imageWidth,height:a.options.imageHeight},outerLinearGradient:{id:"outer-linear-"+a._gradientUUID,colorStop1:a.options.outerStrokeColor,colorStop2:"transparent"===a.options.outerStrokeGradientStopColor?"#FFF":a.options.outerStrokeGradientStopColor},radialGradient:{id:"radial-"+a._gradientUUID,colorStop1:a.options.backgroundColor,colorStop2:"transparent"===a.options.backgroundGradientStopColor?"#FFF":a.options.backgroundGradientStopColor}}},this.getAnimationParameters=function(s,l){var d,h,g,y=a.options.startFromZero||s<0?0:s,L=l<0?0:a.min(l,a.options.maxPercent),z=Math.abs(Math.round(L-y));return z>=100?(d=100,h=a.options.animateTitle||a.options.animateSubtitle?Math.round(z/d):1):(d=z,h=1),(g=Math.round(a.options.animationDuration/d))<10&&(g=10,d=a.options.animationDuration/g,h=!a.options.animateTitle&&!a.options.animateSubtitle&&z>100?Math.round(100/d):Math.round(z/d)),h<1&&(h=1),{times:d,step:h,interval:g}},this.animate=function(s,l){a._timerSubscription&&!a._timerSubscription.closed&&a._timerSubscription.unsubscribe();var u=a.options.startFromZero?0:s,d=l,h=a.getAnimationParameters(u,d),g=h.step,y=h.interval,L=u;a._timerSubscription=u=100?(a.draw(d),a._timerSubscription.unsubscribe()):a.draw(L):(a.draw(d),a._timerSubscription.unsubscribe())}):(0,Tp.H)(0,y).subscribe(function(){(L-=g)>=d?!a.options.animateTitle&&!a.options.animateSubtitle&&d>=100?(a.draw(d),a._timerSubscription.unsubscribe()):a.draw(L):(a.draw(d),a._timerSubscription.unsubscribe())})},this.applyOptions=function(){for(var s=0,l=Object.keys(a.options);s0?+a.options.percent:0,a.options.maxPercent=Math.abs(+a.options.maxPercent),a.options.animationDuration=Math.abs(a.options.animationDuration),a.options.outerStrokeWidth=Math.abs(+a.options.outerStrokeWidth),a.options.innerStrokeWidth=Math.abs(+a.options.innerStrokeWidth),a.options.backgroundPadding=+a.options.backgroundPadding},this.getRelativeY=function(s,l){return(1*(s-l/2)-.18).toFixed(2)+"em"},this.min=function(s,l){return sl?s:l},this.uuid=function(){var s=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(u){var d=(s+16*Math.random())%16|0;return s=Math.floor(s/16),("x"==u?d:3&d|8).toString(16)})},this.checkViewport=function(){a.findSvgElement();var s=a.isInViewport;a.isInViewport=a.isElementInViewport(a.svgElement),s!==a.isInViewport&&a.onViewportChanged.observers.length>0&&a.ngZone.run(function(){a.onViewportChanged.emit({oldValue:s,newValue:a.isInViewport})})},this.onScroll=function(s){a.checkViewport()},this.loadEventsForLazyMode=function(){if(a.options.lazy){a.ngZone.runOutsideAngular(function(){a.document.addEventListener("scroll",a.onScroll,!0),a.window.addEventListener("resize",a.onScroll,!0)}),null===a._viewportChangedSubscriber&&(a._viewportChangedSubscriber=a.onViewportChanged.subscribe(function(l){l.oldValue;l.newValue&&a.render()}));var s=(0,Tp.H)(0,50).subscribe(function(){null===a.svgElement?a.checkViewport():s.unsubscribe()})}},this.unloadEventsForLazyMode=function(){a.document.removeEventListener("scroll",a.onScroll,!0),a.window.removeEventListener("resize",a.onScroll,!0),null!==a._viewportChangedSubscriber&&(a._viewportChangedSubscriber.unsubscribe(),a._viewportChangedSubscriber=null)},this.document=o.get(le.K0),this.window=this.document.defaultView,Object.assign(this.options,r),Object.assign(this.defaultOptions,r)}return(0,U.Z)(n,[{key:"emitClickEvent",value:function(e){this.options.renderOnClick&&this.animate(0,this.options.percent),this.onClick.observers.length>0&&this.onClick.emit(e)}},{key:"isDrawing",value:function(){return this._timerSubscription&&!this._timerSubscription.closed}},{key:"findSvgElement",value:function(){if(null===this.svgElement){var e=this.elRef.nativeElement.getElementsByTagName("svg");e.length>0&&(this.svgElement=e[0])}}},{key:"isElementInViewport",value:function(e){if(null==e)return!1;var a,i=e.getBoundingClientRect(),o=e.parentNode;do{if(a=o.getBoundingClientRect(),i.top>=a.bottom||i.bottom<=a.top||i.left>=a.right||i.right<=a.left)return!1;o=o.parentNode}while(o!=this.document.body);return!(i.top>=(this.window.innerHeight||this.document.documentElement.clientHeight)||i.bottom<=0||i.left>=(this.window.innerWidth||this.document.documentElement.clientWidth)||i.right<=0)}},{key:"ngOnInit",value:function(){this.loadEventsForLazyMode()}},{key:"ngOnDestroy",value:function(){this.unloadEventsForLazyMode()}},{key:"ngOnChanges",value:function(e){this.render(),"lazy"in e&&(e.lazy.currentValue?this.loadEventsForLazyMode():this.unloadEventsForLazyMode())}}]),n}();aD.\u0275fac=function(r){return new(r||aD)(t.Y36(JN),t.Y36(t.R0b),t.Y36(t.SBq),t.Y36(t.zs3))},aD.\u0275cmp=t.Xpm({type:aD,selectors:[["circle-progress"]],inputs:{name:"name",class:"class",backgroundGradient:"backgroundGradient",backgroundColor:"backgroundColor",backgroundGradientStopColor:"backgroundGradientStopColor",backgroundOpacity:"backgroundOpacity",backgroundStroke:"backgroundStroke",backgroundStrokeWidth:"backgroundStrokeWidth",backgroundPadding:"backgroundPadding",radius:"radius",space:"space",percent:"percent",toFixed:"toFixed",maxPercent:"maxPercent",renderOnClick:"renderOnClick",units:"units",unitsFontSize:"unitsFontSize",unitsFontWeight:"unitsFontWeight",unitsColor:"unitsColor",outerStrokeGradient:"outerStrokeGradient",outerStrokeWidth:"outerStrokeWidth",outerStrokeColor:"outerStrokeColor",outerStrokeGradientStopColor:"outerStrokeGradientStopColor",outerStrokeLinecap:"outerStrokeLinecap",innerStrokeColor:"innerStrokeColor",innerStrokeWidth:"innerStrokeWidth",titleFormat:"titleFormat",title:"title",titleColor:"titleColor",titleFontSize:"titleFontSize",titleFontWeight:"titleFontWeight",subtitleFormat:"subtitleFormat",subtitle:"subtitle",subtitleColor:"subtitleColor",subtitleFontSize:"subtitleFontSize",subtitleFontWeight:"subtitleFontWeight",imageSrc:"imageSrc",imageHeight:"imageHeight",imageWidth:"imageWidth",animation:"animation",animateTitle:"animateTitle",animateSubtitle:"animateSubtitle",animationDuration:"animationDuration",showTitle:"showTitle",showSubtitle:"showSubtitle",showUnits:"showUnits",showImage:"showImage",showBackground:"showBackground",showInnerStroke:"showInnerStroke",clockwise:"clockwise",responsive:"responsive",startFromZero:"startFromZero",showZeroOuterStroke:"showZeroOuterStroke",lazy:"lazy",templateOptions:["options","templateOptions"]},outputs:{onClick:"onClick"},features:[t.TTD],decls:1,vars:1,consts:[["xmlns","http://www.w3.org/2000/svg","preserveAspectRatio","xMidYMid meet",3,"click",4,"ngIf"],["xmlns","http://www.w3.org/2000/svg","preserveAspectRatio","xMidYMid meet",3,"click"],[4,"ngIf"],["alignment-baseline","baseline",4,"ngIf"],["preserveAspectRatio","none",4,"ngIf"],["offset","5%"],["offset","95%"],["alignment-baseline","baseline"],[4,"ngFor","ngForOf"],["preserveAspectRatio","none"]],template:function(r,e){1&r&&t.YNc(0,gEe,9,11,"svg",0),2&r&&t.Q6J("ngIf",e.svg)},dependencies:[le.sg,le.O5],encapsulation:2});var Gw=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,null,[{key:"forRoot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{ngModule:n,providers:[{provide:JN,useValue:e}]}}}]),n}();Gw.\u0275fac=function(r){return new(r||Gw)},Gw.\u0275mod=t.oAB({type:Gw}),Gw.\u0275inj=t.cJS({imports:[le.ez]});var QN=function(){function n(r){(0,B.Z)(this,n),this.fileOver=new t.vpe,this.onFileDrop=new t.vpe,this.element=r}return(0,U.Z)(n,[{key:"getOptions",value:function(){var e;return null===(e=this.uploader)||void 0===e?void 0:e.options}},{key:"getFilters",value:function(){return""}},{key:"onDrop",value:function(e){var i,o=this._getTransfer(e);if(o){var a=this.getOptions(),s=this.getFilters();this._preventAndStop(e),a&&(null===(i=this.uploader)||void 0===i||i.addToQueue(o.files,a,s)),this.fileOver.emit(!1),this.onFileDrop.emit(o.files)}}},{key:"onDragOver",value:function(e){var i=this._getTransfer(e);!this._haveFiles(i.types)||(i.dropEffect="copy",this._preventAndStop(e),this.fileOver.emit(!0))}},{key:"onDragLeave",value:function(e){this.element&&e.currentTarget===this.element[0]||(this._preventAndStop(e),this.fileOver.emit(!1))}},{key:"_getTransfer",value:function(e){return e.dataTransfer?e.dataTransfer:e.originalEvent.dataTransfer}},{key:"_preventAndStop",value:function(e){e.preventDefault(),e.stopPropagation()}},{key:"_haveFiles",value:function(e){return!!e&&(e.indexOf?-1!==e.indexOf("Files"):!!e.contains&&e.contains("Files"))}}]),n}();QN.\u0275fac=function(r){return new(r||QN)(t.Y36(t.SBq))},QN.\u0275dir=t.lG2({type:QN,selectors:[["","ng2FileDrop",""]],hostBindings:function(r,e){1&r&&t.NdJ("drop",function(o){return e.onDrop(o)})("dragover",function(o){return e.onDragOver(o)})("dragleave",function(o){return e.onDragLeave(o)})},inputs:{uploader:"uploader"},outputs:{fileOver:"fileOver",onFileDrop:"onFileDrop"}});var cG=function(){function n(r){(0,B.Z)(this,n),this.rawFile=r;var e=r instanceof HTMLInputElement?r.value:r,i="string"==typeof e?"FakePath":"Object";this["_createFrom".concat(i)](e)}return(0,U.Z)(n,[{key:"_createFromFakePath",value:function(e){this.lastModifiedDate=void 0,this.size=void 0,this.type="like/".concat(e.slice(e.lastIndexOf(".")+1).toLowerCase()),this.name=e.slice(e.lastIndexOf("/")+e.lastIndexOf("\\")+2)}},{key:"_createFromObject",value:function(e){this.size=e.size,this.type=e.type,this.name=e.name}}]),n}(),vEe=function(){function n(r,e,i){(0,B.Z)(this,n),this.url="/",this.headers=[],this.withCredentials=!0,this.formData=[],this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.uploader=r,this.some=e,this.options=i,this.file=new cG(e),this._file=e,r.options&&(this.method=r.options.method||"POST",this.alias=r.options.itemAlias||"file"),this.url=r.options.url}return(0,U.Z)(n,[{key:"upload",value:function(){try{this.uploader.uploadItem(this)}catch(e){this.uploader._onCompleteItem(this,"",0,{}),this.uploader._onErrorItem(this,"",0,{})}}},{key:"cancel",value:function(){this.uploader.cancelItem(this)}},{key:"remove",value:function(){this.uploader.removeFromQueue(this)}},{key:"onBeforeUpload",value:function(){}},{key:"onBuildForm",value:function(e){return{form:e}}},{key:"onProgress",value:function(e){return{progress:e}}},{key:"onSuccess",value:function(e,i,o){return{response:e,status:i,headers:o}}},{key:"onError",value:function(e,i,o){return{response:e,status:i,headers:o}}},{key:"onCancel",value:function(e,i,o){return{response:e,status:i,headers:o}}},{key:"onComplete",value:function(e,i,o){return{response:e,status:i,headers:o}}},{key:"_onBeforeUpload",value:function(){this.isReady=!0,this.isUploading=!0,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()}},{key:"_onBuildForm",value:function(e){this.onBuildForm(e)}},{key:"_onProgress",value:function(e){this.progress=e,this.onProgress(e)}},{key:"_onSuccess",value:function(e,i,o){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=void 0,this.onSuccess(e,i,o)}},{key:"_onError",value:function(e,i,o){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=void 0,this.onError(e,i,o)}},{key:"_onCancel",value:function(e,i,o){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=void 0,this.onCancel(e,i,o)}},{key:"_onComplete",value:function(e,i,o){this.onComplete(e,i,o),this.uploader.options.removeAfterUpload&&this.remove()}},{key:"_prepareToUploading",value:function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0}}]),n}(),zw=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,null,[{key:"getMimeClass",value:function(e){var i,o,a,s="application";return(null==e?void 0:e.type)&&-1!==this.mime_psd.indexOf(e.type)||null!==(i=null==e?void 0:e.type)&&void 0!==i&&i.match("image.*")?s="image":null!==(o=null==e?void 0:e.type)&&void 0!==o&&o.match("video.*")?s="video":null!==(a=null==e?void 0:e.type)&&void 0!==a&&a.match("audio.*")?s="audio":"application/pdf"===(null==e?void 0:e.type)?s="pdf":(null==e?void 0:e.type)&&-1!==this.mime_compress.indexOf(e.type)?s="compress":(null==e?void 0:e.type)&&-1!==this.mime_doc.indexOf(e.type)?s="doc":(null==e?void 0:e.type)&&-1!==this.mime_xsl.indexOf(e.type)?s="xls":(null==e?void 0:e.type)&&-1!==this.mime_ppt.indexOf(e.type)&&(s="ppt"),"application"===s&&(null==e?void 0:e.name)&&(s=this.fileTypeDetection(e.name)),s}},{key:"fileTypeDetection",value:function(e){var i={jpg:"image",jpeg:"image",tif:"image",psd:"image",bmp:"image",png:"image",nef:"image",tiff:"image",cr2:"image",dwg:"image",cdr:"image",ai:"image",indd:"image",pin:"image",cdp:"image",skp:"image",stp:"image","3dm":"image",mp3:"audio",wav:"audio",wma:"audio",mod:"audio",m4a:"audio",compress:"compress",zip:"compress",rar:"compress","7z":"compress",lz:"compress",z01:"compress",bz2:"compress",gz:"compress",pdf:"pdf",xls:"xls",xlsx:"xls",ods:"xls",mp4:"video",avi:"video",wmv:"video",mpg:"video",mts:"video",flv:"video","3gp":"video",vob:"video",m4v:"video",mpeg:"video",m2ts:"video",mov:"video",doc:"doc",docx:"doc",eps:"doc",txt:"doc",odt:"doc",rtf:"doc",ppt:"ppt",pptx:"ppt",pps:"ppt",ppsx:"ppt",odp:"ppt"},o=e.split(".");if(o.length<2)return"application";var a=o[o.length-1].toLowerCase();return void 0===i[a]?"application":i[a]}}]),n}();zw.mime_doc=["application/msword","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-word.document.macroEnabled.12","application/vnd.ms-word.template.macroEnabled.12"],zw.mime_xsl=["application/vnd.ms-excel","application/vnd.ms-excel","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.ms-excel.sheet.macroEnabled.12","application/vnd.ms-excel.template.macroEnabled.12","application/vnd.ms-excel.addin.macroEnabled.12","application/vnd.ms-excel.sheet.binary.macroEnabled.12"],zw.mime_ppt=["application/vnd.ms-powerpoint","application/vnd.ms-powerpoint","application/vnd.ms-powerpoint","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/vnd.ms-powerpoint.addin.macroEnabled.12","application/vnd.ms-powerpoint.presentation.macroEnabled.12","application/vnd.ms-powerpoint.presentation.macroEnabled.12","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"],zw.mime_psd=["image/photoshop","image/x-photoshop","image/psd","application/photoshop","application/psd","zz-application/zz-winassoc-psd"],zw.mime_compress=["application/x-gtar","application/x-gcompress","application/compress","application/x-tar","application/x-rar-compressed","application/octet-stream","application/x-zip-compressed","application/zip-compressed","application/x-7z-compressed","application/gzip","application/x-bzip2"];var Eg=function(){function n(r){(0,B.Z)(this,n),this.isUploading=!1,this.queue=[],this.progress=0,this._nextIndex=0,this.options={autoUpload:!1,isHTML5:!0,filters:[],removeAfterUpload:!1,disableMultipart:!1,formatDataFunction:function(i){return i._file},formatDataFunctionIsAsync:!1,url:""},this.setOptions(r),this.response=new t.vpe}return(0,U.Z)(n,[{key:"setOptions",value:function(e){var i,o,a,s;this.options=Object.assign(this.options,e),this.authToken=this.options.authToken,this.authTokenHeader=this.options.authTokenHeader||"Authorization",this.autoUpload=this.options.autoUpload,null===(i=this.options.filters)||void 0===i||i.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.options.maxFileSize&&(null===(o=this.options.filters)||void 0===o||o.unshift({name:"fileSize",fn:this._fileSizeFilter})),this.options.allowedFileType&&(null===(a=this.options.filters)||void 0===a||a.unshift({name:"fileType",fn:this._fileTypeFilter})),this.options.allowedMimeType&&(null===(s=this.options.filters)||void 0===s||s.unshift({name:"mimeType",fn:this._mimeTypeFilter}));for(var l=0;lthis.options.maxFileSize)}},{key:"_fileTypeFilter",value:function(e){return!(this.options.allowedFileType&&-1===this.options.allowedFileType.indexOf(zw.getMimeClass(e)))}},{key:"_onErrorItem",value:function(e,i,o,a){e._onError(i,o,a),this.onErrorItem(e,i,o,a)}},{key:"_onCompleteItem",value:function(e,i,o,a){e._onComplete(i,o,a),this.onCompleteItem(e,i,o,a);var s=this.getReadyItems()[0];this.isUploading=!1,s?s.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),this._render())}},{key:"_headersGetter",value:function(e){return function(i){return i?e[i.toLowerCase()]||void 0:e}}},{key:"_xhrTransport",value:function(e){var s,i=this,o=this,a=e._xhr=new XMLHttpRequest;if(this._onBeforeUploadItem(e),"number"!=typeof e._file.size)throw new TypeError("The file specified is no longer valid");if(this.options.disableMultipart)this.options.formatDataFunction&&(s=this.options.formatDataFunction(e));else{s=new FormData,this._onBuildItemForm(e,s);var l=function(){return s.append(e.alias,e._file,e.file.name)};this.options.parametersBeforeFiles||l(),void 0!==this.options.additionalParameter&&Object.keys(this.options.additionalParameter).forEach(function(z){var q,re,ae=null===(q=i.options.additionalParameter)||void 0===q?void 0:q[z];"string"==typeof ae&&ae.indexOf("{{file_name}}")>=0&&(null===(re=e.file)||void 0===re?void 0:re.name)&&(ae=ae.replace("{{file_name}}",e.file.name)),s.append(z,ae)}),l&&this.options.parametersBeforeFiles&&l()}if(a.upload.onprogress=function(z){var q=Math.round(z.lengthComputable?100*z.loaded/z.total:0);i._onProgressItem(e,q)},a.onload=function(){var z=i._parseHeaders(a.getAllResponseHeaders()),q=i._transformResponse(a.response,z),re=i._isSuccessCode(a.status)?"Success":"Error",ae="_on".concat(re,"Item");i[ae](e,q,a.status,z),i._onCompleteItem(e,q,a.status,z)},a.onerror=function(){var z=i._parseHeaders(a.getAllResponseHeaders()),q=i._transformResponse(a.response,z);i._onErrorItem(e,q,a.status,z),i._onCompleteItem(e,q,a.status,z)},a.onabort=function(){var z=i._parseHeaders(a.getAllResponseHeaders()),q=i._transformResponse(a.response,z);i._onCancelItem(e,q,a.status,z),i._onCompleteItem(e,q,a.status,z)},e.method&&e.url&&a.open(e.method,e.url,!0),a.withCredentials=e.withCredentials,this.options.headers){var d,u=(0,An.Z)(this.options.headers);try{for(u.s();!(d=u.n()).done;){var h=d.value;a.setRequestHeader(h.name,h.value)}}catch(z){u.e(z)}finally{u.f()}}if(e.headers.length){var y,g=(0,An.Z)(e.headers);try{for(g.s();!(y=g.n()).done;){var L=y.value;a.setRequestHeader(L.name,L.value)}}catch(z){g.e(z)}finally{g.f()}}this.authToken&&this.authTokenHeader&&a.setRequestHeader(this.authTokenHeader,this.authToken),a.onreadystatechange=function(){a.readyState==XMLHttpRequest.DONE&&o.response.emit(a.responseText)},this.options.formatDataFunctionIsAsync?s.then(function(z){return a.send(JSON.stringify(z))}):a.send(s),this._render()}},{key:"_getTotalProgress",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.options.removeAfterUpload)return e;var i=this.getNotUploadedItems().length,o=i?this.queue.length-i:this.queue.length,a=100/this.queue.length,s=e*a/100;return Math.round(o*a+s)}},{key:"_getFilters",value:function(e){var i,o,a;if(!e)return(null===(i=this.options)||void 0===i?void 0:i.filters)||[];if(Array.isArray(e))return e;if("string"==typeof e){var s=e.match(/[^\s,]+/g);return(null===(o=this.options)||void 0===o?void 0:o.filters)||[].filter(function(l){return-1!==(null==s?void 0:s.indexOf(l.name))})}return(null===(a=this.options)||void 0===a?void 0:a.filters)||[]}},{key:"_render",value:function(){}},{key:"_queueLimitFilter",value:function(){return void 0===this.options.queueLimit||this.queue.length=200&&e<300||304===e}},{key:"_transformResponse",value:function(e,i){return e}},{key:"_parseHeaders",value:function(e){var o,a,s,i={};return e&&e.split("\n").map(function(l){s=l.indexOf(":"),o=l.slice(0,s).trim().toLowerCase(),a=l.slice(s+1).trim(),o&&(i[o]=i[o]?i[o]+", "+a:a)}),i}},{key:"_onWhenAddingFileFailed",value:function(e,i,o){this.onWhenAddingFileFailed(e,i,o)}},{key:"_onAfterAddingFile",value:function(e){this.onAfterAddingFile(e)}},{key:"_onAfterAddingAll",value:function(e){this.onAfterAddingAll(e)}},{key:"_onBeforeUploadItem",value:function(e){e._onBeforeUpload(),this.onBeforeUploadItem(e)}},{key:"_onBuildItemForm",value:function(e,i){e._onBuildForm(i),this.onBuildItemForm(e,i)}},{key:"_onProgressItem",value:function(e,i){var o=this._getTotalProgress(i);this.progress=o,e._onProgress(i),this.onProgressItem(e,i),this.onProgressAll(o),this._render()}},{key:"_onSuccessItem",value:function(e,i,o,a){e._onSuccess(i,o,a),this.onSuccessItem(e,i,o,a)}},{key:"_onCancelItem",value:function(e,i,o,a){e._onCancel(i,o,a),this.onCancelItem(e,i,o,a)}}]),n}(),Mp=function(){function n(r){(0,B.Z)(this,n),this.onFileSelected=new t.vpe,this.element=r}return(0,U.Z)(n,[{key:"getOptions",value:function(){var e;return null===(e=this.uploader)||void 0===e?void 0:e.options}},{key:"getFilters",value:function(){return""}},{key:"isEmptyAfterSelection",value:function(){return!!this.element.nativeElement.attributes.multiple}},{key:"onChange",value:function(){var e,i=this.element.nativeElement.files,o=this.getOptions(),a=this.getFilters();null===(e=this.uploader)||void 0===e||e.addToQueue(i,o,a),this.onFileSelected.emit(i),this.isEmptyAfterSelection()&&(this.element.nativeElement.value="")}}]),n}();Mp.\u0275fac=function(r){return new(r||Mp)(t.Y36(t.SBq))},Mp.\u0275dir=t.lG2({type:Mp,selectors:[["","ng2FileSelect",""]],hostBindings:function(r,e){1&r&&t.NdJ("change",function(){return e.onChange()})},inputs:{uploader:"uploader"},outputs:{onFileSelected:"onFileSelected"}});var Ww=(0,U.Z)(function n(){(0,B.Z)(this,n)});Ww.\u0275fac=function(r){return new(r||Ww)},Ww.\u0275mod=t.oAB({type:Ww}),Ww.\u0275inj=t.cJS({imports:[le.ez]});var dG=function(){function n(){}return Object.defineProperty(n.prototype,"child_process",{get:function(){return this._child_process||(this._child_process=window.require?window.require("child_process"):null),this._child_process},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isElectronApp",{get:function(){return!!window.navigator.userAgent.match(/Electron/)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"childProcess",{get:function(){return this.child_process?this.child_process:null},enumerable:!0,configurable:!0}),n}(),bEe=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var i in e)e.hasOwnProperty(i)&&(r[i]=e[i])};return function(r,e){function i(){this.constructor=r}n(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),Une=function(n){function r(){return n.call(this)||this}return bEe(r,n),r.\u0275fac=function(i){return new(i||r)},r.\u0275prov=t.Yz7({token:r,factory:function(i){return r.\u0275fac(i)}}),r}(dG);Une.ctorParameters=function(){return[]};var Hne=function(){function n(){}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({providers:[{provide:dG,useClass:Une}]}),n}();Hne.ctorParameters=function(){return[]};var ul=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"electron",get:function(){return this._electron?this._electron:window&&window.require?(this._electron=window.require("electron"),this._electron):null}},{key:"isElectronApp",get:function(){return!!window.navigator.userAgent.match(/Electron/)}},{key:"isMacOS",get:function(){return this.isElectronApp&&"darwin"===process.platform}},{key:"isWindows",get:function(){return this.isElectronApp&&"win32"===process.platform}},{key:"isLinux",get:function(){return this.isElectronApp&&"linux"===process.platform}},{key:"isX86",get:function(){return this.isElectronApp&&"ia32"===process.arch}},{key:"isX64",get:function(){return this.isElectronApp&&"x64"===process.arch}},{key:"isArm",get:function(){return this.isElectronApp&&"arm"===process.arch}},{key:"desktopCapturer",get:function(){return this.electron?this.electron.desktopCapturer:null}},{key:"ipcRenderer",get:function(){return this.electron?this.electron.ipcRenderer:null}},{key:"remote",get:function(){return this.electron?this.electron.remote:null}},{key:"webFrame",get:function(){return this.electron?this.electron.webFrame:null}},{key:"clipboard",get:function(){return this.electron?this.electron.clipboard:null}},{key:"crashReporter",get:function(){return this.electron?this.electron.crashReporter:null}},{key:"process",get:function(){return this.remote?this.remote.process:null}},{key:"nativeImage",get:function(){return this.electron?this.electron.nativeImage:null}},{key:"screen",get:function(){return this.electron?this.remote.screen:null}},{key:"shell",get:function(){return this.electron?this.electron.shell:null}}]),n}(),A0=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.call(this)}return(0,U.Z)(e)}(ul);A0.\u0275fac=function(r){return new(r||A0)},A0.\u0275prov=t.Yz7({token:A0,factory:A0.\u0275fac}),A0.ctorParameters=function(){return[]};var Vw=(0,U.Z)(function n(){(0,B.Z)(this,n)});Vw.\u0275fac=function(r){return new(r||Vw)},Vw.\u0275mod=t.oAB({type:Vw}),Vw.\u0275inj=t.cJS({providers:[{provide:ul,useClass:A0}]});var sD=m(7326),Yw=m(4942),CEe=m(4450),wEe=m(1961),lD=m(8514),kEe=m(4843),O0=m(1737),I0=m(8896),jne=m(1762),xg=m(7224),P0=m(1406),ed=m(7221),Gne=m(2014),zne=m(8127),TEe=m(4290),Wne=m(7314),XN=m(537),Vne=m(4327),$N=m(9146),hi="primary",uD=Symbol("RouteTitle"),MEe=function(){function n(r){(0,B.Z)(this,n),this.params=r||{}}return(0,U.Z)(n,[{key:"has",value:function(e){return Object.prototype.hasOwnProperty.call(this.params,e)}},{key:"get",value:function(e){if(this.has(e)){var i=this.params[e];return Array.isArray(i)?i[0]:i}return null}},{key:"getAll",value:function(e){if(this.has(e)){var i=this.params[e];return Array.isArray(i)?i:[i]}return[]}},{key:"keys",get:function(){return Object.keys(this.params)}}]),n}();function Kw(n){return new MEe(n)}function SEe(n,r,e){var i=e.path.split("/");if(i.length>n.length||"full"===e.pathMatch&&(r.hasChildren()||i.length0?n[n.length-1]:null}function cl(n,r){for(var e in n)n.hasOwnProperty(e)&&r(n[e],e)}function Dg(n){return(0,t.CqO)(n)?n:(0,t.QGY)(n)?(0,hs.D)(Promise.resolve(n)):(0,Kn.of)(n)}var DEe={exact:function Xne(n,r,e){if(!L0(n.segments,r.segments)||!eB(n.segments,r.segments,e)||n.numberOfChildren!==r.numberOfChildren)return!1;for(var i in r.children)if(!n.children[i]||!Xne(n.children[i],r.children[i],e))return!1;return!0},subset:$ne},Jne={exact:function AEe(n,r){return Sp(n,r)},subset:function OEe(n,r){return Object.keys(r).length<=Object.keys(n).length&&Object.keys(r).every(function(e){return Yne(n[e],r[e])})},ignored:function(){return!0}};function Qne(n,r,e){return DEe[e.paths](n.root,r.root,e.matrixParams)&&Jne[e.queryParams](n.queryParams,r.queryParams)&&!("exact"===e.fragment&&n.fragment!==r.fragment)}function $ne(n,r,e){return ere(n,r,r.segments,e)}function ere(n,r,e,i){if(n.segments.length>e.length){var o=n.segments.slice(0,e.length);return!(!L0(o,e)||r.hasChildren()||!eB(o,e,i))}if(n.segments.length===e.length){if(!L0(n.segments,e)||!eB(n.segments,e,i))return!1;for(var a in r.children)if(!n.children[a]||!$ne(n.children[a],r.children[a],i))return!1;return!0}var s=e.slice(0,n.segments.length),l=e.slice(n.segments.length);return!!(L0(n.segments,s)&&eB(n.segments,s,i)&&n.children[hi])&&ere(n.children[hi],r,l,i)}function eB(n,r,e){return r.every(function(i,o){return Jne[e](n[o].parameters,i.parameters)})}var R0=function(){function n(r,e,i){(0,B.Z)(this,n),this.root=r,this.queryParams=e,this.fragment=i}return(0,U.Z)(n,[{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=Kw(this.queryParams)),this._queryParamMap}},{key:"toString",value:function(){return REe.serialize(this)}}]),n}(),vi=function(){function n(r,e){var i=this;(0,B.Z)(this,n),this.segments=r,this.children=e,this.parent=null,cl(e,function(o,a){return o.parent=i})}return(0,U.Z)(n,[{key:"hasChildren",value:function(){return this.numberOfChildren>0}},{key:"numberOfChildren",get:function(){return Object.keys(this.children).length}},{key:"toString",value:function(){return tB(this)}}]),n}(),cD=function(){function n(r,e){(0,B.Z)(this,n),this.path=r,this.parameters=e}return(0,U.Z)(n,[{key:"parameterMap",get:function(){return this._parameterMap||(this._parameterMap=Kw(this.parameters)),this._parameterMap}},{key:"toString",value:function(){return rre(this)}}]),n}();function L0(n,r){return n.length===r.length&&n.every(function(e,i){return e.path===r[i].path})}var qw=(0,U.Z)(function n(){(0,B.Z)(this,n)});qw.\u0275fac=function(r){return new(r||qw)},qw.\u0275prov=t.Yz7({token:qw,factory:function(){return new pG},providedIn:"root"});var pG=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"parse",value:function(e){var i=new GEe(e);return new R0(i.parseRootSegment(),i.parseQueryParams(),i.parseFragment())}},{key:"serialize",value:function(e){var i="/".concat(dD(e.root,!0)),o=function NEe(n){var r=Object.keys(n).map(function(e){var i=n[e];return Array.isArray(i)?i.map(function(o){return"".concat(nB(e),"=").concat(nB(o))}).join("&"):"".concat(nB(e),"=").concat(nB(i))}).filter(function(e){return!!e});return r.length?"?".concat(r.join("&")):""}(e.queryParams),a="string"==typeof e.fragment?"#".concat(function LEe(n){return encodeURI(n)}(e.fragment)):"";return"".concat(i).concat(o).concat(a)}}]),n}(),REe=new pG;function tB(n){return n.segments.map(function(r){return rre(r)}).join("/")}function dD(n,r){if(!n.hasChildren())return tB(n);if(r){var e=n.children[hi]?dD(n.children[hi],!1):"",i=[];return cl(n.children,function(a,s){s!==hi&&i.push("".concat(s,":").concat(dD(a,!1)))}),i.length>0?"".concat(e,"(").concat(i.join("//"),")"):e}var o=function PEe(n,r){var e=[];return cl(n.children,function(i,o){o===hi&&(e=e.concat(r(i,o)))}),cl(n.children,function(i,o){o!==hi&&(e=e.concat(r(i,o)))}),e}(n,function(a,s){return s===hi?[dD(n.children[hi],!1)]:["".concat(s,":").concat(dD(a,!1))]});return 1===Object.keys(n.children).length&&null!=n.children[hi]?"".concat(tB(n),"/").concat(o[0]):"".concat(tB(n),"/(").concat(o.join("//"),")")}function tre(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function nB(n){return tre(n).replace(/%3B/gi,";")}function hG(n){return tre(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function rB(n){return decodeURIComponent(n)}function nre(n){return rB(n.replace(/\+/g,"%20"))}function rre(n){return"".concat(hG(n.path)).concat(function ZEe(n){return Object.keys(n).map(function(r){return";".concat(hG(r),"=").concat(hG(n[r]))}).join("")}(n.parameters))}var BEe=/^[^\/()?;=#]+/;function iB(n){var r=n.match(BEe);return r?r[0]:""}var FEe=/^[^=?&#]+/;var HEe=/^[^&#]+/;var GEe=function(){function n(r){(0,B.Z)(this,n),this.url=r,this.remaining=r}return(0,U.Z)(n,[{key:"parseRootSegment",value:function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new vi([],{}):new vi([],this.parseChildren())}},{key:"parseQueryParams",value:function(){var e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}},{key:"parseFragment",value:function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}},{key:"parseChildren",value:function(){if(""===this.remaining)return{};this.consumeOptional("/");var e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());var i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0));var o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1)),(e.length>0||Object.keys(i).length>0)&&(o[hi]=new vi(e,i)),o}},{key:"parseSegment",value:function(){var e=iB(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new t.vHH(4009,false);return this.capture(e),new cD(rB(e),this.parseMatrixParams())}},{key:"parseMatrixParams",value:function(){for(var e={};this.consumeOptional(";");)this.parseParam(e);return e}},{key:"parseParam",value:function(e){var i=iB(this.remaining);if(i){this.capture(i);var o="";if(this.consumeOptional("=")){var a=iB(this.remaining);a&&(o=a,this.capture(o))}e[rB(i)]=rB(o)}}},{key:"parseQueryParam",value:function(e){var i=function UEe(n){var r=n.match(FEe);return r?r[0]:""}(this.remaining);if(i){this.capture(i);var o="";if(this.consumeOptional("=")){var a=function jEe(n){var r=n.match(HEe);return r?r[0]:""}(this.remaining);a&&(o=a,this.capture(o))}var s=nre(i),l=nre(o);if(e.hasOwnProperty(s)){var u=e[s];Array.isArray(u)||(u=[u],e[s]=u),u.push(l)}else e[s]=l}}},{key:"parseParens",value:function(e){var i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var o=iB(this.remaining),a=this.remaining[o.length];if("/"!==a&&")"!==a&&";"!==a)throw new t.vHH(4010,false);var s=void 0;o.indexOf(":")>-1?(s=o.slice(0,o.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=hi);var l=this.parseChildren();i[s]=1===Object.keys(l).length?l[hi]:new vi([],l),this.consumeOptional("//")}return i}},{key:"peekStartsWith",value:function(e){return this.remaining.startsWith(e)}},{key:"consumeOptional",value:function(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}},{key:"capture",value:function(e){if(!this.consumeOptional(e))throw new t.vHH(4011,false)}}]),n}();function mG(n){return n.segments.length>0?new vi([],(0,Yw.Z)({},hi,n)):n}function oB(n){for(var r={},e=0,i=Object.keys(n.children);e0||s.hasChildren())&&(r[o]=s)}return function zEe(n){if(1===n.numberOfChildren&&n.children[hi]){var r=n.children[hi];return new vi(n.segments.concat(r.segments),r.children)}return n}(new vi(n.segments,r))}function Z0(n){return n instanceof R0}function YEe(n,r,e,i,o){var a;if(0===e.length)return Jw(r.root,r.root,r.root,i,o);var l=are(e);if(l.toRoot())return Jw(r.root,r.root,new vi([],{}),i,o);var d=function u(g){var y,L=function qEe(n,r,e,i){if(n.isAbsolute)return new Qw(r.root,!0,0);if(-1===i){var o=e===r.root;return new Qw(e,o,0)}var a=fD(n.commands[0])?0:1;return sre(e,i+a,n.numberOfDoubleDots)}(l,r,null===(y=n.snapshot)||void 0===y?void 0:y._urlSegment,g),z=L.processChildren?hD(L.segmentGroup,L.index,l.commands):gG(L.segmentGroup,L.index,l.commands);return Jw(r.root,L.segmentGroup,z,i,o)}(null===(a=n.snapshot)||void 0===a?void 0:a._lastPathIndex);return d}function fD(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function pD(n){return"object"==typeof n&&null!=n&&n.outlets}function Jw(n,r,e,i,o){var a={};i&&cl(i,function(u,d){a[d]=Array.isArray(u)?u.map(function(h){return"".concat(h)}):"".concat(u)});var l=mG(oB(n===r?e:ire(n,r,e)));return new R0(l,a,o)}function ire(n,r,e){var i={};return cl(n.children,function(o,a){i[a]=o===r?e:ire(o,r,e)}),new vi(n.segments,i)}var ore=function(){function n(r,e,i){if((0,B.Z)(this,n),this.isAbsolute=r,this.numberOfDoubleDots=e,this.commands=i,r&&i.length>0&&fD(i[0]))throw new t.vHH(4003,false);var o=i.find(pD);if(o&&o!==qne(i))throw new t.vHH(4004,false)}return(0,U.Z)(n,[{key:"toRoot",value:function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}]),n}();function are(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new ore(!0,0,n);var r=0,e=!1,i=n.reduce(function(o,a,s){if("object"==typeof a&&null!=a){if(a.outlets){var l={};return cl(a.outlets,function(u,d){l[d]="string"==typeof u?u.split("/"):u}),[].concat((0,cn.Z)(o),[{outlets:l}])}if(a.segmentPath)return[].concat((0,cn.Z)(o),[a.segmentPath])}return"string"!=typeof a?[].concat((0,cn.Z)(o),[a]):0===s?(a.split("/").forEach(function(u,d){0==d&&"."===u||(0==d&&""===u?e=!0:".."===u?r++:""!=u&&o.push(u))}),o):[].concat((0,cn.Z)(o),[a])},[]);return new ore(e,r,i)}var Qw=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.segmentGroup=r,this.processChildren=e,this.index=i});function sre(n,r,e){for(var i=n,o=r,a=e;a>o;){if(a-=o,!(i=i.parent))throw new t.vHH(4005,false);o=i.segments.length}return new Qw(i,!1,o-a)}function gG(n,r,e){if(n||(n=new vi([],{})),0===n.segments.length&&n.hasChildren())return hD(n,r,e);var i=function QEe(n,r,e){for(var i=0,o=r,a={match:!1,pathIndex:0,commandIndex:0};o=e.length)return a;var s=n.segments[o],l=e[i];if(pD(l))break;var u="".concat(l),d=i0&&void 0===u)break;if(u&&d&&"object"==typeof d&&void 0===d.outlets){if(!ure(u,d,s))return a;i+=2}else{if(!ure(u,{},s))return a;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(n,r,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex2&&void 0!==arguments[2]?arguments[2]:"imperative",l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return(0,B.Z)(this,e),(a=r.call(this,i,o)).type=0,a.navigationTrigger=s,a.restoredState=l,a}return(0,U.Z)(e,[{key:"toString",value:function(){return"NavigationStart(id: ".concat(this.id,", url: '").concat(this.url,"')")}}]),e}(cm),Jd=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,o)).urlAfterRedirects=a,s.type=1,s}return(0,U.Z)(e,[{key:"toString",value:function(){return"NavigationEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"')")}}]),e}(cm),mD=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).reason=a,l.code=s,l.type=2,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"NavigationCancel(id: ".concat(this.id,", url: '").concat(this.url,"')")}}]),e}(cm),yG=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).error=a,l.target=s,l.type=3,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"NavigationError(id: ".concat(this.id,", url: '").concat(this.url,"', error: ").concat(this.error,")")}}]),e}(cm),$Ee=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).urlAfterRedirects=a,l.state=s,l.type=4,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"RoutesRecognized(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),e}(cm),exe=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).urlAfterRedirects=a,l.state=s,l.type=7,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"GuardsCheckStart(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),e}(cm),txe=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this,i,o)).urlAfterRedirects=a,u.state=s,u.shouldActivate=l,u.type=8,u}return(0,U.Z)(e,[{key:"toString",value:function(){return"GuardsCheckEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,", shouldActivate: ").concat(this.shouldActivate,")")}}]),e}(cm),nxe=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).urlAfterRedirects=a,l.state=s,l.type=5,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"ResolveStart(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),e}(cm),rxe=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,i,o)).urlAfterRedirects=a,l.state=s,l.type=6,l}return(0,U.Z)(e,[{key:"toString",value:function(){return"ResolveEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),e}(cm),ixe=function(){function n(r){(0,B.Z)(this,n),this.route=r,this.type=9}return(0,U.Z)(n,[{key:"toString",value:function(){return"RouteConfigLoadStart(path: ".concat(this.route.path,")")}}]),n}(),oxe=function(){function n(r){(0,B.Z)(this,n),this.route=r,this.type=10}return(0,U.Z)(n,[{key:"toString",value:function(){return"RouteConfigLoadEnd(path: ".concat(this.route.path,")")}}]),n}(),axe=function(){function n(r){(0,B.Z)(this,n),this.snapshot=r,this.type=11}return(0,U.Z)(n,[{key:"toString",value:function(){var e=this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"";return"ChildActivationStart(path: '".concat(e,"')")}}]),n}(),sxe=function(){function n(r){(0,B.Z)(this,n),this.snapshot=r,this.type=12}return(0,U.Z)(n,[{key:"toString",value:function(){var e=this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"";return"ChildActivationEnd(path: '".concat(e,"')")}}]),n}(),lxe=function(){function n(r){(0,B.Z)(this,n),this.snapshot=r,this.type=13}return(0,U.Z)(n,[{key:"toString",value:function(){var e=this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"";return"ActivationStart(path: '".concat(e,"')")}}]),n}(),uxe=function(){function n(r){(0,B.Z)(this,n),this.snapshot=r,this.type=14}return(0,U.Z)(n,[{key:"toString",value:function(){var e=this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"";return"ActivationEnd(path: '".concat(e,"')")}}]),n}(),cre=function(){function n(r,e,i){(0,B.Z)(this,n),this.routerEvent=r,this.position=e,this.anchor=i,this.type=15}return(0,U.Z)(n,[{key:"toString",value:function(){var e=this.position?"".concat(this.position[0],", ").concat(this.position[1]):null;return"Scroll(anchor: '".concat(this.anchor,"', position: '").concat(e,"')")}}]),n}();var dre=function(){function n(r){(0,B.Z)(this,n),this._root=r}return(0,U.Z)(n,[{key:"root",get:function(){return this._root.value}},{key:"parent",value:function(e){var i=this.pathFromRoot(e);return i.length>1?i[i.length-2]:null}},{key:"children",value:function(e){var i=bG(e,this._root);return i?i.children.map(function(o){return o.value}):[]}},{key:"firstChild",value:function(e){var i=bG(e,this._root);return i&&i.children.length>0?i.children[0].value:null}},{key:"siblings",value:function(e){var i=CG(e,this._root);return i.length<2?[]:i[i.length-2].children.map(function(a){return a.value}).filter(function(a){return a!==e})}},{key:"pathFromRoot",value:function(e){return CG(e,this._root).map(function(i){return i.value})}}]),n}();function bG(n,r){if(n===r.value)return r;var i,e=(0,An.Z)(r.children);try{for(e.s();!(i=e.n()).done;){var a=bG(n,i.value);if(a)return a}}catch(s){e.e(s)}finally{e.f()}return null}function CG(n,r){if(n===r.value)return[r];var i,e=(0,An.Z)(r.children);try{for(e.s();!(i=e.n()).done;){var a=CG(n,i.value);if(a.length)return a.unshift(r),a}}catch(s){e.e(s)}finally{e.f()}return[]}var dm=function(){function n(r,e){(0,B.Z)(this,n),this.value=r,this.children=e}return(0,U.Z)(n,[{key:"toString",value:function(){return"TreeNode(".concat(this.value,")")}}]),n}();function Xw(n){var r={};return n&&n.children.forEach(function(e){return r[e.value.outlet]=e}),r}var fre=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),(a=r.call(this,i)).snapshot=o,wG((0,sD.Z)(a),i),a}return(0,U.Z)(e,[{key:"toString",value:function(){return this.snapshot.toString()}}]),e}(dre);function pre(n,r){var e=function dxe(n,r){var s=new sB([],{},{},"",{},hi,r,null,n.root,-1,{});return new mre("",new dm(s,[]))}(n,r),i=new Qi.X([new cD("",{})]),o=new Qi.X({}),a=new Qi.X({}),s=new Qi.X({}),l=new Qi.X(""),u=new dr(i,o,s,l,a,hi,r,e.root);return u.snapshot=e.root,new fre(new dm(u,[]),e)}var dr=function(){function n(r,e,i,o,a,s,l,u){var d,h;(0,B.Z)(this,n),this.url=r,this.params=e,this.queryParams=i,this.fragment=o,this.data=a,this.outlet=s,this.component=l,this.title=null!==(h=null===(d=this.data)||void 0===d?void 0:d.pipe((0,$n.U)(function(g){return g[uD]})))&&void 0!==h?h:(0,Kn.of)(void 0),this._futureSnapshot=u}return(0,U.Z)(n,[{key:"routeConfig",get:function(){return this._futureSnapshot.routeConfig}},{key:"root",get:function(){return this._routerState.root}},{key:"parent",get:function(){return this._routerState.parent(this)}},{key:"firstChild",get:function(){return this._routerState.firstChild(this)}},{key:"children",get:function(){return this._routerState.children(this)}},{key:"pathFromRoot",get:function(){return this._routerState.pathFromRoot(this)}},{key:"paramMap",get:function(){return this._paramMap||(this._paramMap=this.params.pipe((0,$n.U)(function(e){return Kw(e)}))),this._paramMap}},{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,$n.U)(function(e){return Kw(e)}))),this._queryParamMap}},{key:"toString",value:function(){return this.snapshot?this.snapshot.toString():"Future(".concat(this._futureSnapshot,")")}}]),n}();function hre(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"emptyOnly",e=n.pathFromRoot,i=0;if("always"!==r)for(i=e.length-1;i>=1;){var o=e[i],a=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(a.component)break;i--}}return fxe(e.slice(i))}function fxe(n){return n.reduce(function(r,e){var i;return{params:Object.assign(Object.assign({},r.params),e.params),data:Object.assign(Object.assign({},r.data),e.data),resolve:Object.assign(Object.assign(Object.assign(Object.assign({},e.data),r.resolve),null===(i=e.routeConfig)||void 0===i?void 0:i.data),e._resolvedData)}},{params:{},data:{},resolve:{}})}var sB=function(){function n(r,e,i,o,a,s,l,u,d,h,g,y){var L;(0,B.Z)(this,n),this.url=r,this.params=e,this.queryParams=i,this.fragment=o,this.data=a,this.outlet=s,this.component=l,this.title=null===(L=this.data)||void 0===L?void 0:L[uD],this.routeConfig=u,this._urlSegment=d,this._lastPathIndex=h,this._correctedLastPathIndex=null!=y?y:h,this._resolve=g}return(0,U.Z)(n,[{key:"root",get:function(){return this._routerState.root}},{key:"parent",get:function(){return this._routerState.parent(this)}},{key:"firstChild",get:function(){return this._routerState.firstChild(this)}},{key:"children",get:function(){return this._routerState.children(this)}},{key:"pathFromRoot",get:function(){return this._routerState.pathFromRoot(this)}},{key:"paramMap",get:function(){return this._paramMap||(this._paramMap=Kw(this.params)),this._paramMap}},{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=Kw(this.queryParams)),this._queryParamMap}},{key:"toString",value:function(){var e=this.url.map(function(o){return o.toString()}).join("/"),i=this.routeConfig?this.routeConfig.path:"";return"Route(url:'".concat(e,"', path:'").concat(i,"')")}}]),n}(),mre=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o){var a;return(0,B.Z)(this,e),(a=r.call(this,o)).url=i,wG((0,sD.Z)(a),o),a}return(0,U.Z)(e,[{key:"toString",value:function(){return _re(this._root)}}]),e}(dre);function wG(n,r){r.value._routerState=n,r.children.forEach(function(e){return wG(n,e)})}function _re(n){var r=n.children.length>0?" { ".concat(n.children.map(_re).join(", ")," } "):"";return"".concat(n.value).concat(r)}function kG(n){if(n.snapshot){var r=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Sp(r.queryParams,e.queryParams)||n.queryParams.next(e.queryParams),r.fragment!==e.fragment&&n.fragment.next(e.fragment),Sp(r.params,e.params)||n.params.next(e.params),function EEe(n,r){if(n.length!==r.length)return!1;for(var e=0;e4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=Xw(r);return n.children.forEach(function(s){Sxe(s,a[s.value.outlet],e,i.concat([s.value]),o),delete a[s.value.outlet]}),cl(a,function(s,l){return yD(s,e.getContext(l),o)}),o}function Sxe(n,r,e,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=n.value,s=r?r.value:null,l=e?e.getContext(n.value.outlet):null;if(s&&a.routeConfig===s.routeConfig){var u=Exe(s,a,a.routeConfig.runGuardsAndResolvers);u?o.canActivateChecks.push(new kre(i)):(a.data=s.data,a._resolvedData=s._resolvedData),a.component?vD(n,r,l?l.children:null,i,o):vD(n,r,e,i,o),u&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new uB(l.outlet.component,s))}else s&&yD(r,l,o),o.canActivateChecks.push(new kre(i)),a.component?vD(n,null,l?l.children:null,i,o):vD(n,null,e,i,o);return o}function Exe(n,r,e){if("function"==typeof e)return e(n,r);switch(e){case"pathParamsChange":return!L0(n.url,r.url);case"pathParamsOrQueryParamsChange":return!L0(n.url,r.url)||!Sp(n.queryParams,r.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!TG(n,r)||!Sp(n.queryParams,r.queryParams);default:return!TG(n,r)}}function yD(n,r,e){var i=Xw(n),o=n.value;cl(i,function(a,s){o.component?yD(a,r?r.children.getContext(s):null,e):yD(a,r,e)}),o.component&&r&&r.outlet&&r.outlet.isActivated?e.canDeactivateChecks.push(new uB(r.outlet.component,o)):e.canDeactivateChecks.push(new uB(null,o))}function bD(n){return"function"==typeof n}function xG(n){return n instanceof CEe.K||"EmptyError"===(null==n?void 0:n.name)}var cB=Symbol("INITIAL_VALUE");function ek(){return(0,Io.w)(function(n){return(0,Y1.aj)(n.map(function(r){return r.pipe((0,Ri.q)(1),(0,Oo.O)(cB))})).pipe((0,$n.U)(function(r){var i,e=(0,An.Z)(r);try{for(e.s();!(i=e.n()).done;){var o=i.value;if(!0!==o){if(o===cB)return cB;if(!1===o||o instanceof R0)return o}}}catch(a){e.e(a)}finally{e.f()}return!0}),(0,$r.h)(function(r){return r!==cB}),(0,Ri.q)(1))})}function Lxe(n,r){return(0,_s.zg)(function(e){var i=e.targetSnapshot,o=e.currentSnapshot,a=e.guards,s=a.canActivateChecks,l=a.canDeactivateChecks;return 0===l.length&&0===s.length?(0,Kn.of)(Object.assign(Object.assign({},e),{guardsResult:!0})):function Zxe(n,r,e,i){return(0,hs.D)(n).pipe((0,_s.zg)(function(o){return function jxe(n,r,e,i,o){var a=r&&r.routeConfig?r.routeConfig.canDeactivate:null;if(!a||0===a.length)return(0,Kn.of)(!0);var s=a.map(function(l){var u,d=null!==(u=gD(r))&&void 0!==u?u:o,h=$w(l,d);return Dg(function Ixe(n){return n&&bD(n.canDeactivate)}(h)?h.canDeactivate(n,r,e,i):d.runInContext(function(){return h(n,r,e,i)})).pipe((0,xg.P)())});return(0,Kn.of)(s).pipe(ek())}(o.component,o.route,e,r,i)}),(0,xg.P)(function(o){return!0!==o},!0))}(l,i,o,n).pipe((0,_s.zg)(function(u){return u&&function xxe(n){return"boolean"==typeof n}(u)?function Nxe(n,r,e,i){return(0,hs.D)(r).pipe((0,P0.b)(function(o){return(0,wEe.z)(function Fxe(n,r){return null!==n&&r&&r(new axe(n)),(0,Kn.of)(!0)}(o.route.parent,i),function Bxe(n,r){return null!==n&&r&&r(new lxe(n)),(0,Kn.of)(!0)}(o.route,i),function Hxe(n,r,e){var i=r[r.length-1],o=r.slice(0,r.length-1).reverse().map(function(s){return function Mxe(n){var r=n.routeConfig?n.routeConfig.canActivateChild:null;return r&&0!==r.length?{node:n,guards:r}:null}(s)}).filter(function(s){return null!==s}),a=o.map(function(s){return(0,lD.P)(function(){var l=s.guards.map(function(u){var d,h=null!==(d=gD(s.node))&&void 0!==d?d:e,g=$w(u,h);return Dg(function Oxe(n){return n&&bD(n.canActivateChild)}(g)?g.canActivateChild(i,n):h.runInContext(function(){return g(i,n)})).pipe((0,xg.P)())});return(0,Kn.of)(l).pipe(ek())})});return(0,Kn.of)(a).pipe(ek())}(n,o.path,e),function Uxe(n,r,e){var i=r.routeConfig?r.routeConfig.canActivate:null;if(!i||0===i.length)return(0,Kn.of)(!0);var o=i.map(function(a){return(0,lD.P)(function(){var s,l=null!==(s=gD(r))&&void 0!==s?s:e,u=$w(a,l);return Dg(function Axe(n){return n&&bD(n.canActivate)}(u)?u.canActivate(r,n):l.runInContext(function(){return u(r,n)})).pipe((0,xg.P)())})});return(0,Kn.of)(o).pipe(ek())}(n,o.route,e))}),(0,xg.P)(function(o){return!0!==o},!0))}(i,s,n,r):(0,Kn.of)(u)}),(0,$n.U)(function(u){return Object.assign(Object.assign({},e),{guardsResult:u})}))})}function Gxe(n,r,e,i){var o=r.canLoad;if(void 0===o||0===o.length)return(0,Kn.of)(!0);var a=o.map(function(s){var l=$w(s,n);return Dg(function Dxe(n){return n&&bD(n.canLoad)}(l)?l.canLoad(r,e):n.runInContext(function(){return l(r,e)}))});return(0,Kn.of)(a).pipe(ek(),Tre(i))}function Tre(n){return(0,kEe.z)((0,aa.b)(function(r){if(Z0(r))throw gre(0,r)}),(0,$n.U)(function(r){return!0===r}))}function zxe(n,r,e,i){var o=r.canMatch;if(!o||0===o.length)return(0,Kn.of)(!0);var a=o.map(function(s){var l=$w(s,n);return Dg(function Pxe(n){return n&&bD(n.canMatch)}(l)?l.canMatch(r,e):n.runInContext(function(){return l(r,e)}))});return(0,Kn.of)(a).pipe(ek(),Tre())}var DG={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Mre(n,r,e,i,o){var a=AG(n,r,e);return a.matched?zxe(i=Cre(r,i),r,e).pipe((0,$n.U)(function(s){return!0===s?a:Object.assign({},DG)})):(0,Kn.of)(a)}function AG(n,r,e){var i;if(""===r.path)return"full"===r.pathMatch&&(n.hasChildren()||e.length>0)?Object.assign({},DG):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};var a=(r.matcher||SEe)(e,n,r);if(!a)return Object.assign({},DG);var s={};cl(a.posParams,function(u,d){s[d]=u.path});var l=a.consumed.length>0?Object.assign(Object.assign({},s),a.consumed[a.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:a.consumed,remainingSegments:e.slice(a.consumed.length),parameters:l,positionalParamSegments:null!==(i=a.posParams)&&void 0!==i?i:{}}}function dB(n,r,e,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"corrected";if(e.length>0&&Yxe(n,e,i)){var a=new vi(r,Vxe(n,r,i,new vi(e,n.children)));return a._sourceSegment=n,a._segmentIndexShift=r.length,{segmentGroup:a,slicedSegments:[]}}if(0===e.length&&Kxe(n,e,i)){var s=new vi(n.segments,Wxe(n,r,e,i,n.children,o));return s._sourceSegment=n,s._segmentIndexShift=r.length,{segmentGroup:s,slicedSegments:e}}var l=new vi(n.segments,n.children);return l._sourceSegment=n,l._segmentIndexShift=r.length,{segmentGroup:l,slicedSegments:e}}function Wxe(n,r,e,i,o,a){var u,s={},l=(0,An.Z)(i);try{for(l.s();!(u=l.n()).done;){var d=u.value;if(fB(n,e,d)&&!o[td(d)]){var h=new vi([],{});h._sourceSegment=n,h._segmentIndexShift="legacy"===a?n.segments.length:r.length,s[td(d)]=h}}}catch(g){l.e(g)}finally{l.f()}return Object.assign(Object.assign({},o),s)}function Vxe(n,r,e,i){var o={};o[hi]=i,i._sourceSegment=n,i._segmentIndexShift=r.length;var s,a=(0,An.Z)(e);try{for(a.s();!(s=a.n()).done;){var l=s.value;if(""===l.path&&td(l)!==hi){var u=new vi([],{});u._sourceSegment=n,u._segmentIndexShift=r.length,o[td(l)]=u}}}catch(d){a.e(d)}finally{a.f()}return o}function Yxe(n,r,e){return e.some(function(i){return fB(n,r,i)&&td(i)!==hi})}function Kxe(n,r,e){return e.some(function(i){return fB(n,r,i)})}function fB(n,r,e){return(!(n.hasChildren()||r.length>0)||"full"!==e.pathMatch)&&""===e.path}function Sre(n,r,e,i){return!!(td(n)===i||i!==hi&&fB(r,e,n))&&("**"===n.path||AG(r,n,e).matched)}function Ere(n,r,e){return 0===r.length&&!n.children[e]}var pB=!1,hB=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.segmentGroup=r||null}),xre=(0,U.Z)(function n(r){(0,B.Z)(this,n),this.urlTree=r});function CD(n){return(0,O0._)(new hB(n))}function Dre(n){return(0,O0._)(new xre(n))}var Xxe=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.injector=r,this.configLoader=e,this.urlSerializer=i,this.urlTree=o,this.config=a,this.allowRedirects=!0}return(0,U.Z)(n,[{key:"apply",value:function(){var e=this,i=dB(this.urlTree.root,[],[],this.config).segmentGroup,o=new vi(i.segments,i.children);return this.expandSegmentGroup(this.injector,this.config,o,hi).pipe((0,$n.U)(function(l){return e.createUrlTree(oB(l),e.urlTree.queryParams,e.urlTree.fragment)})).pipe((0,ed.K)(function(l){if(l instanceof xre)return e.allowRedirects=!1,e.match(l.urlTree);throw l instanceof hB?e.noMatchError(l):l}))}},{key:"match",value:function(e){var i=this;return this.expandSegmentGroup(this.injector,this.config,e.root,hi).pipe((0,$n.U)(function(s){return i.createUrlTree(oB(s),e.queryParams,e.fragment)})).pipe((0,ed.K)(function(s){throw s instanceof hB?i.noMatchError(s):s}))}},{key:"noMatchError",value:function(e){return new t.vHH(4002,pB)}},{key:"createUrlTree",value:function(e,i,o){var a=mG(e);return new R0(a,i,o)}},{key:"expandSegmentGroup",value:function(e,i,o,a){return 0===o.segments.length&&o.hasChildren()?this.expandChildren(e,i,o).pipe((0,$n.U)(function(s){return new vi([],s)})):this.expandSegment(e,o,i,o.segments,a,!0)}},{key:"expandChildren",value:function(e,i,o){for(var a=this,s=[],l=0,u=Object.keys(o.children);l1||!a.children[hi])return e.redirectTo,(0,O0._)(new t.vHH(4e3,pB));a=a.children[hi]}}},{key:"applyRedirectCommands",value:function(e,i,o){return this.applyRedirectCreateUrlTree(i,this.urlSerializer.parse(i),e,o)}},{key:"applyRedirectCreateUrlTree",value:function(e,i,o,a){var s=this.createSegmentGroup(e,i.root,o,a);return new R0(s,this.createQueryParams(i.queryParams,this.urlTree.queryParams),i.fragment)}},{key:"createQueryParams",value:function(e,i){var o={};return cl(e,function(a,s){if("string"==typeof a&&a.startsWith(":")){var u=a.substring(1);o[s]=i[u]}else o[s]=a}),o}},{key:"createSegmentGroup",value:function(e,i,o,a){var s=this,l=this.createSegments(e,i.segments,o,a),u={};return cl(i.children,function(d,h){u[h]=s.createSegmentGroup(e,d,o,a)}),new vi(l,u)}},{key:"createSegments",value:function(e,i,o,a){var s=this;return i.map(function(l){return l.path.startsWith(":")?s.findPosParam(e,l,a):s.findOrReturn(l,o)})}},{key:"findPosParam",value:function(e,i,o){var a=o[i.path.substring(1)];if(!a)throw new t.vHH(4001,pB);return a}},{key:"findOrReturn",value:function(e,i){var s,o=0,a=(0,An.Z)(i);try{for(a.s();!(s=a.n()).done;){var l=s.value;if(l.path===e.path)return i.splice(o),l;o++}}catch(u){a.e(u)}finally{a.f()}return e}}]),n}();function $xe(n,r,e,i){return(0,Io.w)(function(o){return function Qxe(n,r,e,i,o){return new Xxe(n,r,e,i,o).apply()}(n,r,e,o.extractedUrl,i).pipe((0,$n.U)(function(a){return Object.assign(Object.assign({},o),{urlAfterRedirects:a})}))})}var eDe=(0,U.Z)(function n(){(0,B.Z)(this,n)});function tDe(n){return new oo.y(function(r){return r.error(n)})}var rDe=function(){function n(r,e,i,o,a,s,l,u){(0,B.Z)(this,n),this.injector=r,this.rootComponentType=e,this.config=i,this.urlTree=o,this.url=a,this.paramsInheritanceStrategy=s,this.relativeLinkResolution=l,this.urlSerializer=u}return(0,U.Z)(n,[{key:"recognize",value:function(){var e=this,i=dB(this.urlTree.root,[],[],this.config.filter(function(o){return void 0===o.redirectTo}),this.relativeLinkResolution).segmentGroup;return this.processSegmentGroup(this.injector,this.config,i,hi).pipe((0,$n.U)(function(o){if(null===o)return null;var a=new sB([],Object.freeze({}),Object.freeze(Object.assign({},e.urlTree.queryParams)),e.urlTree.fragment,{},hi,e.rootComponentType,null,e.urlTree.root,-1,{}),s=new dm(a,o),l=new mre(e.url,s);return e.inheritParamsAndData(l._root),l}))}},{key:"inheritParamsAndData",value:function(e){var i=this,o=e.value,a=hre(o,this.paramsInheritanceStrategy);o.params=Object.freeze(a.params),o.data=Object.freeze(a.data),e.children.forEach(function(s){return i.inheritParamsAndData(s)})}},{key:"processSegmentGroup",value:function(e,i,o,a){return 0===o.segments.length&&o.hasChildren()?this.processChildren(e,i,o):this.processSegment(e,i,o,o.segments,a)}},{key:"processChildren",value:function(e,i,o){var a=this;return(0,hs.D)(Object.keys(o.children)).pipe((0,P0.b)(function(s){var l=o.children[s],u=wre(i,s);return a.processSegmentGroup(e,u,l,s)}),(0,Gne.R)(function(s,l){return s&&l?(s.push.apply(s,(0,cn.Z)(l)),s):null}),(0,TEe.o)(function(s){return null!==s}),(0,Wne.d)(null),(0,zne.Z)(),(0,$n.U)(function(s){if(null===s)return null;var l=Are(s);return function iDe(n){n.sort(function(r,e){return r.value.outlet===hi?-1:e.value.outlet===hi?1:r.value.outlet.localeCompare(e.value.outlet)})}(l),l}))}},{key:"processSegment",value:function(e,i,o,a,s){var l=this;return(0,hs.D)(i).pipe((0,P0.b)(function(u){var d;return l.processSegmentAgainstRoute(null!==(d=u._injector)&&void 0!==d?d:e,u,o,a,s)}),(0,xg.P)(function(u){return!!u}),(0,ed.K)(function(u){if(xG(u))return Ere(o,a,s)?(0,Kn.of)([]):(0,Kn.of)(null);throw u}))}},{key:"processSegmentAgainstRoute",value:function(e,i,o,a,s){var u,d,h,l=this;if(i.redirectTo||!Sre(i,o,a,s))return(0,Kn.of)(null);if("**"===i.path){var g=a.length>0?qne(a).parameters:{},y=Ire(o)+a.length,L=new sB(a,g,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Rre(i),td(i),null!==(d=null!==(u=i.component)&&void 0!==u?u:i._loadedComponent)&&void 0!==d?d:null,i,Ore(o),y,Lre(i),y);h=(0,Kn.of)({snapshot:L,consumedSegments:[],remainingSegments:[]})}else h=Mre(o,i,a,e,this.urlSerializer).pipe((0,$n.U)(function(z){var Ce,Ee,q=z.matched,re=z.consumedSegments,ae=z.remainingSegments,Se=z.parameters;if(!q)return null;var Ke=Ire(o)+re.length;return{snapshot:new sB(re,Se,Object.freeze(Object.assign({},l.urlTree.queryParams)),l.urlTree.fragment,Rre(i),td(i),null!==(Ee=null!==(Ce=i.component)&&void 0!==Ce?Ce:i._loadedComponent)&&void 0!==Ee?Ee:null,i,Ore(o),Ke,Lre(i),Ke),consumedSegments:re,remainingSegments:ae}}));return h.pipe((0,Io.w)(function(z){var q,re;if(null===z)return(0,Kn.of)(null);var ae=z.snapshot,Se=z.consumedSegments,Ce=z.remainingSegments;e=null!==(q=i._injector)&&void 0!==q?q:e;var Ee=null!==(re=i._loadedInjector)&&void 0!==re?re:e,Ke=function oDe(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(i),st=dB(o,Se,Ce,Ke.filter(function(bt){return void 0===bt.redirectTo}),l.relativeLinkResolution),De=st.segmentGroup,it=st.slicedSegments;if(0===it.length&&De.hasChildren())return l.processChildren(Ee,Ke,De).pipe((0,$n.U)(function(bt){return null===bt?null:[new dm(ae,bt)]}));if(0===Ke.length&&0===it.length)return(0,Kn.of)([new dm(ae,[])]);var ft=td(i)===s;return l.processSegment(Ee,Ke,De,it,ft?hi:s).pipe((0,$n.U)(function(bt){return null===bt?null:[new dm(ae,bt)]}))}))}}]),n}();function Are(n){var o,r=[],e=new Set,i=(0,An.Z)(n);try{var a=function(){var y=o.value;if(!function aDe(n){var r=n.value.routeConfig;return r&&""===r.path&&void 0===r.redirectTo}(y))return r.push(y),"continue";var z,L=r.find(function(q){return y.value.routeConfig===q.value.routeConfig});void 0!==L?((z=L.children).push.apply(z,(0,cn.Z)(y.children)),e.add(L)):r.push(y)};for(i.s();!(o=i.n()).done;)a()}catch(g){i.e(g)}finally{i.f()}var u,l=(0,An.Z)(e);try{for(l.s();!(u=l.n()).done;){var d=u.value,h=Are(d.children);r.push(new dm(d.value,h))}}catch(g){l.e(g)}finally{l.f()}return r.filter(function(g){return!e.has(g)})}function Ore(n){for(var r=n;r._sourceSegment;)r=r._sourceSegment;return r}function Ire(n){for(var r,e,i=n,o=null!==(r=i._segmentIndexShift)&&void 0!==r?r:0;i._sourceSegment;)o+=null!==(e=(i=i._sourceSegment)._segmentIndexShift)&&void 0!==e?e:0;return o-1}function Rre(n){return n.data||{}}function Lre(n){return n.resolve||{}}function lDe(n,r,e,i,o,a){return(0,_s.zg)(function(s){return function nDe(n,r,e,i,o,a){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"emptyOnly",l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"legacy";return new rDe(n,r,e,i,o,s,l,a).recognize().pipe((0,Io.w)(function(u){return null===u?tDe(new eDe):(0,Kn.of)(u)}))}(n,r,e,s.urlAfterRedirects,i.serialize(s.urlAfterRedirects),i,o,a).pipe((0,$n.U)(function(l){return Object.assign(Object.assign({},s),{targetSnapshot:l})}))})}function uDe(n,r){return(0,_s.zg)(function(e){var i=e.targetSnapshot,o=e.guards.canActivateChecks;if(!o.length)return(0,Kn.of)(e);var a=0;return(0,hs.D)(o).pipe((0,P0.b)(function(s){return function cDe(n,r,e,i){var o=n.routeConfig,a=n._resolve;return void 0!==(null==o?void 0:o.title)&&!Zre(o)&&(a[uD]=o.title),function dDe(n,r,e,i){var o=function fDe(n){return[].concat((0,cn.Z)(Object.keys(n)),(0,cn.Z)(Object.getOwnPropertySymbols(n)))}(n);if(0===o.length)return(0,Kn.of)({});var a={};return(0,hs.D)(o).pipe((0,_s.zg)(function(s){return function pDe(n,r,e,i){var o,a=null!==(o=gD(r))&&void 0!==o?o:i,s=$w(n,a);return Dg(s.resolve?s.resolve(r,e):a.runInContext(function(){return s(r,e)}))}(n[s],r,e,i).pipe((0,xg.P)(),(0,aa.b)(function(l){a[s]=l}))}),(0,p7.h)(1),(0,x1.h)(a),(0,ed.K)(function(s){return xG(s)?I0.E:(0,O0._)(s)}))}(a,n,r,i).pipe((0,$n.U)(function(s){return n._resolvedData=s,n.data=hre(n,e).resolve,o&&Zre(o)&&(n.data[uD]=o.title),null}))}(s.route,i,n,r)}),(0,aa.b)(function(){return a++}),(0,p7.h)(1),(0,_s.zg)(function(s){return a===o.length?(0,Kn.of)(e):I0.E}))})}function Zre(n){return"string"==typeof n.title||null===n.title}function OG(n){return(0,Io.w)(function(r){var e=n(r);return e?(0,hs.D)(e).pipe((0,$n.U)(function(){return r})):(0,Kn.of)(r)})}var tk=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"buildTitle",value:function(e){for(var i,o,a=e.root;void 0!==a;)o=null!==(i=this.getResolvedTitleForRoute(a))&&void 0!==i?i:o,a=a.children.find(function(s){return s.outlet===hi});return o}},{key:"getResolvedTitleForRoute",value:function(e){return e.data[uD]}}]),n}();tk.\u0275fac=function(r){return new(r||tk)},tk.\u0275prov=t.Yz7({token:tk,factory:function(){return(0,t.f3M)(B0)},providedIn:"root"});var B0=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this)).title=i,o}return(0,U.Z)(e,[{key:"updateTitle",value:function(o){var a=this.buildTitle(o);void 0!==a&&this.title.setTitle(a)}}]),e}(tk);B0.\u0275fac=function(r){return new(r||B0)(t.LFG(ni))},B0.\u0275prov=t.Yz7({token:B0,factory:B0.\u0275fac,providedIn:"root"});var hDe=(0,U.Z)(function n(){(0,B.Z)(this,n)}),mDe=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"shouldDetach",value:function(e){return!1}},{key:"store",value:function(e,i){}},{key:"shouldAttach",value:function(e){return!1}},{key:"retrieve",value:function(e){return null}},{key:"shouldReuseRoute",value:function(e,i){return e.routeConfig===i.routeConfig}}]),n}(),_De=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(mDe),_B=new t.OlP("",{providedIn:"root",factory:function(){return{}}}),IG=new t.OlP("ROUTES"),Ag=function(){function n(r,e){(0,B.Z)(this,n),this.injector=r,this.compiler=e,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}return(0,U.Z)(n,[{key:"loadComponent",value:function(e){var i=this;if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return(0,Kn.of)(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);var o=Dg(e.loadComponent()).pipe((0,aa.b)(function(s){i.onLoadEndListener&&i.onLoadEndListener(e),e._loadedComponent=s}),(0,XN.x)(function(){i.componentLoaders.delete(e)})),a=new jne.c(o,function(){return new On.xQ}).pipe((0,Vne.x)());return this.componentLoaders.set(e,a),a}},{key:"loadChildren",value:function(e,i){var o=this;if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return(0,Kn.of)({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);var s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe((0,$n.U)(function(u){o.onLoadEndListener&&o.onLoadEndListener(i);var d,h;Array.isArray(u)?h=u:h=Kne((d=u.create(e).injector).get(IG,[],t.XFs.Self|t.XFs.Optional));var y=h.map(EG);return{routes:y,injector:d}}),(0,XN.x)(function(){o.childrenLoaders.delete(i)})),l=new jne.c(s,function(){return new On.xQ}).pipe((0,Vne.x)());return this.childrenLoaders.set(i,l),l}},{key:"loadModuleFactoryOrRoutes",value:function(e){var i=this;return Dg(e()).pipe((0,_s.zg)(function(o){return o instanceof t.YKP||Array.isArray(o)?(0,Kn.of)(o):(0,hs.D)(i.compiler.compileModuleAsync(o))}))}}]),n}();Ag.\u0275fac=function(r){return new(r||Ag)(t.LFG(t.zs3),t.LFG(t.Sil))},Ag.\u0275prov=t.Yz7({token:Ag,factory:Ag.\u0275fac,providedIn:"root"});var vDe=(0,U.Z)(function n(){(0,B.Z)(this,n)}),yDe=function(){function n(){(0,B.Z)(this,n)}return(0,U.Z)(n,[{key:"shouldProcessUrl",value:function(e){return!0}},{key:"extract",value:function(e){return e}},{key:"merge",value:function(e,i){return e}}]),n}(),gB=!1;function bDe(n){throw n}function CDe(n,r,e){return r.parse("/")}var wDe={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},kDe={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Bre(){var n,r,e=(0,t.f3M)(qw),i=(0,t.f3M)(Ep),o=(0,t.f3M)(le.Ye),a=(0,t.f3M)(t.zs3),s=(0,t.f3M)(t.Sil),l=null!==(n=(0,t.f3M)(IG,{optional:!0}))&&void 0!==n?n:[],u=null!==(r=(0,t.f3M)(_B,{optional:!0}))&&void 0!==r?r:{},d=(0,t.f3M)(B0),h=(0,t.f3M)(tk,{optional:!0}),g=(0,t.f3M)(vDe,{optional:!0}),y=(0,t.f3M)(hDe,{optional:!0}),L=new ur(null,e,i,o,a,s,Kne(l));return g&&(L.urlHandlingStrategy=g),y&&(L.routeReuseStrategy=y),L.titleStrategy=null!=h?h:d,function TDe(n,r){n.errorHandler&&(r.errorHandler=n.errorHandler),n.malformedUriErrorHandler&&(r.malformedUriErrorHandler=n.malformedUriErrorHandler),n.onSameUrlNavigation&&(r.onSameUrlNavigation=n.onSameUrlNavigation),n.paramsInheritanceStrategy&&(r.paramsInheritanceStrategy=n.paramsInheritanceStrategy),n.relativeLinkResolution&&(r.relativeLinkResolution=n.relativeLinkResolution),n.urlUpdateStrategy&&(r.urlUpdateStrategy=n.urlUpdateStrategy),n.canceledNavigationResolution&&(r.canceledNavigationResolution=n.canceledNavigationResolution)}(u,L),L}var ur=function(){function n(r,e,i,o,a,s,l){var u=this;(0,B.Z)(this,n),this.rootComponentType=r,this.urlSerializer=e,this.rootContexts=i,this.location=o,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new On.xQ,this.errorHandler=bDe,this.malformedUriErrorHandler=CDe,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=function(){return(0,Kn.of)(void 0)},this.urlHandlingStrategy=new yDe,this.routeReuseStrategy=new _De,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace";this.configLoader=a.get(Ag),this.configLoader.onLoadEndListener=function(L){return u.triggerEvent(new oxe(L))},this.configLoader.onLoadStartListener=function(L){return u.triggerEvent(new ixe(L))},this.ngModule=a.get(t.h0i),this.console=a.get(t.c2e);var g=a.get(t.R0b);this.isNgZoneEnabled=g instanceof t.R0b&&t.R0b.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=function xEe(){return new R0(new vi([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=pre(this.currentUrlTree,this.rootComponentType),this.transitions=new Qi.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return(0,U.Z)(n,[{key:"browserPageId",get:function(){var e;return null===(e=this.location.getState())||void 0===e?void 0:e.\u0275routerPageId}},{key:"setupNavigations",value:function(e){var i=this,o=this.events;return e.pipe((0,$r.h)(function(a){return 0!==a.id}),(0,$n.U)(function(a){return Object.assign(Object.assign({},a),{extractedUrl:i.urlHandlingStrategy.extract(a.rawUrl)})}),(0,Io.w)(function(a){var s=!1,l=!1;return(0,Kn.of)(a).pipe((0,aa.b)(function(u){i.currentNavigation={id:u.id,initialUrl:u.rawUrl,extractedUrl:u.extractedUrl,trigger:u.source,extras:u.extras,previousNavigation:i.lastSuccessfulNavigation?Object.assign(Object.assign({},i.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,Io.w)(function(u){var d=i.browserUrlTree.toString(),h=!i.navigated||u.extractedUrl.toString()!==d||d!==i.currentUrlTree.toString();if(("reload"===i.onSameUrlNavigation||h)&&i.urlHandlingStrategy.shouldProcessUrl(u.rawUrl))return Fre(u.source)&&(i.browserUrlTree=u.extractedUrl),(0,Kn.of)(u).pipe((0,Io.w)(function(Ee){var Ke=i.transitions.getValue();return o.next(new aB(Ee.id,i.serializeUrl(Ee.extractedUrl),Ee.source,Ee.restoredState)),Ke!==i.transitions.getValue()?I0.E:Promise.resolve(Ee)}),$xe(i.ngModule.injector,i.configLoader,i.urlSerializer,i.config),(0,aa.b)(function(Ee){i.currentNavigation=Object.assign(Object.assign({},i.currentNavigation),{finalUrl:Ee.urlAfterRedirects}),a.urlAfterRedirects=Ee.urlAfterRedirects}),lDe(i.ngModule.injector,i.rootComponentType,i.config,i.urlSerializer,i.paramsInheritanceStrategy,i.relativeLinkResolution),(0,aa.b)(function(Ee){if(a.targetSnapshot=Ee.targetSnapshot,"eager"===i.urlUpdateStrategy){if(!Ee.extras.skipLocationChange){var Ke=i.urlHandlingStrategy.merge(Ee.urlAfterRedirects,Ee.rawUrl);i.setBrowserUrl(Ke,Ee)}i.browserUrlTree=Ee.urlAfterRedirects}var st=new $Ee(Ee.id,i.serializeUrl(Ee.extractedUrl),i.serializeUrl(Ee.urlAfterRedirects),Ee.targetSnapshot);o.next(st)}));if(h&&i.rawUrlTree&&i.urlHandlingStrategy.shouldProcessUrl(i.rawUrlTree)){var L=u.id,z=u.extractedUrl,q=u.source,re=u.restoredState,ae=u.extras,Se=new aB(L,i.serializeUrl(z),q,re);o.next(Se);var Ce=pre(z,i.rootComponentType).snapshot;return a=Object.assign(Object.assign({},u),{targetSnapshot:Ce,urlAfterRedirects:z,extras:Object.assign(Object.assign({},ae),{skipLocationChange:!1,replaceUrl:!1})}),(0,Kn.of)(a)}return i.rawUrlTree=u.rawUrl,u.resolve(null),I0.E}),(0,aa.b)(function(u){var d=new exe(u.id,i.serializeUrl(u.extractedUrl),i.serializeUrl(u.urlAfterRedirects),u.targetSnapshot);i.triggerEvent(d)}),(0,$n.U)(function(u){return a=Object.assign(Object.assign({},u),{guards:Txe(u.targetSnapshot,u.currentSnapshot,i.rootContexts)})}),Lxe(i.ngModule.injector,function(u){return i.triggerEvent(u)}),(0,aa.b)(function(u){if(a.guardsResult=u.guardsResult,Z0(u.guardsResult))throw gre(i.urlSerializer,u.guardsResult);var d=new txe(u.id,i.serializeUrl(u.extractedUrl),i.serializeUrl(u.urlAfterRedirects),u.targetSnapshot,!!u.guardsResult);i.triggerEvent(d)}),(0,$r.h)(function(u){return!!u.guardsResult||(i.restoreHistory(u),i.cancelNavigationTransition(u,"",3),!1)}),OG(function(u){if(u.guards.canActivateChecks.length)return(0,Kn.of)(u).pipe((0,aa.b)(function(d){var h=new nxe(d.id,i.serializeUrl(d.extractedUrl),i.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);i.triggerEvent(h)}),(0,Io.w)(function(d){var h=!1;return(0,Kn.of)(d).pipe(uDe(i.paramsInheritanceStrategy,i.ngModule.injector),(0,aa.b)({next:function(){return h=!0},complete:function(){h||(i.restoreHistory(d),i.cancelNavigationTransition(d,"",2))}}))}),(0,aa.b)(function(d){var h=new rxe(d.id,i.serializeUrl(d.extractedUrl),i.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);i.triggerEvent(h)}))}),OG(function(u){return(0,Y1.aj)(function h(g){var y,L=[];(null===(y=g.routeConfig)||void 0===y?void 0:y.loadComponent)&&!g.routeConfig._loadedComponent&&L.push(i.configLoader.loadComponent(g.routeConfig).pipe((0,aa.b)(function(ae){g.component=ae}),(0,$n.U)(function(){})));var q,z=(0,An.Z)(g.children);try{for(z.s();!(q=z.n()).done;){var re=q.value;L.push.apply(L,(0,cn.Z)(h(re)))}}catch(ae){z.e(ae)}finally{z.f()}return L}(u.targetSnapshot.root)).pipe((0,Wne.d)(),(0,Ri.q)(1))}),OG(function(){return i.afterPreactivation()}),(0,$n.U)(function(u){var d=function pxe(n,r,e){var i=_D(n,r._root,e?e._root:void 0);return new fre(i,r)}(i.routeReuseStrategy,u.targetSnapshot,u.currentRouterState);return a=Object.assign(Object.assign({},u),{targetRouterState:d})}),(0,aa.b)(function(u){i.currentUrlTree=u.urlAfterRedirects,i.rawUrlTree=i.urlHandlingStrategy.merge(u.urlAfterRedirects,u.rawUrl),i.routerState=u.targetRouterState,"deferred"===i.urlUpdateStrategy&&(u.extras.skipLocationChange||i.setBrowserUrl(i.rawUrlTree,u),i.browserUrlTree=u.urlAfterRedirects)}),function(r,e,i){return(0,$n.U)(function(o){return new kxe(e,o.targetRouterState,o.currentRouterState,i).activate(r),o})}(i.rootContexts,i.routeReuseStrategy,function(u){return i.triggerEvent(u)}),(0,aa.b)({next:function(){s=!0},complete:function(){s=!0}}),(0,XN.x)(function(){var u;if(!s&&!l){i.cancelNavigationTransition(a,"",1)}(null===(u=i.currentNavigation)||void 0===u?void 0:u.id)===a.id&&(i.currentNavigation=null)}),(0,ed.K)(function(u){var d;if(l=!0,bre(u)){yre(u)||(i.navigated=!0,i.restoreHistory(a,!0));var h=new mD(a.id,i.serializeUrl(a.extractedUrl),u.message,u.cancellationCode);if(o.next(h),yre(u)){var g=i.urlHandlingStrategy.merge(u.url,i.rawUrlTree),y={skipLocationChange:a.extras.skipLocationChange,replaceUrl:"eager"===i.urlUpdateStrategy||Fre(a.source)};i.scheduleNavigation(g,"imperative",null,y,{resolve:a.resolve,reject:a.reject,promise:a.promise})}else a.resolve(!1)}else{i.restoreHistory(a,!0);var L=new yG(a.id,i.serializeUrl(a.extractedUrl),u,null!==(d=a.targetSnapshot)&&void 0!==d?d:void 0);o.next(L);try{a.resolve(i.errorHandler(u))}catch(z){a.reject(z)}}return I0.E}))}))}},{key:"resetRootComponentType",value:function(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}},{key:"setTransition",value:function(e){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),e))}},{key:"initialNavigation",value:function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}},{key:"setUpLocationChangeListener",value:function(){var e=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe(function(i){var o="popstate"===i.type?"popstate":"hashchange";"popstate"===o&&setTimeout(function(){var a,s={replaceUrl:!0},l=null!==(a=i.state)&&void 0!==a&&a.navigationId?i.state:null;if(l){var u=Object.assign({},l);delete u.navigationId,delete u.\u0275routerPageId,0!==Object.keys(u).length&&(s.state=u)}var d=e.parseUrl(i.url);e.scheduleNavigation(d,o,l,s)},0)}))}},{key:"url",get:function(){return this.serializeUrl(this.currentUrlTree)}},{key:"getCurrentNavigation",value:function(){return this.currentNavigation}},{key:"triggerEvent",value:function(e){this.events.next(e)}},{key:"resetConfig",value:function(e){this.config=e.map(EG),this.navigated=!1,this.lastSuccessfulId=-1}},{key:"ngOnDestroy",value:function(){this.dispose()}},{key:"dispose",value:function(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}},{key:"createUrlTree",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.relativeTo,a=i.queryParams,s=i.fragment,l=i.queryParamsHandling,u=i.preserveFragment,d=o||this.routerState.root,h=u?this.currentUrlTree.fragment:s,g=null;switch(l){case"merge":g=Object.assign(Object.assign({},this.currentUrlTree.queryParams),a);break;case"preserve":g=this.currentUrlTree.queryParams;break;default:g=a||null}return null!==g&&(g=this.removeEmptyProps(g)),YEe(d,this.currentUrlTree,e,g,null!=h?h:null)}},{key:"navigateByUrl",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1},o=Z0(e)?e:this.parseUrl(e),a=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(a,"imperative",null,i)}},{key:"navigate",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1};return MDe(e),this.navigateByUrl(this.createUrlTree(e,i),i)}},{key:"serializeUrl",value:function(e){return this.urlSerializer.serialize(e)}},{key:"parseUrl",value:function(e){var i;try{i=this.urlSerializer.parse(e)}catch(o){i=this.malformedUriErrorHandler(o,this.urlSerializer,e)}return i}},{key:"isActive",value:function(e,i){var o;if(o=!0===i?Object.assign({},wDe):!1===i?Object.assign({},kDe):i,Z0(e))return Qne(this.currentUrlTree,e,o);var a=this.parseUrl(e);return Qne(this.currentUrlTree,a,o)}},{key:"removeEmptyProps",value:function(e){return Object.keys(e).reduce(function(i,o){var a=e[o];return null!=a&&(i[o]=a),i},{})}},{key:"processNavigations",value:function(){var e=this;this.navigations.subscribe(function(i){var o;e.navigated=!0,e.lastSuccessfulId=i.id,e.currentPageId=i.targetPageId,e.events.next(new Jd(i.id,e.serializeUrl(i.extractedUrl),e.serializeUrl(e.currentUrlTree))),e.lastSuccessfulNavigation=e.currentNavigation,null===(o=e.titleStrategy)||void 0===o||o.updateTitle(e.routerState.snapshot),i.resolve(!0)},function(i){e.console.warn("Unhandled Navigation Error: ".concat(i))})}},{key:"scheduleNavigation",value:function(e,i,o,a,s){var l,u,d,h,g;if(this.disposed)return Promise.resolve(!1);s?(d=s.resolve,h=s.reject,g=s.promise):g=new Promise(function(q,re){d=q,h=re});var L,y=++this.navigationId;"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),L=o&&o.\u0275routerPageId?o.\u0275routerPageId:a.replaceUrl||a.skipLocationChange?null!==(l=this.browserPageId)&&void 0!==l?l:0:(null!==(u=this.browserPageId)&&void 0!==u?u:0)+1):L=0;return this.setTransition({id:y,targetPageId:L,source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:e,extras:a,resolve:d,reject:h,promise:g,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),g.catch(function(q){return Promise.reject(q)})}},{key:"setBrowserUrl",value:function(e,i){var o=this.urlSerializer.serialize(e),a=Object.assign(Object.assign({},i.extras.state),this.generateNgRouterState(i.id,i.targetPageId));this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl?this.location.replaceState(o,"",a):this.location.go(o,"",a)}},{key:"restoreHistory",value:function(e){var o,a,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("computed"===this.canceledNavigationResolution){var s=this.currentPageId-e.targetPageId,l="popstate"===e.source||"eager"===this.urlUpdateStrategy||this.currentUrlTree===(null===(o=this.currentNavigation)||void 0===o?void 0:o.finalUrl);l&&0!==s?this.location.historyGo(s):this.currentUrlTree===(null===(a=this.currentNavigation)||void 0===a?void 0:a.finalUrl)&&0===s&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}},{key:"resetState",value:function(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}},{key:"resetUrlToCurrentUrlTree",value:function(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}},{key:"cancelNavigationTransition",value:function(e,i,o){var a=new mD(e.id,this.serializeUrl(e.extractedUrl),i,o);this.triggerEvent(a),e.resolve(!1)}},{key:"generateNgRouterState",value:function(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,"\u0275routerPageId":i}:{navigationId:e}}}]),n}();function MDe(n){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};(0,B.Z)(this,n),this.router=r,this.viewportScroller=e,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}return(0,U.Z)(n,[{key:"init",value:function(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}},{key:"createScrollEvents",value:function(){var e=this;return this.router.events.subscribe(function(i){i instanceof aB?(e.store[e.lastId]=e.viewportScroller.getScrollPosition(),e.lastSource=i.navigationTrigger,e.restoredId=i.restoredState?i.restoredState.navigationId:0):i instanceof Jd&&(e.lastId=i.id,e.scheduleScrollEvent(i,e.router.parseUrl(i.urlAfterRedirects).fragment))})}},{key:"consumeScrollEvents",value:function(){var e=this;return this.router.events.subscribe(function(i){i instanceof cre&&(i.position?"top"===e.options.scrollPositionRestoration?e.viewportScroller.scrollToPosition([0,0]):"enabled"===e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition(i.position):i.anchor&&"enabled"===e.options.anchorScrolling?e.viewportScroller.scrollToAnchor(i.anchor):"disabled"!==e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition([0,0]))})}},{key:"scheduleScrollEvent",value:function(e,i){this.router.triggerEvent(new cre(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))}},{key:"ngOnDestroy",value:function(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}]),n}();ik.\u0275fac=function(r){t.$Z()},ik.\u0275prov=t.Yz7({token:ik,factory:ik.\u0275fac});function Hre(n){return n.routerState.root}function ok(n,r){return{"\u0275kind":n,"\u0275providers":r}}function RG(n){return[{provide:IG,multi:!0,useValue:n}]}function jre(){var n=(0,t.f3M)(t.zs3);return function(r){var e,i,o=n.get(t.z2F);if(r===o.components[0]){var a=n.get(ur),s=n.get(Gre);1===n.get(LG)&&a.initialNavigation(),null===(e=n.get(zre,null,t.XFs.Optional))||void 0===e||e.setUpPreloading(),null===(i=n.get(PG,null,t.XFs.Optional))||void 0===i||i.init(),a.resetRootComponentType(o.componentTypes[0]),s.closed||(s.next(),s.unsubscribe())}}}var Gre=new t.OlP("",{factory:function(){return new On.xQ}}),LG=new t.OlP("",{providedIn:"root",factory:function(){return 1}});function EDe(){return ok(2,[{provide:LG,useValue:0},{provide:t.ip1,multi:!0,deps:[t.zs3],useFactory:function(e){var i=e.get(le.V_,Promise.resolve()),o=!1;return function(){return i.then(function(){return new Promise(function(s){var l=e.get(ur),u=e.get(Gre);(function a(s){e.get(ur).events.pipe((0,$r.h)(function(u){return u instanceof Jd||u instanceof mD||u instanceof yG}),(0,$n.U)(function(u){return u instanceof Jd||!(!(u instanceof mD)||0!==u.code&&1!==u.code)&&null}),(0,$r.h)(function(u){return null!==u}),(0,Ri.q)(1)).subscribe(function(){s()})})(function(){s(!0),o=!0}),l.afterPreactivation=function(){return s(!0),o||u.closed?(0,Kn.of)(void 0):u},l.initialNavigation()})})}}}])}var zre=new t.OlP("");function ADe(n){return ok(0,[{provide:zre,useExisting:rk},{provide:Ure,useExisting:n}])}var Wre=new t.OlP("ROUTER_FORROOT_GUARD"),ODe=[le.Ye,{provide:qw,useClass:pG},{provide:ur,useFactory:Bre},Ep,{provide:dr,useFactory:Hre,deps:[ur]},Ag];function IDe(){return new t.PXZ("Router",ur)}var F0=function(){function n(r){(0,B.Z)(this,n)}return(0,U.Z)(n,null,[{key:"forRoot",value:function(e,i){return{ngModule:n,providers:[ODe,[],RG(e),{provide:Wre,useFactory:ZDe,deps:[[ur,new t.FiY,new t.tp0]]},{provide:_B,useValue:i||{}},null!=i&&i.useHash?{provide:le.S$,useClass:le.Do}:{provide:le.S$,useClass:le.b0},{provide:PG,useFactory:function(){var r=(0,t.f3M)(ur),e=(0,t.f3M)(le.EM),i=(0,t.f3M)(_B);return i.scrollOffset&&e.setOffset(i.scrollOffset),new ik(r,e,i)}},null!=i&&i.preloadingStrategy?ADe(i.preloadingStrategy).\u0275providers:[],{provide:t.PXZ,multi:!0,useFactory:IDe},null!=i&&i.initialNavigation?NDe(i):[],[{provide:Vre,useFactory:jre},{provide:t.tb,multi:!0,useExisting:Vre}]]}}},{key:"forChild",value:function(e){return{ngModule:n,providers:[RG(e)]}}}]),n}();function ZDe(n){return"guarded"}function NDe(n){return["disabled"===n.initialNavigation?ok(3,[{provide:t.ip1,multi:!0,useFactory:function(){var e=(0,t.f3M)(ur);return function(){e.setUpLocationChangeListener()}}},{provide:LG,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?EDe().\u0275providers:[]]}F0.\u0275fac=function(r){return new(r||F0)(t.LFG(Wre,8))},F0.\u0275mod=t.oAB({type:F0}),F0.\u0275inj=t.cJS({imports:[N0]});var Vre=new t.OlP("");new t.GfV("14.3.0");var bB=(0,U.Z)(function n(){(0,B.Z)(this,n)}),ho=m(2437),or=function(){function n(r){(0,B.Z)(this,n),this.httpController=r,this.controllerIds=[],this.serviceInitialized=new On.xQ,this.controllerIds=this.getcontrollerIds(),this.isServiceInitialized=!0,this.serviceInitialized.next(this.isServiceInitialized)}return(0,U.Z)(n,[{key:"getcontrollerIds",value:function(){var e=localStorage.getItem("controllerIds");return(null==e?void 0:e.length)>0?e.split(","):[]}},{key:"updatecontrollerIds",value:function(){localStorage.removeItem("controllerIds"),localStorage.setItem("controllerIds",this.controllerIds.toString())}},{key:"get",value:function(e){var i=JSON.parse(localStorage.getItem("controller-".concat(e)));return new Promise(function(a){a(i)})}},{key:"create",value:function(e){return e.id=this.controllerIds.length+1,localStorage.setItem("controller-".concat(e.id),JSON.stringify(e)),this.controllerIds.push("controller-".concat(e.id)),this.updatecontrollerIds(),new Promise(function(o){o(e)})}},{key:"update",value:function(e){return localStorage.removeItem("controller-".concat(e.id)),localStorage.setItem("controller-".concat(e.id),JSON.stringify(e)),new Promise(function(o){o(e)})}},{key:"findAll",value:function(){var e=this;return new Promise(function(o){var a=[];e.controllerIds.forEach(function(s){var l=JSON.parse(localStorage.getItem(s));a.push(l)}),o(a)})}},{key:"delete",value:function(e){return localStorage.removeItem("controller-".concat(e.id)),this.controllerIds=this.controllerIds.filter(function(o){return o!=="controller-".concat(e.id)}),this.updatecontrollerIds(),new Promise(function(o){o(e.id)})}},{key:"getControllerUrl",value:function(e){return"".concat(e.protocol,"//").concat(e.host,":").concat(e.port,"/")}},{key:"checkControllerVersion",value:function(e){return this.httpController.get(e,"/version")}},{key:"getLocalController",value:function(e,i){var o=this;return new Promise(function(s,l){o.findAll().then(function(u){var d=u.find(function(g){return"bundled"===g.location});if(d)d.host=e,d.port=i,d.protocol=location.protocol,o.update(d).then(function(g){s(g)},l);else{var h=new bB;h.name="local",h.host=e,h.port=i,h.location="bundled",h.protocol=location.protocol,o.create(h).then(function(g){s(g)},l)}},l)})}}]),n}();or.\u0275fac=function(r){return new(r||or)(t.LFG(ho.zw))},or.\u0275prov=t.Yz7({token:or,factory:or.\u0275fac});var TD=(0,U.Z)(function n(r,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,B.Z)(this,n),this.visible=r,this.error=e,this.clear=i}),El=function(){function n(){(0,B.Z)(this,n),this.state=new Qi.X(new TD(!1))}return(0,U.Z)(n,[{key:"setError",value:function(e){this.state.next(new TD(!1,e.error))}},{key:"clear",value:function(){this.state.next(new TD(!1,null,!0))}},{key:"activate",value:function(){this.state.next(new TD(!0))}},{key:"deactivate",value:function(){this.state.next(new TD(!1))}}]),n}();El.\u0275fac=function(r){return new(r||El)},El.\u0275prov=t.Yz7({token:El,factory:El.\u0275fac});var Yre=["mat-button",""],Kre=["*"],HDe=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],jDe=(0,Gt.pj)((0,Gt.Id)((0,Gt.Kr)(function(){return(0,U.Z)(function n(r){(0,B.Z)(this,n),this._elementRef=r})}()))),fn=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;(0,B.Z)(this,e),(s=r.call(this,i))._focusMonitor=o,s._animationMode=a,s.isRoundButton=s._hasHostAttributes("mat-fab","mat-mini-fab"),s.isIconButton=s._hasHostAttributes("mat-icon-button");var u,l=(0,An.Z)(HDe);try{for(l.s();!(u=l.n()).done;){var d=u.value;s._hasHostAttributes(d)&&s._getHostElement().classList.add(d)}}catch(h){l.e(h)}finally{l.f()}return i.nativeElement.classList.add("mat-button-base"),s.isRoundButton&&(s.color="accent"),s}return(0,U.Z)(e,[{key:"ngAfterViewInit",value:function(){this._focusMonitor.monitor(this._elementRef,!0)}},{key:"ngOnDestroy",value:function(){this._focusMonitor.stopMonitoring(this._elementRef)}},{key:"focus",value:function(o,a){o?this._focusMonitor.focusVia(this._getHostElement(),o,a):this._getHostElement().focus(a)}},{key:"_getHostElement",value:function(){return this._elementRef.nativeElement}},{key:"_isRippleDisabled",value:function(){return this.disableRipple||this.disabled}},{key:"_hasHostAttributes",value:function(){for(var o=this,a=arguments.length,s=new Array(a),l=0;l*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}"],encapsulation:2,changeDetection:0});var U0=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;return(0,B.Z)(this,e),(l=r.call(this,o,i,a))._ngZone=s,l._haltDisabledEvents=function(u){l.disabled&&(u.preventDefault(),u.stopImmediatePropagation())},l}return(0,U.Z)(e,[{key:"ngAfterViewInit",value:function(){var o=this;(0,Ut.Z)((0,Wt.Z)(e.prototype),"ngAfterViewInit",this).call(this),this._ngZone?this._ngZone.runOutsideAngular(function(){o._elementRef.nativeElement.addEventListener("click",o._haltDisabledEvents)}):this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)}},{key:"ngOnDestroy",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"ngOnDestroy",this).call(this),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}]),e}(fn);U0.\u0275fac=function(r){return new(r||U0)(t.Y36(Yr.tE),t.Y36(t.SBq),t.Y36(t.QbO,8),t.Y36(t.R0b,8))},U0.\u0275cmp=t.Xpm({type:U0,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-icon-button",""],["a","mat-fab",""],["a","mat-mini-fab",""],["a","mat-stroked-button",""],["a","mat-flat-button",""]],hostAttrs:[1,"mat-focus-indicator"],hostVars:7,hostBindings:function(r,e){2&r&&(t.uIk("tabindex",e.disabled?-1:e.tabIndex)("disabled",e.disabled||null)("aria-disabled",e.disabled.toString()),t.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode)("mat-button-disabled",e.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[t.qOj],attrs:Yre,ngContentSelectors:Kre,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(r,e){1&r&&(t.F$t(),t.TgZ(0,"span",0),t.Hsn(1),t.qZA(),t._UZ(2,"span",1)(3,"span",2)),2&r&&(t.xp6(2),t.ekj("mat-button-ripple-round",e.isRoundButton||e.isIconButton),t.Q6J("matRippleDisabled",e._isRippleDisabled())("matRippleCentered",e.isIconButton)("matRippleTrigger",e._getHostElement()))},dependencies:[Gt.wG],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}"],encapsulation:2,changeDetection:0});var pm=(0,U.Z)(function n(){(0,B.Z)(this,n)});pm.\u0275fac=function(r){return new(r||pm)},pm.\u0275mod=t.oAB({type:pm}),pm.\u0275inj=t.cJS({imports:[Gt.si,Gt.BQ,Gt.BQ]});var CB,H0=m(567);function MD(n){var r;return(null===(r=function zDe(){if(void 0===CB&&(CB=null,"undefined"!=typeof window)){var n=window;void 0!==n.trustedTypes&&(CB=n.trustedTypes.createPolicy("angular#components",{createHTML:function(e){return e}}))}return CB}())||void 0===r?void 0:r.createHTML(n))||n}function qre(n){return Error('Unable to find icon with the name "'.concat(n,'"'))}function Jre(n){return Error("The URL provided to MatIconRegistry was not trusted as a resource URL "+"via Angular's DomSanitizer. Attempted URL was \"".concat(n,'".'))}function Qre(n){return Error("The literal provided to MatIconRegistry was not trusted as safe HTML by "+"Angular's DomSanitizer. Attempted literal was \"".concat(n,'".'))}var j0=(0,U.Z)(function n(r,e,i){(0,B.Z)(this,n),this.url=r,this.svgText=e,this.options=i}),xp=function(){function n(r,e,i,o){(0,B.Z)(this,n),this._httpClient=r,this._sanitizer=e,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=i}return(0,U.Z)(n,[{key:"addSvgIcon",value:function(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}},{key:"addSvgIconLiteral",value:function(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}},{key:"addSvgIconInNamespace",value:function(e,i,o,a){return this._addSvgIconConfig(e,i,new j0(o,null,a))}},{key:"addSvgIconResolver",value:function(e){return this._resolvers.push(e),this}},{key:"addSvgIconLiteralInNamespace",value:function(e,i,o,a){var s=this._sanitizer.sanitize(t.q3G.HTML,o);if(!s)throw Qre(o);var l=MD(s);return this._addSvgIconConfig(e,i,new j0("",l,a))}},{key:"addSvgIconSet",value:function(e,i){return this.addSvgIconSetInNamespace("",e,i)}},{key:"addSvgIconSetLiteral",value:function(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}},{key:"addSvgIconSetInNamespace",value:function(e,i,o){return this._addSvgIconSetConfig(e,new j0(i,null,o))}},{key:"addSvgIconSetLiteralInNamespace",value:function(e,i,o){var a=this._sanitizer.sanitize(t.q3G.HTML,i);if(!a)throw Qre(i);var s=MD(a);return this._addSvgIconSetConfig(e,new j0("",s,o))}},{key:"registerFontClassAlias",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return this._fontCssClassesByAlias.set(e,i),this}},{key:"classNameForFontAlias",value:function(e){return this._fontCssClassesByAlias.get(e)||e}},{key:"setDefaultFontSetClass",value:function(){for(var e=arguments.length,i=new Array(e),o=0;o1&&void 0!==arguments[1]?arguments[1]:"",o=Xre(i,e),a=this._svgIconConfigs.get(o);if(a)return this._getSvgFromConfig(a);if(a=this._getIconConfigFromResolvers(i,e))return this._svgIconConfigs.set(o,a),this._getSvgFromConfig(a);var s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(e,s):(0,O0._)(qre(o))}},{key:"ngOnDestroy",value:function(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}},{key:"_getSvgFromConfig",value:function(e){return e.svgText?(0,Kn.of)(wB(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe((0,$n.U)(function(i){return wB(i)}))}},{key:"_getSvgFromIconSetConfigs",value:function(e,i){var o=this,a=this._extractIconWithNameFromAnySet(e,i);if(a)return(0,Kn.of)(a);var s=i.filter(function(l){return!l.svgText}).map(function(l){return o._loadSvgIconSetFromConfig(l).pipe((0,ed.K)(function(u){var d=o._sanitizer.sanitize(t.q3G.RESOURCE_URL,l.url),h="Loading icon set URL: ".concat(d," failed: ").concat(u.message);return o._errorHandler.handleError(new Error(h)),(0,Kn.of)(null)}))});return(0,H0.D)(s).pipe((0,$n.U)(function(){var l=o._extractIconWithNameFromAnySet(e,i);if(!l)throw qre(e);return l}))}},{key:"_extractIconWithNameFromAnySet",value:function(e,i){for(var o=i.length-1;o>=0;o--){var a=i[o];if(a.svgText&&a.svgText.toString().indexOf(e)>-1){var s=this._svgElementFromConfig(a),l=this._extractSvgIconFromSet(s,e,a.options);if(l)return l}}return null}},{key:"_loadSvgIconFromConfig",value:function(e){var i=this;return this._fetchIcon(e).pipe((0,aa.b)(function(o){return e.svgText=o}),(0,$n.U)(function(){return i._svgElementFromConfig(e)}))}},{key:"_loadSvgIconSetFromConfig",value:function(e){return e.svgText?(0,Kn.of)(null):this._fetchIcon(e).pipe((0,aa.b)(function(i){return e.svgText=i}))}},{key:"_extractSvgIconFromSet",value:function(e,i,o){var a=e.querySelector('[id="'.concat(i,'"]'));if(!a)return null;var s=a.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,o);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),o);var l=this._svgElementFromString(MD(""));return l.appendChild(s),this._setSvgAttributes(l,o)}},{key:"_svgElementFromString",value:function(e){var i=this._document.createElement("DIV");i.innerHTML=e;var o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}},{key:"_toSvgElement",value:function(e){for(var i=this._svgElementFromString(MD("")),o=e.attributes,a=0;a0});this._previousFontSetClass.forEach(function(s){return o.classList.remove(s)}),a.forEach(function(s){return o.classList.add(s)}),this._previousFontSetClass=a,this.fontIcon!==this._previousFontIconClass&&!a.includes("mat-ligature-font")&&(this._previousFontIconClass&&o.classList.remove(this._previousFontIconClass),this.fontIcon&&o.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}}},{key:"_cleanupFontValue",value:function(o){return"string"==typeof o?o.trim().split(" ")[0]:o}},{key:"_prependPathToReferences",value:function(o){var a=this._elementsWithExternalReferences;a&&a.forEach(function(s,l){s.forEach(function(u){l.setAttribute(u.name,"url('".concat(o,"#").concat(u.value,"')"))})})}},{key:"_cacheChildrenWithExternalReferences",value:function(o){for(var a=o.querySelectorAll(XDe),s=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map,l=function(h){$re.forEach(function(g){var y=a[h],L=y.getAttribute(g),z=L?L.match($De):null;if(z){var q=s.get(y);q||(q=[],s.set(y,q)),q.push({name:g,value:z[1]})}})},u=0;u0&&void 0!==arguments[0]?arguments[0]:this.showDelay;if(this.disabled||!this.message||this._isTooltipVisible())null===(o=this._tooltipInstance)||void 0===o||o._cancelPendingAnimations();else{var a=this._createOverlay();this._detach(),this._portal=this._portal||new ao.C5(this._tooltipComponent,this._viewContainerRef);var s=this._tooltipInstance=a.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe((0,Ir.R)(this._destroyed)).subscribe(function(){return e._detach()}),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(i)}}},{key:"hide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hideDelay,i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}},{key:"toggle",value:function(){this._isTooltipVisible()?this.hide():this.show()}},{key:"_isTooltipVisible",value:function(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}},{key:"_createOverlay",value:function(){var i,e=this;if(this._overlayRef)return this._overlayRef;var o=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),a=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(".".concat(this._cssClassPrefix,"-tooltip")).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(o);return a.positionChanges.pipe((0,Ir.R)(this._destroyed)).subscribe(function(s){e._updateCurrentPositionClass(s.connectionPair),e._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&e._tooltipInstance.isVisible()&&e._ngZone.run(function(){return e.hide(0)})}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:a,panelClass:"".concat(this._cssClassPrefix,"-").concat(eie),scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe((0,Ir.R)(this._destroyed)).subscribe(function(){return e._detach()}),this._overlayRef.outsidePointerEvents().pipe((0,Ir.R)(this._destroyed)).subscribe(function(){var s;return null===(s=e._tooltipInstance)||void 0===s?void 0:s._handleBodyInteraction()}),this._overlayRef.keydownEvents().pipe((0,Ir.R)(this._destroyed)).subscribe(function(s){e._isTooltipVisible()&&s.keyCode===Tr.hY&&!(0,Tr.Vb)(s)&&(s.preventDefault(),s.stopPropagation(),e._ngZone.run(function(){return e.hide(0)}))}),!(null===(i=this._defaultOptions)||void 0===i)&&i.disableTooltipInteractivity&&this._overlayRef.addPanelClass("".concat(this._cssClassPrefix,"-tooltip-panel-non-interactive")),this._overlayRef}},{key:"_detach",value:function(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}},{key:"_updatePosition",value:function(e){var i=e.getConfig().positionStrategy,o=this._getOrigin(),a=this._getOverlayPosition();i.withPositions([this._addOffset(Object.assign(Object.assign({},o.main),a.main)),this._addOffset(Object.assign(Object.assign({},o.fallback),a.fallback))])}},{key:"_addOffset",value:function(e){return e}},{key:"_getOrigin",value:function(){var o,e=!this._dir||"ltr"==this._dir.value,i=this.position;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});var a=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:a.x,originY:a.y}}}},{key:"_getOverlayPosition",value:function(){var o,e=!this._dir||"ltr"==this._dir.value,i=this.position;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});var a=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:a.x,overlayY:a.y}}}},{key:"_updateTooltipMessage",value:function(){var e=this;this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe((0,Ri.q)(1),(0,Ir.R)(this._destroyed)).subscribe(function(){e._tooltipInstance&&e._overlayRef.updatePosition()}))}},{key:"_setTooltipClass",value:function(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}},{key:"_invertPosition",value:function(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}},{key:"_updateCurrentPositionClass",value:function(e){var s,i=e.overlayY,o=e.originX,a=e.originY;if((s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===a?"above":"below")!==this._currentPosition){var l=this._overlayRef;if(l){var u="".concat(this._cssClassPrefix,"-").concat(eie,"-");l.removePanelClass(u+this._currentPosition),l.addPanelClass(u+s)}this._currentPosition=s}}},{key:"_setupPointerEnterEventsIfNeeded",value:function(){var e=this;this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",function(){e._setupPointerExitEventsIfNeeded(),e.show()}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",function(){e._setupPointerExitEventsIfNeeded(),clearTimeout(e._touchstartTimeout),e._touchstartTimeout=setTimeout(function(){return e.show()},500)}])),this._addListeners(this._passiveListeners))}},{key:"_setupPointerExitEventsIfNeeded",value:function(){var i,e=this;if(!this._pointerExitEventsInitialized){this._pointerExitEventsInitialized=!0;var o=[];if(this._platformSupportsMouseEvents())o.push(["mouseleave",function(s){var l,u=s.relatedTarget;(!u||null===(l=e._overlayRef)||void 0===l||!l.overlayElement.contains(u))&&e.hide()}],["wheel",function(s){return e._wheelListener(s)}]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();var a=function(){clearTimeout(e._touchstartTimeout),e.hide(e._defaultOptions.touchendHideDelay)};o.push(["touchend",a],["touchcancel",a])}this._addListeners(o),(i=this._passiveListeners).push.apply(i,o)}}},{key:"_addListeners",value:function(e){var i=this;e.forEach(function(o){var a=(0,Yn.Z)(o,2),s=a[0],l=a[1];i._elementRef.nativeElement.addEventListener(s,l,tie)})}},{key:"_platformSupportsMouseEvents",value:function(){return!this._platform.IOS&&!this._platform.ANDROID}},{key:"_wheelListener",value:function(e){if(this._isTooltipVisible()){var i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}},{key:"_disableNativeGesturesIfNecessary",value:function(){var e=this.touchGestures;if("off"!==e){var i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}]),n}();kB.\u0275fac=function(r){t.$Z()},kB.\u0275dir=t.lG2({type:kB,inputs:{position:["matTooltipPosition","position"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}});var mi=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d,h,g,y,L,z){var q;return(0,B.Z)(this,e),(q=r.call(this,i,o,a,s,l,u,d,h,g,y,L,z))._tooltipComponent=ED,q}return(0,U.Z)(e)}(kB);mi.\u0275fac=function(r){return new(r||mi)(t.Y36(Li.aV),t.Y36(t.SBq),t.Y36(sa.mF),t.Y36(t.s_b),t.Y36(t.R0b),t.Y36(bi.t4),t.Y36(Yr.$s),t.Y36(Yr.tE),t.Y36(nie),t.Y36(nl.Is,8),t.Y36(f2e,8),t.Y36(le.K0))},mi.\u0275dir=t.lG2({type:mi,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],exportAs:["matTooltip"],features:[t.qOj]});var SD=function(){function n(r,e){(0,B.Z)(this,n),this._changeDetectorRef=r,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new On.xQ,this._animationsDisabled="NoopAnimations"===e}return(0,U.Z)(n,[{key:"show",value:function(e){var i=this;clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(function(){i._toggleVisibility(!0),i._showTimeoutId=void 0},e)}},{key:"hide",value:function(e){var i=this;clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(function(){i._toggleVisibility(!1),i._hideTimeoutId=void 0},e)}},{key:"afterHidden",value:function(){return this._onHide}},{key:"isVisible",value:function(){return this._isVisible}},{key:"ngOnDestroy",value:function(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}},{key:"_handleBodyInteraction",value:function(){this._closeOnInteraction&&this.hide(0)}},{key:"_markForCheck",value:function(){this._changeDetectorRef.markForCheck()}},{key:"_handleMouseLeave",value:function(e){var i=e.relatedTarget;(!i||!this._triggerElement.contains(i))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}},{key:"_onShow",value:function(){}},{key:"_handleAnimationEnd",value:function(e){var i=e.animationName;(i===this._showAnimation||i===this._hideAnimation)&&this._finalizeAnimation(i===this._showAnimation)}},{key:"_cancelPendingAnimations",value:function(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}},{key:"_finalizeAnimation",value:function(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}},{key:"_toggleVisibility",value:function(e){var i=this._tooltip.nativeElement,o=this._showAnimation,a=this._hideAnimation;if(i.classList.remove(e?a:o),i.classList.add(e?o:a),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){var s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}]),n}();SD.\u0275fac=function(r){return new(r||SD)(t.Y36(t.sBO),t.Y36(t.QbO,8))},SD.\u0275dir=t.lG2({type:SD});var ED=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this,i,a))._breakpointObserver=o,s._isHandset=s._breakpointObserver.observe(nd.u3.Handset),s._showAnimation="mat-tooltip-show",s._hideAnimation="mat-tooltip-hide",s}return(0,U.Z)(e)}(SD);ED.\u0275fac=function(r){return new(r||ED)(t.Y36(t.sBO),t.Y36(nd.Yg),t.Y36(t.QbO,8))},ED.\u0275cmp=t.Xpm({type:ED,selectors:[["mat-tooltip-component"]],viewQuery:function(r,e){var i;(1&r&&t.Gf(s2e,7),2&r)&&(t.iGM(i=t.CRH())&&(e._tooltip=i.first))},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(r,e){1&r&&t.NdJ("mouseleave",function(o){return e._handleMouseLeave(o)}),2&r&&t.Udp("zoom",e.isVisible()?1:null)},features:[t.qOj],decls:4,vars:6,consts:[[1,"mat-tooltip",3,"ngClass","animationend"],["tooltip",""]],template:function(r,e){var i;(1&r&&(t.TgZ(0,"div",0,1),t.NdJ("animationend",function(a){return e._handleAnimationEnd(a)}),t.ALo(2,"async"),t._uU(3),t.qZA()),2&r)&&(t.ekj("mat-tooltip-handset",null==(i=t.lcZ(2,4,e._isHandset))?null:i.matches),t.Q6J("ngClass",e.tooltipClass),t.xp6(3),t.Oqu(e.message))},dependencies:[le.mk,le.Ov],styles:[".mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;transform:scale(0)}.mat-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}.mat-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-tooltip-show{0%{opacity:0;transform:scale(0)}50%{opacity:.5;transform:scale(0.99)}100%{opacity:1;transform:scale(1)}}@keyframes mat-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}.mat-tooltip-show{animation:mat-tooltip-show 200ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-tooltip-hide{animation:mat-tooltip-hide 100ms cubic-bezier(0, 0, 0.2, 1) forwards}"],encapsulation:2,changeDetection:0});var G0=(0,U.Z)(function n(){(0,B.Z)(this,n)});G0.\u0275fac=function(r){return new(r||G0)},G0.\u0275mod=t.oAB({type:G0}),G0.\u0275inj=t.cJS({providers:[d2e],imports:[Yr.rt,le.ez,Li.U8,Gt.BQ,Gt.BQ,sa.ZD]});(0,Zt.X$)("state",[(0,Zt.SB)("initial, void, hidden",(0,Zt.oB)({opacity:0,transform:"scale(0)"})),(0,Zt.SB)("visible",(0,Zt.oB)({transform:"scale(1)"})),(0,Zt.eR)("* => visible",(0,Zt.jt)("200ms cubic-bezier(0, 0, 0.2, 1)",(0,Zt.F4)([(0,Zt.oB)({opacity:0,transform:"scale(0)",offset:0}),(0,Zt.oB)({opacity:.5,transform:"scale(0.99)",offset:.5}),(0,Zt.oB)({opacity:1,transform:"scale(1)",offset:1})]))),(0,Zt.eR)("* => hidden",(0,Zt.jt)("100ms cubic-bezier(0, 0, 0.2, 1)",(0,Zt.oB)({opacity:0})))]);function h2e(n,r){1&n&&(t.TgZ(0,"div",4),t._UZ(1,"mat-spinner",5),t.qZA())}function m2e(n,r){if(1&n){var e=t.EpF();t.TgZ(0,"div",6)(1,"div",7)(2,"mat-icon"),t._uU(3,"error_outline"),t.qZA()(),t.TgZ(4,"div"),t._uU(5),t.qZA(),t.TgZ(6,"div")(7,"button",8),t.NdJ("click",function(){t.CHM(e);var a=t.oxw(2);return t.KtG(a.refresh())}),t.TgZ(8,"mat-icon"),t._uU(9,"refresh"),t.qZA()(),t.TgZ(10,"button",9)(11,"mat-icon"),t._uU(12,"home"),t.qZA()()()()}if(2&n){var i=t.oxw(2);t.xp6(5),t.hij("Error occurred: ",i.error.message,"")}}function _2e(n,r){if(1&n&&(t.TgZ(0,"div",1),t.YNc(1,h2e,2,0,"div",2),t.YNc(2,m2e,13,1,"div",3),t.qZA()),2&n){var e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.visible&&!e.error),t.xp6(1),t.Q6J("ngIf",e.error)}}var z0=function(){function n(r,e){(0,B.Z)(this,n),this.progressService=r,this.router=e,this.visible=!1}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this.progressService.state.subscribe(function(i){e.visible=i.visible,i.error&&!e.error&&(e.error=i.error),i.clear&&(e.error=null)}),this.routerSubscription=this.router.events.subscribe(function(){e.progressService.clear()})}},{key:"refresh",value:function(){this.router.navigateByUrl(this.router.url)}},{key:"ngOnDestroy",value:function(){this.routerSubscription.unsubscribe()}}]),n}();z0.\u0275fac=function(r){return new(r||z0)(t.Y36(El),t.Y36(ur))},z0.\u0275cmp=t.Xpm({type:z0,selectors:[["app-progress"]],decls:1,vars:1,consts:[["class","overlay",4,"ngIf"],[1,"overlay"],["class","loading-spinner",4,"ngIf"],["class","error-state",4,"ngIf"],[1,"loading-spinner"],["color","primary"],[1,"error-state"],[1,"error-icon"],["mat-button","","matTooltip","Refresh page","matTooltipClass","custom-tooltip",3,"click"],["mat-button","","routerLink","/","matTooltip","Go to home","matTooltipClass","custom-tooltip"]],template:function(r,e){1&r&&t.YNc(0,_2e,3,2,"div",0),2&r&&t.Q6J("ngIf",e.visible||e.error)},dependencies:[le.O5,$o,fn,Dn,ou,mi],styles:[".overlay[_ngcontent-%COMP%]{position:fixed;width:100%;height:100%;inset:0;background-color:#00000080;z-index:2000}.loading-spinner[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.error-state[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{text-align:center}.error-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:64px;width:64px;height:64px}"]});var xD=function(){function n(r,e,i,o){(0,B.Z)(this,n),this.router=r,this.controllerService=e,this.progressService=i,this.document=o}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this.progressService.activate(),setTimeout(function(){var i;i=parseInt(e.document.location.port,10)?parseInt(e.document.location.port,10):"https:"==e.document.location.protocol?443:80,e.controllerService.getLocalController(e.document.location.hostname,i).then(function(o){e.router.navigate(["/controller",o.id,"projects"]),e.progressService.deactivate()})},100)}}]),n}();xD.\u0275fac=function(r){return new(r||xD)(t.Y36(ur),t.Y36(or),t.Y36(El),t.Y36(le.K0))},xD.\u0275cmp=t.Xpm({type:xD,selectors:[["app-bundled-controller-finder"]],decls:1,vars:0,template:function(r,e){1&r&&t._UZ(0,"app-progress")},dependencies:[z0]});function wi(n,r,e,i){return new(e||(e=Promise))(function(a,s){function l(h){try{d(i.next(h))}catch(g){s(g)}}function u(h){try{d(i.throw(h))}catch(g){s(g)}}function d(h){h.done?a(h.value):function o(a){return a instanceof e?a:new e(function(s){s(a)})}(h.value).then(l,u)}d((i=i.apply(n,r||[])).next())})}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var Dp=function(){function n(){(0,B.Z)(this,n),this.dataChange=new Qi.X([])}return(0,U.Z)(n,[{key:"data",get:function(){return this.dataChange.value}},{key:"addController",value:function(e){var i=this.data.slice();i.push(e),this.dataChange.next(i)}},{key:"addControllers",value:function(e){this.dataChange.next(e)}},{key:"remove",value:function(e){var i=this.data.indexOf(e);i>=0&&(this.data.splice(i,1),this.dataChange.next(this.data.slice()))}},{key:"find",value:function(e){return this.data.find(function(i){return i.name===e})}},{key:"findIndex",value:function(e){return this.data.findIndex(function(i){return i.name===e})}},{key:"update",value:function(e){var i=this.findIndex(e.name);i>=0&&(this.data[i]=e,this.dataChange.next(this.data.slice()))}}]),n}();function U2e(n,r){if(1&n){var e=t.EpF();t.TgZ(0,"div",2)(1,"button",3),t.NdJ("click",function(){t.CHM(e);var a=t.oxw();return t.KtG(a.action())}),t._uU(2),t.qZA()()}if(2&n){var i=t.oxw();t.xp6(2),t.Oqu(i.data.action)}}function H2e(n,r){}Dp.\u0275fac=function(r){return new(r||Dp)},Dp.\u0275prov=t.Yz7({token:Dp,factory:Dp.\u0275fac});var HG=new t.OlP("MatSnackBarData"),TB=(0,U.Z)(function n(){(0,B.Z)(this,n),this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}),j2e=Math.pow(2,31)-1,MB=function(){function n(r,e){var i=this;(0,B.Z)(this,n),this._overlayRef=e,this._afterDismissed=new On.xQ,this._afterOpened=new On.xQ,this._onAction=new On.xQ,this._dismissedByAction=!1,this.containerInstance=r,r._onExit.subscribe(function(){return i._finishDismiss()})}return(0,U.Z)(n,[{key:"dismiss",value:function(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}},{key:"dismissWithAction",value:function(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}},{key:"closeWithAction",value:function(){this.dismissWithAction()}},{key:"_dismissAfter",value:function(e){var i=this;this._durationTimeoutId=setTimeout(function(){return i.dismiss()},Math.min(e,j2e))}},{key:"_open",value:function(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}},{key:"_finishDismiss",value:function(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}},{key:"afterDismissed",value:function(){return this._afterDismissed}},{key:"afterOpened",value:function(){return this.containerInstance._onEnter}},{key:"onAction",value:function(){return this._onAction}}]),n}(),AD=function(){function n(r,e){(0,B.Z)(this,n),this.snackBarRef=r,this.data=e}return(0,U.Z)(n,[{key:"action",value:function(){this.snackBarRef.dismissWithAction()}},{key:"hasAction",get:function(){return!!this.data.action}}]),n}();AD.\u0275fac=function(r){return new(r||AD)(t.Y36(MB),t.Y36(HG))},AD.\u0275cmp=t.Xpm({type:AD,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-simple-snackbar"],decls:3,vars:2,consts:[[1,"mat-simple-snack-bar-content"],["class","mat-simple-snackbar-action",4,"ngIf"],[1,"mat-simple-snackbar-action"],["mat-button","",3,"click"]],template:function(r,e){1&r&&(t.TgZ(0,"span",0),t._uU(1),t.qZA(),t.YNc(2,U2e,3,1,"div",1)),2&r&&(t.xp6(1),t.Oqu(e.data.message),t.xp6(1),t.Q6J("ngIf",e.hasAction))},dependencies:[le.O5,fn],styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}.mat-simple-snack-bar-content{overflow:hidden;text-overflow:ellipsis}"],encapsulation:2,changeDetection:0});var G2e={snackBarState:(0,Zt.X$)("state",[(0,Zt.SB)("void, hidden",(0,Zt.oB)({transform:"scale(0.8)",opacity:0})),(0,Zt.SB)("visible",(0,Zt.oB)({transform:"scale(1)",opacity:1})),(0,Zt.eR)("* => visible",(0,Zt.jt)("150ms cubic-bezier(0, 0, 0.2, 1)")),(0,Zt.eR)("* => void, * => hidden",(0,Zt.jt)("75ms cubic-bezier(0.4, 0.0, 1, 1)",(0,Zt.oB)({opacity:0})))])},OD=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l){var u;return(0,B.Z)(this,e),(u=r.call(this))._ngZone=i,u._elementRef=o,u._changeDetectorRef=a,u._platform=s,u.snackBarConfig=l,u._announceDelay=150,u._destroyed=!1,u._onAnnounce=new On.xQ,u._onExit=new On.xQ,u._onEnter=new On.xQ,u._animationState="void",u.attachDomPortal=function(d){u._assertNotAttached();var h=u._portalOutlet.attachDomPortal(d);return u._afterPortalAttached(),h},"assertive"!==l.politeness||l.announcementMessage?"off"===l.politeness?u._live="off":u._live="polite":u._live="assertive",u._platform.FIREFOX&&("polite"===u._live&&(u._role="status"),"assertive"===u._live&&(u._role="alert")),u}return(0,U.Z)(e,[{key:"attachComponentPortal",value:function(o){this._assertNotAttached();var a=this._portalOutlet.attachComponentPortal(o);return this._afterPortalAttached(),a}},{key:"attachTemplatePortal",value:function(o){this._assertNotAttached();var a=this._portalOutlet.attachTemplatePortal(o);return this._afterPortalAttached(),a}},{key:"onAnimationEnd",value:function(o){var a=o.fromState,s=o.toState;if(("void"===s&&"void"!==a||"hidden"===s)&&this._completeExit(),"visible"===s){var l=this._onEnter;this._ngZone.run(function(){l.next(),l.complete()})}}},{key:"enter",value:function(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}},{key:"exit",value:function(){var o=this;return this._ngZone.run(function(){o._animationState="hidden",o._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(o._announceTimeoutId)}),this._onExit}},{key:"ngOnDestroy",value:function(){this._destroyed=!0,this._completeExit()}},{key:"_completeExit",value:function(){var o=this;this._ngZone.onMicrotaskEmpty.pipe((0,Ri.q)(1)).subscribe(function(){o._ngZone.run(function(){o._onExit.next(),o._onExit.complete()})})}},{key:"_afterPortalAttached",value:function(){var o=this._elementRef.nativeElement,a=this.snackBarConfig.panelClass;a&&(Array.isArray(a)?a.forEach(function(s){return o.classList.add(s)}):o.classList.add(a))}},{key:"_assertNotAttached",value:function(){this._portalOutlet.hasAttached()}},{key:"_screenReaderAnnounce",value:function(){var o=this;this._announceTimeoutId||this._ngZone.runOutsideAngular(function(){o._announceTimeoutId=setTimeout(function(){var a=o._elementRef.nativeElement.querySelector("[aria-hidden]"),s=o._elementRef.nativeElement.querySelector("[aria-live]");if(a&&s){var l=null;o._platform.isBrowser&&document.activeElement instanceof HTMLElement&&a.contains(document.activeElement)&&(l=document.activeElement),a.removeAttribute("aria-hidden"),s.appendChild(a),null==l||l.focus(),o._onAnnounce.next(),o._onAnnounce.complete()}},o._announceDelay)})}}]),e}(ao.en);OD.\u0275fac=function(r){return new(r||OD)(t.Y36(t.R0b),t.Y36(t.SBq),t.Y36(t.sBO),t.Y36(bi.t4),t.Y36(TB))},OD.\u0275dir=t.lG2({type:OD,viewQuery:function(r,e){var i;(1&r&&t.Gf(ao.Pl,7),2&r)&&(t.iGM(i=t.CRH())&&(e._portalOutlet=i.first))},features:[t.qOj]});var sk=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"_afterPortalAttached",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"_afterPortalAttached",this).call(this),"center"===this.snackBarConfig.horizontalPosition&&this._elementRef.nativeElement.classList.add("mat-snack-bar-center"),"top"===this.snackBarConfig.verticalPosition&&this._elementRef.nativeElement.classList.add("mat-snack-bar-top")}}]),e}(OD);sk.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(sk)))(e||sk)}}(),sk.\u0275cmp=t.Xpm({type:sk,selectors:[["snack-bar-container"]],hostAttrs:[1,"mat-snack-bar-container"],hostVars:1,hostBindings:function(r,e){1&r&&t.WFA("@state.done",function(o){return e.onAnimationEnd(o)}),2&r&&t.d8E("@state",e._animationState)},features:[t.qOj],decls:3,vars:2,consts:[["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(r,e){1&r&&(t.TgZ(0,"div",0),t.YNc(1,H2e,0,0,"ng-template",1),t.qZA(),t._UZ(2,"div")),2&r&&(t.xp6(2),t.uIk("aria-live",e._live)("role",e._role))},dependencies:[ao.Pl],styles:[".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}"],encapsulation:2,data:{animation:[G2e.snackBarState]}});var W0=(0,U.Z)(function n(){(0,B.Z)(this,n)});W0.\u0275fac=function(r){return new(r||W0)},W0.\u0275mod=t.oAB({type:W0}),W0.\u0275inj=t.cJS({imports:[Li.U8,ao.eL,le.ez,pm,Gt.BQ,Gt.BQ]});var iie=new t.OlP("mat-snack-bar-default-options",{providedIn:"root",factory:function z2e(){return new TB}});var V0=function(){function n(r,e,i,o,a,s){(0,B.Z)(this,n),this._overlay=r,this._live=e,this._injector=i,this._breakpointObserver=o,this._parentSnackBar=a,this._defaultConfig=s,this._snackBarRefAtThisLevel=null}return(0,U.Z)(n,[{key:"_openedSnackBarRef",get:function(){var e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel},set:function(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}},{key:"openFromComponent",value:function(e,i){return this._attach(e,i)}},{key:"openFromTemplate",value:function(e,i){return this._attach(e,i)}},{key:"open",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2?arguments[2]:void 0,a=Object.assign(Object.assign({},this._defaultConfig),o);return a.data={message:e,action:i},a.announcementMessage===e&&(a.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,a)}},{key:"dismiss",value:function(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}},{key:"ngOnDestroy",value:function(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}},{key:"_attachSnackBarContainer",value:function(e,i){var o=i&&i.viewContainerRef&&i.viewContainerRef.injector,a=t.zs3.create({parent:o||this._injector,providers:[{provide:TB,useValue:i}]}),s=new ao.C5(this.snackBarContainerComponent,i.viewContainerRef,a),l=e.attach(s);return l.instance.snackBarConfig=i,l.instance}},{key:"_attach",value:function(e,i){var o=this,a=Object.assign(Object.assign(Object.assign({},new TB),this._defaultConfig),i),s=this._createOverlay(a),l=this._attachSnackBarContainer(s,a),u=new MB(l,s);if(e instanceof t.Rgc){var d=new ao.UE(e,null,{$implicit:a.data,snackBarRef:u});u.instance=l.attachTemplatePortal(d)}else{var h=this._createInjector(a,u),g=new ao.C5(e,void 0,h),y=l.attachComponentPortal(g);u.instance=y.instance}return this._breakpointObserver.observe(nd.u3.HandsetPortrait).pipe((0,Ir.R)(s.detachments())).subscribe(function(L){s.overlayElement.classList.toggle(o.handsetCssClass,L.matches)}),a.announcementMessage&&l._onAnnounce.subscribe(function(){o._live.announce(a.announcementMessage,a.politeness)}),this._animateSnackBar(u,a),this._openedSnackBarRef=u,this._openedSnackBarRef}},{key:"_animateSnackBar",value:function(e,i){var o=this;e.afterDismissed().subscribe(function(){o._openedSnackBarRef==e&&(o._openedSnackBarRef=null),i.announcementMessage&&o._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(function(){e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(function(){return e._dismissAfter(i.duration)})}},{key:"_createOverlay",value:function(e){var i=new Li.X_;i.direction=e.direction;var o=this._overlay.position().global(),a="rtl"===e.direction,s="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!a||"end"===e.horizontalPosition&&a,l=!s&&"center"!==e.horizontalPosition;return s?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}},{key:"_createInjector",value:function(e,i){var o=e&&e.viewContainerRef&&e.viewContainerRef.injector;return t.zs3.create({parent:o||this._injector,providers:[{provide:MB,useValue:i},{provide:HG,useValue:e.data}]})}}]),n}();V0.\u0275fac=function(r){return new(r||V0)(t.LFG(Li.aV),t.LFG(Yr.Kd),t.LFG(t.zs3),t.LFG(nd.Yg),t.LFG(V0,12),t.LFG(iie))},V0.\u0275prov=t.Yz7({token:V0,factory:V0.\u0275fac});var rd=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u){var d;return(0,B.Z)(this,e),(d=r.call(this,i,o,a,s,l,u)).simpleSnackBarComponent=AD,d.snackBarContainerComponent=sk,d.handsetCssClass="mat-snack-bar-handset",d}return(0,U.Z)(e)}(V0);rd.\u0275fac=function(r){return new(r||rd)(t.LFG(Li.aV),t.LFG(Yr.Kd),t.LFG(t.zs3),t.LFG(nd.Yg),t.LFG(rd,12),t.LFG(iie))},rd.\u0275prov=t.Yz7({token:rd,factory:rd.\u0275fac,providedIn:W0});var Zn=function(){function n(r,e){(0,B.Z)(this,n),this.snackbar=r,this.zone=e,this.snackBarConfigForSuccess={duration:4e3,panelClass:["snackabar-success"],MatSnackBarHorizontalPosition:"center",MatSnackBarVerticalPosition:"bottom"},this.snackBarConfigForWarning={duration:4e3,panelClass:["snackabar-warning"],MatSnackBarHorizontalPosition:"center",MatSnackBarVerticalPosition:"bottom"},this.snackBarConfigForError={duration:1e4,panelClass:["snackabar-error"],MatSnackBarHorizontalPosition:"center",MatSnackBarVerticalPosition:"bottom"}}return(0,U.Z)(n,[{key:"error",value:function(e){var i=this;console.error(e),this.zone.run(function(){i.snackbar.open(e,"Close",i.snackBarConfigForError)})}},{key:"warning",value:function(e){var i=this;this.zone.run(function(){i.snackbar.open(e,"Close",i.snackBarConfigForWarning)})}},{key:"success",value:function(e){var i=this;this.zone.run(function(){i.snackbar.open(e,"Close",i.snackBarConfigForSuccess)})}}]),n}();Zn.\u0275fac=function(r){return new(r||Zn)(t.LFG(rd),t.LFG(t.R0b))},Zn.\u0275prov=t.Yz7({token:Zn,factory:Zn.\u0275fac});var kn=m(7322),W2e=["*",[["mat-card-footer"]]],Y2e=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],q2e=[[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],[["img"]],"*"],Y0=(0,U.Z)(function n(){(0,B.Z)(this,n)});Y0.\u0275fac=function(r){return new(r||Y0)},Y0.\u0275dir=t.lG2({type:Y0,selectors:[["mat-card-content"],["","mat-card-content",""],["","matCardContent",""]],hostAttrs:[1,"mat-card-content"]});var lk=(0,U.Z)(function n(){(0,B.Z)(this,n)});lk.\u0275fac=function(r){return new(r||lk)},lk.\u0275dir=t.lG2({type:lk,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-card-title"]});var uk=(0,U.Z)(function n(){(0,B.Z)(this,n)});uk.\u0275fac=function(r){return new(r||uk)},uk.\u0275dir=t.lG2({type:uk,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-card-subtitle"]});var ID=(0,U.Z)(function n(){(0,B.Z)(this,n),this.align="start"});ID.\u0275fac=function(r){return new(r||ID)},ID.\u0275dir=t.lG2({type:ID,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-card-actions"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("mat-card-actions-align-end","end"===e.align)},inputs:{align:"align"},exportAs:["matCardActions"]});var SB=(0,U.Z)(function n(){(0,B.Z)(this,n)});SB.\u0275fac=function(r){return new(r||SB)},SB.\u0275dir=t.lG2({type:SB,selectors:[["mat-card-footer"]],hostAttrs:[1,"mat-card-footer"]});var EB=(0,U.Z)(function n(){(0,B.Z)(this,n)});EB.\u0275fac=function(r){return new(r||EB)},EB.\u0275dir=t.lG2({type:EB,selectors:[["","mat-card-image",""],["","matCardImage",""]],hostAttrs:[1,"mat-card-image"]});var xB=(0,U.Z)(function n(){(0,B.Z)(this,n)});xB.\u0275fac=function(r){return new(r||xB)},xB.\u0275dir=t.lG2({type:xB,selectors:[["","mat-card-sm-image",""],["","matCardImageSmall",""]],hostAttrs:[1,"mat-card-sm-image"]});var DB=(0,U.Z)(function n(){(0,B.Z)(this,n)});DB.\u0275fac=function(r){return new(r||DB)},DB.\u0275dir=t.lG2({type:DB,selectors:[["","mat-card-md-image",""],["","matCardImageMedium",""]],hostAttrs:[1,"mat-card-md-image"]});var AB=(0,U.Z)(function n(){(0,B.Z)(this,n)});AB.\u0275fac=function(r){return new(r||AB)},AB.\u0275dir=t.lG2({type:AB,selectors:[["","mat-card-lg-image",""],["","matCardImageLarge",""]],hostAttrs:[1,"mat-card-lg-image"]});var OB=(0,U.Z)(function n(){(0,B.Z)(this,n)});OB.\u0275fac=function(r){return new(r||OB)},OB.\u0275dir=t.lG2({type:OB,selectors:[["","mat-card-xl-image",""],["","matCardImageXLarge",""]],hostAttrs:[1,"mat-card-xl-image"]});var IB=(0,U.Z)(function n(){(0,B.Z)(this,n)});IB.\u0275fac=function(r){return new(r||IB)},IB.\u0275dir=t.lG2({type:IB,selectors:[["","mat-card-avatar",""],["","matCardAvatar",""]],hostAttrs:[1,"mat-card-avatar"]});var ci=(0,U.Z)(function n(r){(0,B.Z)(this,n),this._animationMode=r});ci.\u0275fac=function(r){return new(r||ci)(t.Y36(t.QbO,8))},ci.\u0275cmp=t.Xpm({type:ci,selectors:[["mat-card"]],hostAttrs:[1,"mat-card","mat-focus-indicator"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode)},exportAs:["matCard"],ngContentSelectors:["*","mat-card-footer"],decls:2,vars:0,template:function(r,e){1&r&&(t.F$t(W2e),t.Hsn(0),t.Hsn(1,1))},styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}.mat-card._mat-animation-noopable{transition:none !important;animation:none !important}.mat-card>.mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card>.mat-divider-horizontal{left:auto;right:0}.mat-card>.mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card>.mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px;display:block;overflow:hidden}.mat-card-image img{width:100%}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}"],encapsulation:2,changeDetection:0});var PB=(0,U.Z)(function n(){(0,B.Z)(this,n)});PB.\u0275fac=function(r){return new(r||PB)},PB.\u0275cmp=t.Xpm({type:PB,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-card-header"],ngContentSelectors:["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],decls:4,vars:0,consts:[[1,"mat-card-header-text"]],template:function(r,e){1&r&&(t.F$t(Y2e),t.Hsn(0),t.TgZ(1,"div",0),t.Hsn(2,1),t.qZA(),t.Hsn(3,2))},encapsulation:2,changeDetection:0});var RB=(0,U.Z)(function n(){(0,B.Z)(this,n)});RB.\u0275fac=function(r){return new(r||RB)},RB.\u0275cmp=t.Xpm({type:RB,selectors:[["mat-card-title-group"]],hostAttrs:[1,"mat-card-title-group"],ngContentSelectors:["mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","img","*"],decls:4,vars:0,template:function(r,e){1&r&&(t.F$t(q2e),t.TgZ(0,"div"),t.Hsn(1),t.qZA(),t.Hsn(2,1),t.Hsn(3,2))},encapsulation:2,changeDetection:0});var ck=(0,U.Z)(function n(){(0,B.Z)(this,n)});ck.\u0275fac=function(r){return new(r||ck)},ck.\u0275mod=t.oAB({type:ck}),ck.\u0275inj=t.cJS({imports:[Gt.BQ,Gt.BQ]});var Q2e=m(7568),oie=(0,bi.i$)({passive:!0}),K0=function(){function n(r,e){(0,B.Z)(this,n),this._platform=r,this._ngZone=e,this._monitoredElements=new Map}return(0,U.Z)(n,[{key:"monitor",value:function(e){var i=this;if(!this._platform.isBrowser)return I0.E;var o=(0,En.fI)(e),a=this._monitoredElements.get(o);if(a)return a.subject;var s=new On.xQ,l="cdk-text-field-autofilled",u=function(h){"cdk-text-field-autofill-start"!==h.animationName||o.classList.contains(l)?"cdk-text-field-autofill-end"===h.animationName&&o.classList.contains(l)&&(o.classList.remove(l),i._ngZone.run(function(){return s.next({target:h.target,isAutofilled:!1})})):(o.classList.add(l),i._ngZone.run(function(){return s.next({target:h.target,isAutofilled:!0})}))};return this._ngZone.runOutsideAngular(function(){o.addEventListener("animationstart",u,oie),o.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(o,{subject:s,unlisten:function(){o.removeEventListener("animationstart",u,oie)}}),s}},{key:"stopMonitoring",value:function(e){var i=(0,En.fI)(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}},{key:"ngOnDestroy",value:function(){var e=this;this._monitoredElements.forEach(function(i,o){return e.stopMonitoring(o)})}}]),n}();K0.\u0275fac=function(r){return new(r||K0)(t.LFG(bi.t4),t.LFG(t.R0b))},K0.\u0275prov=t.Yz7({token:K0,factory:K0.\u0275fac,providedIn:"root"});var LB=function(){function n(r,e){(0,B.Z)(this,n),this._elementRef=r,this._autofillMonitor=e,this.cdkAutofill=new t.vpe}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this._autofillMonitor.monitor(this._elementRef).subscribe(function(i){return e.cdkAutofill.emit(i)})}},{key:"ngOnDestroy",value:function(){this._autofillMonitor.stopMonitoring(this._elementRef)}}]),n}();LB.\u0275fac=function(r){return new(r||LB)(t.Y36(t.SBq),t.Y36(K0))},LB.\u0275dir=t.lG2({type:LB,selectors:[["","cdkAutofill",""]],outputs:{cdkAutofill:"cdkAutofill"}});var ZB=function(){function n(r,e,i,o){var a=this;(0,B.Z)(this,n),this._elementRef=r,this._platform=e,this._ngZone=i,this._destroyed=new On.xQ,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=function(s){a._hasFocus="focus"===s.type},this._document=o,this._textareaElement=this._elementRef.nativeElement}return(0,U.Z)(n,[{key:"minRows",get:function(){return this._minRows},set:function(e){this._minRows=(0,En.su)(e),this._setMinHeight()}},{key:"maxRows",get:function(){return this._maxRows},set:function(e){this._maxRows=(0,En.su)(e),this._setMaxHeight()}},{key:"enabled",get:function(){return this._enabled},set:function(e){e=(0,En.Ig)(e),this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}},{key:"placeholder",get:function(){return this._textareaElement.placeholder},set:function(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}},{key:"_setMinHeight",value:function(){var e=this.minRows&&this._cachedLineHeight?"".concat(this.minRows*this._cachedLineHeight,"px"):null;e&&(this._textareaElement.style.minHeight=e)}},{key:"_setMaxHeight",value:function(){var e=this.maxRows&&this._cachedLineHeight?"".concat(this.maxRows*this._cachedLineHeight,"px"):null;e&&(this._textareaElement.style.maxHeight=e)}},{key:"ngAfterViewInit",value:function(){var e=this;this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(function(){var i=e._getWindow();(0,Xf.R)(i,"resize").pipe((0,Q2e.e)(16),(0,Ir.R)(e._destroyed)).subscribe(function(){return e.resizeToFitContent(!0)}),e._textareaElement.addEventListener("focus",e._handleFocusEvent),e._textareaElement.addEventListener("blur",e._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}},{key:"ngOnDestroy",value:function(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}},{key:"_cacheTextareaLineHeight",value:function(){if(!this._cachedLineHeight){var e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}}},{key:"_measureScrollHeight",value:function(){var e=this._textareaElement,i=e.style.marginBottom||"",o=this._platform.FIREFOX,a=o&&this._hasFocus,s=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";a&&(e.style.marginBottom="".concat(e.clientHeight,"px")),e.classList.add(s);var l=e.scrollHeight-4;return e.classList.remove(s),a&&(e.style.marginBottom=i),l}},{key:"_cacheTextareaPlaceholderHeight",value:function(){if(this._isViewInited&&null==this._cachedPlaceholderHeight){if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);var e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}}},{key:"ngDoCheck",value:function(){this._platform.isBrowser&&this.resizeToFitContent()}},{key:"resizeToFitContent",value:function(){var e=this,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._enabled&&(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),this._cachedLineHeight)){var o=this._elementRef.nativeElement,a=o.value;if(i||this._minRows!==this._previousMinRows||a!==this._previousValue){var s=this._measureScrollHeight(),l=Math.max(s,this._cachedPlaceholderHeight||0);o.style.height="".concat(l,"px"),this._ngZone.runOutsideAngular(function(){"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(function(){return e._scrollToCaretPosition(o)}):setTimeout(function(){return e._scrollToCaretPosition(o)})}),this._previousValue=a,this._previousMinRows=this._minRows}}}},{key:"reset",value:function(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}},{key:"_noopInputHandler",value:function(){}},{key:"_getDocument",value:function(){return this._document||document}},{key:"_getWindow",value:function(){return this._getDocument().defaultView||window}},{key:"_scrollToCaretPosition",value:function(e){var i=e.selectionStart,o=e.selectionEnd;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,o)}}]),n}();ZB.\u0275fac=function(r){return new(r||ZB)(t.Y36(t.SBq),t.Y36(bi.t4),t.Y36(t.R0b),t.Y36(le.K0,8))},ZB.\u0275dir=t.lG2({type:ZB,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(r,e){1&r&&t.NdJ("input",function(){return e._noopInputHandler()})},inputs:{minRows:["cdkAutosizeMinRows","minRows"],maxRows:["cdkAutosizeMaxRows","maxRows"],enabled:["cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]});var q0=(0,U.Z)(function n(){(0,B.Z)(this,n)});q0.\u0275fac=function(r){return new(r||q0)},q0.\u0275mod=t.oAB({type:q0}),q0.\u0275inj=t.cJS({});var X2e=new t.OlP("MAT_INPUT_VALUE_ACCESSOR"),$2e=["button","checkbox","file","hidden","image","radio","range","reset","submit"],eAe=0,tAe=(0,Gt.FD)(function(){return(0,U.Z)(function n(r,e,i,o){(0,B.Z)(this,n),this._defaultErrorStateMatcher=r,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new On.xQ})}()),qn=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d,h,g,y){var L;(0,B.Z)(this,e),(L=r.call(this,u,s,l,a))._elementRef=i,L._platform=o,L._autofillMonitor=h,L._formField=y,L._uid="mat-input-".concat(eAe++),L.focused=!1,L.stateChanges=new On.xQ,L.controlType="mat-input",L.autofilled=!1,L._disabled=!1,L._type="text",L._readonly=!1,L._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(function(re){return(0,bi.qK)().has(re)}),L._iOSKeyupListener=function(re){var ae=re.target;!ae.value&&0===ae.selectionStart&&0===ae.selectionEnd&&(ae.setSelectionRange(1,1),ae.setSelectionRange(0,0))};var z=L._elementRef.nativeElement,q=z.nodeName.toLowerCase();return L._inputValueAccessor=d||z,L._previousNativeValue=L.value,L.id=L.id,o.IOS&&g.runOutsideAngular(function(){i.nativeElement.addEventListener("keyup",L._iOSKeyupListener)}),L._isServer=!L._platform.isBrowser,L._isNativeSelect="select"===q,L._isTextarea="textarea"===q,L._isInFormField=!!y,L._isNativeSelect&&(L.controlType=z.multiple?"mat-native-select-multiple":"mat-native-select"),L}return(0,U.Z)(e,[{key:"disabled",get:function(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled},set:function(o){this._disabled=(0,En.Ig)(o),this.focused&&(this.focused=!1,this.stateChanges.next())}},{key:"id",get:function(){return this._id},set:function(o){this._id=o||this._uid}},{key:"required",get:function(){var o,a,s,l;return null!==(l=null!==(o=this._required)&&void 0!==o?o:null===(s=null===(a=this.ngControl)||void 0===a?void 0:a.control)||void 0===s?void 0:s.hasValidator(J.kI.required))&&void 0!==l&&l},set:function(o){this._required=(0,En.Ig)(o)}},{key:"type",get:function(){return this._type},set:function(o){this._type=o||"text",this._validateType(),!this._isTextarea&&(0,bi.qK)().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}},{key:"value",get:function(){return this._inputValueAccessor.value},set:function(o){o!==this.value&&(this._inputValueAccessor.value=o,this.stateChanges.next())}},{key:"readonly",get:function(){return this._readonly},set:function(o){this._readonly=(0,En.Ig)(o)}},{key:"ngAfterViewInit",value:function(){var o=this;this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(function(a){o.autofilled=a.isAutofilled,o.stateChanges.next()})}},{key:"ngOnChanges",value:function(){this.stateChanges.next()}},{key:"ngOnDestroy",value:function(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}},{key:"ngDoCheck",value:function(){this.ngControl&&this.updateErrorState(),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}},{key:"focus",value:function(o){this._elementRef.nativeElement.focus(o)}},{key:"_focusChanged",value:function(o){o!==this.focused&&(this.focused=o,this.stateChanges.next())}},{key:"_onInput",value:function(){}},{key:"_dirtyCheckPlaceholder",value:function(){var o,a=this._formField,s=!a||"legacy"!==a.appearance||null!==(o=a._hasLabel)&&void 0!==o&&o.call(a)?this.placeholder:null;if(s!==this._previousPlaceholder){var l=this._elementRef.nativeElement;this._previousPlaceholder=s,s?l.setAttribute("placeholder",s):l.removeAttribute("placeholder")}}},{key:"_dirtyCheckNativeValue",value:function(){var o=this._elementRef.nativeElement.value;this._previousNativeValue!==o&&(this._previousNativeValue=o,this.stateChanges.next())}},{key:"_validateType",value:function(){$2e.indexOf(this._type)}},{key:"_isNeverEmpty",value:function(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}},{key:"_isBadInput",value:function(){var o=this._elementRef.nativeElement.validity;return o&&o.badInput}},{key:"empty",get:function(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}},{key:"shouldLabelFloat",get:function(){if(this._isNativeSelect){var o=this._elementRef.nativeElement,a=o.options[0];return this.focused||o.multiple||!this.empty||!!(o.selectedIndex>-1&&a&&a.label)}return this.focused||!this.empty}},{key:"setDescribedByIds",value:function(o){o.length?this._elementRef.nativeElement.setAttribute("aria-describedby",o.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}},{key:"onContainerClick",value:function(){this.focused||this.focus()}},{key:"_isInlineSelect",value:function(){var o=this._elementRef.nativeElement;return this._isNativeSelect&&(o.multiple||o.size>1)}}]),e}(tAe);qn.\u0275fac=function(r){return new(r||qn)(t.Y36(t.SBq),t.Y36(bi.t4),t.Y36(J.a5,10),t.Y36(J.F,8),t.Y36(J.sg,8),t.Y36(Gt.rD),t.Y36(X2e,10),t.Y36(K0),t.Y36(t.R0b),t.Y36(kn.G_,8))},qn.\u0275dir=t.lG2({type:qn,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:12,hostBindings:function(r,e){1&r&&t.NdJ("focus",function(){return e._focusChanged(!0)})("blur",function(){return e._focusChanged(!1)})("input",function(){return e._onInput()}),2&r&&(t.Ikx("disabled",e.disabled)("required",e.required),t.uIk("id",e.id)("data-placeholder",e.placeholder)("name",e.name||null)("readonly",e.readonly&&!e._isNativeSelect||null)("aria-invalid",e.empty&&e.required?null:e.errorState)("aria-required",e.required),t.ekj("mat-input-server",e._isServer)("mat-native-select-inline",e._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[t._Bn([{provide:kn.Eo,useExisting:qn}]),t.qOj,t.TTD]});var dk=(0,U.Z)(function n(){(0,B.Z)(this,n)});dk.\u0275fac=function(r){return new(r||dk)},dk.\u0275mod=t.oAB({type:dk}),dk.\u0275inj=t.cJS({providers:[Gt.rD],imports:[q0,kn.lN,Gt.BQ,q0,kn.lN]});var di=m(4107);function nAe(n,r){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"You must enter a value"),t.qZA())}function rAe(n,r){if(1&n&&(t.TgZ(0,"mat-option",14),t._uU(1),t.qZA()),2&n){var e=r.$implicit;t.Q6J("value",e.key),t.xp6(1),t.hij(" ",e.name," ")}}function iAe(n,r){if(1&n&&(t.TgZ(0,"mat-option",14),t._uU(1),t.qZA()),2&n){var e=r.$implicit;t.Q6J("value",e.key),t.xp6(1),t.hij(" ",e.name," ")}}var PD=function(){function n(r,e,i,o,a){(0,B.Z)(this,n),this.controllerService=r,this.controllerDatabase=e,this.route=i,this.router=o,this.toasterService=a,this.controllerOptionsVisibility=!1,this.protocols=[{key:"http:",name:"HTTP"},{key:"https:",name:"HTTPS"}],this.locations=[{key:"local",name:"Local"},{key:"remote",name:"Remote"}],this.controllerForm=new J.nJ({name:new J.p4("",[J.kI.required]),location:new J.p4(""),protocol:new J.p4("http:")})}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){return wi(this,void 0,void 0,Rn().mark(function e(){var i=this;return Rn().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:this.controllerService.isServiceInitialized&&this.getControllers(),this.controllerService.serviceInitialized.subscribe(function(s){return wi(i,void 0,void 0,Rn().mark(function l(){return Rn().wrap(function(d){for(;;)switch(d.prev=d.next){case 0:s&&this.getControllers();case 1:case"end":return d.stop()}},l,this)}))});case 2:case"end":return a.stop()}},e,this)}))}},{key:"getControllers",value:function(){return wi(this,void 0,void 0,Rn().mark(function e(){var o,a,i=this;return Rn().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return this.controllerIp=this.route.snapshot.paramMap.get("controller_ip"),this.controllerPort=+this.route.snapshot.paramMap.get("controller_port"),this.projectId=this.route.snapshot.paramMap.get("project_id"),l.next=5,this.controllerService.findAll();case 5:o=l.sent,(a=o.filter(function(u){return u.host===i.controllerIp&&u.port===i.controllerPort})[0])?this.router.navigate(["/controller",a.id,"project",this.projectId]):this.controllerOptionsVisibility=!0;case 8:case"end":return l.stop()}},e,this)}))}},{key:"createController",value:function(){var e=this;if(this.controllerForm.get("name").hasError||this.controllerForm.get("location").hasError||this.controllerForm.get("protocol").hasError){var i=new bB;i.host=this.controllerIp,i.port=this.controllerPort,i.name=this.controllerForm.get("name").value,i.location=this.controllerForm.get("location").value,i.protocol=this.controllerForm.get("protocol").value,this.controllerService.create(i).then(function(o){e.router.navigate(["/controller",o.id,"project",e.projectId])})}else this.toasterService.error("Please use correct values")}}]),n}();PD.\u0275fac=function(r){return new(r||PD)(t.Y36(or),t.Y36(Dp),t.Y36(dr),t.Y36(ur),t.Y36(Zn))},PD.\u0275cmp=t.Xpm({type:PD,selectors:[["app-direct-link"]],decls:20,vars:5,consts:[[1,"content",3,"hidden"],[1,"default-header"],[1,"row"],[1,"col"],[1,"default-content"],[1,"matCard"],[3,"formGroup"],["matInput","","tabindex","1","formControlName","name","placeholder","Name"],[4,"ngIf"],["placeholder","Location","formControlName","location"],[3,"value",4,"ngFor","ngForOf"],["placeholder","Protocol","formControlName","protocol"],[1,"buttons-bar"],["mat-raised-button","","color","primary",3,"click"],[3,"value"]],template:function(r,e){1&r&&(t.TgZ(0,"div",0)(1,"div",1)(2,"div",2)(3,"h1",3),t._uU(4,"Add new controller"),t.qZA()()(),t.TgZ(5,"div",4)(6,"mat-card",5)(7,"form",6)(8,"mat-form-field"),t._UZ(9,"input",7),t.YNc(10,nAe,2,0,"mat-error",8),t.qZA(),t.TgZ(11,"mat-form-field")(12,"mat-select",9),t.YNc(13,rAe,2,2,"mat-option",10),t.qZA()(),t.TgZ(14,"mat-form-field")(15,"mat-select",11),t.YNc(16,iAe,2,2,"mat-option",10),t.qZA()()()(),t.TgZ(17,"div",12)(18,"button",13),t.NdJ("click",function(){return e.createController()}),t._uU(19,"Add controller"),t.qZA()()()()),2&r&&(t.Q6J("hidden",!e.controllerOptionsVisibility),t.xp6(7),t.Q6J("formGroup",e.controllerForm),t.xp6(3),t.Q6J("ngIf",e.controllerForm.get("name").hasError("required")),t.xp6(3),t.Q6J("ngForOf",e.locations),t.xp6(3),t.Q6J("ngForOf",e.protocols))},dependencies:[le.sg,le.O5,J._Y,J.Fj,J.JJ,J.JL,J.sg,J.u,kn.TO,kn.KE,fn,ci,qn,di.gD,Gt.ey],styles:["mat-form-field{width:100%}\n"],encapsulation:2});var hm=m(4834),jG=["*"],aie='.mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}',oAe=[[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]],[["","mat-line",""],["","matLine",""]],"*"],sAe=["text"];function lAe(n,r){if(1&n&&t._UZ(0,"mat-pseudo-checkbox",5),2&n){var e=t.oxw();t.Q6J("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}var uAe=["*",[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]]],sie=(0,Gt.Id)((0,Gt.Kr)(function(){return(0,U.Z)(function n(){(0,B.Z)(this,n)})}())),dAe=(0,Gt.Kr)(function(){return(0,U.Z)(function n(){(0,B.Z)(this,n)})}()),lie=new t.OlP("MatList"),uie=new t.OlP("MatNavList"),Gs=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments))._stateChanges=new On.xQ,i}return(0,U.Z)(e,[{key:"ngOnChanges",value:function(){this._stateChanges.next()}},{key:"ngOnDestroy",value:function(){this._stateChanges.complete()}}]),e}(sie);Gs.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Gs)))(e||Gs)}}(),Gs.\u0275cmp=t.Xpm({type:Gs,selectors:[["mat-nav-list"]],hostAttrs:["role","navigation",1,"mat-nav-list","mat-list-base"],inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matNavList"],features:[t._Bn([{provide:uie,useExisting:Gs}]),t.qOj,t.TTD],ngContentSelectors:jG,decls:1,vars:0,template:function(r,e){1&r&&(t.F$t(),t.Hsn(0))},styles:['.mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}'],encapsulation:2,changeDetection:0});var mm=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i){var o;return(0,B.Z)(this,e),(o=r.call(this))._elementRef=i,o._stateChanges=new On.xQ,"action-list"===o._getListType()&&(i.nativeElement.classList.add("mat-action-list"),i.nativeElement.setAttribute("role","group")),o}return(0,U.Z)(e,[{key:"_getListType",value:function(){var o=this._elementRef.nativeElement.nodeName.toLowerCase();return"mat-list"===o?"list":"mat-action-list"===o?"action-list":null}},{key:"ngOnChanges",value:function(){this._stateChanges.next()}},{key:"ngOnDestroy",value:function(){this._stateChanges.complete()}}]),e}(sie);mm.\u0275fac=function(r){return new(r||mm)(t.Y36(t.SBq))},mm.\u0275cmp=t.Xpm({type:mm,selectors:[["mat-list"],["mat-action-list"]],hostAttrs:[1,"mat-list","mat-list-base"],inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matList"],features:[t._Bn([{provide:lie,useExisting:mm}]),t.qOj,t.TTD],ngContentSelectors:jG,decls:1,vars:0,template:function(r,e){1&r&&(t.F$t(),t.Hsn(0))},styles:[aie],encapsulation:2,changeDetection:0});var fk=(0,U.Z)(function n(){(0,B.Z)(this,n)});fk.\u0275fac=function(r){return new(r||fk)},fk.\u0275dir=t.lG2({type:fk,selectors:[["","mat-list-avatar",""],["","matListAvatar",""]],hostAttrs:[1,"mat-list-avatar"]});var pk=(0,U.Z)(function n(){(0,B.Z)(this,n)});pk.\u0275fac=function(r){return new(r||pk)},pk.\u0275dir=t.lG2({type:pk,selectors:[["","mat-list-icon",""],["","matListIcon",""]],hostAttrs:[1,"mat-list-icon"]});var NB=(0,U.Z)(function n(){(0,B.Z)(this,n)});NB.\u0275fac=function(r){return new(r||NB)},NB.\u0275dir=t.lG2({type:NB,selectors:[["","mat-subheader",""],["","matSubheader",""]],hostAttrs:[1,"mat-subheader"]});var Oa=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s){var l;(0,B.Z)(this,e),(l=r.call(this))._element=i,l._isInteractiveList=!1,l._destroyed=new On.xQ,l._disabled=!1,l._isInteractiveList=!!(a||s&&"action-list"===s._getListType()),l._list=a||s;var u=l._getHostElement();return"button"===u.nodeName.toLowerCase()&&!u.hasAttribute("type")&&u.setAttribute("type","button"),l._list&&l._list._stateChanges.pipe((0,Ir.R)(l._destroyed)).subscribe(function(){o.markForCheck()}),l}return(0,U.Z)(e,[{key:"disabled",get:function(){return this._disabled||!(!this._list||!this._list.disabled)},set:function(o){this._disabled=(0,En.Ig)(o)}},{key:"ngAfterContentInit",value:function(){(0,Gt.E0)(this._lines,this._element)}},{key:"ngOnDestroy",value:function(){this._destroyed.next(),this._destroyed.complete()}},{key:"_isRippleDisabled",value:function(){return!this._isInteractiveList||this.disableRipple||!(!this._list||!this._list.disableRipple)}},{key:"_getHostElement",value:function(){return this._element.nativeElement}}]),e}(dAe);Oa.\u0275fac=function(r){return new(r||Oa)(t.Y36(t.SBq),t.Y36(t.sBO),t.Y36(uie,8),t.Y36(lie,8))},Oa.\u0275cmp=t.Xpm({type:Oa,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(r,e,i){var o;(1&r&&(t.Suo(i,fk,5),t.Suo(i,pk,5),t.Suo(i,Gt.X2,5)),2&r)&&(t.iGM(o=t.CRH())&&(e._avatar=o.first),t.iGM(o=t.CRH())&&(e._icon=o.first),t.iGM(o=t.CRH())&&(e._lines=o))},hostAttrs:[1,"mat-list-item","mat-focus-indicator"],hostVars:4,hostBindings:function(r,e){2&r&&t.ekj("mat-list-item-disabled",e.disabled)("mat-list-item-with-avatar",e._avatar||e._icon)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matListItem"],features:[t.qOj],ngContentSelectors:["[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]","[mat-line], [matLine]","*"],decls:6,vars:2,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-list-text"]],template:function(r,e){1&r&&(t.F$t(oAe),t.TgZ(0,"span",0),t._UZ(1,"span",1),t.Hsn(2),t.TgZ(3,"span",2),t.Hsn(4,1),t.qZA(),t.Hsn(5,2),t.qZA()),2&r&&(t.xp6(1),t.Q6J("matRippleTrigger",e._getHostElement())("matRippleDisabled",e._isRippleDisabled()))},dependencies:[Gt.wG],encapsulation:2,changeDetection:0});var fAe=(0,Gt.Kr)(function(){return(0,U.Z)(function n(){(0,B.Z)(this,n)})}()),pAe=(0,Gt.Kr)(function(){return(0,U.Z)(function n(){(0,B.Z)(this,n)})}()),hAe={provide:J.JU,useExisting:(0,t.Gpc)(function(){return hk}),multi:!0},mAe=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this.source=r,this.options=e}),RD=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this))._element=i,s._changeDetector=o,s.selectionList=a,s._selected=!1,s._disabled=!1,s._hasFocus=!1,s.selectedChange=new t.vpe,s.checkboxPosition="after",s._inputsInitialized=!1,s}return(0,U.Z)(e,[{key:"color",get:function(){return this._color||this.selectionList.color},set:function(o){this._color=o}},{key:"value",get:function(){return this._value},set:function(o){this.selected&&!this.selectionList.compareWith(o,this.value)&&this._inputsInitialized&&(this.selected=!1),this._value=o}},{key:"disabled",get:function(){return this._disabled||this.selectionList&&this.selectionList.disabled},set:function(o){var a=(0,En.Ig)(o);a!==this._disabled&&(this._disabled=a,this._changeDetector.markForCheck())}},{key:"selected",get:function(){return this.selectionList.selectedOptions.isSelected(this)},set:function(o){var a=(0,En.Ig)(o);a!==this._selected&&(this._setSelected(a),(a||this.selectionList.multiple)&&this.selectionList._reportValueChange())}},{key:"ngOnInit",value:function(){var o=this,a=this.selectionList;a._value&&a._value.some(function(l){return a.compareWith(o._value,l)})&&this._setSelected(!0);var s=this._selected;Promise.resolve().then(function(){(o._selected||s)&&(o.selected=!0,o._changeDetector.markForCheck())}),this._inputsInitialized=!0}},{key:"ngAfterContentInit",value:function(){(0,Gt.E0)(this._lines,this._element)}},{key:"ngOnDestroy",value:function(){var o=this;this.selected&&Promise.resolve().then(function(){o.selected=!1});var a=this._hasFocus,s=this.selectionList._removeOptionFromList(this);a&&s&&s.focus()}},{key:"toggle",value:function(){this.selected=!this.selected}},{key:"focus",value:function(){this._element.nativeElement.focus()}},{key:"getLabel",value:function(){return this._text&&this._text.nativeElement.textContent||""}},{key:"_isRippleDisabled",value:function(){return this.disabled||this.disableRipple||this.selectionList.disableRipple}},{key:"_handleClick",value:function(){!this.disabled&&(this.selectionList.multiple||!this.selected)&&(this.toggle(),this.selectionList._emitChangeEvent([this]))}},{key:"_handleFocus",value:function(){this.selectionList._setFocusedOption(this),this._hasFocus=!0}},{key:"_handleBlur",value:function(){this.selectionList._onTouched(),this._hasFocus=!1}},{key:"_getHostElement",value:function(){return this._element.nativeElement}},{key:"_setSelected",value:function(o){return o!==this._selected&&(this._selected=o,o?this.selectionList.selectedOptions.select(this):this.selectionList.selectedOptions.deselect(this),this.selectedChange.emit(o),this._changeDetector.markForCheck(),!0)}},{key:"_markForCheck",value:function(){this._changeDetector.markForCheck()}}]),e}(pAe);RD.\u0275fac=function(r){return new(r||RD)(t.Y36(t.SBq),t.Y36(t.sBO),t.Y36((0,t.Gpc)(function(){return hk})))},RD.\u0275cmp=t.Xpm({type:RD,selectors:[["mat-list-option"]],contentQueries:function(r,e,i){var o;(1&r&&(t.Suo(i,fk,5),t.Suo(i,pk,5),t.Suo(i,Gt.X2,5)),2&r)&&(t.iGM(o=t.CRH())&&(e._avatar=o.first),t.iGM(o=t.CRH())&&(e._icon=o.first),t.iGM(o=t.CRH())&&(e._lines=o))},viewQuery:function(r,e){var i;(1&r&&t.Gf(sAe,5),2&r)&&(t.iGM(i=t.CRH())&&(e._text=i.first))},hostAttrs:["role","option",1,"mat-list-item","mat-list-option","mat-focus-indicator"],hostVars:15,hostBindings:function(r,e){1&r&&t.NdJ("focus",function(){return e._handleFocus()})("blur",function(){return e._handleBlur()})("click",function(){return e._handleClick()}),2&r&&(t.uIk("aria-selected",e.selected)("aria-disabled",e.disabled)("tabindex",-1),t.ekj("mat-list-item-disabled",e.disabled)("mat-list-item-with-avatar",e._avatar||e._icon)("mat-primary","primary"===e.color)("mat-accent","primary"!==e.color&&"warn"!==e.color)("mat-warn","warn"===e.color)("mat-list-single-selected-option",e.selected&&!e.selectionList.multiple))},inputs:{disableRipple:"disableRipple",checkboxPosition:"checkboxPosition",color:"color",value:"value",disabled:"disabled",selected:"selected"},outputs:{selectedChange:"selectedChange"},exportAs:["matListOption"],features:[t.qOj],ngContentSelectors:["*","[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]"],decls:7,vars:5,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[3,"state","disabled",4,"ngIf"],[1,"mat-list-text"],["text",""],[3,"state","disabled"]],template:function(r,e){1&r&&(t.F$t(uAe),t.TgZ(0,"div",0),t._UZ(1,"div",1),t.YNc(2,lAe,1,2,"mat-pseudo-checkbox",2),t.TgZ(3,"div",3,4),t.Hsn(5),t.qZA(),t.Hsn(6,1),t.qZA()),2&r&&(t.ekj("mat-list-item-content-reverse","after"==e.checkboxPosition),t.xp6(1),t.Q6J("matRippleTrigger",e._getHostElement())("matRippleDisabled",e._isRippleDisabled()),t.xp6(1),t.Q6J("ngIf",e.selectionList.multiple))},dependencies:[Gt.wG,Gt.nP,le.O5],encapsulation:2,changeDetection:0});var hk=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a){var s;return(0,B.Z)(this,e),(s=r.call(this))._element=i,s._changeDetector=o,s._focusMonitor=a,s._multiple=!0,s._contentInitialized=!1,s.selectionChange=new t.vpe,s.color="accent",s.compareWith=function(l,u){return l===u},s._disabled=!1,s.selectedOptions=new Si.Ov(s._multiple),s._tabIndex=-1,s._onChange=function(l){},s._destroyed=new On.xQ,s._onTouched=function(){},s}return(0,U.Z)(e,[{key:"disabled",get:function(){return this._disabled},set:function(o){this._disabled=(0,En.Ig)(o),this._markOptionsForCheck()}},{key:"multiple",get:function(){return this._multiple},set:function(o){var a=(0,En.Ig)(o);a!==this._multiple&&(this._contentInitialized,this._multiple=a,this.selectedOptions=new Si.Ov(this._multiple,this.selectedOptions.selected))}},{key:"ngAfterContentInit",value:function(){var o=this;this._contentInitialized=!0,this._keyManager=new Yr.Em(this.options).withWrap().withTypeAhead().withHomeAndEnd().skipPredicate(function(){return!1}).withAllowedModifierKeys(["shiftKey"]),this._value&&this._setOptionsFromValues(this._value),this._keyManager.tabOut.pipe((0,Ir.R)(this._destroyed)).subscribe(function(){o._allowFocusEscape()}),this.options.changes.pipe((0,Oo.O)(null),(0,Ir.R)(this._destroyed)).subscribe(function(){o._updateTabIndex()}),this.selectedOptions.changed.pipe((0,Ir.R)(this._destroyed)).subscribe(function(a){if(a.added){var l,s=(0,An.Z)(a.added);try{for(s.s();!(l=s.n()).done;){l.value.selected=!0}}catch(y){s.e(y)}finally{s.f()}}if(a.removed){var h,d=(0,An.Z)(a.removed);try{for(d.s();!(h=d.n()).done;){h.value.selected=!1}}catch(y){d.e(y)}finally{d.f()}}}),this._focusMonitor.monitor(this._element).pipe((0,Ir.R)(this._destroyed)).subscribe(function(a){var s;if("keyboard"===a||"program"===a){for(var l=0,u=0;u-1&&this._keyManager.activeItemIndex===a&&(a>0?this._keyManager.updateActiveItem(a-1):0===a&&this.options.length>1&&this._keyManager.updateActiveItem(Math.min(a+1,this.options.length-1))),this._keyManager.activeItem}},{key:"_keydown",value:function(o){var a=o.keyCode,s=this._keyManager,l=s.activeItemIndex,u=(0,Tr.Vb)(o);switch(a){case Tr.L_:case Tr.K5:!u&&!s.isTyping()&&(this._toggleFocusedOption(),o.preventDefault());break;default:if(a===Tr.A&&this.multiple&&(0,Tr.Vb)(o,"ctrlKey")&&!s.isTyping()){var d=this.options.some(function(h){return!h.disabled&&!h.selected});this._setAllOptionsSelected(d,!0,!0),o.preventDefault()}else s.onKeydown(o)}this.multiple&&(a===Tr.LH||a===Tr.JH)&&o.shiftKey&&s.activeItemIndex!==l&&this._toggleFocusedOption()}},{key:"_reportValueChange",value:function(){if(this.options&&!this._isDestroyed){var o=this._getSelectedOptionValues();this._onChange(o),this._value=o}}},{key:"_emitChangeEvent",value:function(o){this.selectionChange.emit(new mAe(this,o))}},{key:"writeValue",value:function(o){this._value=o,this.options&&this._setOptionsFromValues(o||[])}},{key:"setDisabledState",value:function(o){this.disabled=o}},{key:"registerOnChange",value:function(o){this._onChange=o}},{key:"registerOnTouched",value:function(o){this._onTouched=o}},{key:"_setOptionsFromValues",value:function(o){var a=this;this.options.forEach(function(s){return s._setSelected(!1)}),o.forEach(function(s){var l=a.options.find(function(u){return!u.selected&&a.compareWith(u.value,s)});l&&l._setSelected(!0)})}},{key:"_getSelectedOptionValues",value:function(){return this.options.filter(function(o){return o.selected}).map(function(o){return o.value})}},{key:"_toggleFocusedOption",value:function(){var o=this._keyManager.activeItemIndex;if(null!=o&&this._isValidIndex(o)){var a=this.options.toArray()[o];a&&!a.disabled&&(this._multiple||!a.selected)&&(a.toggle(),this._emitChangeEvent([a]))}}},{key:"_setAllOptionsSelected",value:function(o,a,s){var l=[];return this.options.forEach(function(u){(!a||!u.disabled)&&u._setSelected(o)&&l.push(u)}),l.length&&(this._reportValueChange(),s&&this._emitChangeEvent(l)),l}},{key:"_isValidIndex",value:function(o){return o>=0&&o collapsed, void => collapsed",(0,Zt.jt)(cie))]),bodyExpansion:(0,Zt.X$)("bodyExpansion",[(0,Zt.SB)("collapsed, void",(0,Zt.oB)({height:"0px",visibility:"hidden"})),(0,Zt.SB)("expanded",(0,Zt.oB)({height:"*",visibility:"visible"})),(0,Zt.eR)("expanded <=> collapsed, void => collapsed",(0,Zt.jt)(cie))])},fie=new t.OlP("MAT_EXPANSION_PANEL"),ZD=(0,U.Z)(function n(r,e){(0,B.Z)(this,n),this._template=r,this._expansionPanel=e});ZD.\u0275fac=function(r){return new(r||ZD)(t.Y36(t.Rgc),t.Y36(fie,8))},ZD.\u0275dir=t.lG2({type:ZD,selectors:[["ng-template","matExpansionPanelContent",""]]});var MAe=0,pie=new t.OlP("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),xl=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d){var h;return(0,B.Z)(this,e),(h=r.call(this,i,o,a))._viewContainerRef=s,h._animationMode=u,h._hideToggle=!1,h.afterExpand=new t.vpe,h.afterCollapse=new t.vpe,h._inputChanges=new On.xQ,h._headerId="mat-expansion-panel-header-".concat(MAe++),h._bodyAnimationDone=new On.xQ,h.accordion=i,h._document=l,h._bodyAnimationDone.pipe((0,ts.x)(function(g,y){return g.fromState===y.fromState&&g.toState===y.toState})).subscribe(function(g){"void"!==g.fromState&&("expanded"===g.toState?h.afterExpand.emit():"collapsed"===g.toState&&h.afterCollapse.emit())}),d&&(h.hideToggle=d.hideToggle),h}return(0,U.Z)(e,[{key:"hideToggle",get:function(){return this._hideToggle||this.accordion&&this.accordion.hideToggle},set:function(o){this._hideToggle=(0,En.Ig)(o)}},{key:"togglePosition",get:function(){return this._togglePosition||this.accordion&&this.accordion.togglePosition},set:function(o){this._togglePosition=o}},{key:"_hasSpacing",value:function(){return!!this.accordion&&(this.expanded&&"default"===this.accordion.displayMode)}},{key:"_getExpandedState",value:function(){return this.expanded?"expanded":"collapsed"}},{key:"toggle",value:function(){this.expanded=!this.expanded}},{key:"close",value:function(){this.expanded=!1}},{key:"open",value:function(){this.expanded=!0}},{key:"ngAfterContentInit",value:function(){var o=this;this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe((0,Oo.O)(null),(0,$r.h)(function(){return o.expanded&&!o._portal}),(0,Ri.q)(1)).subscribe(function(){o._portal=new ao.UE(o._lazyContent._template,o._viewContainerRef)})}},{key:"ngOnChanges",value:function(o){this._inputChanges.next(o)}},{key:"ngOnDestroy",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"ngOnDestroy",this).call(this),this._bodyAnimationDone.complete(),this._inputChanges.complete()}},{key:"_containsFocus",value:function(){if(this._body){var o=this._document.activeElement,a=this._body.nativeElement;return o===a||a.contains(o)}return!1}}]),e}(LD);xl.\u0275fac=function(r){return new(r||xl)(t.Y36(zG,12),t.Y36(t.sBO),t.Y36(Si.A8),t.Y36(t.s_b),t.Y36(le.K0),t.Y36(t.QbO,8),t.Y36(pie,8))},xl.\u0275cmp=t.Xpm({type:xl,selectors:[["mat-expansion-panel"]],contentQueries:function(r,e,i){var o;(1&r&&t.Suo(i,ZD,5),2&r)&&(t.iGM(o=t.CRH())&&(e._lazyContent=o.first))},viewQuery:function(r,e){var i;(1&r&&t.Gf(vAe,5),2&r)&&(t.iGM(i=t.CRH())&&(e._body=i.first))},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(r,e){2&r&&t.ekj("mat-expanded",e.expanded)("_mat-animation-noopable","NoopAnimations"===e._animationMode)("mat-expansion-panel-spacing",e._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[t._Bn([{provide:zG,useValue:void 0},{provide:fie,useExisting:xl}]),t.qOj,t.TTD],ngContentSelectors:["mat-expansion-panel-header","*","mat-action-row"],decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(r,e){1&r&&(t.F$t(bAe),t.Hsn(0),t.TgZ(1,"div",0,1),t.NdJ("@bodyExpansion.done",function(o){return e._bodyAnimationDone.next(o)}),t.TgZ(3,"div",2),t.Hsn(4,1),t.YNc(5,yAe,0,0,"ng-template",3),t.qZA(),t.Hsn(6,2),t.qZA()),2&r&&(t.xp6(1),t.Q6J("@bodyExpansion",e._getExpandedState())("id",e.id),t.uIk("aria-labelledby",e._headerId),t.xp6(4),t.Q6J("cdkPortalOutlet",e._portal))},dependencies:[ao.Pl],styles:['.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;border-radius:4px;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative}.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:4px;border-top-left-radius:4px}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.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}.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,data:{animation:[die.bodyExpansion]},changeDetection:0});var BB=(0,U.Z)(function n(){(0,B.Z)(this,n)});BB.\u0275fac=function(r){return new(r||BB)},BB.\u0275dir=t.lG2({type:BB,selectors:[["mat-action-row"]],hostAttrs:[1,"mat-action-row"]});var SAe=(0,U.Z)(function n(){(0,B.Z)(this,n)}),au=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(i,o,a,s,l,u,d){var h;(0,B.Z)(this,e),(h=r.call(this)).panel=i,h._element=o,h._focusMonitor=a,h._changeDetectorRef=s,h._animationMode=u,h._parentChangeSubscription=xa.w.EMPTY;var g=i.accordion?i.accordion._stateChanges.pipe((0,$r.h)(function(y){return!(!y.hideToggle&&!y.togglePosition)})):I0.E;return h.tabIndex=parseInt(d||"")||0,h._parentChangeSubscription=(0,Gi.T)(i.opened,i.closed,g,i._inputChanges.pipe((0,$r.h)(function(y){return!!(y.hideToggle||y.disabled||y.togglePosition)}))).subscribe(function(){return h._changeDetectorRef.markForCheck()}),i.closed.pipe((0,$r.h)(function(){return i._containsFocus()})).subscribe(function(){return a.focusVia(o,"program")}),l&&(h.expandedHeight=l.expandedHeight,h.collapsedHeight=l.collapsedHeight),h}return(0,U.Z)(e,[{key:"disabled",get:function(){return this.panel.disabled}},{key:"_toggle",value:function(){this.disabled||this.panel.toggle()}},{key:"_isExpanded",value:function(){return this.panel.expanded}},{key:"_getExpandedState",value:function(){return this.panel._getExpandedState()}},{key:"_getPanelId",value:function(){return this.panel.id}},{key:"_getTogglePosition",value:function(){return this.panel.togglePosition}},{key:"_showToggle",value:function(){return!this.panel.hideToggle&&!this.panel.disabled}},{key:"_getHeaderHeight",value:function(){var o=this._isExpanded();return o&&this.expandedHeight?this.expandedHeight:!o&&this.collapsedHeight?this.collapsedHeight:null}},{key:"_keydown",value:function(o){switch(o.keyCode){case Tr.L_:case Tr.K5:(0,Tr.Vb)(o)||(o.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(o))}}},{key:"focus",value:function(o,a){o?this._focusMonitor.focusVia(this._element,o,a):this._element.nativeElement.focus(a)}},{key:"ngAfterViewInit",value:function(){var o=this;this._focusMonitor.monitor(this._element).subscribe(function(a){a&&o.panel.accordion&&o.panel.accordion._handleHeaderFocus(o)})}},{key:"ngOnDestroy",value:function(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}}]),e}((0,Gt.sb)(SAe));au.\u0275fac=function(r){return new(r||au)(t.Y36(xl,1),t.Y36(t.SBq),t.Y36(Yr.tE),t.Y36(t.sBO),t.Y36(pie,8),t.Y36(t.QbO,8),t.$8M("tabindex"))},au.\u0275cmp=t.Xpm({type:au,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(r,e){1&r&&t.NdJ("click",function(){return e._toggle()})("keydown",function(o){return e._keydown(o)}),2&r&&(t.uIk("id",e.panel._headerId)("tabindex",e.tabIndex)("aria-controls",e._getPanelId())("aria-expanded",e._isExpanded())("aria-disabled",e.panel.disabled),t.Udp("height",e._getHeaderHeight()),t.ekj("mat-expanded",e._isExpanded())("mat-expansion-toggle-indicator-after","after"===e._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===e._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===e._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[t.qOj],ngContentSelectors:["mat-panel-title","mat-panel-description","*"],decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(r,e){1&r&&(t.F$t(kAe),t.TgZ(0,"span",0),t.Hsn(1),t.Hsn(2,1),t.Hsn(3,2),t.qZA(),t.YNc(4,wAe,1,1,"span",1)),2&r&&(t.ekj("mat-content-hide-toggle",!e._showToggle()),t.xp6(4),t.Q6J("ngIf",e._showToggle()))},dependencies:[le.O5],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.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:not([aria-disabled=true]){cursor:pointer}.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,.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-description{flex-grow:2}.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}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[die.indicatorRotate]},changeDetection:0});var ND=(0,U.Z)(function n(){(0,B.Z)(this,n)});ND.\u0275fac=function(r){return new(r||ND)},ND.\u0275dir=t.lG2({type:ND,selectors:[["mat-panel-description"]],hostAttrs:[1,"mat-expansion-panel-header-description"]});var Fu=(0,U.Z)(function n(){(0,B.Z)(this,n)});Fu.\u0275fac=function(r){return new(r||Fu)},Fu.\u0275dir=t.lG2({type:Fu,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]});var Dl=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments))._ownHeaders=new t.n_E,i._hideToggle=!1,i.displayMode="default",i.togglePosition="after",i}return(0,U.Z)(e,[{key:"hideToggle",get:function(){return this._hideToggle},set:function(o){this._hideToggle=(0,En.Ig)(o)}},{key:"ngAfterContentInit",value:function(){var o=this;this._headers.changes.pipe((0,Oo.O)(this._headers)).subscribe(function(a){o._ownHeaders.reset(a.filter(function(s){return s.panel.accordion===o})),o._ownHeaders.notifyOnChanges()}),this._keyManager=new Yr.Em(this._ownHeaders).withWrap().withHomeAndEnd()}},{key:"_handleHeaderKeydown",value:function(o){this._keyManager.onKeydown(o)}},{key:"_handleHeaderFocus",value:function(o){this._keyManager.updateActiveItem(o)}},{key:"ngOnDestroy",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"ngOnDestroy",this).call(this),this._ownHeaders.destroy()}}]),e}(_k);Dl.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Dl)))(e||Dl)}}(),Dl.\u0275dir=t.lG2({type:Dl,selectors:[["mat-accordion"]],contentQueries:function(r,e,i){var o;(1&r&&t.Suo(i,au,5),2&r)&&(t.iGM(o=t.CRH())&&(e._headers=o))},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("mat-accordion-multi",e.multi)},inputs:{multi:"multi",hideToggle:"hideToggle",displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[t._Bn([{provide:zG,useExisting:Dl}]),t.qOj]});var gk=(0,U.Z)(function n(){(0,B.Z)(this,n)});gk.\u0275fac=function(r){return new(r||gk)},gk.\u0275mod=t.oAB({type:gk}),gk.\u0275inj=t.cJS({imports:[le.ez,Gt.BQ,J0,ao.eL]});var BD=function(){function n(r){(0,B.Z)(this,n),this.httpClient=r,this.thirdpartylicenses="",this.releasenotes=""}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this.httpClient.get(window.location.href+"/3rdpartylicenses.txt",{responseType:"text"}).subscribe(function(i){e.thirdpartylicenses=i.replace(new RegExp("\n","g"),"
")},function(i){404===i.status&&(e.thirdpartylicenses="Download Solar-PuTTY")}),this.httpClient.get("ReleaseNotes.txt",{responseType:"text"}).subscribe(function(i){e.releasenotes=i.replace(new RegExp("\n","g"),"
")})}},{key:"goToDocumentation",value:function(){window.location.href="https://docs.gns3.com/docs/"}}]),n}();BD.\u0275fac=function(r){return new(r||BD)(t.Y36(fc.eN))},BD.\u0275cmp=t.Xpm({type:BD,selectors:[["app-help"]],decls:39,vars:2,consts:[[1,"content"],[1,"default-header"],[1,"default-content"],[1,"container","mat-elevation-z8"],["href","https://downloads.solarwinds.com/solarwinds/GNS3/Solar-PuTTY/Solar-PuTTY-Optional.exe"],[3,"innerHTML"],["mat-button","","color","primary",1,"full-width",3,"click"]],template:function(r,e){1&r&&(t.TgZ(0,"div",0)(1,"div",1)(2,"h1"),t._uU(3,"Help"),t.qZA()(),t.TgZ(4,"div",2)(5,"div",3)(6,"mat-accordion")(7,"mat-expansion-panel")(8,"mat-expansion-panel-header")(9,"mat-panel-title"),t._uU(10," Useful shortcuts "),t.qZA()(),t.TgZ(11,"mat-list")(12,"mat-list-item"),t._uU(13," ctrl + + to zoom in "),t.qZA(),t.TgZ(14,"mat-list-item"),t._uU(15," ctrl + - to zoom out "),t.qZA(),t.TgZ(16,"mat-list-item"),t._uU(17," ctrl + 0 to reset zoom "),t.qZA(),t.TgZ(18,"mat-list-item"),t._uU(19," ctrl + h to hide toolbar "),t.qZA(),t.TgZ(20,"mat-list-item"),t._uU(21," ctrl + a to select all items on map "),t.qZA(),t.TgZ(22,"mat-list-item"),t._uU(23," ctrl + shift + a to deselect all items on map "),t.qZA(),t.TgZ(24,"mat-list-item"),t._uU(25," ctrl + shift + s to go to preferences "),t.qZA()()(),t.TgZ(26,"mat-expansion-panel")(27,"mat-expansion-panel-header")(28,"mat-panel-title"),t._uU(29," Third party components "),t.qZA()(),t.TgZ(30,"a",4),t._UZ(31,"div",5),t.qZA()(),t.TgZ(32,"mat-expansion-panel")(33,"mat-expansion-panel-header")(34,"mat-panel-title"),t._uU(35," Release notes "),t.qZA()(),t._UZ(36,"div",5),t.qZA()()(),t.TgZ(37,"button",6),t.NdJ("click",function(){return e.goToDocumentation()}),t._uU(38,"Go to documentation"),t.qZA()()()),2&r&&(t.xp6(31),t.Q6J("innerHTML",e.thirdpartylicenses,t.oJD),t.xp6(5),t.Q6J("innerHTML",e.releasenotes,t.oJD))},dependencies:[fn,mm,Oa,Dl,xl,au,Fu],styles:[".full-width[_ngcontent-%COMP%]{width:100%;margin-top:20px}a[_ngcontent-%COMP%]{color:#f8f9fa;font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;text-decoration:none}"]});var ja=m(4766),Q0=function(){function n(r){(0,B.Z)(this,n),this.electronService=r}return(0,U.Z)(n,[{key:"isWindows",value:function(){return"win32"===this.electronService.process.platform}},{key:"isLinux",value:function(){return"linux"===this.electronService.process.platform}},{key:"isDarwin",value:function(){return"darwin"===this.electronService.process.platform}}]),n}();Q0.\u0275fac=function(r){return new(r||Q0)(t.LFG(ul))},Q0.\u0275prov=t.Yz7({token:Q0,factory:Q0.\u0275fac});var X0=function(){function n(r){(0,B.Z)(this,n),this.platformService=r}return(0,U.Z)(n,[{key:"get",value:function(){return this.platformService.isWindows()?this.getForWindows():this.platformService.isDarwin()?this.getForDarwin():this.getForLinux()}},{key:"getForWindows",value:function(){var e=[{name:"Wireshark",locations:["C:\\Program Files\\Wireshark\\Wireshark.exe"],type:"web",resource:"https://1.na.dl.wireshark.org/win64/all-versions/Wireshark-win64-2.6.3.exe",binary:"Wireshark.exe",sudo:!0,installation_arguments:[],installed:!1,installer:!0}],i={name:"SolarPuTTY",locations:["SolarPuTTY.exe","external\\SolarPuTTY.exe"],type:"web",resource:"",binary:"SolarPuTTY.exe",sudo:!1,installation_arguments:["--only-ask"],installed:!1,installer:!1};return ja.N.solarputty_download_url&&(i.resource=ja.N.solarputty_download_url,e.push(i)),e}},{key:"getForLinux",value:function(){return[]}},{key:"getForDarwin",value:function(){return[]}}]),n}();X0.\u0275fac=function(r){return new(r||X0)(t.LFG(Q0))},X0.\u0275prov=t.Yz7({token:X0,factory:X0.\u0275fac});var $0=function(){function n(r,e){(0,B.Z)(this,n),this.electronService=r,this.externalSoftwareDefinition=e}return(0,U.Z)(n,[{key:"list",value:function(){var e=this.externalSoftwareDefinition.get(),i=this.electronService.remote.require("./installed-software.js").getInstalledSoftware(e);return e.map(function(o){return o.installed=i[o.name].length>0,o})}}]),n}();$0.\u0275fac=function(r){return new(r||$0)(t.LFG(ul),t.LFG(X0))},$0.\u0275prov=t.Yz7({token:$0,factory:$0.\u0275fac});var xAe=[[["caption"]],[["colgroup"],["col"]]];function AAe(n,r){if(1&n&&(t.TgZ(0,"th",3),t._uU(1),t.qZA()),2&n){var e=t.oxw();t.Udp("text-align",e.justify),t.xp6(1),t.hij(" ",e.headerText," ")}}function OAe(n,r){if(1&n&&(t.TgZ(0,"td",4),t._uU(1),t.qZA()),2&n){var e=r.$implicit,i=t.oxw();t.Udp("text-align",i.justify),t.xp6(1),t.hij(" ",i.dataAccessor(e,i.name)," ")}}var FD=(0,U.Z)(function n(){(0,B.Z)(this,n)});FD.\u0275fac=function(r){return new(r||FD)},FD.\u0275dir=t.lG2({type:FD,selectors:[["mat-table","recycleRows",""],["table","mat-table","","recycleRows",""]],features:[t._Bn([{provide:Si.k,useClass:Si.eX}])]});var bo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments)).stickyCssClass="mat-table-sticky",i.needsPositionStickyOnElement=!1,i}return(0,U.Z)(e)}(zc);bo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(bo)))(e||bo)}}(),bo.\u0275cmp=t.Xpm({type:bo,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-table"],hostVars:2,hostBindings:function(r,e){2&r&&t.ekj("mat-table-fixed-layout",e.fixedLayout)},exportAs:["matTable"],features:[t._Bn([{provide:Si.k,useClass:Si.yy},{provide:zc,useExisting:bo},{provide:Q_,useExisting:bo},{provide:E1,useClass:Vf},{provide:yE,useValue:null}]),t.qOj],ngContentSelectors:["caption","colgroup, col"],decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(r,e){1&r&&(t.F$t(xAe),t.Hsn(0),t.Hsn(1,1),t.GkF(2,0)(3,1)(4,2)(5,3))},dependencies:[Yf,Kf,qf,Jf],styles:["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}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}"],encapsulation:2});var Co=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Uc);Co.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Co)))(e||Co)}}(),Co.\u0275dir=t.lG2({type:Co,selectors:[["","matCellDef",""]],features:[t._Bn([{provide:Uc,useExisting:Co}]),t.qOj]});var wo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(wl);wo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(wo)))(e||wo)}}(),wo.\u0275dir=t.lG2({type:wo,selectors:[["","matHeaderCellDef",""]],features:[t._Bn([{provide:wl,useExisting:wo}]),t.qOj]});var eb=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Zd);eb.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(eb)))(e||eb)}}(),eb.\u0275dir=t.lG2({type:eb,selectors:[["","matFooterCellDef",""]],features:[t._Bn([{provide:Zd,useExisting:eb}]),t.qOj]});var mo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e,[{key:"name",get:function(){return this._name},set:function(o){this._setNameInput(o)}},{key:"_updateColumnCssClassName",value:function(){(0,Ut.Z)((0,Wt.Z)(e.prototype),"_updateColumnCssClassName",this).call(this),this._columnCssClassName.push("mat-column-".concat(this.cssClassFriendlyName))}}]),e}(rl);mo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(mo)))(e||mo)}}(),mo.\u0275dir=t.lG2({type:mo,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:["matColumnDef","name"]},features:[t._Bn([{provide:rl,useExisting:mo},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:mo}]),t.qOj]});var Ro=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Wf);Ro.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Ro)))(e||Ro)}}(),Ro.\u0275dir=t.lG2({type:Ro,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-header-cell"],features:[t.qOj]});var vk=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(X_);vk.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(vk)))(e||vk)}}(),vk.\u0275dir=t.lG2({type:vk,selectors:[["mat-footer-cell"],["td","mat-footer-cell",""]],hostAttrs:["role","gridcell",1,"mat-footer-cell"],features:[t.qOj]});var Lo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}($_);Lo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Lo)))(e||Lo)}}(),Lo.\u0275dir=t.lG2({type:Lo,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:["role","gridcell",1,"mat-cell"],features:[t.qOj]});var Zo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(dc);Zo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Zo)))(e||Zo)}}(),Zo.\u0275dir=t.lG2({type:Zo,selectors:[["","matHeaderRowDef",""]],inputs:{columns:["matHeaderRowDef","columns"],sticky:["matHeaderRowDefSticky","sticky"]},features:[t._Bn([{provide:dc,useExisting:Zo}]),t.qOj]});var tb=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(jc);tb.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(tb)))(e||tb)}}(),tb.\u0275dir=t.lG2({type:tb,selectors:[["","matFooterRowDef",""]],inputs:{columns:["matFooterRowDef","columns"],sticky:["matFooterRowDefSticky","sticky"]},features:[t._Bn([{provide:jc,useExisting:tb}]),t.qOj]});var No=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Jl);No.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(No)))(e||No)}}(),No.\u0275dir=t.lG2({type:No,selectors:[["","matRowDef",""]],inputs:{columns:["matRowDefColumns","columns"],when:["matRowDefWhen","when"]},features:[t._Bn([{provide:Jl,useExisting:No}]),t.qOj]});var Bo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Gh);Bo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Bo)))(e||Bo)}}(),Bo.\u0275cmp=t.Xpm({type:Bo,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-header-row"],exportAs:["matHeaderRow"],features:[t._Bn([{provide:Gh,useExisting:Bo}]),t.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(r,e){1&r&&t.GkF(0,0)},dependencies:[kl],encapsulation:2});var nb=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(zh);nb.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(nb)))(e||nb)}}(),nb.\u0275cmp=t.Xpm({type:nb,selectors:[["mat-footer-row"],["tr","mat-footer-row",""]],hostAttrs:["role","row",1,"mat-footer-row"],exportAs:["matFooterRow"],features:[t._Bn([{provide:zh,useExisting:nb}]),t.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(r,e){1&r&&t.GkF(0,0)},dependencies:[kl],encapsulation:2});var Fo=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Gc);Fo.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(Fo)))(e||Fo)}}(),Fo.\u0275cmp=t.Xpm({type:Fo,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-row"],exportAs:["matRow"],features:[t._Bn([{provide:Gc,useExisting:Fo}]),t.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(r,e){1&r&&t.GkF(0,0)},dependencies:[kl],encapsulation:2});var rb=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i;return(0,B.Z)(this,e),(i=r.apply(this,arguments))._contentClassName="mat-no-data-row",i}return(0,U.Z)(e)}(Ou);rb.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(rb)))(e||rb)}}(),rb.\u0275dir=t.lG2({type:rb,selectors:[["ng-template","matNoDataRow",""]],features:[t._Bn([{provide:Ou,useExisting:rb}]),t.qOj]});var yk=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(Wh);yk.\u0275fac=function(){var n;return function(e){return(n||(n=t.n5z(yk)))(e||yk)}}(),yk.\u0275cmp=t.Xpm({type:yk,selectors:[["mat-text-column"]],features:[t.qOj],decls:3,vars:0,consts:[["matColumnDef",""],["mat-header-cell","",3,"text-align",4,"matHeaderCellDef"],["mat-cell","",3,"text-align",4,"matCellDef"],["mat-header-cell",""],["mat-cell",""]],template:function(r,e){1&r&&(t.ynx(0,0),t.YNc(1,AAe,2,3,"th",1),t.YNc(2,OAe,2,3,"td",2),t.BQk())},dependencies:[wo,mo,Co,Ro,Lo],encapsulation:2});var bk=(0,U.Z)(function n(){(0,B.Z)(this,n)});bk.\u0275fac=function(r){return new(r||bk)},bk.\u0275mod=t.oAB({type:bk}),bk.\u0275inj=t.cJS({imports:[Qf,Gt.BQ,Gt.BQ]});var IAe=9007199254740991,PAe=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){var i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,B.Z)(this,e),(i=r.call(this))._renderData=new Qi.X([]),i._filter=new Qi.X(""),i._internalPageChanges=new On.xQ,i._renderChangesSubscription=null,i.sortingDataAccessor=function(a,s){var l=a[s];if((0,En.t6)(l)){var u=Number(l);return uy?q=1:g0)){var l=Math.ceil(s.length/s.pageSize)-1||0,u=Math.min(s.pageIndex,l);u!==s.pageIndex&&(s.pageIndex=u,a._internalPageChanges.next())}})}},{key:"connect",value:function(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}},{key:"disconnect",value:function(){var o;null===(o=this._renderChangesSubscription)||void 0===o||o.unsubscribe(),this._renderChangesSubscription=null}}]),e}(Si.o2),Ap=function(n){(0,qe.Z)(e,n);var r=(0,Be.Z)(e);function e(){return(0,B.Z)(this,e),r.apply(this,arguments)}return(0,U.Z)(e)}(PAe);function RAe(n,r){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){var e=t.oxw();t.xp6(1),t.Oqu(e.buttonText)}}var UD=function(){function n(r){(0,B.Z)(this,n),this.electronService=r,this.installedChanged=new t.vpe,this.disabled=!1,this.readyToInstall=!0}return(0,U.Z)(n,[{key:"ngOnInit",value:function(){var e=this;this.electronService&&this.electronService.ipcRenderer&&this.electronService.ipcRenderer.on(this.responseChannel,function(i,o){e.updateButton(),e.installedChanged.emit(o)})}},{key:"ngOnDestroy",value:function(){this.electronService&&this.electronService.ipcRenderer&&this.electronService.ipcRenderer.removeAllListeners(this.responseChannel)}},{key:"ngOnChanges",value:function(){this.updateButton()}},{key:"install",value:function(){this.disabled=!0,this.buttonText="Installing",this.electronService.ipcRenderer.send("installed-software-install",this.software)}},{key:"responseChannel",get:function(){return"installed-software-installed-".concat(this.software.name)}},{key:"updateButton",value:function(){this.disabled=this.software.installed,this.software.installed?this.buttonText="Installed":this.buttonText="Install"}}]),n}();UD.\u0275fac=function(r){return new(r||UD)(t.Y36(ul))},UD.\u0275cmp=t.Xpm({type:UD,selectors:[["app-install-software"]],inputs:{software:"software"},outputs:{installedChanged:"installedChanged"},features:[t.TTD],decls:2,vars:2,consts:[["mat-button","","color","primary",3,"disabled","click"],[4,"ngIf"]],template:function(r,e){1&r&&(t.TgZ(0,"button",0),t.NdJ("click",function(){return e.install()}),t.YNc(1,RAe,2,1,"ng-container",1),t.qZA()),2&r&&(t.Q6J("disabled",e.disabled),t.xp6(1),t.Q6J("ngIf",e.readyToInstall))},dependencies:[le.O5,fn]});var wc=m(4068),LAe=function(r,e){return{hidden:r,lightTheme:e}},ZAe=/(.*)<\/a>(.*)\s*