From 956ad6bcf533dfa92f94caafc1c063d46a487a2e Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Fri, 28 Apr 2023 00:41:52 -0400 Subject: [PATCH 001/225] add redesigned model cache for diffusers & transformers --- .../backend/model_management/model_cache.py | 203 ++++++++++++++++++ .../backend/model_management/model_manager.py | 7 +- .../backend/stable_diffusion/offloading.py | 10 +- pyproject.toml | 1 + 4 files changed, 211 insertions(+), 10 deletions(-) create mode 100644 invokeai/backend/model_management/model_cache.py diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py new file mode 100644 index 0000000000..0ef97e3532 --- /dev/null +++ b/invokeai/backend/model_management/model_cache.py @@ -0,0 +1,203 @@ +""" +Manage a cache of Stable Diffusion model files for fast switching. +They are moved between GPU and CPU as necessary. If the cache +grows larger than a preset maximum, then the least recently used +model will be cleared and (re)loaded from disk when next needed. +""" + +import contextlib +import hashlib +import gc +import time +import os +import psutil + +import safetensors +import safetensors.torch +import torch +import transformers +import warnings + +from pathlib import Path +from diffusers import ( + AutoencoderKL, + UNet2DConditionModel, + SchedulerMixin, + logging as diffusers_logging, +) +from transformers import( + CLIPTokenizer, + CLIPFeatureExtractor, + CLIPTextModel, + logging as transformers_logging, +) +from huggingface_hub import scan_cache_dir +from omegaconf import OmegaConf +from omegaconf.dictconfig import DictConfig +from picklescan.scanner import scan_file_path +from typing import Sequence, Union + +from invokeai.backend.globals import Globals, global_cache_dir +from diffusers.pipelines.stable_diffusion.safety_checker import ( + StableDiffusionSafetyChecker, + ) +from ..stable_diffusion import ( + StableDiffusionGeneratorPipeline, +) +from ..stable_diffusion.offloading import ModelGroup, FullyLoadedModelGroup +from ..util import CUDA_DEVICE, ask_user, download_with_resume + +MAX_MODELS_CACHED = 4 + +class ModelCache(object): + def __init__( + self, + max_models_cached: int=MAX_MODELS_CACHED, + execution_device: torch.device=torch.device('cuda'), + precision: torch.dtype=torch.float16, + sequential_offload: bool=False, + ): + self.model_group: ModelGroup=FullyLoadedModelGroup(execution_device) + self.models: dict = dict() + self.stack: Sequence = list() + self.sequential_offload: bool=sequential_offload + self.precision: torch.dtype=precision + self.max_models_cached: int=max_models_cached + self.device: torch.device=execution_device + + def get_model( + self, + repo_id_or_path: Union[str,Path], + model_class: type=StableDiffusionGeneratorPipeline, + subfolder: Path=None, + revision: str=None, + )->Union[ + AutoencoderKL, + CLIPTokenizer, + CLIPFeatureExtractor, + CLIPTextModel, + UNet2DConditionModel, + StableDiffusionSafetyChecker, + StableDiffusionGeneratorPipeline, + ]: + ''' + Load and return a HuggingFace model, with RAM caching. + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision + :param model_class: class of model to return + ''' + key = self._model_key(repo_id_or_path,model_class,revision,subfolder) # internal unique identifier for the model + if key in self.models: # cached - move to bottom of stack + previous_key = self._current_model_key + with contextlib.suppress(ValueError): + self.stack.remove(key) + self.stack.append(key) + if previous_key != key: + if hasattr(self.current_model,'to'): + print(f'DEBUG: loading {key} into GPU') + self.model_group.offload_current() + self.model_group.load(self.models[key]) + + else: # not cached -load + self._make_cache_room() + self.model_group.offload_current() + print(f'DEBUG: loading {key} from disk/net') + model = self._load_model_from_storage( + repo_id_or_path=repo_id_or_path, + subfolder=subfolder, + revision=revision, + model_class=model_class + ) + if hasattr(model,'to'): + self.model_group.install(model) # register with the model group + self.stack.append(key) # add to LRU cache + self.models[key]=model # keep copy of model in dict + return self.models[key] + + @staticmethod + def _model_key(path,model_class,revision,subfolder)->str: + return ':'.join([str(path),str(model_class),str(revision),str(subfolder)]) + + def _make_cache_room(self): + models_in_ram = len(self.models) + while models_in_ram >= self.max_models_cached: + if least_recently_used_key := self.stack.pop(0): + print(f'DEBUG: maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') + self.model_group.uninstall(self.models[least_recently_used_key]) + del self.models[least_recently_used_key] + models_in_ram = len(self.models) + gc.collect() + + @property + def current_model(self)->Union[ + AutoencoderKL, + CLIPTokenizer, + CLIPFeatureExtractor, + CLIPTextModel, + UNet2DConditionModel, + StableDiffusionSafetyChecker, + StableDiffusionGeneratorPipeline, + ]: + ''' + Returns current model. + ''' + return self.models[self._current_model_key] + + @property + def _current_model_key(self)->str: + ''' + Returns key of currently loaded model. + ''' + return self.stack[-1] + + def _load_model_from_storage( + self, + repo_id_or_path: Union[str,Path], + subfolder: Path=None, + revision: str=None, + model_class: type=StableDiffusionGeneratorPipeline, + )->Union[ + AutoencoderKL, + CLIPTokenizer, + CLIPFeatureExtractor, + CLIPTextModel, + UNet2DConditionModel, + StableDiffusionSafetyChecker, + StableDiffusionGeneratorPipeline, + ]: + ''' + Load and return a HuggingFace model. + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision + :param model_class: class of model to return + ''' + # silence transformer and diffuser warnings + with SilenceWarnings(): + model = model_class.from_pretrained( + repo_id_or_path, + revision=revision, + subfolder=subfolder or '.', + cache_dir=global_cache_dir('hub'), + ) + if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): + model.enable_offload_submodels(self.device) + elif hasattr(model,'to'): + model.to(self.device) + return model + +class SilenceWarnings(object): + def __init__(self): + self.transformers_verbosity = transformers_logging.get_verbosity() + self.diffusers_verbosity = diffusers_logging.get_verbosity() + + def __enter__(self): + transformers_logging.set_verbosity_error() + diffusers_logging.set_verbosity_error() + warnings.simplefilter('ignore') + + def __exit__(self,type,value,traceback): + transformers_logging.set_verbosity(self.transformers_verbosity) + diffusers_logging.set_verbosity(self.diffusers_verbosity) + warnings.simplefilter('default') diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 534b526081..68ecd3bcca 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -1,4 +1,4 @@ -"""enum +""" Manage a cache of Stable Diffusion model files for fast switching. They are moved between GPU and CPU as necessary. If CPU memory falls below a preset minimum, the least recently used model will be @@ -1108,11 +1108,8 @@ class ModelManager(object): >> invokeai/models/diffusers to invokeai/models/hub due to a change introduced by >> diffusers version 0.14. InvokeAI will now move all models from the "diffusers" directory >> into "hub" and then remove the diffusers directory. This is a quick, safe, one-time ->> operation. However if you have customized either of these directories and need to ->> make adjustments, please press ctrl-C now to abort and relaunch InvokeAI when you are ready. ->> Otherwise press to continue.""" +>> operation.""" ) - input("continue> ") # transformer files get moved into the hub directory if cls._is_huggingface_hub_directory_present(): diff --git a/invokeai/backend/stable_diffusion/offloading.py b/invokeai/backend/stable_diffusion/offloading.py index 871f994732..5fc3f765ae 100644 --- a/invokeai/backend/stable_diffusion/offloading.py +++ b/invokeai/backend/stable_diffusion/offloading.py @@ -157,7 +157,7 @@ class LazilyLoadedModelGroup(ModelGroup): def offload_current(self): module = self._current_model_ref() if module is not NO_MODEL: - module.to(device=OFFLOAD_DEVICE) + module.to(OFFLOAD_DEVICE) self.clear_current_model() def _load(self, module: torch.nn.Module) -> torch.nn.Module: @@ -228,7 +228,7 @@ class FullyLoadedModelGroup(ModelGroup): def install(self, *models: torch.nn.Module): for model in models: self._models.add(model) - model.to(device=self.execution_device) + model.to(self.execution_device) def uninstall(self, *models: torch.nn.Module): for model in models: @@ -238,11 +238,11 @@ class FullyLoadedModelGroup(ModelGroup): self.uninstall(*self._models) def load(self, model): - model.to(device=self.execution_device) + model.to(self.execution_device) def offload_current(self): for model in self._models: - model.to(device=OFFLOAD_DEVICE) + model.to(OFFLOAD_DEVICE) def ready(self): for model in self._models: @@ -252,7 +252,7 @@ class FullyLoadedModelGroup(ModelGroup): self.execution_device = device for model in self._models: if model.device != OFFLOAD_DEVICE: - model.to(device=device) + model.to(device) def device_for(self, model): if model not in self: diff --git a/pyproject.toml b/pyproject.toml index 0ab1e0ede6..38547d0d11 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,7 @@ dependencies = [ "picklescan", "pillow", "prompt-toolkit", + "pympler==1.0.1", "pypatchmatch", "pyreadline3", "python-multipart==0.0.6", From 2e2abf6ea69f5615de37c2bde650c80eba2e5c76 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Mon, 1 May 2023 22:57:30 -0400 Subject: [PATCH 002/225] caching of subparts working --- .../backend/model_management/model_cache.py | 76 ++++++++++--------- tests/test_model_cache.py | 53 +++++++++++++ 2 files changed, 95 insertions(+), 34 deletions(-) create mode 100644 tests/test_model_cache.py diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 0ef97e3532..997a42ad3e 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -18,6 +18,7 @@ import torch import transformers import warnings +from enum import Enum from pathlib import Path from diffusers import ( AutoencoderKL, @@ -32,8 +33,6 @@ from transformers import( logging as transformers_logging, ) from huggingface_hub import scan_cache_dir -from omegaconf import OmegaConf -from omegaconf.dictconfig import DictConfig from picklescan.scanner import scan_file_path from typing import Sequence, Union @@ -48,7 +47,21 @@ from ..stable_diffusion.offloading import ModelGroup, FullyLoadedModelGroup from ..util import CUDA_DEVICE, ask_user, download_with_resume MAX_MODELS_CACHED = 4 + +# This is the mapping from the stable diffusion submodel dict key to the class +class SDModelType(Enum): + diffusion_pipeline=StableDiffusionGeneratorPipeline # whole thing + vae=AutoencoderKL # parts + text_encoder=CLIPTextModel + tokenizer=CLIPTokenizer + unet=UNet2DConditionModel + scheduler=SchedulerMixin + safety_checker=StableDiffusionSafetyChecker + feature_extractor=CLIPFeatureExtractor +# List the model classes we know how to fetch +ModelClass = Union[tuple([x.value for x in SDModelType])] + class ModelCache(object): def __init__( self, @@ -65,21 +78,27 @@ class ModelCache(object): self.max_models_cached: int=max_models_cached self.device: torch.device=execution_device + def get_submodel( + self, + repo_id_or_path: Union[str,Path], + submodel: SDModelType=SDModelType.vae, + subfolder: Path=None, + revision: str=None, + )->ModelClass: + parent_model = self.get_model( + repo_id_or_path=repo_id_or_path, + subfolder=subfolder, + revision=revision, + ) + return getattr(parent_model, submodel.name) + def get_model( self, repo_id_or_path: Union[str,Path], - model_class: type=StableDiffusionGeneratorPipeline, + model_type: SDModelType=SDModelType.diffusion_pipeline, subfolder: Path=None, revision: str=None, - )->Union[ - AutoencoderKL, - CLIPTokenizer, - CLIPFeatureExtractor, - CLIPTextModel, - UNet2DConditionModel, - StableDiffusionSafetyChecker, - StableDiffusionGeneratorPipeline, - ]: + )->ModelClass: ''' Load and return a HuggingFace model, with RAM caching. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model @@ -87,7 +106,12 @@ class ModelCache(object): :param revision: model revision :param model_class: class of model to return ''' - key = self._model_key(repo_id_or_path,model_class,revision,subfolder) # internal unique identifier for the model + key = self._model_key( + repo_id_or_path, + model_type.value, + revision, + subfolder + ) # internal unique identifier for the model if key in self.models: # cached - move to bottom of stack previous_key = self._current_model_key with contextlib.suppress(ValueError): @@ -105,9 +129,9 @@ class ModelCache(object): print(f'DEBUG: loading {key} from disk/net') model = self._load_model_from_storage( repo_id_or_path=repo_id_or_path, + model_class=model_type.value, subfolder=subfolder, revision=revision, - model_class=model_class ) if hasattr(model,'to'): self.model_group.install(model) # register with the model group @@ -117,7 +141,7 @@ class ModelCache(object): @staticmethod def _model_key(path,model_class,revision,subfolder)->str: - return ':'.join([str(path),str(model_class),str(revision),str(subfolder)]) + return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) def _make_cache_room(self): models_in_ram = len(self.models) @@ -130,15 +154,7 @@ class ModelCache(object): gc.collect() @property - def current_model(self)->Union[ - AutoencoderKL, - CLIPTokenizer, - CLIPFeatureExtractor, - CLIPTextModel, - UNet2DConditionModel, - StableDiffusionSafetyChecker, - StableDiffusionGeneratorPipeline, - ]: + def current_model(self)->ModelClass: ''' Returns current model. ''' @@ -156,16 +172,8 @@ class ModelCache(object): repo_id_or_path: Union[str,Path], subfolder: Path=None, revision: str=None, - model_class: type=StableDiffusionGeneratorPipeline, - )->Union[ - AutoencoderKL, - CLIPTokenizer, - CLIPFeatureExtractor, - CLIPTextModel, - UNet2DConditionModel, - StableDiffusionSafetyChecker, - StableDiffusionGeneratorPipeline, - ]: + model_class: ModelClass=StableDiffusionGeneratorPipeline, + )->ModelClass: ''' Load and return a HuggingFace model. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model diff --git a/tests/test_model_cache.py b/tests/test_model_cache.py new file mode 100644 index 0000000000..4130d8e7d5 --- /dev/null +++ b/tests/test_model_cache.py @@ -0,0 +1,53 @@ +import pytest +import torch + +from invokeai.backend.model_management.model_cache import ModelCache, SDModelType +from invokeai.backend.stable_diffusion import StableDiffusionGeneratorPipeline + +from diffusers import ( + AutoencoderKL, + UNet2DConditionModel, + SchedulerMixin, +) +from transformers import ( + CLIPTokenizer, + CLIPFeatureExtractor, + CLIPTextModel, +) + + +cache = ModelCache() + +def test_pipeline_fetch(): + model0 = cache.get_model('stabilityai/sd-vae-ft-mse',SDModelType.vae) + model1 = cache.get_model('stabilityai/stable-diffusion-2-1',SDModelType.diffusion_pipeline) + model1_2 = cache.get_model('stabilityai/stable-diffusion-2-1') + assert model1==model1_2 + assert model1.device==torch.device('cuda') + model2 = cache.get_model('runwayml/stable-diffusion-v1-5') + assert model2.device==torch.device('cuda') + assert model1.device==torch.device('cpu') + model1 = cache.get_model('stabilityai/stable-diffusion-2-1') + assert model1.device==torch.device('cuda') + +def test_submodel_fetch(): + model1_vae = cache.get_submodel('stabilityai/stable-diffusion-2-1',SDModelType.vae) + assert isinstance(model1_vae,AutoencoderKL) + model1 = cache.get_model('stabilityai/stable-diffusion-2-1',SDModelType.diffusion_pipeline) + assert model1_vae == model1.vae + model1_vae_2 = cache.get_submodel('stabilityai/stable-diffusion-2-1') + assert model1_vae == model1_vae_2 + +def test_transformer_fetch(): + model4 = cache.get_model('openai/clip-vit-large-patch14',SDModelType.tokenizer) + assert isinstance(model4,CLIPTokenizer) + + model5 = cache.get_model('openai/clip-vit-large-patch14',SDModelType.text_encoder) + assert isinstance(model5,CLIPTextModel) + +def test_subfolder_fetch(): + model6 = cache.get_model('stabilityai/stable-diffusion-2',SDModelType.tokenizer,subfolder="tokenizer") + assert isinstance(model6,CLIPTokenizer) + + model7 = cache.get_model('stabilityai/stable-diffusion-2',SDModelType.text_encoder,subfolder="text_encoder") + assert isinstance(model7,CLIPTextModel) From bb959448c18671088ef84a7152ca363b075ef59e Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Tue, 2 May 2023 16:52:27 -0400 Subject: [PATCH 003/225] implement hashing for local & remote models --- .../backend/model_management/model_cache.py | 181 ++++++++++++++++-- 1 file changed, 166 insertions(+), 15 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 997a42ad3e..616693b60f 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -20,12 +20,14 @@ import warnings from enum import Enum from pathlib import Path +from pydantic import BaseModel from diffusers import ( AutoencoderKL, UNet2DConditionModel, SchedulerMixin, logging as diffusers_logging, ) +from huggingface_hub import list_repo_refs,HfApi from transformers import( CLIPTokenizer, CLIPFeatureExtractor, @@ -36,10 +38,11 @@ from huggingface_hub import scan_cache_dir from picklescan.scanner import scan_file_path from typing import Sequence, Union -from invokeai.backend.globals import Globals, global_cache_dir from diffusers.pipelines.stable_diffusion.safety_checker import ( StableDiffusionSafetyChecker, ) +from . import load_pipeline_from_original_stable_diffusion_ckpt +from ..globals import Globals, global_cache_dir from ..stable_diffusion import ( StableDiffusionGeneratorPipeline, ) @@ -59,9 +62,14 @@ class SDModelType(Enum): safety_checker=StableDiffusionSafetyChecker feature_extractor=CLIPFeatureExtractor -# List the model classes we know how to fetch +# The list of model classes we know how to fetch, for typechecking ModelClass = Union[tuple([x.value for x in SDModelType])] +# Legacy information needed to load a legacy checkpoint file +class LegacyInfo(BaseModel): + config_file: Path + vae_file: Path + class ModelCache(object): def __init__( self, @@ -69,7 +77,15 @@ class ModelCache(object): execution_device: torch.device=torch.device('cuda'), precision: torch.dtype=torch.float16, sequential_offload: bool=False, + sha_chunksize: int = 16777216, ): + ''' + :param max_models_cached: Maximum number of models to cache in CPU RAM [4] + :param execution_device: Torch device to load active model into [torch.device('cuda')] + :param precision: Precision for loaded models [torch.float16] + :param sequential_offload: Conserve VRAM by loading and unloading each stage of the pipeline sequentially + :param sha_chunksize: Chunksize to use when calculating sha256 model hash + ''' self.model_group: ModelGroup=FullyLoadedModelGroup(execution_device) self.models: dict = dict() self.stack: Sequence = list() @@ -77,6 +93,7 @@ class ModelCache(object): self.precision: torch.dtype=precision self.max_models_cached: int=max_models_cached self.device: torch.device=execution_device + self.sha_chunksize=sha_chunksize def get_submodel( self, @@ -84,7 +101,16 @@ class ModelCache(object): submodel: SDModelType=SDModelType.vae, subfolder: Path=None, revision: str=None, + legacy_info: LegacyInfo=None, )->ModelClass: + ''' + Load and return a HuggingFace model, with RAM caching. + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision name + :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt + ''' parent_model = self.get_model( repo_id_or_path=repo_id_or_path, subfolder=subfolder, @@ -98,6 +124,7 @@ class ModelCache(object): model_type: SDModelType=SDModelType.diffusion_pipeline, subfolder: Path=None, revision: str=None, + legacy_info: LegacyInfo=None, )->ModelClass: ''' Load and return a HuggingFace model, with RAM caching. @@ -105,13 +132,14 @@ class ModelCache(object): :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param revision: model revision :param model_class: class of model to return + :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt ''' - key = self._model_key( + key = self._model_key( # internal unique identifier for the model repo_id_or_path, model_type.value, revision, subfolder - ) # internal unique identifier for the model + ) if key in self.models: # cached - move to bottom of stack previous_key = self._current_model_key with contextlib.suppress(ValueError): @@ -119,19 +147,19 @@ class ModelCache(object): self.stack.append(key) if previous_key != key: if hasattr(self.current_model,'to'): - print(f'DEBUG: loading {key} into GPU') + print(f' | loading {key} into GPU') self.model_group.offload_current() self.model_group.load(self.models[key]) - else: # not cached -load self._make_cache_room() self.model_group.offload_current() - print(f'DEBUG: loading {key} from disk/net') + print(f' | loading model {key} from disk/net') model = self._load_model_from_storage( repo_id_or_path=repo_id_or_path, model_class=model_type.value, subfolder=subfolder, revision=revision, + legacy_info=legacy_info, ) if hasattr(model,'to'): self.model_group.install(model) # register with the model group @@ -139,6 +167,22 @@ class ModelCache(object): self.models[key]=model # keep copy of model in dict return self.models[key] + @staticmethod + def model_hash(repo_id_or_path: Union[str,Path], + revision: str=None)->str: + ''' + Given the HF repo id or path to a model on disk, returns a unique + hash. Works for legacy checkpoint files, HF models on disk, and HF repo IDs + :param repo_id_or_path: repo_id string or Path to model file/directory on disk. + :param revision: optional revision string (if fetching a HF repo_id) + ''' + if self.is_legacy_ckpt(repo_id_or_path): + return self._legacy_model_hash(repo_id_or_path) + elif Path(repo_id_or_path).is_dir(): + return self._local_model_hash(repo_id_or_path) + else: + return self._hf_commit_hash(repo_id_or_path,revision) + @staticmethod def _model_key(path,model_class,revision,subfolder)->str: return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) @@ -147,7 +191,7 @@ class ModelCache(object): models_in_ram = len(self.models) while models_in_ram >= self.max_models_cached: if least_recently_used_key := self.stack.pop(0): - print(f'DEBUG: maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') + print(f' | maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') self.model_group.uninstall(self.models[least_recently_used_key]) del self.models[least_recently_used_key] models_in_ram = len(self.models) @@ -173,28 +217,135 @@ class ModelCache(object): subfolder: Path=None, revision: str=None, model_class: ModelClass=StableDiffusionGeneratorPipeline, + legacy_info: LegacyInfo=None, )->ModelClass: ''' Load and return a HuggingFace model. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param revision: model revision - :param model_class: class of model to return + :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline + :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt ''' # silence transformer and diffuser warnings with SilenceWarnings(): - model = model_class.from_pretrained( - repo_id_or_path, - revision=revision, - subfolder=subfolder or '.', - cache_dir=global_cache_dir('hub'), - ) + if self.is_legacy_ckpt(repo_id_or_path): + model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) + else: + model = self._load_diffusers_from_storage( + repo_id_or_path, + subfolder, + revision, + model_class, + ) if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): model.enable_offload_submodels(self.device) elif hasattr(model,'to'): model.to(self.device) return model + def _load_diffusers_from_storage( + self, + repo_id_or_path: Union[str,Path], + subfolder: Path=None, + revision: str=None, + model_class: ModelClass=StableDiffusionGeneratorPipeline, + )->ModelClass: + ''' + Load and return a HuggingFace model using from_pretrained(). + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision + :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline + ''' + return model_class.from_pretrained( + repo_id_or_path, + revision=revision, + subfolder=subfolder or '.', + cache_dir=global_cache_dir('hub'), + ) + + @classmethod + def is_legacy_ckpt(cls, repo_id_or_path: Union[str,Path])->bool: + ''' + Return true if the indicated path is a legacy checkpoint + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + ''' + path = Path(repo_id_or_path) + return path.is_file() and path.suffix in [".ckpt",".safetensors"] + + def _load_ckpt_from_storage(self, + ckpt_path: Union[str,Path], + legacy_info:LegacyInfo)->StableDiffusionGeneratorPipeline: + ''' + Load a legacy checkpoint, convert it, and return a StableDiffusionGeneratorPipeline. + :param ckpt_path: string or Path pointing to the weights file (.ckpt or .safetensors) + :param legacy_info: LegacyInfo object containing paths to legacy config file and alternate vae if required + ''' + assert legacy_info is not None + pipeline = load_pipeline_from_original_stable_diffusion_ckpt( + checkpoint_path=ckpt_path, + original_config_file=legacy_info.config_file, + vae_path=legacy_info.vae_file, + return_generator_pipeline=True, + precision=self.precision, + ) + return pipeline + + def _legacy_model_hash(self, checkpoint_path: Union[str,Path])->str: + sha = hashlib.sha256() + path = Path(checkpoint_path) + assert path.is_file() + + hashpath = path.parent / f"{path.name}.sha256" + if hashpath.exists() and path.stat().st_mtime <= hashpath.stat().st_mtime: + with open(hashpath) as f: + hash = f.read() + return hash + + print(f' | computing hash of model {path.name}') + with open(path, "rb") as f: + while chunk := f.read(self.sha_chunksize): + sha.update(chunk) + hash = sha.hexdigest() + + with open(hashpath, "w") as f: + f.write(hash) + return hash + + def _local_model_hash(self, model_path: Union[str,Path])->str: + sha = hashlib.sha256() + path = Path(model_path) + + hashpath = path / "checksum.sha256" + if hashpath.exists() and path.stat().st_mtime <= hashpath.stat().st_mtime: + with open(hashpath) as f: + hash = f.read() + return hash + + print(f' | computing hash of model {path.name}') + for file in list(path.rglob("*.ckpt")) \ + + list(path.rglob("*.safetensors")) \ + + list(path.rglob("*.pth")): + with open(file, "rb") as f: + while chunk := f.read(self.sha_chunksize): + sha.update(chunk) + hash = sha.hexdigest() + with open(hashpath, "w") as f: + f.write(hash) + return hash + + def _hf_commit_hash(self, repo_id: str, revision: str='main')->str: + api = HfApi() + info = api.list_repo_refs( + repo_id=repo_id, + repo_type='model', + ) + desired_revisions = [branch for branch in info.branches if branch.name==revision] + if not desired_revisions: + raise KeyError(f"Revision '{revision}' not found in {repo_id}") + return desired_revisions[0].target_commit + class SilenceWarnings(object): def __init__(self): self.transformers_verbosity = transformers_logging.get_verbosity() From e1fed52c66d6318207f0115cb83aa5ba777a81d5 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Wed, 3 May 2023 12:38:18 -0400 Subject: [PATCH 004/225] work on model cache and its regression test finished --- .../backend/model_management/model_cache.py | 203 ++++++++++-------- tests/test_model_cache.py | 115 ++++++---- 2 files changed, 188 insertions(+), 130 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 616693b60f..2eb675c3e3 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -1,55 +1,46 @@ """ -Manage a cache of Stable Diffusion model files for fast switching. -They are moved between GPU and CPU as necessary. If the cache +Manage a RAM cache of diffusion/transformer models for fast switching. +They are moved between GPU VRAM and CPU RAM as necessary. If the cache grows larger than a preset maximum, then the least recently used model will be cleared and (re)loaded from disk when next needed. + +The cache returns context manager generators designed to load the +model into the GPU within the context, and unload outside the +context. Use like this: + + cache = ModelCache(max_models_cached=6) + with cache.get_model('runwayml/stable-diffusion-1-5') as SD1, + cache.get_model('stabilityai/stable-diffusion-2') as SD2: + do_something_in_GPU(SD1,SD2) + + """ import contextlib -import hashlib import gc -import time -import os -import psutil - -import safetensors -import safetensors.torch -import torch -import transformers +import hashlib import warnings - +from collections.abc import Generator from enum import Enum from pathlib import Path -from pydantic import BaseModel -from diffusers import ( - AutoencoderKL, - UNet2DConditionModel, - SchedulerMixin, - logging as diffusers_logging, -) -from huggingface_hub import list_repo_refs,HfApi -from transformers import( - CLIPTokenizer, - CLIPFeatureExtractor, - CLIPTextModel, - logging as transformers_logging, -) -from huggingface_hub import scan_cache_dir -from picklescan.scanner import scan_file_path from typing import Sequence, Union -from diffusers.pipelines.stable_diffusion.safety_checker import ( - StableDiffusionSafetyChecker, - ) -from . import load_pipeline_from_original_stable_diffusion_ckpt -from ..globals import Globals, global_cache_dir -from ..stable_diffusion import ( - StableDiffusionGeneratorPipeline, -) -from ..stable_diffusion.offloading import ModelGroup, FullyLoadedModelGroup -from ..util import CUDA_DEVICE, ask_user, download_with_resume +import torch +from diffusers import AutoencoderKL, SchedulerMixin, UNet2DConditionModel +from diffusers import logging as diffusers_logging +from diffusers.pipelines.stable_diffusion.safety_checker import \ + StableDiffusionSafetyChecker +from huggingface_hub import HfApi +from picklescan.scanner import scan_file_path +from pydantic import BaseModel +from transformers import CLIPFeatureExtractor, CLIPTextModel, CLIPTokenizer +from transformers import logging as transformers_logging -MAX_MODELS_CACHED = 4 +from ..globals import global_cache_dir +from ..stable_diffusion import StableDiffusionGeneratorPipeline +from . import load_pipeline_from_original_stable_diffusion_ckpt + +MAX_MODELS = 4 # This is the mapping from the stable diffusion submodel dict key to the class class SDModelType(Enum): @@ -68,70 +59,69 @@ ModelClass = Union[tuple([x.value for x in SDModelType])] # Legacy information needed to load a legacy checkpoint file class LegacyInfo(BaseModel): config_file: Path - vae_file: Path + vae_file: Path = None + +class UnsafeModelException(Exception): + "Raised when a legacy model file fails the picklescan test" + pass + +class UnscannableModelException(Exception): + "Raised when picklescan is unable to scan a legacy model file" + pass class ModelCache(object): def __init__( self, - max_models_cached: int=MAX_MODELS_CACHED, + max_models: int=MAX_MODELS, execution_device: torch.device=torch.device('cuda'), + storage_device: torch.device=torch.device('cpu'), precision: torch.dtype=torch.float16, sequential_offload: bool=False, sha_chunksize: int = 16777216, ): ''' - :param max_models_cached: Maximum number of models to cache in CPU RAM [4] + :param max_models: Maximum number of models to cache in CPU RAM [4] :param execution_device: Torch device to load active model into [torch.device('cuda')] + :param storage_device: Torch device to save inactive model in [torch.device('cpu')] :param precision: Precision for loaded models [torch.float16] :param sequential_offload: Conserve VRAM by loading and unloading each stage of the pipeline sequentially :param sha_chunksize: Chunksize to use when calculating sha256 model hash ''' - self.model_group: ModelGroup=FullyLoadedModelGroup(execution_device) self.models: dict = dict() self.stack: Sequence = list() self.sequential_offload: bool=sequential_offload self.precision: torch.dtype=precision - self.max_models_cached: int=max_models_cached - self.device: torch.device=execution_device + self.max_models: int=max_models + self.execution_device: torch.device=execution_device + self.storage_device: torch.device=storage_device self.sha_chunksize=sha_chunksize - def get_submodel( - self, - repo_id_or_path: Union[str,Path], - submodel: SDModelType=SDModelType.vae, - subfolder: Path=None, - revision: str=None, - legacy_info: LegacyInfo=None, - )->ModelClass: - ''' - Load and return a HuggingFace model, with RAM caching. - :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model - :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae - :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" - :param revision: model revision name - :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt - ''' - parent_model = self.get_model( - repo_id_or_path=repo_id_or_path, - subfolder=subfolder, - revision=revision, - ) - return getattr(parent_model, submodel.name) - + @contextlib.contextmanager def get_model( self, repo_id_or_path: Union[str,Path], model_type: SDModelType=SDModelType.diffusion_pipeline, subfolder: Path=None, + submodel: SDModelType=None, revision: str=None, legacy_info: LegacyInfo=None, - )->ModelClass: + gpu_load: bool=True, + )->Generator[ModelClass, None, None]: ''' - Load and return a HuggingFace model, with RAM caching. + Load and return a HuggingFace model wrapped in a context manager generator, with RAM caching. + Use like this: + + cache = ModelCache() + with cache.get_model('stabilityai/stable-diffusion-2') as SD2: + do_something_with_the_model(SD2) + + The model will be locked into GPU VRAM for the duration of the context. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae :param revision: model revision :param model_class: class of model to return + :param gpu_load: load the model into GPU [default True] :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt ''' key = self._model_key( # internal unique identifier for the model @@ -141,19 +131,12 @@ class ModelCache(object): subfolder ) if key in self.models: # cached - move to bottom of stack - previous_key = self._current_model_key with contextlib.suppress(ValueError): self.stack.remove(key) self.stack.append(key) - if previous_key != key: - if hasattr(self.current_model,'to'): - print(f' | loading {key} into GPU') - self.model_group.offload_current() - self.model_group.load(self.models[key]) + model = self.models[key] else: # not cached -load self._make_cache_room() - self.model_group.offload_current() - print(f' | loading model {key} from disk/net') model = self._load_model_from_storage( repo_id_or_path=repo_id_or_path, model_class=model_type.value, @@ -161,14 +144,29 @@ class ModelCache(object): revision=revision, legacy_info=legacy_info, ) - if hasattr(model,'to'): - self.model_group.install(model) # register with the model group self.stack.append(key) # add to LRU cache self.models[key]=model # keep copy of model in dict - return self.models[key] + + if submodel: + model = getattr(model, submodel.name) + debugging_name = f'{submodel.name} submodel of {repo_id_or_path}' + else: + debugging_name = repo_id_or_path + + try: + if gpu_load and hasattr(model,'to'): + print(f' | Loading {debugging_name} into GPU') + model.to(self.execution_device) # move into GPU + self._print_cuda_stats() + yield model + finally: + if gpu_load and hasattr(model,'to'): + print(f' | Unloading {debugging_name} from GPU') + model.to(self.storage_device) + self._print_cuda_stats() - @staticmethod - def model_hash(repo_id_or_path: Union[str,Path], + def model_hash(self, + repo_id_or_path: Union[str,Path], revision: str=None)->str: ''' Given the HF repo id or path to a model on disk, returns a unique @@ -183,16 +181,28 @@ class ModelCache(object): else: return self._hf_commit_hash(repo_id_or_path,revision) + def cache_size(self)->int: + "Return the current number of models cached." + return len(self.models) + @staticmethod def _model_key(path,model_class,revision,subfolder)->str: return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) + def _has_cuda(self)->bool: + return self.execution_device.type == 'cuda' + + def _print_cuda_stats(self): + print( + " | Current VRAM usage:", + "%4.2fG" % (torch.cuda.memory_allocated() / 1e9), + ) + def _make_cache_room(self): models_in_ram = len(self.models) - while models_in_ram >= self.max_models_cached: + while models_in_ram >= self.max_models: if least_recently_used_key := self.stack.pop(0): - print(f' | maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') - self.model_group.uninstall(self.models[least_recently_used_key]) + print(f' | Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') del self.models[least_recently_used_key] models_in_ram = len(self.models) gc.collect() @@ -239,9 +249,9 @@ class ModelCache(object): model_class, ) if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): - model.enable_offload_submodels(self.device) + model.enable_offload_submodels(self.execution_device) elif hasattr(model,'to'): - model.to(self.device) + model.to(self.execution_device) return model def _load_diffusers_from_storage( @@ -274,6 +284,23 @@ class ModelCache(object): path = Path(repo_id_or_path) return path.is_file() and path.suffix in [".ckpt",".safetensors"] + @classmethod + def scan_model(cls, model_name, checkpoint): + """ + Apply picklescanner to the indicated checkpoint and issue a warning + and option to exit if an infected file is identified. + """ + # scan model + print(f" | Scanning Model: {model_name}") + scan_result = scan_file_path(checkpoint) + if scan_result.infected_files != 0: + if scan_result.infected_files == 1: + raise UnsafeModelException("The legacy model you are trying to load may contain malware. Aborting.") + else: + raise UnscannableModelException("InvokeAI was unable to scan the legacy model you requested. Aborting") + else: + print(" | Model scanned ok") + def _load_ckpt_from_storage(self, ckpt_path: Union[str,Path], legacy_info:LegacyInfo)->StableDiffusionGeneratorPipeline: diff --git a/tests/test_model_cache.py b/tests/test_model_cache.py index 4130d8e7d5..25c61d192d 100644 --- a/tests/test_model_cache.py +++ b/tests/test_model_cache.py @@ -1,53 +1,84 @@ import pytest import torch -from invokeai.backend.model_management.model_cache import ModelCache, SDModelType -from invokeai.backend.stable_diffusion import StableDiffusionGeneratorPipeline +from enum import Enum +from invokeai.backend.model_management.model_cache import ModelCache -from diffusers import ( - AutoencoderKL, - UNet2DConditionModel, - SchedulerMixin, -) -from transformers import ( - CLIPTokenizer, - CLIPFeatureExtractor, - CLIPTextModel, -) +class DummyModelBase(object): + '''Base class for dummy component of a diffusers model''' + def __init__(self, repo_id): + self.repo_id = repo_id + self.device = torch.device('cpu') + @classmethod + def from_pretrained(cls, + repo_id:str, + revision:str=None, + subfolder:str=None, + cache_dir:str=None, + ): + return cls(repo_id) + + def to(self, device): + self.device = device -cache = ModelCache() +class DummyModelType1(DummyModelBase): + pass + +class DummyModelType2(DummyModelBase): + pass + +class DummyPipeline(DummyModelBase): + '''Dummy pipeline object is a composite of several types''' + def __init__(self,repo_id): + super().__init__(repo_id) + self.type1 = DummyModelType1('dummy/type1') + self.type2 = DummyModelType2('dummy/type2') + +class DMType(Enum): + dummy_pipeline = DummyPipeline + type1 = DummyModelType1 + type2 = DummyModelType2 + +cache = ModelCache(max_models=4) def test_pipeline_fetch(): - model0 = cache.get_model('stabilityai/sd-vae-ft-mse',SDModelType.vae) - model1 = cache.get_model('stabilityai/stable-diffusion-2-1',SDModelType.diffusion_pipeline) - model1_2 = cache.get_model('stabilityai/stable-diffusion-2-1') - assert model1==model1_2 - assert model1.device==torch.device('cuda') - model2 = cache.get_model('runwayml/stable-diffusion-v1-5') - assert model2.device==torch.device('cuda') - assert model1.device==torch.device('cpu') - model1 = cache.get_model('stabilityai/stable-diffusion-2-1') - assert model1.device==torch.device('cuda') + assert cache.cache_size()==0 + with cache.get_model('dummy/pipeline1',DMType.dummy_pipeline) as pipeline1,\ + cache.get_model('dummy/pipeline1',DMType.dummy_pipeline) as pipeline1a,\ + cache.get_model('dummy/pipeline2',DMType.dummy_pipeline) as pipeline2: + assert pipeline1 is not None, 'get_model() should not return None' + assert pipeline1a is not None, 'get_model() should not return None' + assert pipeline2 is not None, 'get_model() should not return None' + assert type(pipeline1)==DMType.dummy_pipeline.value,'get_model() did not return model of expected type' + assert pipeline1==pipeline1a,'pipelines with the same repo_id should be the same' + assert pipeline1!=pipeline2,'pipelines with different repo_ids should not be the same' + assert cache.cache_size()==2,'cache should uniquely cache models with same identity' + with cache.get_model('dummy/pipeline3',DMType.dummy_pipeline) as pipeline3,\ + cache.get_model('dummy/pipeline4',DMType.dummy_pipeline) as pipeline4: + assert cache.cache_size()==4,'cache did not grow as expected' + with cache.get_model('dummy/pipeline5',DMType.dummy_pipeline) as pipeline5: + assert cache.cache_size()==4,'cache did not free space as expected' + +def test_signatures(): + with cache.get_model('dummy/pipeline',DMType.dummy_pipeline,revision='main') as pipeline1,\ + cache.get_model('dummy/pipeline',DMType.dummy_pipeline,revision='fp16') as pipeline2,\ + cache.get_model('dummy/pipeline',DMType.dummy_pipeline,revision='main',subfolder='foo') as pipeline3: + assert pipeline1 != pipeline2,'models are distinguished by their revision' + assert pipeline1 != pipeline3,'models are distinguished by their subfolder' + +def test_pipeline_device(): + with cache.get_model('dummy/pipeline1',DMType.type1) as model1: + assert model1.device==torch.device('cuda'),'when in context, model device should be in GPU' + with cache.get_model('dummy/pipeline1',DMType.type1, gpu_load=False) as model1: + assert model1.device==torch.device('cpu'),'when gpu_load=False, model device should be CPU' def test_submodel_fetch(): - model1_vae = cache.get_submodel('stabilityai/stable-diffusion-2-1',SDModelType.vae) - assert isinstance(model1_vae,AutoencoderKL) - model1 = cache.get_model('stabilityai/stable-diffusion-2-1',SDModelType.diffusion_pipeline) - assert model1_vae == model1.vae - model1_vae_2 = cache.get_submodel('stabilityai/stable-diffusion-2-1') - assert model1_vae == model1_vae_2 + with cache.get_model(repo_id_or_path='dummy/pipeline1',model_type=DMType.dummy_pipeline) as pipeline,\ + cache.get_model(repo_id_or_path='dummy/pipeline1',model_type=DMType.dummy_pipeline,submodel=DMType.type1) as part1,\ + cache.get_model(repo_id_or_path='dummy/pipeline2',model_type=DMType.dummy_pipeline,submodel=DMType.type1) as part2: + assert type(part1)==DummyModelType1,'returned submodel is not of expected type' + assert part1.device==torch.device('cuda'),'returned submodel should be in the GPU when in context' + assert pipeline.type1==part1,'returned submodel should match the corresponding subpart of parent model' + assert pipeline.type1!=part2,'returned submodel should not match the subpart of a different parent' -def test_transformer_fetch(): - model4 = cache.get_model('openai/clip-vit-large-patch14',SDModelType.tokenizer) - assert isinstance(model4,CLIPTokenizer) - - model5 = cache.get_model('openai/clip-vit-large-patch14',SDModelType.text_encoder) - assert isinstance(model5,CLIPTextModel) - -def test_subfolder_fetch(): - model6 = cache.get_model('stabilityai/stable-diffusion-2',SDModelType.tokenizer,subfolder="tokenizer") - assert isinstance(model6,CLIPTokenizer) - - model7 = cache.get_model('stabilityai/stable-diffusion-2',SDModelType.text_encoder,subfolder="text_encoder") - assert isinstance(model7,CLIPTextModel) From 68bc0112fa653a347d1a7cc449731e9b41f8f908 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Thu, 4 May 2023 23:15:32 -0400 Subject: [PATCH 005/225] implement lazy GPU offloading and ref counting --- .../backend/model_management/model_cache.py | 67 +++++++++++++------ 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 2eb675c3e3..1af02637d3 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -21,6 +21,7 @@ import gc import hashlib import warnings from collections.abc import Generator +from collections import Counter from enum import Enum from pathlib import Path from typing import Sequence, Union @@ -36,6 +37,7 @@ from pydantic import BaseModel from transformers import CLIPFeatureExtractor, CLIPTextModel, CLIPTokenizer from transformers import logging as transformers_logging +import invokeai.backend.util.logging as logger from ..globals import global_cache_dir from ..stable_diffusion import StableDiffusionGeneratorPipeline from . import load_pipeline_from_original_stable_diffusion_ckpt @@ -77,6 +79,7 @@ class ModelCache(object): storage_device: torch.device=torch.device('cpu'), precision: torch.dtype=torch.float16, sequential_offload: bool=False, + lazy_offloading: bool=True, sha_chunksize: int = 16777216, ): ''' @@ -84,17 +87,21 @@ class ModelCache(object): :param execution_device: Torch device to load active model into [torch.device('cuda')] :param storage_device: Torch device to save inactive model in [torch.device('cpu')] :param precision: Precision for loaded models [torch.float16] + :param lazy_offloading: Keep model in VRAM until another model needs to be loaded :param sequential_offload: Conserve VRAM by loading and unloading each stage of the pipeline sequentially :param sha_chunksize: Chunksize to use when calculating sha256 model hash ''' self.models: dict = dict() self.stack: Sequence = list() + self.lazy_offloading = lazy_offloading self.sequential_offload: bool=sequential_offload self.precision: torch.dtype=precision self.max_models: int=max_models self.execution_device: torch.device=execution_device self.storage_device: torch.device=storage_device self.sha_chunksize=sha_chunksize + self.loaded_models: set = set() # set of model keys loaded in GPU + self.locked_models: Counter = Counter() # set of model keys locked in GPU @contextlib.contextmanager def get_model( @@ -149,21 +156,39 @@ class ModelCache(object): if submodel: model = getattr(model, submodel.name) - debugging_name = f'{submodel.name} submodel of {repo_id_or_path}' - else: - debugging_name = repo_id_or_path - - try: - if gpu_load and hasattr(model,'to'): - print(f' | Loading {debugging_name} into GPU') + + if gpu_load and hasattr(model,'to'): + try: + self.loaded_models.add(key) + self.locked_models[key] += 1 + if self.lazy_offloading: + self._offload_unlocked_models() + logger.debug(f'Loading {key} into {self.execution_device}') model.to(self.execution_device) # move into GPU self._print_cuda_stats() - yield model - finally: - if gpu_load and hasattr(model,'to'): - print(f' | Unloading {debugging_name} from GPU') - model.to(self.storage_device) + yield model + finally: + self.locked_models[key] -= 1 + if not self.lazy_offloading: + self._offload_unlocked_models() self._print_cuda_stats() + else: + # in the event that the caller wants the model in RAM, we + # move it into CPU if it is in GPU and not locked + if hasattr(model,'to') and (key in self.loaded_models + and self.locked_models[key] == 0): + model.to(self.storage_device) + yield model + + def _offload_unlocked_models(self): + to_offload = set() + for key in self.loaded_models: + if key not in self.locked_models or self.locked_models[key] == 0: + logger.debug(f'Offloading {key} from {self.execution_device} into {self.storage_device}') + to_offload.add(key) + for key in to_offload: + self.models[key].to(self.storage_device) + self.loaded_models.remove(key) def model_hash(self, repo_id_or_path: Union[str,Path], @@ -193,16 +218,16 @@ class ModelCache(object): return self.execution_device.type == 'cuda' def _print_cuda_stats(self): - print( - " | Current VRAM usage:", - "%4.2fG" % (torch.cuda.memory_allocated() / 1e9), - ) + vram = "%4.2fG" % (torch.cuda.memory_allocated() / 1e9) + loaded_models = len(self.loaded_models) + locked_models = len([x for x in self.locked_models if self.locked_models[x]>0]) + logger.debug(f"Current VRAM usage: {vram}; locked_models/loaded_models = {locked_models}/{loaded_models}") def _make_cache_room(self): models_in_ram = len(self.models) while models_in_ram >= self.max_models: if least_recently_used_key := self.stack.pop(0): - print(f' | Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') + logger.debug(f'Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') del self.models[least_recently_used_key] models_in_ram = len(self.models) gc.collect() @@ -291,7 +316,7 @@ class ModelCache(object): and option to exit if an infected file is identified. """ # scan model - print(f" | Scanning Model: {model_name}") + logger.debug(f"Scanning Model: {model_name}") scan_result = scan_file_path(checkpoint) if scan_result.infected_files != 0: if scan_result.infected_files == 1: @@ -299,7 +324,7 @@ class ModelCache(object): else: raise UnscannableModelException("InvokeAI was unable to scan the legacy model you requested. Aborting") else: - print(" | Model scanned ok") + logger.debug("Model scanned ok") def _load_ckpt_from_storage(self, ckpt_path: Union[str,Path], @@ -330,7 +355,7 @@ class ModelCache(object): hash = f.read() return hash - print(f' | computing hash of model {path.name}') + logger.debug(f'computing hash of model {path.name}') with open(path, "rb") as f: while chunk := f.read(self.sha_chunksize): sha.update(chunk) @@ -350,7 +375,7 @@ class ModelCache(object): hash = f.read() return hash - print(f' | computing hash of model {path.name}') + logger.debug(f'computing hash of model {path.name}') for file in list(path.rglob("*.ckpt")) \ + list(path.rglob("*.safetensors")) \ + list(path.rglob("*.pth")): From a4e36bc02a732ad5916d520634dfeb0236f069fb Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Thu, 4 May 2023 23:28:03 -0400 Subject: [PATCH 006/225] when model is forcibly moved into RAM update loaded_models set --- invokeai/backend/model_management/model_cache.py | 1 + 1 file changed, 1 insertion(+) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 1af02637d3..02448c59a6 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -178,6 +178,7 @@ class ModelCache(object): if hasattr(model,'to') and (key in self.loaded_models and self.locked_models[key] == 0): model.to(self.storage_device) + self.loaded_models.remove(key) yield model def _offload_unlocked_models(self): From af8c7c7d293011fa8038b900b8488eefdb94dd7e Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Fri, 5 May 2023 19:32:28 -0400 Subject: [PATCH 007/225] model manager rewritten to use model_cache; API changed! --- invokeai/backend/__init__.py | 2 +- invokeai/backend/globals.py | 2 + invokeai/backend/model_management/__init__.py | 10 +- .../convert_ckpt_to_diffusers.py | 3 +- .../backend/model_management/model_cache.py | 302 ++++--- .../backend/model_management/model_manager.py | 847 ++++-------------- 6 files changed, 353 insertions(+), 813 deletions(-) diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index dd126a322d..06066dd6b1 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -10,7 +10,7 @@ from .generator import ( Img2Img, Inpaint ) -from .model_management import ModelManager, SDModelComponent +from .model_management import ModelManager from .safety_checker import SafetyChecker from .args import Args from .globals import Globals diff --git a/invokeai/backend/globals.py b/invokeai/backend/globals.py index c5417e03db..37a59b1135 100644 --- a/invokeai/backend/globals.py +++ b/invokeai/backend/globals.py @@ -93,6 +93,8 @@ def global_converted_ckpts_dir() -> Path: def global_set_root(root_dir: Union[str, Path]): Globals.root = root_dir +def global_resolve_path(path: Union[str,Path]): + return Path(Globals.root,path).resolve() def global_cache_dir(subdir: Union[str, Path] = "") -> Path: """ diff --git a/invokeai/backend/model_management/__init__.py b/invokeai/backend/model_management/__init__.py index 64ef4e9ee9..07b567ce7a 100644 --- a/invokeai/backend/model_management/__init__.py +++ b/invokeai/backend/model_management/__init__.py @@ -1,11 +1,5 @@ """ Initialization file for invokeai.backend.model_management """ -from .convert_ckpt_to_diffusers import ( - convert_ckpt_to_diffusers, - load_pipeline_from_original_stable_diffusion_ckpt, -) -from .model_manager import ModelManager,SDModelComponent - - - +from .model_manager import ModelManager +from .model_cache import ModelCache, ModelStatus diff --git a/invokeai/backend/model_management/convert_ckpt_to_diffusers.py b/invokeai/backend/model_management/convert_ckpt_to_diffusers.py index 8aec5a01d9..aaa69da7f3 100644 --- a/invokeai/backend/model_management/convert_ckpt_to_diffusers.py +++ b/invokeai/backend/model_management/convert_ckpt_to_diffusers.py @@ -29,6 +29,7 @@ import invokeai.backend.util.logging as logger from invokeai.backend.globals import global_cache_dir, global_config_dir from .model_manager import ModelManager, SDLegacyType +from .model_cache import ModelCache try: from omegaconf import OmegaConf @@ -1100,7 +1101,7 @@ def load_pipeline_from_original_stable_diffusion_ckpt( if Path(checkpoint_path).suffix == '.ckpt': if scan_needed: - ModelManager.scan_model(checkpoint_path,checkpoint_path) + ModelCache.scan_model(checkpoint_path,checkpoint_path) checkpoint = torch.load(checkpoint_path) else: checkpoint = load_file(checkpoint_path) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 02448c59a6..95b4e165f6 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -24,10 +24,10 @@ from collections.abc import Generator from collections import Counter from enum import Enum from pathlib import Path -from typing import Sequence, Union +from typing import Sequence, Union, Tuple, types import torch -from diffusers import AutoencoderKL, SchedulerMixin, UNet2DConditionModel +from diffusers import StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel from diffusers import logging as diffusers_logging from diffusers.pipelines.stable_diffusion.safety_checker import \ StableDiffusionSafetyChecker @@ -40,7 +40,6 @@ from transformers import logging as transformers_logging import invokeai.backend.util.logging as logger from ..globals import global_cache_dir from ..stable_diffusion import StableDiffusionGeneratorPipeline -from . import load_pipeline_from_original_stable_diffusion_ckpt MAX_MODELS = 4 @@ -54,9 +53,17 @@ class SDModelType(Enum): scheduler=SchedulerMixin safety_checker=StableDiffusionSafetyChecker feature_extractor=CLIPFeatureExtractor + +class ModelStatus(Enum): + unknown='unknown' + not_loaded='not loaded' + in_ram='cached' + in_vram='in gpu' + active='locked in gpu' # The list of model classes we know how to fetch, for typechecking ModelClass = Union[tuple([x.value for x in SDModelType])] +DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel) # Legacy information needed to load a legacy checkpoint file class LegacyInfo(BaseModel): @@ -81,6 +88,7 @@ class ModelCache(object): sequential_offload: bool=False, lazy_offloading: bool=True, sha_chunksize: int = 16777216, + logger: types.ModuleType = logger ): ''' :param max_models: Maximum number of models to cache in CPU RAM [4] @@ -100,9 +108,11 @@ class ModelCache(object): self.execution_device: torch.device=execution_device self.storage_device: torch.device=storage_device self.sha_chunksize=sha_chunksize + self.logger = logger self.loaded_models: set = set() # set of model keys loaded in GPU self.locked_models: Counter = Counter() # set of model keys locked in GPU + @contextlib.contextmanager def get_model( self, @@ -112,6 +122,7 @@ class ModelCache(object): submodel: SDModelType=None, revision: str=None, legacy_info: LegacyInfo=None, + attach_model_part: Tuple[SDModelType, str] = (None,None), gpu_load: bool=True, )->Generator[ModelClass, None, None]: ''' @@ -122,10 +133,28 @@ class ModelCache(object): with cache.get_model('stabilityai/stable-diffusion-2') as SD2: do_something_with_the_model(SD2) + You can fetch an individual part of a diffusers model by passing the submodel + argument: + + vae_context = cache.get_model( + 'stabilityai/sd-stable-diffusion-2', + submodel=SDModelType.vae + ) + + Vice versa, you can load and attach an external submodel to a diffusers model + before returning it by passing the attach_submodel argument. This only works with + diffusers models: + + pipeline_context = cache.get_model( + 'runwayml/stable-diffusion-v1-5', + attach_model_part=(SDModelType.vae,'stabilityai/sd-vae-ft-mse') + ) + The model will be locked into GPU VRAM for the duration of the context. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae + :param attach_model_part: load and attach a diffusers model component. Pass a tuple of format (SDModelType,repo_id) :param revision: model revision :param model_class: class of model to return :param gpu_load: load the model into GPU [default True] @@ -151,6 +180,8 @@ class ModelCache(object): revision=revision, legacy_info=legacy_info, ) + if model_type==SDModelType.diffusion_pipeline and attach_model_part[0]: + self.attach_part(model,*attach_model_part) self.stack.append(key) # add to LRU cache self.models[key]=model # keep copy of model in dict @@ -163,7 +194,7 @@ class ModelCache(object): self.locked_models[key] += 1 if self.lazy_offloading: self._offload_unlocked_models() - logger.debug(f'Loading {key} into {self.execution_device}') + self.logger.debug(f'Loading {key} into {self.execution_device}') model.to(self.execution_device) # move into GPU self._print_cuda_stats() yield model @@ -181,25 +212,59 @@ class ModelCache(object): self.loaded_models.remove(key) yield model - def _offload_unlocked_models(self): - to_offload = set() - for key in self.loaded_models: - if key not in self.locked_models or self.locked_models[key] == 0: - logger.debug(f'Offloading {key} from {self.execution_device} into {self.storage_device}') - to_offload.add(key) - for key in to_offload: - self.models[key].to(self.storage_device) - self.loaded_models.remove(key) + def attach_part(self, + diffusers_model: StableDiffusionPipeline, + part_type: SDModelType, + part_id: str + ): + ''' + Attach a diffusers model part to a diffusers model. This can be + used to replace the VAE, tokenizer, textencoder, unet, etc. + :param diffuser_model: The diffusers model to attach the part to. + :param part_type: An SD ModelType indicating the part + :param part_id: A HF repo_id for the part + ''' + part_key = part_type.name + part_class = part_type.value + part = self._load_diffusers_from_storage( + part_id, + model_class=part_class, + ) + part.to(diffusers_model.device) + setattr(diffusers_model,part_key,part) + self.logger.debug(f'Attached {part_key} {part_id}') + + def status(self, + repo_id_or_path: Union[str,Path], + model_type: SDModelType=SDModelType.diffusion_pipeline, + revision: str=None, + subfolder: Path=None, + )->ModelStatus: + key = self._model_key( + repo_id_or_path, + model_type.value, + revision, + subfolder) + if key not in self.models: + return ModelStatus.not_loaded + if key in self.loaded_models: + if self.locked_models[key] > 0: + return ModelStatus.active + else: + return ModelStatus.in_vram + else: + return ModelStatus.in_ram def model_hash(self, repo_id_or_path: Union[str,Path], - revision: str=None)->str: + revision: str="main")->str: ''' Given the HF repo id or path to a model on disk, returns a unique hash. Works for legacy checkpoint files, HF models on disk, and HF repo IDs :param repo_id_or_path: repo_id string or Path to model file/directory on disk. :param revision: optional revision string (if fetching a HF repo_id) ''' + revision = revision or "main" if self.is_legacy_ckpt(repo_id_or_path): return self._legacy_model_hash(repo_id_or_path) elif Path(repo_id_or_path).is_dir(): @@ -211,96 +276,6 @@ class ModelCache(object): "Return the current number of models cached." return len(self.models) - @staticmethod - def _model_key(path,model_class,revision,subfolder)->str: - return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) - - def _has_cuda(self)->bool: - return self.execution_device.type == 'cuda' - - def _print_cuda_stats(self): - vram = "%4.2fG" % (torch.cuda.memory_allocated() / 1e9) - loaded_models = len(self.loaded_models) - locked_models = len([x for x in self.locked_models if self.locked_models[x]>0]) - logger.debug(f"Current VRAM usage: {vram}; locked_models/loaded_models = {locked_models}/{loaded_models}") - - def _make_cache_room(self): - models_in_ram = len(self.models) - while models_in_ram >= self.max_models: - if least_recently_used_key := self.stack.pop(0): - logger.debug(f'Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') - del self.models[least_recently_used_key] - models_in_ram = len(self.models) - gc.collect() - - @property - def current_model(self)->ModelClass: - ''' - Returns current model. - ''' - return self.models[self._current_model_key] - - @property - def _current_model_key(self)->str: - ''' - Returns key of currently loaded model. - ''' - return self.stack[-1] - - def _load_model_from_storage( - self, - repo_id_or_path: Union[str,Path], - subfolder: Path=None, - revision: str=None, - model_class: ModelClass=StableDiffusionGeneratorPipeline, - legacy_info: LegacyInfo=None, - )->ModelClass: - ''' - Load and return a HuggingFace model. - :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model - :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" - :param revision: model revision - :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline - :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt - ''' - # silence transformer and diffuser warnings - with SilenceWarnings(): - if self.is_legacy_ckpt(repo_id_or_path): - model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) - else: - model = self._load_diffusers_from_storage( - repo_id_or_path, - subfolder, - revision, - model_class, - ) - if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): - model.enable_offload_submodels(self.execution_device) - elif hasattr(model,'to'): - model.to(self.execution_device) - return model - - def _load_diffusers_from_storage( - self, - repo_id_or_path: Union[str,Path], - subfolder: Path=None, - revision: str=None, - model_class: ModelClass=StableDiffusionGeneratorPipeline, - )->ModelClass: - ''' - Load and return a HuggingFace model using from_pretrained(). - :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model - :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" - :param revision: model revision - :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline - ''' - return model_class.from_pretrained( - repo_id_or_path, - revision=revision, - subfolder=subfolder or '.', - cache_dir=global_cache_dir('hub'), - ) - @classmethod def is_legacy_ckpt(cls, repo_id_or_path: Union[str,Path])->bool: ''' @@ -327,6 +302,106 @@ class ModelCache(object): else: logger.debug("Model scanned ok") + @staticmethod + def _model_key(path,model_class,revision,subfolder)->str: + return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) + + def _has_cuda(self)->bool: + return self.execution_device.type == 'cuda' + + def _print_cuda_stats(self): + vram = "%4.2fG" % (torch.cuda.memory_allocated() / 1e9) + loaded_models = len(self.loaded_models) + locked_models = len([x for x in self.locked_models if self.locked_models[x]>0]) + logger.debug(f"Current VRAM usage: {vram}; locked_models/loaded_models = {locked_models}/{loaded_models}") + + def _make_cache_room(self): + models_in_ram = len(self.models) + while models_in_ram >= self.max_models: + if least_recently_used_key := self.stack.pop(0): + logger.debug(f'Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') + del self.models[least_recently_used_key] + models_in_ram = len(self.models) + gc.collect() + + def _offload_unlocked_models(self): + to_offload = set() + for key in self.loaded_models: + if key not in self.locked_models or self.locked_models[key] == 0: + self.logger.debug(f'Offloading {key} from {self.execution_device} into {self.storage_device}') + to_offload.add(key) + for key in to_offload: + self.models[key].to(self.storage_device) + self.loaded_models.remove(key) + + def _load_model_from_storage( + self, + repo_id_or_path: Union[str,Path], + subfolder: Path=None, + revision: str=None, + model_class: ModelClass=StableDiffusionGeneratorPipeline, + legacy_info: LegacyInfo=None, + )->ModelClass: + ''' + Load and return a HuggingFace model. + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision + :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline + :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt + ''' + if self.is_legacy_ckpt(repo_id_or_path): + model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) + else: + model = self._load_diffusers_from_storage( + repo_id_or_path, + subfolder, + revision, + model_class, + ) + if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): + model.enable_offload_submodels(self.execution_device) + return model + + def _load_diffusers_from_storage( + self, + repo_id_or_path: Union[str,Path], + subfolder: Path=None, + revision: str=None, + model_class: ModelClass=StableDiffusionGeneratorPipeline, + )->ModelClass: + ''' + Load and return a HuggingFace model using from_pretrained(). + :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" + :param revision: model revision + :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline + ''' + self.logger.info(f'Loading model {repo_id_or_path}') + revisions = [revision] if revision \ + else ['fp16','main'] if self.precision==torch.float16 \ + else ['main'] + extra_args = {'precision': self.precision} \ + if model_class in DiffusionClasses \ + else {} + + # silence transformer and diffuser warnings + with SilenceWarnings(): + for rev in revisions: + try: + model = model_class.from_pretrained( + repo_id_or_path, + revision=rev, + subfolder=subfolder or '.', + cache_dir=global_cache_dir('hub'), + **extra_args, + ) + self.logger.debug(f'Found revision {rev}') + break + except OSError: + pass + return model + def _load_ckpt_from_storage(self, ckpt_path: Union[str,Path], legacy_info:LegacyInfo)->StableDiffusionGeneratorPipeline: @@ -336,13 +411,17 @@ class ModelCache(object): :param legacy_info: LegacyInfo object containing paths to legacy config file and alternate vae if required ''' assert legacy_info is not None - pipeline = load_pipeline_from_original_stable_diffusion_ckpt( - checkpoint_path=ckpt_path, - original_config_file=legacy_info.config_file, - vae_path=legacy_info.vae_file, - return_generator_pipeline=True, - precision=self.precision, - ) + + # deferred loading to avoid circular import errors + from .convert_ckpt_to_diffusers import load_pipeline_from_original_stable_diffusion_ckpt + with SilenceWarnings(): + pipeline = load_pipeline_from_original_stable_diffusion_ckpt( + checkpoint_path=ckpt_path, + original_config_file=legacy_info.config_file, + vae_path=legacy_info.vae_file, + return_generator_pipeline=True, + precision=self.precision, + ) return pipeline def _legacy_model_hash(self, checkpoint_path: Union[str,Path])->str: @@ -399,6 +478,7 @@ class ModelCache(object): raise KeyError(f"Revision '{revision}' not found in {repo_id}") return desired_revisions[0].target_commit + class SilenceWarnings(object): def __init__(self): self.transformers_verbosity = transformers_logging.get_verbosity() diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 9ba1e8779c..3977ac0ed7 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -1,56 +1,88 @@ -""" -Manage a cache of Stable Diffusion model files for fast switching. -They are moved between GPU and CPU as necessary. If CPU memory falls -below a preset minimum, the least recently used model will be -cleared and loaded from disk when next needed. +"""This module manages the InvokeAI `models.yaml` file, mapping +symbolic diffusers model names to the paths and repo_ids used +by the underlying `from_pretrained()` call. + +For fetching models, use manager.get_model('symbolic name'). This will +return a SDModelInfo object that contains the following attributes: + + * context -- a context manager Generator that loads and locks the + model into GPU VRAM and returns the model for use. + See below for usage. + * name -- symbolic name of the model + * hash -- unique hash for the model + * location -- path or repo_id of the model + * revision -- revision of the model if coming from a repo id, + e.g. 'fp16' + * precision -- torch precision of the model + * status -- a ModelStatus enum corresponding to one of + 'not_loaded', 'in_ram', 'in_vram' or 'active' + +Typical usage: + + from invokeai.backend import ModelManager + manager = ModelManager(config_path='./configs/models.yaml',max_models=4) + model_info = manager.get_model('stable-diffusion-1.5') + with model_info.context as my_model: + my_model.latents_from_embeddings(...) + +The manager uses the underlying ModelCache class to keep +frequently-used models in RAM and move them into GPU as needed for +generation operations. The ModelCache object can be accessed using +the manager's "cache" attribute. + +Other methods provided by ModelManager support importing, editing, +converting and deleting models. """ from __future__ import annotations -import contextlib -import gc -import hashlib import os import re -import sys import textwrap -import time -import warnings +from dataclasses import dataclass from enum import Enum, auto from pathlib import Path -from shutil import move, rmtree -from typing import Any, Optional, Union, Callable, types +from shutil import rmtree +from typing import Union, Callable, types import safetensors import safetensors.torch import torch -import transformers import invokeai.backend.util.logging as logger -from diffusers import ( - AutoencoderKL, - UNet2DConditionModel, - SchedulerMixin, - logging as dlogging, -) from huggingface_hub import scan_cache_dir from omegaconf import OmegaConf from omegaconf.dictconfig import DictConfig -from picklescan.scanner import scan_file_path -from invokeai.backend.globals import Globals, global_cache_dir +from invokeai.backend.globals import Globals, global_cache_dir, global_resolve_path +from .model_cache import Generator, ModelClass, ModelCache, SDModelType, ModelStatus, LegacyInfo -from transformers import ( - CLIPTextModel, - CLIPTokenizer, - CLIPFeatureExtractor, -) -from diffusers.pipelines.stable_diffusion.safety_checker import ( - StableDiffusionSafetyChecker, - ) -from ..stable_diffusion import ( - StableDiffusionGeneratorPipeline, -) -from ..util import CUDA_DEVICE, ask_user, download_with_resume +from ..util import CUDA_DEVICE +# wanted to use pydantic here, but Generator objects not supported +@dataclass +class SDModelInfo(): + context: Generator[ModelClass, None, None] + name: str + hash: str + location: Union[Path,str] + precision: torch.dtype + subfolder: Path = None + revision: str = None + _cache: ModelCache = None + + + def status(self)->ModelStatus: + '''Return load status of this model as a model_cache.ModelStatus enum''' + if not self._cache: + return ModelStatus.unknown + return self._cache.status( + self.location, + revision = self.revision, + subfolder = self.subfolder + ) + +class InvalidModelError(Exception): + "Raised when an invalid model is requested" + pass class SDLegacyType(Enum): V1 = auto() @@ -60,54 +92,39 @@ class SDLegacyType(Enum): V2_v = auto() UNKNOWN = auto() -class SDModelComponent(Enum): - vae="vae" - text_encoder="text_encoder" - tokenizer="tokenizer" - unet="unet" - scheduler="scheduler" - safety_checker="safety_checker" - feature_extractor="feature_extractor" - DEFAULT_MAX_MODELS = 2 class ModelManager(object): """ - Model manager handles loading, caching, importing, deleting, converting, and editing models. + High-level interface to model management. """ logger: types.ModuleType = logger def __init__( - self, - config: OmegaConf | Path, - device_type: torch.device = CUDA_DEVICE, - precision: str = "float16", - max_loaded_models=DEFAULT_MAX_MODELS, - sequential_offload=False, - embedding_path: Path = None, - logger: types.ModuleType = logger, + self, + config_path: Path, + device_type: torch.device = CUDA_DEVICE, + precision: torch.dtype = torch.float16, + max_models=DEFAULT_MAX_MODELS, + sequential_offload=False, + logger: types.ModuleType = logger, ): """ - Initialize with the path to the models.yaml config file or - an initialized OmegaConf dictionary. Optional parameters - are the torch device type, precision, max_loaded_models, + Initialize with the path to the models.yaml config file. + Optional parameters are the torch device type, precision, max_models, and sequential_offload boolean. Note that the default device type and precision are set up for a CUDA system running at half precision. """ - # prevent nasty-looking CLIP log message - transformers.logging.set_verbosity_error() - if not isinstance(config, DictConfig): - config = OmegaConf.load(config) - self.config = config - self.precision = precision - self.device = torch.device(device_type) - self.max_loaded_models = max_loaded_models - self.models = {} - self.stack = [] # this is an LRU FIFO - self.current_model = None - self.sequential_offload = sequential_offload - self.embedding_path = embedding_path + self.config_path = config_path + self.config = OmegaConf.load(self.config_path) + self.cache = ModelCache( + max_models=max_models, + execution_device = device_type, + precision = precision, + sequential_offload = sequential_offload, + logger = logger, + ) self.logger = logger def valid_model(self, model_name: str) -> bool: @@ -117,138 +134,69 @@ class ModelManager(object): """ return model_name in self.config - def get_model(self, model_name: str = None) -> dict: - """Given a model named identified in models.yaml, return a dict - containing the model object and some of its key features. If - in RAM will load into GPU VRAM. If on disk, will load from - there. - The dict has the following keys: - 'model': The StableDiffusionGeneratorPipeline object - 'model_name': The name of the model in models.yaml - 'width': The width of images trained by this model - 'height': The height of images trained by this model - 'hash': A unique hash of this model's files on disk. + def get_model(self, + model_name: str = None, + submodel: SDModelType=None, + ) -> SDModelInfo: + """Given a model named identified in models.yaml, return + an SDModelInfo object describing it. + :param model_name: symbolic name of the model in models.yaml + :param submodel: an SDModelType enum indicating the portion of + the model to retrieve (e.g. SDModelType.vae) """ if not model_name: - return ( - self.get_model(self.current_model) - if self.current_model - else self.get_model(self.default_model()) - ) + model_name = self.default_model() if not self.valid_model(model_name): - self.logger.error( + raise InvalidModelError( f'"{model_name}" is not a known model name. Please check your models.yaml file' ) - return self.current_model - if self.current_model != model_name: - if model_name not in self.models: # make room for a new one - self._make_cache_room() - self.offload_model(self.current_model) - - if model_name in self.models: - requested_model = self.models[model_name]["model"] - self.logger.info(f"Retrieving model {model_name} from system RAM cache") - requested_model.ready() - width = self.models[model_name]["width"] - height = self.models[model_name]["height"] - hash = self.models[model_name]["hash"] - - else: # we're about to load a new model, so potentially offload the least recently used one - requested_model, width, height, hash = self._load_model(model_name) - self.models[model_name] = { - "model_name": model_name, - "model": requested_model, - "width": width, - "height": height, - "hash": hash, - } - - self.current_model = model_name - self._push_newest_model(model_name) - return { - "model_name": model_name, - "model": requested_model, - "width": width, - "height": height, - "hash": hash, - } - - def get_model_vae(self, model_name: str=None)->AutoencoderKL: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned VAE as an - AutoencoderKL object. If no model name is provided, return the - vae from the model currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.vae) - - def get_model_tokenizer(self, model_name: str=None)->CLIPTokenizer: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned CLIPTokenizer. If no - model name is provided, return the tokenizer from the model - currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.tokenizer) - - def get_model_unet(self, model_name: str=None)->UNet2DConditionModel: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned UNet2DConditionModel. If no model - name is provided, return the UNet from the model - currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.unet) - - def get_model_text_encoder(self, model_name: str=None)->CLIPTextModel: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned CLIPTextModel. If no - model name is provided, return the text encoder from the model - currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.text_encoder) - - def get_model_feature_extractor(self, model_name: str=None)->CLIPFeatureExtractor: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned CLIPFeatureExtractor. If no - model name is provided, return the text encoder from the model - currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.feature_extractor) - - def get_model_scheduler(self, model_name: str=None)->SchedulerMixin: - """Given a model name identified in models.yaml, load the model into - GPU if necessary and return its assigned scheduler. If no - model name is provided, return the text encoder from the model - currently in the GPU. - """ - return self._get_sub_model(model_name, SDModelComponent.scheduler) - - def _get_sub_model( - self, - model_name: str=None, - model_part: SDModelComponent=SDModelComponent.vae, - ) -> Union[ - AutoencoderKL, - CLIPTokenizer, - CLIPFeatureExtractor, - UNet2DConditionModel, - CLIPTextModel, - StableDiffusionSafetyChecker, - ]: - """Given a model name identified in models.yaml, and the part of the - model you wish to retrieve, return that part. Parts are in an Enum - class named SDModelComponent, and consist of: - SDModelComponent.vae - SDModelComponent.text_encoder - SDModelComponent.tokenizer - SDModelComponent.unet - SDModelComponent.scheduler - SDModelComponent.safety_checker - SDModelComponent.feature_extractor - """ - model_dict = self.get_model(model_name) - model = model_dict["model"] - return getattr(model, model_part.value) + # get the required loading info out of the config file + mconfig = self.config[model_name] + format = mconfig.get('format','diffusers') + legacy = None + if format=='ckpt': + location = global_resolve_path(mconfig.weights) + legacy = LegacyInfo( + config_file = global_resolve_path(mconfig.config), + ) + if mconfig.get('vae'): + legacy.vae_file = global_resolve_path(mconfig.vae) + elif format=='diffusers': + location = mconfig.repo_id + revision = mconfig.get('revision') + else: + raise InvalidModelError( + f'"{model_name}" has an unknown format {format}' + ) + + subfolder = mconfig.get('subfolder') + hash = self.cache.model_hash(location,revision) + vae = (None,None) + try: + vae_id = mconfig.vae.repo_id + vae = (SDModelType.vae,vae_id) + except Exception: + pass + model_context = self.cache.get_model( + location, + revision = revision, + subfolder = subfolder, + legacy_info = legacy, + submodel = submodel, + attach_model_part=vae, + ) + return SDModelInfo( + context = model_context, + name = model_name, + hash = hash, + location = location, + revision = revision, + precision = self.cache.precision, + subfolder = subfolder, + _cache = self.cache + ) def default_model(self) -> str | None: """ @@ -324,19 +272,19 @@ class ModelManager(object): format = stanza.get("format", "ckpt") # Determine Format # Common Attribs + status = self.cache.status( + stanza.get('weights') or stanza.get('repo_id'), + revision=stanza.get('revision'), + subfolder=stanza.get('subfolder') + ) description = stanza.get("description", None) - if self.current_model == name: - status = "active" - elif name in self.models: - status = "cached" - else: - status = "not loaded" models[name].update( description=description, format=format, - status=status, + status=status.value ) + # Checkpoint Config Parse if format == "ckpt": models[name].update( @@ -373,7 +321,7 @@ class ModelManager(object): for name in models: if models[name]["format"] == "vae": continue - line = f'{name:25s} {models[name]["status"]:>10s} {models[name]["format"]:10s} {models[name]["description"]}' + line = f'{name:25s} {models[name]["status"]:>15s} {models[name]["format"]:10s} {models[name]["description"]}' if models[name]["status"] == "active": line = f"\033[1m{line}\033[0m" print(line) @@ -441,233 +389,6 @@ class ModelManager(object): if clobber: self._invalidate_cached_model(model_name) - def _load_model(self, model_name: str): - """Load and initialize the model from configuration variables passed at object creation time""" - if model_name not in self.config: - self.logger.error( - f'"{model_name}" is not a known model name. Please check your models.yaml file' - ) - return - - mconfig = self.config[model_name] - - # for usage statistics - if self._has_cuda(): - torch.cuda.reset_peak_memory_stats() - torch.cuda.empty_cache() - - tic = time.time() - - # this does the work - model_format = mconfig.get("format", "ckpt") - if model_format == "ckpt": - weights = mconfig.weights - self.logger.info(f"Loading {model_name} from {weights}") - model, width, height, model_hash = self._load_ckpt_model( - model_name, mconfig - ) - elif model_format == "diffusers": - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - model, width, height, model_hash = self._load_diffusers_model(mconfig) - else: - raise NotImplementedError( - f"Unknown model format {model_name}: {model_format}" - ) - self._add_embeddings_to_model(model) - - # usage statistics - toc = time.time() - self.logger.info("Model loaded in " + "%4.2fs" % (toc - tic)) - if self._has_cuda(): - self.logger.info( - "Max VRAM used to load the model: "+ - "%4.2fG" % (torch.cuda.max_memory_allocated() / 1e9) - ) - self.logger.info( - "Current VRAM usage: "+ - "%4.2fG" % (torch.cuda.memory_allocated() / 1e9) - ) - return model, width, height, model_hash - - def _load_diffusers_model(self, mconfig): - name_or_path = self.model_name_or_path(mconfig) - using_fp16 = self.precision == "float16" - - self.logger.info(f"Loading diffusers model from {name_or_path}") - if using_fp16: - self.logger.debug("Using faster float16 precision") - else: - self.logger.debug("Using more accurate float32 precision") - - # TODO: scan weights maybe? - pipeline_args: dict[str, Any] = dict( - safety_checker=None, local_files_only=not Globals.internet_available - ) - if "vae" in mconfig and mconfig["vae"] is not None: - if vae := self._load_vae(mconfig["vae"]): - pipeline_args.update(vae=vae) - if not isinstance(name_or_path, Path): - pipeline_args.update(cache_dir=global_cache_dir("hub")) - if using_fp16: - pipeline_args.update(torch_dtype=torch.float16) - fp_args_list = [{"revision": "fp16"}, {}] - else: - fp_args_list = [{}] - - verbosity = dlogging.get_verbosity() - dlogging.set_verbosity_error() - - pipeline = None - for fp_args in fp_args_list: - try: - pipeline = StableDiffusionGeneratorPipeline.from_pretrained( - name_or_path, - **pipeline_args, - **fp_args, - ) - except OSError as e: - if str(e).startswith("fp16 is not a valid"): - pass - else: - self.logger.error( - f"An unexpected error occurred while downloading the model: {e})" - ) - if pipeline: - break - - dlogging.set_verbosity(verbosity) - assert pipeline is not None, OSError(f'"{name_or_path}" could not be loaded') - - if self.sequential_offload: - pipeline.enable_offload_submodels(self.device) - else: - pipeline.to(self.device) - - model_hash = self._diffuser_sha256(name_or_path) - - # square images??? - width = pipeline.unet.config.sample_size * pipeline.vae_scale_factor - height = width - self.logger.debug(f"Default image dimensions = {width} x {height}") - - return pipeline, width, height, model_hash - - def _load_ckpt_model(self, model_name, mconfig): - config = mconfig.config - weights = mconfig.weights - vae = mconfig.get("vae") - width = mconfig.width - height = mconfig.height - - if not os.path.isabs(config): - config = os.path.join(Globals.root, config) - if not os.path.isabs(weights): - weights = os.path.normpath(os.path.join(Globals.root, weights)) - - # Convert to diffusers and return a diffusers pipeline - self.logger.info(f"Converting legacy checkpoint {model_name} into a diffusers model...") - - from . import load_pipeline_from_original_stable_diffusion_ckpt - - try: - if self.list_models()[self.current_model]["status"] == "active": - self.offload_model(self.current_model) - except Exception: - pass - - vae_path = None - if vae: - vae_path = ( - vae - if os.path.isabs(vae) - else os.path.normpath(os.path.join(Globals.root, vae)) - ) - if self._has_cuda(): - torch.cuda.empty_cache() - pipeline = load_pipeline_from_original_stable_diffusion_ckpt( - checkpoint_path=weights, - original_config_file=config, - vae_path=vae_path, - return_generator_pipeline=True, - precision=torch.float16 if self.precision == "float16" else torch.float32, - ) - if self.sequential_offload: - pipeline.enable_offload_submodels(self.device) - else: - pipeline.to(self.device) - return ( - pipeline, - width, - height, - "NOHASH", - ) - - def model_name_or_path(self, model_name: Union[str, DictConfig]) -> str | Path: - if isinstance(model_name, DictConfig) or isinstance(model_name, dict): - mconfig = model_name - elif model_name in self.config: - mconfig = self.config[model_name] - else: - raise ValueError( - f'"{model_name}" is not a known model name. Please check your models.yaml file' - ) - - if "path" in mconfig and mconfig["path"] is not None: - path = Path(mconfig["path"]) - if not path.is_absolute(): - path = Path(Globals.root, path).resolve() - return path - elif "repo_id" in mconfig: - return mconfig["repo_id"] - else: - raise ValueError("Model config must specify either repo_id or path.") - - def offload_model(self, model_name: str) -> None: - """ - Offload the indicated model to CPU. Will call - _make_cache_room() to free space if needed. - """ - if model_name not in self.models: - return - - self.logger.info(f"Offloading {model_name} to CPU") - model = self.models[model_name]["model"] - model.offload_all() - self.current_model = None - - gc.collect() - if self._has_cuda(): - torch.cuda.empty_cache() - - @classmethod - def scan_model(self, model_name, checkpoint): - """ - Apply picklescanner to the indicated checkpoint and issue a warning - and option to exit if an infected file is identified. - """ - # scan model - self.logger.debug(f"Scanning Model: {model_name}") - scan_result = scan_file_path(checkpoint) - if scan_result.infected_files != 0: - if scan_result.infected_files == 1: - self.logger.critical(f"Issues Found In Model: {scan_result.issues_count}") - self.logger.critical("The model you are trying to load seems to be infected.") - self.logger.critical("For your safety, InvokeAI will not load this model.") - self.logger.critical("Please use checkpoints from trusted sources.") - self.logger.critical("Exiting InvokeAI") - sys.exit() - else: - self.logger.warning("InvokeAI was unable to scan the model you are using.") - model_safe_check_fail = ask_user( - "Do you want to to continue loading the model?", ["y", "n"] - ) - if model_safe_check_fail.lower() != "y": - self.logger.critical("Exiting InvokeAI") - sys.exit() - else: - self.logger.debug("Model scanned ok") - def import_diffuser_model( self, repo_or_path: Union[str, Path], @@ -949,8 +670,6 @@ class ModelManager(object): new_config = None - from . import convert_ckpt_to_diffusers - if diffusers_path.exists(): self.logger.error( f"The path {str(diffusers_path)} already exists. Please move or remove it and try again." @@ -960,6 +679,10 @@ class ModelManager(object): model_name = model_name or diffusers_path.name model_description = model_description or f"Converted version of {model_name}" self.logger.debug(f"Converting {model_name} to diffusers (30-60s)") + + # to avoid circular import errors + from .convert_ckpt_to_diffusers import convert_ckpt_to_diffusers + try: # By passing the specified VAE to the conversion function, the autoencoder # will be built into the model rather than tacked on afterward via the config file @@ -1020,33 +743,12 @@ class ModelManager(object): return search_folder, found_models - def _make_cache_room(self) -> None: - num_loaded_models = len(self.models) - if num_loaded_models >= self.max_loaded_models: - least_recent_model = self._pop_oldest_model() - self.logger.info( - f"Cache limit (max={self.max_loaded_models}) reached. Purging {least_recent_model}" - ) - if least_recent_model is not None: - del self.models[least_recent_model] - gc.collect() - - def print_vram_usage(self) -> None: - if self._has_cuda: - self.logger.info( - "Current VRAM usage:"+ - "%4.2fG" % (torch.cuda.memory_allocated() / 1e9), - ) - - def commit(self, config_file_path: str) -> None: + def commit(self) -> None: """ Write current configuration out to the indicated file. """ yaml_str = OmegaConf.to_yaml(self.config) - if not os.path.isabs(config_file_path): - config_file_path = os.path.normpath( - os.path.join(Globals.root, config_file_path) - ) + config_file_path = self.config_path tmpfile = os.path.join(os.path.dirname(config_file_path), "new_config.tmp") with open(tmpfile, "w", encoding="utf-8") as outfile: outfile.write(self.preamble()) @@ -1069,240 +771,6 @@ class ModelManager(object): """ ) - @classmethod - def migrate_models(cls): - """ - Migrate the ~/invokeai/models directory from the legacy format used through 2.2.5 - to the 2.3.0 "diffusers" version. This should be a one-time operation, called at - script startup time. - """ - # Three transformer models to check: bert, clip and safety checker, and - # the diffusers as well - models_dir = Path(Globals.root, "models") - legacy_locations = [ - Path( - models_dir, - "CompVis/stable-diffusion-safety-checker/models--CompVis--stable-diffusion-safety-checker", - ), - Path(models_dir, "bert-base-uncased/models--bert-base-uncased"), - Path( - models_dir, - "openai/clip-vit-large-patch14/models--openai--clip-vit-large-patch14", - ), - ] - legacy_locations.extend(list(global_cache_dir("diffusers").glob("*"))) - - legacy_layout = False - for model in legacy_locations: - legacy_layout = legacy_layout or model.exists() - if not legacy_layout: - return - - print( - """ ->> ALERT: ->> The location of your previously-installed diffusers models needs to move from ->> invokeai/models/diffusers to invokeai/models/hub due to a change introduced by ->> diffusers version 0.14. InvokeAI will now move all models from the "diffusers" directory ->> into "hub" and then remove the diffusers directory. This is a quick, safe, one-time ->> operation.""" - ) - - # transformer files get moved into the hub directory - if cls._is_huggingface_hub_directory_present(): - hub = global_cache_dir("hub") - else: - hub = models_dir / "hub" - - os.makedirs(hub, exist_ok=True) - for model in legacy_locations: - source = models_dir / model - dest = hub / model.stem - if dest.exists() and not source.exists(): - continue - cls.logger.info(f"{source} => {dest}") - if source.exists(): - if dest.is_symlink(): - logger.warning(f"Found symlink at {dest.name}. Not migrating.") - elif dest.exists(): - if source.is_dir(): - rmtree(source) - else: - source.unlink() - else: - move(source, dest) - - # now clean up by removing any empty directories - empty = [ - root - for root, dirs, files, in os.walk(models_dir) - if not len(dirs) and not len(files) - ] - for d in empty: - os.rmdir(d) - cls.logger.info("Migration is done. Continuing...") - - def _resolve_path( - self, source: Union[str, Path], dest_directory: str - ) -> Optional[Path]: - resolved_path = None - if str(source).startswith(("http:", "https:", "ftp:")): - dest_directory = Path(dest_directory) - if not dest_directory.is_absolute(): - dest_directory = Globals.root / dest_directory - dest_directory.mkdir(parents=True, exist_ok=True) - resolved_path = download_with_resume(str(source), dest_directory) - else: - if not os.path.isabs(source): - source = os.path.join(Globals.root, source) - resolved_path = Path(source) - return resolved_path - - def _invalidate_cached_model(self, model_name: str) -> None: - self.offload_model(model_name) - if model_name in self.stack: - self.stack.remove(model_name) - self.models.pop(model_name, None) - - def _pop_oldest_model(self): - """ - Remove the first element of the FIFO, which ought - to be the least recently accessed model. Do not - pop the last one, because it is in active use! - """ - return self.stack.pop(0) - - def _push_newest_model(self, model_name: str) -> None: - """ - Maintain a simple FIFO. First element is always the - least recent, and last element is always the most recent. - """ - with contextlib.suppress(ValueError): - self.stack.remove(model_name) - self.stack.append(model_name) - - def _add_embeddings_to_model(self, model: StableDiffusionGeneratorPipeline): - if self.embedding_path is not None: - self.logger.info(f"Loading embeddings from {self.embedding_path}") - for root, _, files in os.walk(self.embedding_path): - for name in files: - ti_path = os.path.join(root, name) - model.textual_inversion_manager.load_textual_inversion( - ti_path, defer_injecting_tokens=True - ) - self.logger.info( - f'Textual inversion triggers: {", ".join(sorted(model.textual_inversion_manager.get_all_trigger_strings()))}' - ) - - def _has_cuda(self) -> bool: - return self.device.type == "cuda" - - def _diffuser_sha256( - self, name_or_path: Union[str, Path], chunksize=16777216 - ) -> Union[str, bytes]: - path = None - if isinstance(name_or_path, Path): - path = name_or_path - else: - owner, repo = name_or_path.split("/") - path = Path(global_cache_dir("hub") / f"models--{owner}--{repo}") - if not path.exists(): - return None - hashpath = path / "checksum.sha256" - if hashpath.exists() and path.stat().st_mtime <= hashpath.stat().st_mtime: - with open(hashpath) as f: - hash = f.read() - return hash - self.logger.debug("Calculating sha256 hash of model files") - tic = time.time() - sha = hashlib.sha256() - count = 0 - for root, dirs, files in os.walk(path, followlinks=False): - for name in files: - count += 1 - with open(os.path.join(root, name), "rb") as f: - while chunk := f.read(chunksize): - sha.update(chunk) - hash = sha.hexdigest() - toc = time.time() - self.logger.debug(f"sha256 = {hash} ({count} files hashed in", "%4.2fs)" % (toc - tic)) - with open(hashpath, "w") as f: - f.write(hash) - return hash - - def _cached_sha256(self, path, data) -> Union[str, bytes]: - dirname = os.path.dirname(path) - basename = os.path.basename(path) - base, _ = os.path.splitext(basename) - hashpath = os.path.join(dirname, base + ".sha256") - - if os.path.exists(hashpath) and os.path.getmtime(path) <= os.path.getmtime( - hashpath - ): - with open(hashpath) as f: - hash = f.read() - return hash - - self.logger.debug("Calculating sha256 hash of weights file") - tic = time.time() - sha = hashlib.sha256() - sha.update(data) - hash = sha.hexdigest() - toc = time.time() - self.logger.debug(f"sha256 = {hash} "+"(%4.2fs)" % (toc - tic)) - - with open(hashpath, "w") as f: - f.write(hash) - return hash - - def _load_vae(self, vae_config) -> AutoencoderKL: - vae_args = {} - try: - name_or_path = self.model_name_or_path(vae_config) - except Exception: - return None - if name_or_path is None: - return None - using_fp16 = self.precision == "float16" - - vae_args.update( - cache_dir=global_cache_dir("hub"), - local_files_only=not Globals.internet_available, - ) - - self.logger.debug(f"Loading diffusers VAE from {name_or_path}") - if using_fp16: - vae_args.update(torch_dtype=torch.float16) - fp_args_list = [{"revision": "fp16"}, {}] - else: - self.logger.debug("Using more accurate float32 precision") - fp_args_list = [{}] - - vae = None - deferred_error = None - - # A VAE may be in a subfolder of a model's repository. - if "subfolder" in vae_config: - vae_args["subfolder"] = vae_config["subfolder"] - - for fp_args in fp_args_list: - # At some point we might need to be able to use different classes here? But for now I think - # all Stable Diffusion VAE are AutoencoderKL. - try: - vae = AutoencoderKL.from_pretrained(name_or_path, **vae_args, **fp_args) - except OSError as e: - if str(e).startswith("fp16 is not a valid"): - pass - else: - deferred_error = e - if vae: - break - - if not vae and deferred_error: - self.logger.warning(f"Could not load VAE {name_or_path}: {str(deferred_error)}") - - return vae - @classmethod def _delete_model_from_cache(cls,repo_id): cache_info = scan_cache_dir(global_cache_dir("hub")) @@ -1326,8 +794,3 @@ class ModelManager(object): return path return Path(Globals.root, path).resolve() - @staticmethod - def _is_huggingface_hub_directory_present() -> bool: - return ( - os.getenv("HF_HOME") is not None or os.getenv("XDG_CACHE_HOME") is not None - ) From e0214a32bc7102d2e710fdf7d3b60763ee8eceb2 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 6 May 2023 00:44:12 -0400 Subject: [PATCH 008/225] mostly ported to new manager API; needs testing --- invokeai/app/invocations/latent.py | 93 ++--- invokeai/app/invocations/util/choose_model.py | 4 +- .../app/services/model_manager_initializer.py | 17 +- invokeai/backend/__init__.py | 2 +- invokeai/backend/generate.py | 375 +++++++++--------- invokeai/backend/generator/base.py | 81 ++-- invokeai/backend/model_management/__init__.py | 2 +- .../backend/model_management/model_cache.py | 79 ++-- .../backend/model_management/model_manager.py | 8 +- invokeai/backend/prompting/conditioning.py | 1 + invokeai/backend/web/invoke_ai_web_server.py | 14 +- invokeai/frontend/CLI/CLI.py | 9 +- 12 files changed, 353 insertions(+), 332 deletions(-) diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index c6ea8a686a..84af41b1c9 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -180,31 +180,33 @@ class TextToLatentsInvocation(BaseInvocation): def get_model(self, model_manager: ModelManager) -> StableDiffusionGeneratorPipeline: model_info = choose_model(model_manager, self.model) - model_name = model_info['model_name'] - model_hash = model_info['hash'] - model: StableDiffusionGeneratorPipeline = model_info['model'] - model.scheduler = get_scheduler( - model=model, - scheduler_name=self.scheduler - ) + model_name = model_info.name + model_hash = model_info.hash + model_ctx: StableDiffusionGeneratorPipeline = model_info.context + with model_ctx as model: + model.scheduler = get_scheduler( + model=model, + scheduler_name=self.scheduler + ) - if isinstance(model, DiffusionPipeline): - for component in [model.unet, model.vae]: - configure_model_padding(component, + if isinstance(model, DiffusionPipeline): + for component in [model.unet, model.vae]: + configure_model_padding(component, + self.seamless, + self.seamless_axes + ) + else: + configure_model_padding(model, self.seamless, self.seamless_axes ) - else: - configure_model_padding(model, - self.seamless, - self.seamless_axes - ) - return model + return model_ctx def get_conditioning_data(self, model: StableDiffusionGeneratorPipeline) -> ConditioningData: uc, c, extra_conditioning_info = get_uc_and_c_and_ec(self.prompt, model=model) + print(f'DEBUG: uc.dtype={uc.dtype}, c.dtype={c.dtype}') conditioning_data = ConditioningData( uc, c, @@ -230,18 +232,17 @@ class TextToLatentsInvocation(BaseInvocation): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - model = self.get_model(context.services.model_manager) - conditioning_data = self.get_conditioning_data(model) + with self.get_model(context.services.model_manager) as model: + conditioning_data = self.get_conditioning_data(model) - # TODO: Verify the noise is the right size - - result_latents, result_attention_map_saver = model.latents_from_embeddings( - latents=torch.zeros_like(noise, dtype=torch_dtype(model.device)), - noise=noise, - num_inference_steps=self.steps, - conditioning_data=conditioning_data, - callback=step_callback - ) + # TODO: Verify the noise is the right size + result_latents, result_attention_map_saver = model.latents_from_embeddings( + latents=torch.zeros_like(noise, dtype=torch_dtype(model.device)), + noise=noise, + num_inference_steps=self.steps, + conditioning_data=conditioning_data, + callback=step_callback + ) # https://discuss.huggingface.co/t/memory-usage-by-later-pipeline-stages/23699 torch.cuda.empty_cache() @@ -284,29 +285,29 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - model = self.get_model(context.services.model_manager) - conditioning_data = self.get_conditioning_data(model) + with self.get_model(context.services.model_manager) as model: + conditioning_data = self.get_conditioning_data(model) - # TODO: Verify the noise is the right size + # TODO: Verify the noise is the right size - initial_latents = latent if self.strength < 1.0 else torch.zeros_like( - latent, device=model.device, dtype=latent.dtype - ) + initial_latents = latent if self.strength < 1.0 else torch.zeros_like( + latent, device=model.device, dtype=latent.dtype + ) - timesteps, _ = model.get_img2img_timesteps( - self.steps, - self.strength, - device=model.device, - ) + timesteps, _ = model.get_img2img_timesteps( + self.steps, + self.strength, + device=model.device, + ) - result_latents, result_attention_map_saver = model.latents_from_embeddings( - latents=initial_latents, - timesteps=timesteps, - noise=noise, - num_inference_steps=self.steps, - conditioning_data=conditioning_data, - callback=step_callback - ) + result_latents, result_attention_map_saver = model.latents_from_embeddings( + latents=initial_latents, + timesteps=timesteps, + noise=noise, + num_inference_steps=self.steps, + conditioning_data=conditioning_data, + callback=step_callback + ) # https://discuss.huggingface.co/t/memory-usage-by-later-pipeline-stages/23699 torch.cuda.empty_cache() diff --git a/invokeai/app/invocations/util/choose_model.py b/invokeai/app/invocations/util/choose_model.py index cd03ce87a8..0e888d7f43 100644 --- a/invokeai/app/invocations/util/choose_model.py +++ b/invokeai/app/invocations/util/choose_model.py @@ -7,7 +7,7 @@ def choose_model(model_manager: ModelManager, model_name: str): if model_manager.valid_model(model_name): model = model_manager.get_model(model_name) else: - model = model_manager.get_model() - logger.warning(f"{model_name}' is not a valid model name. Using default model \'{model['model_name']}\' instead.") + model = model_manager.get_model(model_manager.default_model()) + logger.warning(f"'{model_name}' is not a valid model name. Using default model \'{model.name}\' instead.") return model diff --git a/invokeai/app/services/model_manager_initializer.py b/invokeai/app/services/model_manager_initializer.py index 2b1aac1f36..c7924e797d 100644 --- a/invokeai/app/services/model_manager_initializer.py +++ b/invokeai/app/services/model_manager_initializer.py @@ -47,22 +47,21 @@ def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManager: else: embedding_path = None - # migrate legacy models - ModelManager.migrate_models() - # creating the model manager try: device = torch.device(choose_torch_device()) - precision = 'float16' if config.precision=='float16' \ - else 'float32' if config.precision=='float32' \ - else choose_precision(device) + if config.precision=="auto": + precision = choose_precision(device) + dtype = torch.float32 if precision=='float32' \ + else torch.float16 model_manager = ModelManager( - OmegaConf.load(config.conf), - precision=precision, + config.conf, + precision=dtype, device_type=device, max_loaded_models=config.max_loaded_models, - embedding_path = Path(embedding_path), +# temporarily disabled until model manager stabilizes +# embedding_path = Path(embedding_path), logger = logger, ) except (FileNotFoundError, TypeError, AssertionError) as e: diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index 06066dd6b1..dc2eeca67a 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -10,7 +10,7 @@ from .generator import ( Img2Img, Inpaint ) -from .model_management import ModelManager +from .model_management import ModelManager, ModelCache, ModelStatus, SDModelType from .safety_checker import SafetyChecker from .args import Args from .globals import Globals diff --git a/invokeai/backend/generate.py b/invokeai/backend/generate.py index 4f3df60f1c..c7e2558db1 100644 --- a/invokeai/backend/generate.py +++ b/invokeai/backend/generate.py @@ -37,7 +37,7 @@ from .safety_checker import SafetyChecker from .prompting import get_uc_and_c_and_ec from .prompting.conditioning import log_tokenization from .stable_diffusion import HuggingFaceConceptsLibrary -from .util import choose_precision, choose_torch_device +from .util import choose_precision, choose_torch_device, torch_dtype def fix_func(orig): if hasattr(torch.backends, "mps") and torch.backends.mps.is_available(): @@ -50,7 +50,6 @@ def fix_func(orig): return new_func return orig - torch.rand = fix_func(torch.rand) torch.rand_like = fix_func(torch.rand_like) torch.randn = fix_func(torch.randn) @@ -156,7 +155,6 @@ class Generate: weights=None, config=None, ): - mconfig = OmegaConf.load(conf) self.height = None self.width = None self.model_manager = None @@ -171,7 +169,7 @@ class Generate: self.seamless_axes = {"x", "y"} self.hires_fix = False self.embedding_path = embedding_path - self.model = None # empty for now + self.model_context = None # empty for now self.model_hash = None self.sampler = None self.device = None @@ -219,12 +217,12 @@ class Generate: # model caching system for fast switching self.model_manager = ModelManager( - mconfig, + conf, self.device, - self.precision, + torch_dtype(self.device), max_loaded_models=max_loaded_models, sequential_offload=self.free_gpu_mem, - embedding_path=Path(self.embedding_path), +# embedding_path=Path(self.embedding_path), ) # don't accept invalid models fallback = self.model_manager.default_model() or FALLBACK_MODEL_NAME @@ -418,170 +416,171 @@ class Generate: with_variations = [] if with_variations is None else with_variations # will instantiate the model or return it from cache - model = self.set_model(self.model_name) + model_context = self.set_model(self.model_name) # self.width and self.height are set by set_model() # to the width and height of the image training set width = width or self.width height = height or self.height - if isinstance(model, DiffusionPipeline): - configure_model_padding(model.unet, seamless, seamless_axes) - configure_model_padding(model.vae, seamless, seamless_axes) - else: - configure_model_padding(model, seamless, seamless_axes) - - assert cfg_scale > 1.0, "CFG_Scale (-C) must be >1.0" - assert threshold >= 0.0, "--threshold must be >=0.0" - assert ( - 0.0 < strength <= 1.0 - ), "img2img and inpaint strength can only work with 0.0 < strength < 1.0" - assert ( - 0.0 <= variation_amount <= 1.0 - ), "-v --variation_amount must be in [0.0, 1.0]" - assert 0.0 <= perlin <= 1.0, "--perlin must be in [0.0, 1.0]" - assert (embiggen == None and embiggen_tiles == None) or ( - (embiggen != None or embiggen_tiles != None) and init_img != None - ), "Embiggen requires an init/input image to be specified" - - if len(with_variations) > 0 or variation_amount > 1.0: - assert seed is not None, "seed must be specified when using with_variations" - if variation_amount == 0.0: - assert ( - iterations == 1 - ), "when using --with_variations, multiple iterations are only possible when using --variation_amount" - assert all( - 0 <= weight <= 1 for _, weight in with_variations - ), f"variation weights must be in [0.0, 1.0]: got {[weight for _, weight in with_variations]}" - - width, height, _ = self._resolution_check(width, height, log=True) - assert ( - inpaint_replace >= 0.0 and inpaint_replace <= 1.0 - ), "inpaint_replace must be between 0.0 and 1.0" - - if sampler_name and (sampler_name != self.sampler_name): - self.sampler_name = sampler_name - self._set_scheduler() - - # apply the concepts library to the prompt - prompt = self.huggingface_concepts_library.replace_concepts_with_triggers( - prompt, - lambda concepts: self.load_huggingface_concepts(concepts), - self.model.textual_inversion_manager.get_all_trigger_strings(), - ) - - tic = time.time() - if self._has_cuda(): - torch.cuda.reset_peak_memory_stats() - - results = list() - - try: - uc, c, extra_conditioning_info = get_uc_and_c_and_ec( - prompt, - model=self.model, - skip_normalize_legacy_blend=skip_normalize, - log_tokens=self.log_tokenization, - ) - - init_image, mask_image = self._make_images( - init_img, - init_mask, - width, - height, - fit=fit, - text_mask=text_mask, - invert_mask=invert_mask, - force_outpaint=force_outpaint, - ) - - # TODO: Hacky selection of operation to perform. Needs to be refactored. - generator = self.select_generator( - init_image, mask_image, embiggen, hires_fix, force_outpaint - ) - - generator.set_variation(self.seed, variation_amount, with_variations) - generator.use_mps_noise = use_mps_noise - - results = generator.generate( - prompt, - iterations=iterations, - seed=self.seed, - sampler=self.sampler, - steps=steps, - cfg_scale=cfg_scale, - conditioning=(uc, c, extra_conditioning_info), - ddim_eta=ddim_eta, - image_callback=image_callback, # called after the final image is generated - step_callback=step_callback, # called after each intermediate image is generated - width=width, - height=height, - init_img=init_img, # embiggen needs to manipulate from the unmodified init_img - init_image=init_image, # notice that init_image is different from init_img - mask_image=mask_image, - strength=strength, - threshold=threshold, - perlin=perlin, - h_symmetry_time_pct=h_symmetry_time_pct, - v_symmetry_time_pct=v_symmetry_time_pct, - embiggen=embiggen, - embiggen_tiles=embiggen_tiles, - embiggen_strength=embiggen_strength, - inpaint_replace=inpaint_replace, - mask_blur_radius=mask_blur_radius, - safety_checker=self.safety_checker, - seam_size=seam_size, - seam_blur=seam_blur, - seam_strength=seam_strength, - seam_steps=seam_steps, - tile_size=tile_size, - infill_method=infill_method, - force_outpaint=force_outpaint, - inpaint_height=inpaint_height, - inpaint_width=inpaint_width, - enable_image_debugging=enable_image_debugging, - free_gpu_mem=self.free_gpu_mem, - clear_cuda_cache=self.clear_cuda_cache, - ) - - if init_color: - self.correct_colors( - image_list=results, - reference_image_path=init_color, - image_callback=image_callback, - ) - - if upscale is not None or facetool_strength > 0: - self.upscale_and_reconstruct( - results, - upscale=upscale, - upscale_denoise_str=upscale_denoise_str, - facetool=facetool, - strength=facetool_strength, - codeformer_fidelity=codeformer_fidelity, - save_original=save_original, - image_callback=image_callback, - ) - - except KeyboardInterrupt: - # Clear the CUDA cache on an exception - self.clear_cuda_cache() - - if catch_interrupts: - logger.warning("Interrupted** Partial results will be returned.") + with model_context as model: + if isinstance(model, DiffusionPipeline): + configure_model_padding(model.unet, seamless, seamless_axes) + configure_model_padding(model.vae, seamless, seamless_axes) else: - raise KeyboardInterrupt - except RuntimeError: - # Clear the CUDA cache on an exception - self.clear_cuda_cache() + configure_model_padding(model, seamless, seamless_axes) - print(traceback.format_exc(), file=sys.stderr) - logger.info("Could not generate image.") + assert cfg_scale > 1.0, "CFG_Scale (-C) must be >1.0" + assert threshold >= 0.0, "--threshold must be >=0.0" + assert ( + 0.0 < strength <= 1.0 + ), "img2img and inpaint strength can only work with 0.0 < strength < 1.0" + assert ( + 0.0 <= variation_amount <= 1.0 + ), "-v --variation_amount must be in [0.0, 1.0]" + assert 0.0 <= perlin <= 1.0, "--perlin must be in [0.0, 1.0]" + assert (embiggen == None and embiggen_tiles == None) or ( + (embiggen != None or embiggen_tiles != None) and init_img != None + ), "Embiggen requires an init/input image to be specified" - toc = time.time() - logger.info("Usage stats:") - logger.info(f"{len(results)} image(s) generated in "+"%4.2fs" % (toc - tic)) - self.print_cuda_stats() + if len(with_variations) > 0 or variation_amount > 1.0: + assert seed is not None, "seed must be specified when using with_variations" + if variation_amount == 0.0: + assert ( + iterations == 1 + ), "when using --with_variations, multiple iterations are only possible when using --variation_amount" + assert all( + 0 <= weight <= 1 for _, weight in with_variations + ), f"variation weights must be in [0.0, 1.0]: got {[weight for _, weight in with_variations]}" + + width, height, _ = self._resolution_check(width, height, log=True) + assert ( + inpaint_replace >= 0.0 and inpaint_replace <= 1.0 + ), "inpaint_replace must be between 0.0 and 1.0" + + if sampler_name and (sampler_name != self.sampler_name): + self.sampler_name = sampler_name + self._set_scheduler(model) + + # apply the concepts library to the prompt + prompt = self.huggingface_concepts_library.replace_concepts_with_triggers( + prompt, + lambda concepts: self.load_huggingface_concepts(concepts), + model.textual_inversion_manager.get_all_trigger_strings(), + ) + + tic = time.time() + if self._has_cuda(): + torch.cuda.reset_peak_memory_stats() + + results = list() + + try: + uc, c, extra_conditioning_info = get_uc_and_c_and_ec( + prompt, + model=model, + skip_normalize_legacy_blend=skip_normalize, + log_tokens=self.log_tokenization, + ) + + init_image, mask_image = self._make_images( + init_img, + init_mask, + width, + height, + fit=fit, + text_mask=text_mask, + invert_mask=invert_mask, + force_outpaint=force_outpaint, + ) + + # TODO: Hacky selection of operation to perform. Needs to be refactored. + generator = self.select_generator( + init_image, mask_image, embiggen, hires_fix, force_outpaint + ) + + generator.set_variation(self.seed, variation_amount, with_variations) + generator.use_mps_noise = use_mps_noise + + results = generator.generate( + prompt, + iterations=iterations, + seed=self.seed, + sampler=self.sampler, + steps=steps, + cfg_scale=cfg_scale, + conditioning=(uc, c, extra_conditioning_info), + ddim_eta=ddim_eta, + image_callback=image_callback, # called after the final image is generated + step_callback=step_callback, # called after each intermediate image is generated + width=width, + height=height, + init_img=init_img, # embiggen needs to manipulate from the unmodified init_img + init_image=init_image, # notice that init_image is different from init_img + mask_image=mask_image, + strength=strength, + threshold=threshold, + perlin=perlin, + h_symmetry_time_pct=h_symmetry_time_pct, + v_symmetry_time_pct=v_symmetry_time_pct, + embiggen=embiggen, + embiggen_tiles=embiggen_tiles, + embiggen_strength=embiggen_strength, + inpaint_replace=inpaint_replace, + mask_blur_radius=mask_blur_radius, + safety_checker=self.safety_checker, + seam_size=seam_size, + seam_blur=seam_blur, + seam_strength=seam_strength, + seam_steps=seam_steps, + tile_size=tile_size, + infill_method=infill_method, + force_outpaint=force_outpaint, + inpaint_height=inpaint_height, + inpaint_width=inpaint_width, + enable_image_debugging=enable_image_debugging, + free_gpu_mem=self.free_gpu_mem, + clear_cuda_cache=self.clear_cuda_cache, + ) + + if init_color: + self.correct_colors( + image_list=results, + reference_image_path=init_color, + image_callback=image_callback, + ) + + if upscale is not None or facetool_strength > 0: + self.upscale_and_reconstruct( + results, + upscale=upscale, + upscale_denoise_str=upscale_denoise_str, + facetool=facetool, + strength=facetool_strength, + codeformer_fidelity=codeformer_fidelity, + save_original=save_original, + image_callback=image_callback, + ) + + except KeyboardInterrupt: + # Clear the CUDA cache on an exception + self.clear_cuda_cache() + + if catch_interrupts: + logger.warning("Interrupted** Partial results will be returned.") + else: + raise KeyboardInterrupt + except RuntimeError: + # Clear the CUDA cache on an exception + self.clear_cuda_cache() + + print(traceback.format_exc(), file=sys.stderr) + logger.info("Could not generate image.") + + toc = time.time() + logger.info("Usage stats:") + logger.info(f"{len(results)} image(s) generated in "+"%4.2fs" % (toc - tic)) + self.print_cuda_stats() return results def gather_cuda_stats(self): @@ -662,12 +661,13 @@ class Generate: # used by multiple postfixers # todo: cross-attention control - uc, c, extra_conditioning_info = get_uc_and_c_and_ec( - prompt, - model=self.model, - skip_normalize_legacy_blend=opt.skip_normalize, - log_tokens=log_tokenization, - ) + with self.model_context as model: + uc, c, extra_conditioning_info = get_uc_and_c_and_ec( + prompt, + model=model, + skip_normalize_legacy_blend=opt.skip_normalize, + log_tokens=log_tokenization, + ) if tool in ("gfpgan", "codeformer", "upscale"): if tool == "gfpgan": @@ -852,7 +852,8 @@ class Generate: cn = class_name module = importlib.import_module(mn) constructor = getattr(module, cn) - return constructor(self.model, self.precision) + with self.model_context as model: + return constructor(model, self.precision) def load_model(self): """ @@ -869,8 +870,8 @@ class Generate: If the model fails to load for some reason, will attempt to load the previously- loaded model (if any). If that fallback fails, will raise an AssertionError """ - if self.model_name == model_name and self.model is not None: - return self.model + if self.model_name == model_name and self.model_context is not None: + return self.model_context previous_model_name = self.model_name @@ -881,11 +882,9 @@ class Generate: f'** "{model_name}" is not a known model name. Cannot change.' ) - cache.print_vram_usage() - # have to get rid of all references to model in order # to free it from GPU memory - self.model = None + self.model_context = None self.sampler = None self.generators = {} gc.collect() @@ -902,29 +901,33 @@ class Generate: raise e model_name = previous_model_name - self.model = model_data["model"] - self.width = model_data["width"] - self.height = model_data["height"] - self.model_hash = model_data["hash"] + self.model_context = model_data.context + self.width = 512 + self.height = 512 + self.model_hash = model_data.hash # uncache generators so they pick up new models self.generators = {} set_seed(random.randrange(0, np.iinfo(np.uint32).max)) self.model_name = model_name - self._set_scheduler() # requires self.model_name to be set first - return self.model + with self.model_context as model: + self._set_scheduler(model) # requires self.model_name to be set first + return self.model_context def load_huggingface_concepts(self, concepts: list[str]): - self.model.textual_inversion_manager.load_huggingface_concepts(concepts) + with self.model_context as model: + model.textual_inversion_manager.load_huggingface_concepts(concepts) @property def huggingface_concepts_library(self) -> HuggingFaceConceptsLibrary: - return self.model.textual_inversion_manager.hf_concepts_library + with self.model_context as model: + return model.textual_inversion_manager.hf_concepts_library @property def embedding_trigger_strings(self) -> List[str]: - return self.model.textual_inversion_manager.get_all_trigger_strings() + with self.model_context as model: + return model.textual_inversion_manager.get_all_trigger_strings() def correct_colors(self, image_list, reference_image_path, image_callback=None): reference_image = Image.open(reference_image_path) @@ -1044,8 +1047,8 @@ class Generate: def is_legacy_model(self, model_name) -> bool: return self.model_manager.is_legacy(model_name) - def _set_scheduler(self): - default = self.model.scheduler + def _set_scheduler(self,model): + default = model.scheduler # See https://github.com/huggingface/diffusers/issues/277#issuecomment-1371428672 scheduler_map = dict( @@ -1069,7 +1072,7 @@ class Generate: msg = ( f"Setting Sampler to {self.sampler_name} ({sampler_class.__name__})" ) - self.sampler = sampler_class.from_config(self.model.scheduler.config) + self.sampler = sampler_class.from_config(model.scheduler.config) else: msg = ( f" Unsupported Sampler: {self.sampler_name} "+ diff --git a/invokeai/backend/generator/base.py b/invokeai/backend/generator/base.py index 8ad9dec026..1f0670bef3 100644 --- a/invokeai/backend/generator/base.py +++ b/invokeai/backend/generator/base.py @@ -123,51 +123,51 @@ class InvokeAIGenerator(metaclass=ABCMeta): generator_args.update(keyword_args) model_info = self.model_info - model_name = model_info['model_name'] - model:StableDiffusionGeneratorPipeline = model_info['model'] - model_hash = model_info['hash'] - scheduler: Scheduler = self.get_scheduler( - model=model, - scheduler_name=generator_args.get('scheduler') - ) - uc, c, extra_conditioning_info = get_uc_and_c_and_ec(prompt,model=model) - gen_class = self._generator_class() - generator = gen_class(model, self.params.precision) - if self.params.variation_amount > 0: - generator.set_variation(generator_args.get('seed'), - generator_args.get('variation_amount'), - generator_args.get('with_variations') - ) + model_name = model_info.name + model_hash = model_info.hash + with model_info.context as model: + scheduler: Scheduler = self.get_scheduler( + model=model, + scheduler_name=generator_args.get('scheduler') + ) + uc, c, extra_conditioning_info = get_uc_and_c_and_ec(prompt,model=model) + gen_class = self._generator_class() + generator = gen_class(model, self.params.precision) + if self.params.variation_amount > 0: + generator.set_variation(generator_args.get('seed'), + generator_args.get('variation_amount'), + generator_args.get('with_variations') + ) - if isinstance(model, DiffusionPipeline): - for component in [model.unet, model.vae]: - configure_model_padding(component, + if isinstance(model, DiffusionPipeline): + for component in [model.unet, model.vae]: + configure_model_padding(component, + generator_args.get('seamless',False), + generator_args.get('seamless_axes') + ) + else: + configure_model_padding(model, generator_args.get('seamless',False), generator_args.get('seamless_axes') ) - else: - configure_model_padding(model, - generator_args.get('seamless',False), - generator_args.get('seamless_axes') - ) - iteration_count = range(iterations) if iterations else itertools.count(start=0, step=1) - for i in iteration_count: - results = generator.generate(prompt, - conditioning=(uc, c, extra_conditioning_info), - step_callback=step_callback, - sampler=scheduler, - **generator_args, - ) - output = InvokeAIGeneratorOutput( - image=results[0][0], - seed=results[0][1], - attention_maps_images=results[0][2], - model_hash = model_hash, - params=Namespace(model_name=model_name,**generator_args), - ) - if callback: - callback(output) + iteration_count = range(iterations) if iterations else itertools.count(start=0, step=1) + for i in iteration_count: + results = generator.generate(prompt, + conditioning=(uc, c, extra_conditioning_info), + step_callback=step_callback, + sampler=scheduler, + **generator_args, + ) + output = InvokeAIGeneratorOutput( + image=results[0][0], + seed=results[0][1], + attention_maps_images=results[0][2], + model_hash = model_hash, + params=Namespace(model_name=model_name,**generator_args), + ) + if callback: + callback(output) yield output @classmethod @@ -275,7 +275,6 @@ class Embiggen(Txt2Img): from .embiggen import Embiggen return Embiggen - class Generator: downsampling_factor: int latent_channels: int diff --git a/invokeai/backend/model_management/__init__.py b/invokeai/backend/model_management/__init__.py index 07b567ce7a..44b51e6a2a 100644 --- a/invokeai/backend/model_management/__init__.py +++ b/invokeai/backend/model_management/__init__.py @@ -2,4 +2,4 @@ Initialization file for invokeai.backend.model_management """ from .model_manager import ModelManager -from .model_cache import ModelCache, ModelStatus +from .model_cache import ModelCache, ModelStatus, SDModelType diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 95b4e165f6..265d363475 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -78,6 +78,10 @@ class UnscannableModelException(Exception): "Raised when picklescan is unable to scan a legacy model file" pass +class ModelLocker(object): + "Forward declaration" + pass + class ModelCache(object): def __init__( self, @@ -112,8 +116,6 @@ class ModelCache(object): self.loaded_models: set = set() # set of model keys loaded in GPU self.locked_models: Counter = Counter() # set of model keys locked in GPU - - @contextlib.contextmanager def get_model( self, repo_id_or_path: Union[str,Path], @@ -124,7 +126,7 @@ class ModelCache(object): legacy_info: LegacyInfo=None, attach_model_part: Tuple[SDModelType, str] = (None,None), gpu_load: bool=True, - )->Generator[ModelClass, None, None]: + )->ModelLocker: # ?? what does it return ''' Load and return a HuggingFace model wrapped in a context manager generator, with RAM caching. Use like this: @@ -188,29 +190,45 @@ class ModelCache(object): if submodel: model = getattr(model, submodel.name) - if gpu_load and hasattr(model,'to'): - try: - self.loaded_models.add(key) - self.locked_models[key] += 1 - if self.lazy_offloading: - self._offload_unlocked_models() - self.logger.debug(f'Loading {key} into {self.execution_device}') - model.to(self.execution_device) # move into GPU - self._print_cuda_stats() - yield model - finally: - self.locked_models[key] -= 1 - if not self.lazy_offloading: - self._offload_unlocked_models() - self._print_cuda_stats() - else: - # in the event that the caller wants the model in RAM, we - # move it into CPU if it is in GPU and not locked - if hasattr(model,'to') and (key in self.loaded_models - and self.locked_models[key] == 0): - model.to(self.storage_device) - self.loaded_models.remove(key) - yield model + return self.ModelLocker(self, key, model, gpu_load) + + class ModelLocker(object): + def __init__(self, cache, key, model, gpu_load): + self.gpu_load = gpu_load + self.cache = cache + self.key = key + # This will keep a copy of the model in RAM until the locker + # is garbage collected. Needs testing! + self.model = model + + def __enter__(self)->ModelClass: + cache = self.cache + key = self.key + model = self.model + if self.gpu_load and hasattr(model,'to'): + cache.loaded_models.add(key) + cache.locked_models[key] += 1 + if cache.lazy_offloading: + cache._offload_unlocked_models() + cache.logger.debug(f'Loading {key} into {cache.execution_device}') + model.to(cache.execution_device) # move into GPU + cache._print_cuda_stats() + else: + # in the event that the caller wants the model in RAM, we + # move it into CPU if it is in GPU and not locked + if hasattr(model,'to') and (key in cache.loaded_models + and cache.locked_models[key] == 0): + model.to(cache.storage_device) + cache.loaded_models.remove(key) + return model + + def __exit__(self, type, value, traceback): + key = self.key + cache = self.cache + cache.locked_models[key] -= 1 + if not cache.lazy_offloading: + cache._offload_unlocked_models() + cache._print_cuda_stats() def attach_part(self, diffusers_model: StableDiffusionPipeline, @@ -381,10 +399,11 @@ class ModelCache(object): revisions = [revision] if revision \ else ['fp16','main'] if self.precision==torch.float16 \ else ['main'] - extra_args = {'precision': self.precision} \ - if model_class in DiffusionClasses \ - else {} - + extra_args = {'torch_dtype': self.precision, + 'safety_checker': None}\ + if model_class in DiffusionClasses\ + else {} + # silence transformer and diffuser warnings with SilenceWarnings(): for rev in revisions: diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 3977ac0ed7..8b6704eb8a 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -69,7 +69,7 @@ class SDModelInfo(): revision: str = None _cache: ModelCache = None - + @property def status(self)->ModelStatus: '''Return load status of this model as a model_cache.ModelStatus enum''' if not self._cache: @@ -106,7 +106,7 @@ class ModelManager(object): config_path: Path, device_type: torch.device = CUDA_DEVICE, precision: torch.dtype = torch.float16, - max_models=DEFAULT_MAX_MODELS, + max_loaded_models=DEFAULT_MAX_MODELS, sequential_offload=False, logger: types.ModuleType = logger, ): @@ -119,7 +119,7 @@ class ModelManager(object): self.config_path = config_path self.config = OmegaConf.load(self.config_path) self.cache = ModelCache( - max_models=max_models, + max_models=max_loaded_models, execution_device = device_type, precision = precision, sequential_offload = sequential_offload, @@ -164,7 +164,7 @@ class ModelManager(object): if mconfig.get('vae'): legacy.vae_file = global_resolve_path(mconfig.vae) elif format=='diffusers': - location = mconfig.repo_id + location = mconfig.get('repo_id') or mconfig.get('path') revision = mconfig.get('revision') else: raise InvalidModelError( diff --git a/invokeai/backend/prompting/conditioning.py b/invokeai/backend/prompting/conditioning.py index d9130ace04..7c6cc0eea2 100644 --- a/invokeai/backend/prompting/conditioning.py +++ b/invokeai/backend/prompting/conditioning.py @@ -7,6 +7,7 @@ get_uc_and_c_and_ec() get the conditioned and unconditioned latent, an """ import re +import torch from typing import Optional, Union from compel import Compel diff --git a/invokeai/backend/web/invoke_ai_web_server.py b/invokeai/backend/web/invoke_ai_web_server.py index 84478d5cb6..eec02cd9dc 100644 --- a/invokeai/backend/web/invoke_ai_web_server.py +++ b/invokeai/backend/web/invoke_ai_web_server.py @@ -78,7 +78,6 @@ class InvokeAIWebServer: mimetypes.add_type("application/javascript", ".js") mimetypes.add_type("text/css", ".css") # Socket IO - logger = True if args.web_verbose else False engineio_logger = True if args.web_verbose else False max_http_buffer_size = 10000000 @@ -1278,13 +1277,14 @@ class InvokeAIWebServer: eventlet.sleep(0) parsed_prompt, _ = get_prompt_structure(generation_parameters["prompt"]) - tokens = ( - None - if type(parsed_prompt) is Blend - else get_tokens_for_prompt_object( - self.generate.model.tokenizer, parsed_prompt + with self.generate.model_context as model: + tokens = ( + None + if type(parsed_prompt) is Blend + else get_tokens_for_prompt_object( + model.tokenizer, parsed_prompt + ) ) - ) attention_maps_image_base64_url = ( None if attention_maps_image is None diff --git a/invokeai/frontend/CLI/CLI.py b/invokeai/frontend/CLI/CLI.py index aa0c4bea5f..0c984080a6 100644 --- a/invokeai/frontend/CLI/CLI.py +++ b/invokeai/frontend/CLI/CLI.py @@ -109,9 +109,6 @@ def main(): else: embedding_path = None - # migrate legacy models - ModelManager.migrate_models() - # load the infile as a list of lines if opt.infile: try: @@ -197,7 +194,7 @@ def main_loop(gen, opt): # changing the history file midstream when the output directory is changed. completer = get_completer(opt, models=gen.model_manager.list_models()) set_default_output_dir(opt, completer) - if gen.model: + if gen.model_context: add_embedding_terms(gen, completer) output_cntr = completer.get_current_history_length() + 1 @@ -1080,7 +1077,8 @@ def add_embedding_terms(gen, completer): Called after setting the model, updates the autocompleter with any terms loaded by the embedding manager. """ - trigger_strings = gen.model.textual_inversion_manager.get_all_trigger_strings() + with gen.model_context as model: + trigger_strings = model.textual_inversion_manager.get_all_trigger_strings() completer.add_embedding_terms(trigger_strings) @@ -1222,6 +1220,7 @@ def report_model_error(opt: Namespace, e: Exception): logger.warning( "This can be caused by a missing or corrupted models file, and can sometimes be fixed by (re)installing the models." ) + traceback.print_exc() yes_to_all = os.environ.get("INVOKE_MODEL_RECONFIGURE") if yes_to_all: logger.warning( From 05a27bda5e4375630d1ff8255bf2373d547f8a5f Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 6 May 2023 15:58:44 -0400 Subject: [PATCH 009/225] generalize model loading support, include loras/embeds --- .../backend/model_management/model_cache.py | 87 ++++++----- .../backend/model_management/model_manager.py | 138 +++++++++++++++++- 2 files changed, 182 insertions(+), 43 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 265d363475..c316c4292f 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -20,13 +20,13 @@ import contextlib import gc import hashlib import warnings -from collections.abc import Generator from collections import Counter from enum import Enum from pathlib import Path from typing import Sequence, Union, Tuple, types import torch +import safetensors.torch from diffusers import StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel from diffusers import logging as diffusers_logging from diffusers.pipelines.stable_diffusion.safety_checker import \ @@ -46,13 +46,18 @@ MAX_MODELS = 4 # This is the mapping from the stable diffusion submodel dict key to the class class SDModelType(Enum): diffusion_pipeline=StableDiffusionGeneratorPipeline # whole thing - vae=AutoencoderKL # parts + diffusers=StableDiffusionGeneratorPipeline # same thing + vae=AutoencoderKL # diffusers parts text_encoder=CLIPTextModel tokenizer=CLIPTokenizer unet=UNet2DConditionModel scheduler=SchedulerMixin safety_checker=StableDiffusionSafetyChecker feature_extractor=CLIPFeatureExtractor + # These are all loaded as dicts of tensors + lora=dict + textual_inversion=dict + ckpt=dict class ModelStatus(Enum): unknown='unknown' @@ -192,6 +197,15 @@ class ModelCache(object): return self.ModelLocker(self, key, model, gpu_load) + def uncache_model(self, key: str): + '''Remove corresponding model from the cache''' + if key is not None and key in self.models: + with contextlib.suppress(ValueError): + del self.models[key] + del self.locked_models[key] + self.stack.remove(key) + self.loaded_models.remove(key) + class ModelLocker(object): def __init__(self, cache, key, model, gpu_load): self.gpu_load = gpu_load @@ -301,7 +315,7 @@ class ModelCache(object): :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model ''' path = Path(repo_id_or_path) - return path.is_file() and path.suffix in [".ckpt",".safetensors"] + return path.suffix in [".ckpt",".safetensors",".pt"] @classmethod def scan_model(cls, model_name, checkpoint): @@ -368,15 +382,17 @@ class ModelCache(object): :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt ''' - if self.is_legacy_ckpt(repo_id_or_path): - model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) - else: - model = self._load_diffusers_from_storage( - repo_id_or_path, - subfolder, - revision, - model_class, - ) + # silence transformer and diffuser warnings + with SilenceWarnings(): + if self.is_legacy_ckpt(repo_id_or_path): + model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) + else: + model = self._load_diffusers_from_storage( + repo_id_or_path, + subfolder, + revision, + model_class, + ) if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): model.enable_offload_submodels(self.execution_device) return model @@ -404,21 +420,19 @@ class ModelCache(object): if model_class in DiffusionClasses\ else {} - # silence transformer and diffuser warnings - with SilenceWarnings(): - for rev in revisions: - try: - model = model_class.from_pretrained( - repo_id_or_path, - revision=rev, - subfolder=subfolder or '.', - cache_dir=global_cache_dir('hub'), - **extra_args, - ) - self.logger.debug(f'Found revision {rev}') - break - except OSError: - pass + for rev in revisions: + try: + model = model_class.from_pretrained( + repo_id_or_path, + revision=rev, + subfolder=subfolder or '.', + cache_dir=global_cache_dir('hub'), + **extra_args, + ) + self.logger.debug(f'Found revision {rev}') + break + except OSError: + pass return model def _load_ckpt_from_storage(self, @@ -429,24 +443,27 @@ class ModelCache(object): :param ckpt_path: string or Path pointing to the weights file (.ckpt or .safetensors) :param legacy_info: LegacyInfo object containing paths to legacy config file and alternate vae if required ''' - assert legacy_info is not None - - # deferred loading to avoid circular import errors - from .convert_ckpt_to_diffusers import load_pipeline_from_original_stable_diffusion_ckpt - with SilenceWarnings(): + if legacy_info is None or legacy_info.config_file is None: + if Path(ckpt_path).suffix == '.safetensors': + return safetensors.torch.load_file(ckpt_path) + else: + return torch.load(ckpt_path) + else: + # deferred loading to avoid circular import errors + from .convert_ckpt_to_diffusers import load_pipeline_from_original_stable_diffusion_ckpt pipeline = load_pipeline_from_original_stable_diffusion_ckpt( checkpoint_path=ckpt_path, original_config_file=legacy_info.config_file, - vae_path=legacy_info.vae_file, + vae_path=legacy_info.vae_file, return_generator_pipeline=True, precision=self.precision, ) - return pipeline + return pipeline def _legacy_model_hash(self, checkpoint_path: Union[str,Path])->str: sha = hashlib.sha256() path = Path(checkpoint_path) - assert path.is_file() + assert path.is_file(),f"File {checkpoint_path} not found" hashpath = path.parent / f"{path.name}.sha256" if hashpath.exists() and path.stat().st_mtime <= hashpath.stat().st_mtime: diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 8b6704eb8a..8929d8cdd6 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -31,7 +31,56 @@ generation operations. The ModelCache object can be accessed using the manager's "cache" attribute. Other methods provided by ModelManager support importing, editing, -converting and deleting models. +converting and deleting models. + +The general format of a models.yaml section is: + + name-of-model: + format: diffusers|ckpt|vae|text_encoder|tokenizer... + repo_id: owner/repo + path: /path/to/local/file/or/directory + subfolder: subfolder-name + submodel: vae|text_encoder|tokenizer... + +The format is one of {diffusers, ckpt, vae, text_encoder, tokenizer, +unet, scheduler, safety_checker, feature_extractor}, and correspond to +items in the SDModelType enum defined in model_cache.py + +One, but not both, of repo_id and path are provided. repo_id is the +HuggingFace repository ID of the model, and path points to the file or +directory on disk. + +If subfolder is provided, then the model exists in a subdirectory of +the main model. These are usually named after the model type, such as +"unet". + +Finally, if submodel is provided, then the path/repo_id is treated as +a diffusers model, the whole thing is ready into memory, and then the +requested part (e.g. "unet") is retrieved. + +This summarizes the three ways of getting a non-diffuser model: + + clip-test-1: + format: text_encoder + repo_id: openai/clip-vit-large-patch14 + description: Returns standalone CLIPTextModel + + clip-test-2: + format: diffusers + repo_id: stabilityai/stable-diffusion-2 + submodel: text_encoder + description: Returns the text_encoder part of whole diffusers model (whole thing in RAM) + + clip-test-3: + format: text_encoder + repo_id: stabilityai/stable-diffusion-2 + subfolder: text_encoder + description: Returns the text_encoder in the subfolder of the diffusers model (just the encoder in RAM) + + clip-token: + format: tokenizer + repo_id: openai/clip-vit-large-patch14 + description: Returns standalone tokenizer """ from __future__ import annotations @@ -53,14 +102,14 @@ from omegaconf import OmegaConf from omegaconf.dictconfig import DictConfig from invokeai.backend.globals import Globals, global_cache_dir, global_resolve_path -from .model_cache import Generator, ModelClass, ModelCache, SDModelType, ModelStatus, LegacyInfo +from .model_cache import ModelClass, ModelCache, ModelLocker, SDModelType, ModelStatus, LegacyInfo from ..util import CUDA_DEVICE # wanted to use pydantic here, but Generator objects not supported @dataclass class SDModelInfo(): - context: Generator[ModelClass, None, None] + context: ModelLocker name: str hash: str location: Union[Path,str] @@ -125,6 +174,7 @@ class ModelManager(object): sequential_offload = sequential_offload, logger = logger, ) + self.cache_keys = dict() self.logger = logger def valid_model(self, model_name: str) -> bool: @@ -154,8 +204,12 @@ class ModelManager(object): # get the required loading info out of the config file mconfig = self.config[model_name] + format = mconfig.get('format','diffusers') + model_type = SDModelType.diffusion_pipeline + model_parts = dict([(x.name,x) for x in SDModelType]) legacy = None + if format=='ckpt': location = global_resolve_path(mconfig.weights) legacy = LegacyInfo( @@ -165,14 +219,22 @@ class ModelManager(object): legacy.vae_file = global_resolve_path(mconfig.vae) elif format=='diffusers': location = mconfig.get('repo_id') or mconfig.get('path') - revision = mconfig.get('revision') + if sm := mconfig.get('submodel'): + submodel = model_parts[sm] + elif format in model_parts: + location = mconfig.get('repo_id') or mconfig.get('path') or mconfig.get('weights') + model_type = model_parts[format] else: raise InvalidModelError( f'"{model_name}" has an unknown format {format}' ) subfolder = mconfig.get('subfolder') + revision = mconfig.get('revision') hash = self.cache.model_hash(location,revision) + + # to support the traditional way of attaching a VAE + # to a model, we hacked in `attach_model_part` vae = (None,None) try: vae_id = mconfig.vae.repo_id @@ -181,12 +243,19 @@ class ModelManager(object): pass model_context = self.cache.get_model( location, + model_type = model_type, revision = revision, subfolder = subfolder, legacy_info = legacy, submodel = submodel, attach_model_part=vae, ) + + # in case we need to communicate information about this + # model to the cache manager, then we need to remember + # the cache key + self.cache_keys[model_name] = model_context.key + return SDModelInfo( context = model_context, name = model_name, @@ -365,6 +434,7 @@ class ModelManager(object): attributes are incorrect or the model name is missing. """ omega = self.config + assert "format" in model_attributes, 'missing required field "format"' if model_attributes["format"] == "diffusers": assert ( @@ -373,9 +443,11 @@ class ModelManager(object): assert ( "path" in model_attributes or "repo_id" in model_attributes ), 'model must have either the "path" or "repo_id" fields defined' - else: + elif model_attributes["format"] == "ckpt": for field in ("description", "weights", "height", "width", "config"): assert field in model_attributes, f"required field {field} is missing" + else: + assert "weights" in model_attributes and "description" in model_attributes assert ( clobber or model_name not in omega @@ -385,9 +457,10 @@ class ModelManager(object): if "weights" in omega[model_name]: omega[model_name]["weights"].replace("\\", "/") - - if clobber: - self._invalidate_cached_model(model_name) + + if clobber and model_name in self.cache_keys: + self.cache.uncache_model(self.cache_keys[model_name]) + del self.cache_keys[model_name] def import_diffuser_model( self, @@ -425,6 +498,55 @@ class ModelManager(object): self.commit(commit_to_conf) return model_name + def import_lora( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated lora file. Call + mgr.commit() to write out the configuration to models.yaml + """ + path = Path(path) + model_name = model_name or path.stem + model_description = description or f"LoRA model {model_name}" + self.add_model(model_name, + dict( + format="lora", + weights=str(path), + description=model_description, + ), + True + ) + + def import_embedding( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated lora file. Call + mgr.commit() to write out the configuration to models.yaml + """ + path = Path(path) + if path.is_directory() and (path / "learned_embeds.bin").exists(): + weights = path / "learned_embeds.bin" + else: + weights = path + + model_name = model_name or path.stem + model_description = description or f"Textual embedding model {model_name}" + self.add_model(model_name, + dict( + format="textual_inversion", + weights=str(path), + description=model_description, + ), + True + ) + @classmethod def probe_model_type(self, checkpoint: dict) -> SDLegacyType: """ From 647ffb2a0f5e617708ffef09891ee530354032ee Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 6 May 2023 22:41:19 -0400 Subject: [PATCH 010/225] defined abstract baseclass for model manager service --- invokeai/app/services/model_manager.py | 179 ++++++++++++++++++ invokeai/backend/__init__.py | 2 +- invokeai/backend/model_management/__init__.py | 2 +- .../backend/model_management/model_manager.py | 10 +- 4 files changed, 186 insertions(+), 7 deletions(-) create mode 100644 invokeai/app/services/model_manager.py diff --git a/invokeai/app/services/model_manager.py b/invokeai/app/services/model_manager.py new file mode 100644 index 0000000000..044310fccb --- /dev/null +++ b/invokeai/app/services/model_manager.py @@ -0,0 +1,179 @@ +# Copyright (c) 2023 Lincoln D. Stein and the InvokeAI Team + +from abc import ABC, abstractmethod +from pathlib import Path +from typing import Union, Callable + +from invokeai.backend import ModelManager, SDModelType, SDModelInfo + +class ModelManagerBase(ABC): + """Responsible for managing models on disk and in memory""" + + @abstractmethod + def get(self, model_name: str, submodel: SDModelType=None)->SDModelInfo: + """Retrieve the indicated model. submodel can be used to get a + part (such as the vae) of a diffusers mode.l""" + pass + + @abstractmethod + def valid_model(self, model_name: str) -> bool: + """ + Given a model name, returns True if it is a valid + identifier. + """ + pass + + @abstractmethod + def default_model(self) -> Union[str,None]: + """ + Returns the name of the default model, or None + if none is defined. + """ + pass + + @abstractmethod + def set_default_model(self, model_name:str): + """Sets the default model to the indicated name.""" + pass + + @abstractmethod + def model_info(self, model_name: str)->dict: + """ + Given a model name returns a dict-like (OmegaConf) object describing it. + """ + pass + + @abstractmethod + def model_names(self)->list[str]: + """ + Returns a list of all the model names known. + """ + pass + + @abstractmethod + def list_models(self)->dict: + """ + Return a dict of models in the format: + { model_name1: {'status': ('active'|'cached'|'not loaded'), + 'description': description, + 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), + }, + model_name2: { etc } + """ + pass + + + @abstractmethod + def add_model( + self, model_name: str, model_attributes: dict, clobber: bool = False)->None: + """ + Update the named model with a dictionary of attributes. Will fail with an + assertion error if the name already exists. Pass clobber=True to overwrite. + On a successful update, the config will be changed in memory. Will fail + with an assertion error if provided attributes are incorrect or + the model name is missing. Call commit() to write changes to disk. + """ + pass + + @abstractmethod + def del_model(self, model_name: str, delete_files: bool = False) -> None: + """ + Delete the named model from configuration. If delete_files is true, + then the underlying weight file or diffusers directory will be deleted + as well. Call commit() to write to disk. + """ + pass + + @abstractmethod + def import_diffuser_model( + repo_or_path: Union[str, Path], + model_name: str = None, + description: str = None, + vae: dict = None, + ) -> bool: + """ + Install the indicated diffuser model and returns True if successful. + + "repo_or_path" can be either a repo-id or a path-like object corresponding to the + top of a downloaded diffusers directory. + + You can optionally provide a model name and/or description. If not provided, + then these will be derived from the repo name. Call commit() to write to disk. + """ + pass + + @abstractmethod + def import_lora( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated lora file. Call + mgr.commit() to write out the configuration to models.yaml + """ + pass + + @abstractmethod + def import_embedding( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated textual inversion embedding file. + Call commit() to write out the configuration to models.yaml + """ + pass + + @abstractmethod + def heuristic_import( + self, + path_url_or_repo: str, + model_name: str = None, + description: str = None, + model_config_file: Path = None, + commit_to_conf: Path = None, + config_file_callback: Callable[[Path], Path] = None, + ) -> str: + """Accept a string which could be: + - a HF diffusers repo_id + - a URL pointing to a legacy .ckpt or .safetensors file + - a local path pointing to a legacy .ckpt or .safetensors file + - a local directory containing .ckpt and .safetensors files + - a local directory containing a diffusers model + + After determining the nature of the model and downloading it + (if necessary), the file is probed to determine the correct + configuration file (if needed) and it is imported. + + The model_name and/or description can be provided. If not, they will + be generated automatically. + + If commit_to_conf is provided, the newly loaded model will be written + to the `models.yaml` file at the indicated path. Otherwise, the changes + will only remain in memory. + + The routine will do its best to figure out the config file + needed to convert legacy checkpoint file, but if it can't it + will call the config_file_callback routine, if provided. The + callback accepts a single argument, the Path to the checkpoint + file, and returns a Path to the config file to use. + + The (potentially derived) name of the model is returned on + success, or None on failure. When multiple models are added + from a directory, only the last imported one is returned. + + """ + pass + + @abstractmethod + def commit(self, conf_file: Path=None) -> None: + """ + Write current configuration out to the indicated file. + If no conf_file is provided, then replaces the + original file/database used to initialize the object. + """ + pass diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index dc2eeca67a..e06e220ffe 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -10,7 +10,7 @@ from .generator import ( Img2Img, Inpaint ) -from .model_management import ModelManager, ModelCache, ModelStatus, SDModelType +from .model_management import ModelManager, ModelCache, ModelStatus, SDModelType, SDModelInfo from .safety_checker import SafetyChecker from .args import Args from .globals import Globals diff --git a/invokeai/backend/model_management/__init__.py b/invokeai/backend/model_management/__init__.py index 44b51e6a2a..89114d7de4 100644 --- a/invokeai/backend/model_management/__init__.py +++ b/invokeai/backend/model_management/__init__.py @@ -1,5 +1,5 @@ """ Initialization file for invokeai.backend.model_management """ -from .model_manager import ModelManager +from .model_manager import ModelManager, SDModelInfo from .model_cache import ModelCache, ModelStatus, SDModelType diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 8929d8cdd6..7c3c32c004 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -102,7 +102,7 @@ from omegaconf import OmegaConf from omegaconf.dictconfig import DictConfig from invokeai.backend.globals import Globals, global_cache_dir, global_resolve_path -from .model_cache import ModelClass, ModelCache, ModelLocker, SDModelType, ModelStatus, LegacyInfo +from .model_cache import ModelCache, ModelLocker, SDModelType, ModelStatus, LegacyInfo from ..util import CUDA_DEVICE @@ -267,7 +267,7 @@ class ModelManager(object): _cache = self.cache ) - def default_model(self) -> str | None: + def default_model(self) -> Union[str,None]: """ Returns the name of the default model, or None if none is defined. @@ -541,7 +541,7 @@ class ModelManager(object): self.add_model(model_name, dict( format="textual_inversion", - weights=str(path), + weights=str(weights), description=model_description, ), True @@ -865,12 +865,12 @@ class ModelManager(object): return search_folder, found_models - def commit(self) -> None: + def commit(self, conf_file: Path=None) -> None: """ Write current configuration out to the indicated file. """ yaml_str = OmegaConf.to_yaml(self.config) - config_file_path = self.config_path + config_file_path = conf_file or self.config_path tmpfile = os.path.join(os.path.dirname(config_file_path), "new_config.tmp") with open(tmpfile, "w", encoding="utf-8") as outfile: outfile.write(self.preamble()) From 667171ed904d74bd28d18ba904ab430e70e5c5fc Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sun, 7 May 2023 18:07:28 -0400 Subject: [PATCH 011/225] cap model cache size using bytes, not # models --- .../app/services/model_manager_initializer.py | 2 +- invokeai/backend/args.py | 10 +- .../backend/model_management/model_cache.py | 119 +++++++++++++----- .../backend/model_management/model_manager.py | 6 +- 4 files changed, 99 insertions(+), 38 deletions(-) diff --git a/invokeai/app/services/model_manager_initializer.py b/invokeai/app/services/model_manager_initializer.py index c7924e797d..cae650fcfa 100644 --- a/invokeai/app/services/model_manager_initializer.py +++ b/invokeai/app/services/model_manager_initializer.py @@ -59,7 +59,7 @@ def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManager: config.conf, precision=dtype, device_type=device, - max_loaded_models=config.max_loaded_models, + max_cache_size=config.max_cache_size, # temporarily disabled until model manager stabilizes # embedding_path = Path(embedding_path), logger = logger, diff --git a/invokeai/backend/args.py b/invokeai/backend/args.py index eb8b396ee0..2cd44b8f7b 100644 --- a/invokeai/backend/args.py +++ b/invokeai/backend/args.py @@ -502,11 +502,11 @@ class Args(object): help="Deprecated way to set --precision=float32", ) model_group.add_argument( - "--max_loaded_models", - dest="max_loaded_models", - type=int, - default=2, - help="Maximum number of models to keep in memory for fast switching, including the one in GPU", + "--max_cache_size", + dest="max_cache_size", + type=float, + default=6.0, + help="Maximum size of the model RAM cache (in GB). 6 GB is sufficient to keep 2-3 diffusers models in RAM simultaneously.", ) model_group.add_argument( "--free_gpu_mem", diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index c316c4292f..97c21159b4 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -19,11 +19,13 @@ context. Use like this: import contextlib import gc import hashlib +import logging import warnings from collections import Counter from enum import Enum from pathlib import Path -from typing import Sequence, Union, Tuple, types +from psutil import Process +from typing import Dict, Sequence, Union, Tuple, types import torch import safetensors.torch @@ -41,7 +43,12 @@ import invokeai.backend.util.logging as logger from ..globals import global_cache_dir from ..stable_diffusion import StableDiffusionGeneratorPipeline -MAX_MODELS = 4 +# Maximum size of the cache, in gigs +# Default is roughly enough to hold three fp16 diffusers models in RAM simultaneously +DEFAULT_MAX_CACHE_SIZE = 6.0 + +# actual size of a gig +GIG = 1073741824 # This is the mapping from the stable diffusion submodel dict key to the class class SDModelType(Enum): @@ -65,6 +72,24 @@ class ModelStatus(Enum): in_ram='cached' in_vram='in gpu' active='locked in gpu' + +# This is used to guesstimate the size of a model before we load it. +# After loading, we will know it exactly. +# Sizes are in Gigs, estimated for float16; double for float32 +SIZE_GUESSTIMATE = { + SDModelType.diffusion_pipeline: 2.5, + SDModelType.diffusers: 2.5, + SDModelType.vae: 0.35, + SDModelType.text_encoder: 0.5, + SDModelType.tokenizer: 0.0001, + SDModelType.unet: 3.4, + SDModelType.scheduler: 0.0001, + SDModelType.safety_checker: 1.2, + SDModelType.feature_extractor: 0.0001, + SDModelType.lora: 0.1, + SDModelType.textual_inversion: 0.0001, + SDModelType.ckpt: 4.2, +} # The list of model classes we know how to fetch, for typechecking ModelClass = Union[tuple([x.value for x in SDModelType])] @@ -90,7 +115,7 @@ class ModelLocker(object): class ModelCache(object): def __init__( self, - max_models: int=MAX_MODELS, + max_cache_size: float=DEFAULT_MAX_CACHE_SIZE, execution_device: torch.device=torch.device('cuda'), storage_device: torch.device=torch.device('cpu'), precision: torch.dtype=torch.float16, @@ -113,13 +138,15 @@ class ModelCache(object): self.lazy_offloading = lazy_offloading self.sequential_offload: bool=sequential_offload self.precision: torch.dtype=precision - self.max_models: int=max_models + self.current_cache_size: int=0 + self.max_cache_size: int=max_cache_size self.execution_device: torch.device=execution_device self.storage_device: torch.device=storage_device self.sha_chunksize=sha_chunksize self.logger = logger self.loaded_models: set = set() # set of model keys loaded in GPU self.locked_models: Counter = Counter() # set of model keys locked in GPU + self.model_sizes: Dict[str,int] = dict() def get_model( self, @@ -172,21 +199,33 @@ class ModelCache(object): model_type.value, revision, subfolder - ) + ) + if key in self.models: # cached - move to bottom of stack with contextlib.suppress(ValueError): self.stack.remove(key) self.stack.append(key) model = self.models[key] + else: # not cached -load - self._make_cache_room() - model = self._load_model_from_storage( - repo_id_or_path=repo_id_or_path, - model_class=model_type.value, - subfolder=subfolder, - revision=revision, - legacy_info=legacy_info, - ) + self.logger.info(f'Loading model {repo_id_or_path}, type {model_type}') + + # this will remove older cached models until + # there is sufficient room to load the requested model + self._make_cache_room(key, model_type) + + with MemoryUsage() as usage: + model = self._load_model_from_storage( + repo_id_or_path=repo_id_or_path, + model_class=model_type.value, + subfolder=subfolder, + revision=revision, + legacy_info=legacy_info, + ) + logger.debug(f'Actual memory used to load model: {(usage.mem_used/GIG):.2f} GB') + self.model_sizes[key] = usage.mem_used + self.current_cache_size += usage.mem_used + if model_type==SDModelType.diffusion_pipeline and attach_model_part[0]: self.attach_part(model,*attach_model_part) self.stack.append(key) # add to LRU cache @@ -200,11 +239,11 @@ class ModelCache(object): def uncache_model(self, key: str): '''Remove corresponding model from the cache''' if key is not None and key in self.models: - with contextlib.suppress(ValueError): + with contextlib.suppress(ValueError), contextlib.suppress(KeyError): del self.models[key] del self.locked_models[key] - self.stack.remove(key) self.loaded_models.remove(key) + self.stack.remove(key) class ModelLocker(object): def __init__(self, cache, key, model, gpu_load): @@ -304,9 +343,9 @@ class ModelCache(object): else: return self._hf_commit_hash(repo_id_or_path,revision) - def cache_size(self)->int: - "Return the current number of models cached." - return len(self.models) + def cache_size(self)->float: + "Return the current size of the cache, in GB" + return self.current_cache_size / GIG @classmethod def is_legacy_ckpt(cls, repo_id_or_path: Union[str,Path])->bool: @@ -342,18 +381,29 @@ class ModelCache(object): return self.execution_device.type == 'cuda' def _print_cuda_stats(self): - vram = "%4.2fG" % (torch.cuda.memory_allocated() / 1e9) + vram = "%4.2fG" % (torch.cuda.memory_allocated() / GIG) + ram = "%4.2fG" % (self.current_cache_size / GIG) loaded_models = len(self.loaded_models) locked_models = len([x for x in self.locked_models if self.locked_models[x]>0]) - logger.debug(f"Current VRAM usage: {vram}; locked_models/loaded_models = {locked_models}/{loaded_models}") + logger.debug(f"Current VRAM/RAM usage: {vram}/{ram}; locked_models/loaded_models = {locked_models}/{loaded_models}") - def _make_cache_room(self): - models_in_ram = len(self.models) - while models_in_ram >= self.max_models: + def _make_cache_room(self, key, model_type): + # calculate how much memory this model will require + multiplier = 2 if self.precision==torch.float32 else 1 + bytes_needed = int(self.model_sizes.get(key,0) or SIZE_GUESSTIMATE[model_type]*GIG*multiplier) + maximum_size = self.max_cache_size * GIG # stored in GB, convert to bytes + current_size = self.current_cache_size + + adjective = 'guesstimated' if key not in self.model_sizes else 'known from previous load' + logger.debug(f'{(bytes_needed/GIG):.2f} GB needed to load this model ({adjective})') + while current_size+bytes_needed > maximum_size: if least_recently_used_key := self.stack.pop(0): - logger.debug(f'Maximum cache size reached: cache_size={models_in_ram}; unloading model {least_recently_used_key}') - del self.models[least_recently_used_key] - models_in_ram = len(self.models) + model_size = self.model_sizes.get(least_recently_used_key,0) + logger.debug(f'Max cache size exceeded: cache_size={(current_size/GIG):.2f} GB, need an additional {(bytes_needed/GIG):.2f} GB') + logger.debug(f'Unloading model {least_recently_used_key} to free {(model_size/GIG):.2f} GB') + self.uncache_model(least_recently_used_key) + current_size -= model_size + self.current_cache_size = current_size gc.collect() def _offload_unlocked_models(self): @@ -393,8 +443,8 @@ class ModelCache(object): revision, model_class, ) - if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): - model.enable_offload_submodels(self.execution_device) + if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): + model.enable_offload_submodels(self.execution_device) return model def _load_diffusers_from_storage( @@ -411,7 +461,6 @@ class ModelCache(object): :param revision: model revision :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline ''' - self.logger.info(f'Loading model {repo_id_or_path}') revisions = [revision] if revision \ else ['fp16','main'] if self.precision==torch.float16 \ else ['main'] @@ -529,3 +578,15 @@ class SilenceWarnings(object): transformers_logging.set_verbosity(self.transformers_verbosity) diffusers_logging.set_verbosity(self.diffusers_verbosity) warnings.simplefilter('default') + +class MemoryUsage(object): + def __init__(self): + self.vms = None + self.mem_used = 0 + + def __enter__(self): + self.vms = Process().memory_info().vms + return self + + def __exit__(self, *args): + self.mem_used = Process().memory_info().vms - self.vms diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 7c3c32c004..368d581cd8 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -141,7 +141,7 @@ class SDLegacyType(Enum): V2_v = auto() UNKNOWN = auto() -DEFAULT_MAX_MODELS = 2 +MAX_CACHE_SIZE = 6.0 # GB class ModelManager(object): """ @@ -155,7 +155,7 @@ class ModelManager(object): config_path: Path, device_type: torch.device = CUDA_DEVICE, precision: torch.dtype = torch.float16, - max_loaded_models=DEFAULT_MAX_MODELS, + max_cache_size=MAX_CACHE_SIZE, sequential_offload=False, logger: types.ModuleType = logger, ): @@ -168,7 +168,7 @@ class ModelManager(object): self.config_path = config_path self.config = OmegaConf.load(self.config_path) self.cache = ModelCache( - max_models=max_loaded_models, + max_cache_size=max_cache_size, execution_device = device_type, precision = precision, sequential_offload = sequential_offload, From 4649920074eca72b637a3e1b790e3a554c2a1530 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sun, 7 May 2023 19:06:49 -0400 Subject: [PATCH 012/225] adjust t2i to work with new model structure --- invokeai/app/invocations/latent.py | 11 +++++------ .../app/services/model_manager_initializer.py | 4 ++++ invokeai/backend/args.py | 19 +++++++++++++------ .../backend/model_management/model_cache.py | 4 +++- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 84af41b1c9..ea16c90030 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -206,7 +206,6 @@ class TextToLatentsInvocation(BaseInvocation): def get_conditioning_data(self, model: StableDiffusionGeneratorPipeline) -> ConditioningData: uc, c, extra_conditioning_info = get_uc_and_c_and_ec(self.prompt, model=model) - print(f'DEBUG: uc.dtype={uc.dtype}, c.dtype={c.dtype}') conditioning_data = ConditioningData( uc, c, @@ -346,11 +345,11 @@ class LatentsToImageInvocation(BaseInvocation): # TODO: this only really needs the vae model_info = choose_model(context.services.model_manager, self.model) - model: StableDiffusionGeneratorPipeline = model_info['model'] - - with torch.inference_mode(): - np_image = model.decode_latents(latents) - image = model.numpy_to_pil(np_image)[0] + + with model_info.context as model: + with torch.inference_mode(): + np_image = model.decode_latents(latents) + image = model.numpy_to_pil(np_image)[0] image_type = ImageType.RESULT image_name = context.services.images.create_name( diff --git a/invokeai/app/services/model_manager_initializer.py b/invokeai/app/services/model_manager_initializer.py index cae650fcfa..3c0d9dbef6 100644 --- a/invokeai/app/services/model_manager_initializer.py +++ b/invokeai/app/services/model_manager_initializer.py @@ -54,6 +54,10 @@ def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManager: precision = choose_precision(device) dtype = torch.float32 if precision=='float32' \ else torch.float16 + + max_cache_size = config.max_cache_size \ + if hasattr(config,'max_cache_size') \ + else config.max_loaded_models * 2.5 model_manager = ModelManager( config.conf, diff --git a/invokeai/backend/args.py b/invokeai/backend/args.py index 2cd44b8f7b..64f000a45d 100644 --- a/invokeai/backend/args.py +++ b/invokeai/backend/args.py @@ -557,12 +557,6 @@ class Args(object): default=False, help="Check for and blur potentially NSFW images. Use --no-nsfw_checker to disable.", ) - model_group.add_argument( - "--autoimport", - default=None, - type=str, - help="(DEPRECATED - NONFUNCTIONAL). Check the indicated directory for .ckpt/.safetensors weights files at startup and import directly", - ) model_group.add_argument( "--autoconvert", default=None, @@ -765,6 +759,19 @@ class Args(object): action="store_true", help="Start InvokeAI GUI", ) + deprecated_group.add_argument( + "--autoimport", + default=None, + type=str, + help="(DEPRECATED - NONFUNCTIONAL). Check the indicated directory for .ckpt/.safetensors weights files at startup and import directly", + ) + deprecated_group.add_argument( + "--max_loaded_models", + dest="max_loaded_models", + type=int, + default=3, + help="Maximum number of models to keep in RAM cache (deprecated - use max_cache_size)", + ) return parser # This creates the parser that processes commands on the invoke> command line diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 97c21159b4..540ec0b0fd 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -213,7 +213,9 @@ class ModelCache(object): # this will remove older cached models until # there is sufficient room to load the requested model self._make_cache_room(key, model_type) - + + # clean memory to make MemoryUsage() more accurate + gc.collect() with MemoryUsage() as usage: model = self._load_model_from_storage( repo_id_or_path=repo_id_or_path, From fd63e36822a454bf9c24d7f62b5111727b4510e7 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sun, 7 May 2023 21:39:11 -0400 Subject: [PATCH 013/225] optimize subfolder so that it returns submodel if parent is in RAM --- .../backend/model_management/model_cache.py | 58 +++++++++++++++---- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 540ec0b0fd..20dac8a985 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -29,6 +29,7 @@ from typing import Dict, Sequence, Union, Tuple, types import torch import safetensors.torch + from diffusers import StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel from diffusers import logging as diffusers_logging from diffusers.pipelines.stable_diffusion.safety_checker import \ @@ -53,7 +54,7 @@ GIG = 1073741824 # This is the mapping from the stable diffusion submodel dict key to the class class SDModelType(Enum): diffusion_pipeline=StableDiffusionGeneratorPipeline # whole thing - diffusers=StableDiffusionGeneratorPipeline # same thing + diffusers=StableDiffusionGeneratorPipeline # same thing, different name vae=AutoencoderKL # diffusers parts text_encoder=CLIPTextModel tokenizer=CLIPTokenizer @@ -164,8 +165,19 @@ class ModelCache(object): Use like this: cache = ModelCache() - with cache.get_model('stabilityai/stable-diffusion-2') as SD2: - do_something_with_the_model(SD2) + with cache.get_model('stabilityai/stable-diffusion-2') as model: + do_something_with_the_model(model) + + While in context, model will be locked into GPU. If you want to do something + with the model while it is in RAM, just use the context's `model` attribute: + + context = cache.get_model('stabilityai/stable-diffusion-2') + context.model.device + # device(type='cpu') + + with context as model: + model.device + # device(type='cuda') You can fetch an individual part of a diffusers model by passing the submodel argument: @@ -175,6 +187,14 @@ class ModelCache(object): submodel=SDModelType.vae ) + This is equivalent to: + + vae_context = cache.get_model( + 'stabilityai/sd-stable-diffusion-2', + model_type = SDModelType.vae, + subfolder='vae' + ) + Vice versa, you can load and attach an external submodel to a diffusers model before returning it by passing the attach_submodel argument. This only works with diffusers models: @@ -196,12 +216,26 @@ class ModelCache(object): ''' key = self._model_key( # internal unique identifier for the model repo_id_or_path, - model_type.value, revision, - subfolder + subfolder, + model_type.value, ) - - if key in self.models: # cached - move to bottom of stack + + # optimization: if caller is asking to load a submodel of a diffusers pipeline, then + # check whether it is already cached in RAM and return it instead of loading from disk again + if subfolder and not submodel: + possible_parent_key = self._model_key( + repo_id_or_path, + None, + revision, + SDModelType.diffusers.value + ) + if possible_parent_key in self.models: + key = possible_parent_key + submodel=model_type + + # Look for the model in the cache RAM + if key in self.models: # cached - move to bottom of stack (most recently used) with contextlib.suppress(ValueError): self.stack.remove(key) self.stack.append(key) @@ -225,11 +259,13 @@ class ModelCache(object): legacy_info=legacy_info, ) logger.debug(f'Actual memory used to load model: {(usage.mem_used/GIG):.2f} GB') - self.model_sizes[key] = usage.mem_used - self.current_cache_size += usage.mem_used + self.model_sizes[key] = usage.mem_used # remember size of this model for cache cleansing + self.current_cache_size += usage.mem_used # increment size of the cache + # this is a bit of legacy work needed to support the old-style "load this diffuser with custom VAE" if model_type==SDModelType.diffusion_pipeline and attach_model_part[0]: self.attach_part(model,*attach_model_part) + self.stack.append(key) # add to LRU cache self.models[key]=model # keep copy of model in dict @@ -376,8 +412,8 @@ class ModelCache(object): logger.debug("Model scanned ok") @staticmethod - def _model_key(path,model_class,revision,subfolder)->str: - return ':'.join([str(path),model_class.__name__,str(revision or ''),str(subfolder or '')]) + def _model_key(path,revision,subfolder,model_class)->str: + return ':'.join([str(path),str(revision or ''),str(subfolder or ''),model_class.__name__]) def _has_cuda(self)->bool: return self.execution_device.type == 'cuda' From c15b49c805b50fa3476fdaec3610b3c98a2d09cb Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sun, 7 May 2023 23:18:17 -0400 Subject: [PATCH 014/225] implement StALKeR7779 requested API for fetching submodels --- .../backend/model_management/model_cache.py | 47 +++-- .../backend/model_management/model_manager.py | 192 +++++++++++++----- tests/test_model_cache.py | 8 +- 3 files changed, 175 insertions(+), 72 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 20dac8a985..04af1f43f3 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -19,10 +19,9 @@ context. Use like this: import contextlib import gc import hashlib -import logging import warnings from collections import Counter -from enum import Enum +from enum import Enum,auto from pathlib import Path from psutil import Process from typing import Dict, Sequence, Union, Tuple, types @@ -52,9 +51,15 @@ DEFAULT_MAX_CACHE_SIZE = 6.0 GIG = 1073741824 # This is the mapping from the stable diffusion submodel dict key to the class +class LoraType(dict): + pass +class TIType(dict): + pass +class CkptType(dict): + pass + class SDModelType(Enum): - diffusion_pipeline=StableDiffusionGeneratorPipeline # whole thing - diffusers=StableDiffusionGeneratorPipeline # same thing, different name + diffusers=StableDiffusionGeneratorPipeline # whole pipeline vae=AutoencoderKL # diffusers parts text_encoder=CLIPTextModel tokenizer=CLIPTokenizer @@ -62,10 +67,11 @@ class SDModelType(Enum): scheduler=SchedulerMixin safety_checker=StableDiffusionSafetyChecker feature_extractor=CLIPFeatureExtractor - # These are all loaded as dicts of tensors - lora=dict - textual_inversion=dict - ckpt=dict + # These are all loaded as dicts of tensors, and we + # distinguish them by class + lora=LoraType + textual_inversion=TIType + ckpt=CkptType class ModelStatus(Enum): unknown='unknown' @@ -78,17 +84,16 @@ class ModelStatus(Enum): # After loading, we will know it exactly. # Sizes are in Gigs, estimated for float16; double for float32 SIZE_GUESSTIMATE = { - SDModelType.diffusion_pipeline: 2.5, SDModelType.diffusers: 2.5, SDModelType.vae: 0.35, SDModelType.text_encoder: 0.5, - SDModelType.tokenizer: 0.0001, + SDModelType.tokenizer: 0.001, SDModelType.unet: 3.4, - SDModelType.scheduler: 0.0001, + SDModelType.scheduler: 0.001, SDModelType.safety_checker: 1.2, - SDModelType.feature_extractor: 0.0001, + SDModelType.feature_extractor: 0.001, SDModelType.lora: 0.1, - SDModelType.textual_inversion: 0.0001, + SDModelType.textual_inversion: 0.001, SDModelType.ckpt: 4.2, } @@ -152,7 +157,7 @@ class ModelCache(object): def get_model( self, repo_id_or_path: Union[str,Path], - model_type: SDModelType=SDModelType.diffusion_pipeline, + model_type: SDModelType=SDModelType.diffusers, subfolder: Path=None, submodel: SDModelType=None, revision: str=None, @@ -263,7 +268,7 @@ class ModelCache(object): self.current_cache_size += usage.mem_used # increment size of the cache # this is a bit of legacy work needed to support the old-style "load this diffuser with custom VAE" - if model_type==SDModelType.diffusion_pipeline and attach_model_part[0]: + if model_type==SDModelType.diffusers and attach_model_part[0]: self.attach_part(model,*attach_model_part) self.stack.append(key) # add to LRU cache @@ -301,8 +306,10 @@ class ModelCache(object): cache.locked_models[key] += 1 if cache.lazy_offloading: cache._offload_unlocked_models() - cache.logger.debug(f'Loading {key} into {cache.execution_device}') - model.to(cache.execution_device) # move into GPU + if model.device != cache.execution_device: + cache.logger.debug(f'Moving {key} into {cache.execution_device}') + model.to(cache.execution_device) # move into GPU + cache.logger.debug(f'Locking {key} in {cache.execution_device}') cache._print_cuda_stats() else: # in the event that the caller wants the model in RAM, we @@ -345,7 +352,7 @@ class ModelCache(object): def status(self, repo_id_or_path: Union[str,Path], - model_type: SDModelType=SDModelType.diffusion_pipeline, + model_type: SDModelType=SDModelType.diffusers, revision: str=None, subfolder: Path=None, )->ModelStatus: @@ -428,7 +435,7 @@ class ModelCache(object): def _make_cache_room(self, key, model_type): # calculate how much memory this model will require multiplier = 2 if self.precision==torch.float32 else 1 - bytes_needed = int(self.model_sizes.get(key,0) or SIZE_GUESSTIMATE[model_type]*GIG*multiplier) + bytes_needed = int(self.model_sizes.get(key,0) or SIZE_GUESSTIMATE.get(model_type,0.5)*GIG*multiplier) maximum_size = self.max_cache_size * GIG # stored in GB, convert to bytes current_size = self.current_cache_size @@ -473,7 +480,7 @@ class ModelCache(object): # silence transformer and diffuser warnings with SilenceWarnings(): if self.is_legacy_ckpt(repo_id_or_path): - model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) + model = model_class(self._load_ckpt_from_storage(repo_id_or_path, legacy_info)) else: model = self._load_diffusers_from_storage( repo_id_or_path, diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 368d581cd8..94e514a013 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -20,18 +20,37 @@ return a SDModelInfo object that contains the following attributes: Typical usage: from invokeai.backend import ModelManager - manager = ModelManager(config_path='./configs/models.yaml',max_models=4) + + manager = ModelManager( + config='./configs/models.yaml', + max_cache_size=8 + ) # gigabytes + model_info = manager.get_model('stable-diffusion-1.5') with model_info.context as my_model: my_model.latents_from_embeddings(...) The manager uses the underlying ModelCache class to keep frequently-used models in RAM and move them into GPU as needed for -generation operations. The ModelCache object can be accessed using -the manager's "cache" attribute. +generation operations. The optional `max_cache_size` argument +indicates the maximum size the cache can grow to, in gigabytes. The +underlying ModelCache object can be accessed using the manager's "cache" +attribute. -Other methods provided by ModelManager support importing, editing, -converting and deleting models. +Because the model manager can return multiple different types of +models, you may wish to add additional type checking on the class +of model returned. To do this, provide the option `model_type` +parameter: + + model_info = manager.get_model( + 'clip-tokenizer', + model_type=SDModelType.tokenizer + ) + +This will raise an InvalidModelError if the format defined in the +config file doesn't match the requested model type. + +MODELS.YAML The general format of a models.yaml section is: @@ -40,7 +59,6 @@ The general format of a models.yaml section is: repo_id: owner/repo path: /path/to/local/file/or/directory subfolder: subfolder-name - submodel: vae|text_encoder|tokenizer... The format is one of {diffusers, ckpt, vae, text_encoder, tokenizer, unet, scheduler, safety_checker, feature_extractor}, and correspond to @@ -54,11 +72,7 @@ If subfolder is provided, then the model exists in a subdirectory of the main model. These are usually named after the model type, such as "unet". -Finally, if submodel is provided, then the path/repo_id is treated as -a diffusers model, the whole thing is ready into memory, and then the -requested part (e.g. "unet") is retrieved. - -This summarizes the three ways of getting a non-diffuser model: +This example summarizes the two ways of getting a non-diffuser model: clip-test-1: format: text_encoder @@ -66,21 +80,48 @@ This summarizes the three ways of getting a non-diffuser model: description: Returns standalone CLIPTextModel clip-test-2: - format: diffusers - repo_id: stabilityai/stable-diffusion-2 - submodel: text_encoder - description: Returns the text_encoder part of whole diffusers model (whole thing in RAM) - - clip-test-3: format: text_encoder repo_id: stabilityai/stable-diffusion-2 subfolder: text_encoder description: Returns the text_encoder in the subfolder of the diffusers model (just the encoder in RAM) - clip-token: +SUBMODELS: + +It is also possible to fetch an isolated submodel from a diffusers +model. Use the `submodel` parameter to select which part: + + vae = manager.get_model('stable-diffusion-1.5',submodel=SDModelType.vae) + with vae.context as my_vae: + print(type(my_vae)) + # "AutoencoderKL" + +DISAMBIGUATION: + +You may wish to use the same name for a related family of models. To +do this, disambiguate the stanza key with the model and and format +separated by "/". Example: + + clip-large/tokenizer: format: tokenizer repo_id: openai/clip-vit-large-patch14 description: Returns standalone tokenizer + + clip-large/text_encoder: + format: text_encoder + repo_id: openai/clip-vit-large-patch14 + description: Returns standalone text encoder + +You can now use the `model_type` argument to indicate which model you +want: + + tokenizer = mgr.get('clip-large',model_type=SDModelType.tokenizer) + encoder = mgr.get('clip-large',model_type=SDModelType.text_encoder) + +OTHER FUNCTIONS: + +Other methods provided by ModelManager support importing, editing, +converting and deleting models. + """ from __future__ import annotations @@ -152,7 +193,7 @@ class ModelManager(object): def __init__( self, - config_path: Path, + config: Union[Path, DictConfig, str], device_type: torch.device = CUDA_DEVICE, precision: torch.dtype = torch.float16, max_cache_size=MAX_CACHE_SIZE, @@ -165,8 +206,15 @@ class ModelManager(object): and sequential_offload boolean. Note that the default device type and precision are set up for a CUDA system running at half precision. """ - self.config_path = config_path - self.config = OmegaConf.load(self.config_path) + if isinstance(config, DictConfig): + self.config = config + self.config_path = None + elif type(config) in [str,DictConfig]: + self.config_path = config + self.config = OmegaConf.load(self.config_path) + else: + raise ValueError('config argument must be an OmegaConf object, a Path or a string') + self.cache = ModelCache( max_cache_size=max_cache_size, execution_device = device_type, @@ -185,28 +233,64 @@ class ModelManager(object): return model_name in self.config def get_model(self, - model_name: str = None, + model_name: str, + model_type: SDModelType=None, submodel: SDModelType=None, ) -> SDModelInfo: """Given a model named identified in models.yaml, return an SDModelInfo object describing it. :param model_name: symbolic name of the model in models.yaml + :param model_type: SDModelType enum indicating the type of model to return :param submodel: an SDModelType enum indicating the portion of the model to retrieve (e.g. SDModelType.vae) + + If not provided, the model_type will be read from the `format` field + of the corresponding stanza. If provided, the model_type will be used + to disambiguate stanzas in the configuration file. The default is to + assume a diffusers pipeline. The behavior is illustrated here: + + [models.yaml] + test1/diffusers: + repo_id: foo/bar + format: diffusers + description: Typical diffusers pipeline + + test1/lora: + repo_id: /tmp/loras/test1.safetensors + format: lora + description: Typical lora file + + test1_pipeline = mgr.get_model('test1') + # returns a StableDiffusionGeneratorPipeline + + test1_vae1 = mgr.get_model('test1',submodel=SDModelType.vae) + # returns the VAE part of a diffusers model as an AutoencoderKL + + test1_vae2 = mgr.get_model('test1',model_type=SDModelType.diffusers,submodel=SDModelType.vae) + # does the same thing as the previous statement. Note that model_type + # is for the parent model, and submodel is for the part + + test1_lora = mgr.get_model('test1',model_type=SDModelType.lora) + # returns a LoRA embed (as a 'dict' of tensors) + + test1_encoder = mgr.get_modelI('test1',model_type=SDModelType.textencoder) + # raises an InvalidModelError + """ if not model_name: model_name = self.default_model() - if not self.valid_model(model_name): - raise InvalidModelError( - f'"{model_name}" is not a known model name. Please check your models.yaml file' - ) - + model_key = self._disambiguate_name(model_name, model_type) + # get the required loading info out of the config file - mconfig = self.config[model_name] + mconfig = self.config[model_key] format = mconfig.get('format','diffusers') - model_type = SDModelType.diffusion_pipeline + if model_type and model_type.name != format: + raise InvalidModelError( + f'Inconsistent model definition; {model_key} has format {format}, but type {model_type.name} was requested' + ) + model_parts = dict([(x.name,x) for x in SDModelType]) legacy = None @@ -219,16 +303,14 @@ class ModelManager(object): legacy.vae_file = global_resolve_path(mconfig.vae) elif format=='diffusers': location = mconfig.get('repo_id') or mconfig.get('path') - if sm := mconfig.get('submodel'): - submodel = model_parts[sm] elif format in model_parts: location = mconfig.get('repo_id') or mconfig.get('path') or mconfig.get('weights') - model_type = model_parts[format] else: raise InvalidModelError( - f'"{model_name}" has an unknown format {format}' + f'"{model_key}" has an unknown format {format}' ) - + + model_type = model_parts[format] subfolder = mconfig.get('subfolder') revision = mconfig.get('revision') hash = self.cache.model_hash(location,revision) @@ -254,7 +336,7 @@ class ModelManager(object): # in case we need to communicate information about this # model to the cache manager, then we need to remember # the cache key - self.cache_keys[model_name] = model_context.key + self.cache_keys[model_key] = model_context.key return SDModelInfo( context = model_context, @@ -449,18 +531,20 @@ class ModelManager(object): else: assert "weights" in model_attributes and "description" in model_attributes + model_key = f'{model_name}/{format}' + assert ( - clobber or model_name not in omega - ), f'attempt to overwrite existing model definition "{model_name}"' + clobber or model_key not in omega + ), f'attempt to overwrite existing model definition "{model_key}"' - omega[model_name] = model_attributes + omega[model_key] = model_attributes - if "weights" in omega[model_name]: - omega[model_name]["weights"].replace("\\", "/") + if "weights" in omega[model_key]: + omega[model_key]["weights"].replace("\\", "/") - if clobber and model_name in self.cache_keys: - self.cache.uncache_model(self.cache_keys[model_name]) - del self.cache_keys[model_name] + if clobber and model_key in self.cache_keys: + self.cache.uncache_model(self.cache_keys[model_key]) + del self.cache_keys[model_key] def import_diffuser_model( self, @@ -482,6 +566,7 @@ class ModelManager(object): models.yaml file. """ model_name = model_name or Path(repo_or_path).stem + model_key = f'{model_name}/diffusers' model_description = description or f"Imported diffusers model {model_name}" new_config = dict( description=model_description, @@ -493,10 +578,10 @@ class ModelManager(object): else: new_config.update(repo_id=repo_or_path) - self.add_model(model_name, new_config, True) + self.add_model(model_key, new_config, True) if commit_to_conf: self.commit(commit_to_conf) - return model_name + return model_key def import_lora( self, @@ -511,7 +596,7 @@ class ModelManager(object): path = Path(path) model_name = model_name or path.stem model_description = description or f"LoRA model {model_name}" - self.add_model(model_name, + self.add_model(f'{model_name}/{SDModelType.lora.name}', dict( format="lora", weights=str(path), @@ -538,7 +623,7 @@ class ModelManager(object): model_name = model_name or path.stem model_description = description or f"Textual embedding model {model_name}" - self.add_model(model_name, + self.add_model(f'{model_name}/{SDModelType.textual_inversion.name}', dict( format="textual_inversion", weights=str(weights), @@ -871,6 +956,7 @@ class ModelManager(object): """ yaml_str = OmegaConf.to_yaml(self.config) config_file_path = conf_file or self.config_path + assert config_file_path is not None,'no config file path to write to' tmpfile = os.path.join(os.path.dirname(config_file_path), "new_config.tmp") with open(tmpfile, "w", encoding="utf-8") as outfile: outfile.write(self.preamble()) @@ -893,6 +979,18 @@ class ModelManager(object): """ ) + def _disambiguate_name(self, model_name:str, model_type:SDModelType)->str: + model_type = model_type or SDModelType.diffusers + full_name = f"{model_name}/{model_type.name}" + if self.valid_model(full_name): + return full_name + if self.valid_model(model_name): + return model_name + raise InvalidModelError( + f'Neither "{model_name}" nor "{full_name}" are known model names. Please check your models.yaml file' + ) + + @classmethod def _delete_model_from_cache(cls,repo_id): cache_info = scan_cache_dir(global_cache_dir("hub")) diff --git a/tests/test_model_cache.py b/tests/test_model_cache.py index 25c61d192d..6510f7ac1f 100644 --- a/tests/test_model_cache.py +++ b/tests/test_model_cache.py @@ -40,7 +40,7 @@ class DMType(Enum): type1 = DummyModelType1 type2 = DummyModelType2 -cache = ModelCache(max_models=4) +cache = ModelCache(max_cache_size=4) def test_pipeline_fetch(): assert cache.cache_size()==0 @@ -53,12 +53,10 @@ def test_pipeline_fetch(): assert type(pipeline1)==DMType.dummy_pipeline.value,'get_model() did not return model of expected type' assert pipeline1==pipeline1a,'pipelines with the same repo_id should be the same' assert pipeline1!=pipeline2,'pipelines with different repo_ids should not be the same' - assert cache.cache_size()==2,'cache should uniquely cache models with same identity' + assert len(cache.models)==2,'cache should uniquely cache models with same identity' with cache.get_model('dummy/pipeline3',DMType.dummy_pipeline) as pipeline3,\ cache.get_model('dummy/pipeline4',DMType.dummy_pipeline) as pipeline4: - assert cache.cache_size()==4,'cache did not grow as expected' - with cache.get_model('dummy/pipeline5',DMType.dummy_pipeline) as pipeline5: - assert cache.cache_size()==4,'cache did not free space as expected' + assert len(cache.models)==4,'cache did not grow as expected' def test_signatures(): with cache.get_model('dummy/pipeline',DMType.dummy_pipeline,revision='main') as pipeline1,\ From a10815554480ba9f266c1c97722b623291d06bf7 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Mon, 8 May 2023 21:47:03 -0400 Subject: [PATCH 015/225] added StALKeR779's great model size calculating routine --- .../backend/model_management/model_cache.py | 72 +++++++++++++------ 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 04af1f43f3..173fd87623 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -21,15 +21,14 @@ import gc import hashlib import warnings from collections import Counter -from enum import Enum,auto +from enum import Enum from pathlib import Path -from psutil import Process from typing import Dict, Sequence, Union, Tuple, types import torch import safetensors.torch -from diffusers import StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel +from diffusers import DiffusionPipeline, StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel from diffusers import logging as diffusers_logging from diffusers.pipelines.stable_diffusion.safety_checker import \ StableDiffusionSafetyChecker @@ -84,7 +83,7 @@ class ModelStatus(Enum): # After loading, we will know it exactly. # Sizes are in Gigs, estimated for float16; double for float32 SIZE_GUESSTIMATE = { - SDModelType.diffusers: 2.5, + SDModelType.diffusers: 2.2, SDModelType.vae: 0.35, SDModelType.text_encoder: 0.5, SDModelType.tokenizer: 0.001, @@ -255,17 +254,18 @@ class ModelCache(object): # clean memory to make MemoryUsage() more accurate gc.collect() - with MemoryUsage() as usage: - model = self._load_model_from_storage( - repo_id_or_path=repo_id_or_path, - model_class=model_type.value, - subfolder=subfolder, - revision=revision, - legacy_info=legacy_info, - ) - logger.debug(f'Actual memory used to load model: {(usage.mem_used/GIG):.2f} GB') - self.model_sizes[key] = usage.mem_used # remember size of this model for cache cleansing - self.current_cache_size += usage.mem_used # increment size of the cache + model = self._load_model_from_storage( + repo_id_or_path=repo_id_or_path, + model_class=model_type.value, + subfolder=subfolder, + revision=revision, + legacy_info=legacy_info, + ) + + if mem_used := self.calc_model_size(model): + logger.debug(f'CPU RAM used for load: {(mem_used/GIG):.2f} GB') + self.model_sizes[key] = mem_used # remember size of this model for cache cleansing + self.current_cache_size += mem_used # increment size of the cache # this is a bit of legacy work needed to support the old-style "load this diffuser with custom VAE" if model_type==SDModelType.diffusers and attach_model_part[0]: @@ -308,7 +308,10 @@ class ModelCache(object): cache._offload_unlocked_models() if model.device != cache.execution_device: cache.logger.debug(f'Moving {key} into {cache.execution_device}') - model.to(cache.execution_device) # move into GPU + with VRAMUsage() as mem: + model.to(cache.execution_device) # move into GPU + cache.logger.debug(f'GPU VRAM used for load: {(mem.vram_used/GIG):.2f} GB') + cache.model_sizes[key] = mem.vram_used # more accurate size cache.logger.debug(f'Locking {key} in {cache.execution_device}') cache._print_cuda_stats() else: @@ -479,8 +482,9 @@ class ModelCache(object): ''' # silence transformer and diffuser warnings with SilenceWarnings(): + # !!! NOTE: conversion should not happen here, but in ModelManager if self.is_legacy_ckpt(repo_id_or_path): - model = model_class(self._load_ckpt_from_storage(repo_id_or_path, legacy_info)) + model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) else: model = self._load_diffusers_from_storage( repo_id_or_path, @@ -608,6 +612,30 @@ class ModelCache(object): raise KeyError(f"Revision '{revision}' not found in {repo_id}") return desired_revisions[0].target_commit + @staticmethod + def calc_model_size(model)->int: + if isinstance(model,DiffusionPipeline): + return ModelCache._calc_pipeline(model) + elif isinstance(model,torch.nn.Module): + return ModelCache._calc_model(model) + else: + return None + + @staticmethod + def _calc_pipeline(pipeline)->int: + res = 0 + for submodel_key in pipeline.components.keys(): + submodel = getattr(pipeline, submodel_key) + if submodel is not None and isinstance(submodel, torch.nn.Module): + res += ModelCache._calc_model(submodel) + return res + + @staticmethod + def _calc_model(model)->int: + mem_params = sum([param.nelement()*param.element_size() for param in model.parameters()]) + mem_bufs = sum([buf.nelement()*buf.element_size() for buf in model.buffers()]) + mem = mem_params + mem_bufs # in bytes + return mem class SilenceWarnings(object): def __init__(self): @@ -624,14 +652,14 @@ class SilenceWarnings(object): diffusers_logging.set_verbosity(self.diffusers_verbosity) warnings.simplefilter('default') -class MemoryUsage(object): +class VRAMUsage(object): def __init__(self): - self.vms = None - self.mem_used = 0 + self.vram = None + self.vram_used = 0 def __enter__(self): - self.vms = Process().memory_info().vms + self.vram = torch.cuda.memory_allocated() return self def __exit__(self, *args): - self.mem_used = Process().memory_info().vms - self.vms + self.vram_used = torch.cuda.memory_allocated() - self.vram From 9cb962cad7fedcbfcb138fa4d7c2420b0ce1b037 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Mon, 8 May 2023 23:39:44 -0400 Subject: [PATCH 016/225] ckpt model conversion now done in ModelCache --- invokeai/backend/generate.py | 6 +- invokeai/backend/globals.py | 2 + .../backend/model_management/model_cache.py | 34 ++-- .../backend/model_management/model_manager.py | 147 ++++++++++++++---- invokeai/frontend/CLI/CLI.py | 6 +- 5 files changed, 134 insertions(+), 61 deletions(-) diff --git a/invokeai/backend/generate.py b/invokeai/backend/generate.py index c7e2558db1..8cddc1496b 100644 --- a/invokeai/backend/generate.py +++ b/invokeai/backend/generate.py @@ -150,7 +150,7 @@ class Generate: esrgan=None, free_gpu_mem: bool = False, safety_checker: bool = False, - max_loaded_models: int = 2, + max_cache_size: int = 6, # these are deprecated; if present they override values in the conf file weights=None, config=None, @@ -183,7 +183,7 @@ class Generate: self.codeformer = codeformer self.esrgan = esrgan self.free_gpu_mem = free_gpu_mem - self.max_loaded_models = (max_loaded_models,) + self.max_cache_size = max_cache_size self.size_matters = True # used to warn once about large image sizes and VRAM self.txt2mask = None self.safety_checker = None @@ -220,7 +220,7 @@ class Generate: conf, self.device, torch_dtype(self.device), - max_loaded_models=max_loaded_models, + max_cache_size=max_cache_size, sequential_offload=self.free_gpu_mem, # embedding_path=Path(self.embedding_path), ) diff --git a/invokeai/backend/globals.py b/invokeai/backend/globals.py index 37a59b1135..5106ddb67d 100644 --- a/invokeai/backend/globals.py +++ b/invokeai/backend/globals.py @@ -94,6 +94,8 @@ def global_set_root(root_dir: Union[str, Path]): Globals.root = root_dir def global_resolve_path(path: Union[str,Path]): + if path is None: + return None return Path(Globals.root,path).resolve() def global_cache_dir(subdir: Union[str, Path] = "") -> Path: diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 173fd87623..b8f44f82ec 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -361,9 +361,10 @@ class ModelCache(object): )->ModelStatus: key = self._model_key( repo_id_or_path, - model_type.value, revision, - subfolder) + subfolder, + model_type.value, + ) if key not in self.models: return ModelStatus.not_loaded if key in self.loaded_models: @@ -384,9 +385,7 @@ class ModelCache(object): :param revision: optional revision string (if fetching a HF repo_id) ''' revision = revision or "main" - if self.is_legacy_ckpt(repo_id_or_path): - return self._legacy_model_hash(repo_id_or_path) - elif Path(repo_id_or_path).is_dir(): + if Path(repo_id_or_path).is_dir(): return self._local_model_hash(repo_id_or_path) else: return self._hf_commit_hash(repo_id_or_path,revision) @@ -395,15 +394,6 @@ class ModelCache(object): "Return the current size of the cache, in GB" return self.current_cache_size / GIG - @classmethod - def is_legacy_ckpt(cls, repo_id_or_path: Union[str,Path])->bool: - ''' - Return true if the indicated path is a legacy checkpoint - :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model - ''' - path = Path(repo_id_or_path) - return path.suffix in [".ckpt",".safetensors",".pt"] - @classmethod def scan_model(cls, model_name, checkpoint): """ @@ -482,16 +472,12 @@ class ModelCache(object): ''' # silence transformer and diffuser warnings with SilenceWarnings(): - # !!! NOTE: conversion should not happen here, but in ModelManager - if self.is_legacy_ckpt(repo_id_or_path): - model = self._load_ckpt_from_storage(repo_id_or_path, legacy_info) - else: - model = self._load_diffusers_from_storage( - repo_id_or_path, - subfolder, - revision, - model_class, - ) + model = self._load_diffusers_from_storage( + repo_id_or_path, + subfolder, + revision, + model_class, + ) if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): model.enable_offload_submodels(self.execution_device) return model diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 94e514a013..4c0b1b3ad9 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -143,7 +143,7 @@ from omegaconf import OmegaConf from omegaconf.dictconfig import DictConfig from invokeai.backend.globals import Globals, global_cache_dir, global_resolve_path -from .model_cache import ModelCache, ModelLocker, SDModelType, ModelStatus, LegacyInfo +from .model_cache import ModelCache, ModelLocker, SDModelType, ModelStatus, SilenceWarnings from ..util import CUDA_DEVICE @@ -225,12 +225,16 @@ class ModelManager(object): self.cache_keys = dict() self.logger = logger - def valid_model(self, model_name: str) -> bool: + def valid_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> bool: """ Given a model name, returns True if it is a valid identifier. """ - return model_name in self.config + try: + self._disambiguate_name(model_name, model_type) + return True + except InvalidModelError: + return False def get_model(self, model_name: str, @@ -294,17 +298,17 @@ class ModelManager(object): model_parts = dict([(x.name,x) for x in SDModelType]) legacy = None - if format=='ckpt': - location = global_resolve_path(mconfig.weights) - legacy = LegacyInfo( - config_file = global_resolve_path(mconfig.config), - ) - if mconfig.get('vae'): - legacy.vae_file = global_resolve_path(mconfig.vae) - elif format=='diffusers': - location = mconfig.get('repo_id') or mconfig.get('path') + if format == 'diffusers': + # intercept stanzas that point to checkpoint weights and replace them + # with the equivalent diffusers model + if 'weights' in mconfig: + location = self.convert_ckpt_and_cache(mconfig) + else: + location = global_resolve_path(mconfig.get('path')) or mconfig.get('repo_id') elif format in model_parts: - location = mconfig.get('repo_id') or mconfig.get('path') or mconfig.get('weights') + location = global_resolve_path(mconfig.get('path')) \ + or mconfig.get('repo_id') \ + or global_resolve_path(mconfig.get('weights')) else: raise InvalidModelError( f'"{model_key}" has an unknown format {format}' @@ -531,7 +535,7 @@ class ModelManager(object): else: assert "weights" in model_attributes and "description" in model_attributes - model_key = f'{model_name}/{format}' + model_key = f'{model_name}/{model_attributes["format"]}' assert ( clobber or model_key not in omega @@ -776,7 +780,7 @@ class ModelManager(object): # another round of heuristics to guess the correct config file. checkpoint = None if model_path.suffix in [".ckpt", ".pt"]: - self.scan_model(model_path, model_path) + self.cache.scan_model(model_path, model_path) checkpoint = torch.load(model_path) else: checkpoint = safetensors.torch.load_file(model_path) @@ -840,19 +844,86 @@ class ModelManager(object): diffuser_path = Path( Globals.root, "models", Globals.converted_ckpts_dir, model_path.stem ) - model_name = self.convert_and_import( - model_path, - diffusers_path=diffuser_path, - vae=vae, - vae_path=str(vae_path), - model_name=model_name, - model_description=description, - original_config_file=model_config_file, - commit_to_conf=commit_to_conf, - scan_needed=False, - ) + with SilenceWarnings(): + model_name = self.convert_and_import( + model_path, + diffusers_path=diffuser_path, + vae=vae, + vae_path=str(vae_path), + model_name=model_name, + model_description=description, + original_config_file=model_config_file, + commit_to_conf=commit_to_conf, + scan_needed=False, + ) return model_name + def convert_ckpt_and_cache(self, mconfig:DictConfig)->Path: + """ + Convert the checkpoint model indicated in mconfig into a + diffusers, cache it to disk, and return Path to converted + file. If already on disk then just returns Path. + """ + weights = global_resolve_path(mconfig.weights) + config_file = global_resolve_path(mconfig.config) + diffusers_path = global_resolve_path(Path('models',Globals.converted_ckpts_dir)) / weights.stem + + # return cached version if it exists + if diffusers_path.exists(): + return diffusers_path + + vae_ckpt_path, vae_model = self._get_vae_for_conversion(weights, mconfig) + # to avoid circular import errors + from .convert_ckpt_to_diffusers import convert_ckpt_to_diffusers + with SilenceWarnings(): + convert_ckpt_to_diffusers( + weights, + diffusers_path, + extract_ema=True, + original_config_file=config_file, + vae=vae_model, + vae_path=str(global_resolve_path(vae_ckpt_path)), + scan_needed=True, + ) + return diffusers_path + + def _get_vae_for_conversion(self, + weights: Path, + mconfig: DictConfig + )->tuple(Path,SDModelType.vae): + # VAE handling is convoluted + # 1. If there is a .vae.ckpt file sharing same stem as weights, then use + # it as the vae_path passed to convert + vae_ckpt_path = None + vae_diffusers_location = None + vae_model = None + for suffix in ["pt", "ckpt", "safetensors"]: + if (weights.with_suffix(f".vae.{suffix}")).exists(): + vae_ckpt_path = weights.with_suffix(f".vae.{suffix}") + self.logger.debug(f"Using VAE file {vae_ckpt_path.name}") + if vae_ckpt_path: + return (vae_ckpt_path, None) + + # 2. If mconfig has a vae weights path, then we use that as vae_path + vae_config = mconfig.get('vae') + if vae_config and isinstance(vae_config,str): + vae_ckpt_path = vae_config + return (vae_ckpt_path, None) + + # 3. If mconfig has a vae dict, then we use it as the diffusers-style vae + if vae_config and isinstance(vae_config,DictConfig): + vae_diffusers_location = global_resolve_path(vae_config.get('path')) or vae_config.get('repo_id') + + # 4. Otherwise, we use stabilityai/sd-vae-ft-mse "because it works" + else: + vae_diffusers_location = "stabilityai/sd-vae-ft-mse" + + if vae_diffusers_location: + vae_model = self.cache.get_model(vae_diffusers_location, SDModelType.vae).model + return (None, vae_model) + + return (None, None) + def convert_and_import( self, ckpt_path: Path, @@ -895,7 +966,8 @@ class ModelManager(object): # will be built into the model rather than tacked on afterward via the config file vae_model = None if vae: - vae_model = self._load_vae(vae) + vae_location = global_resolve_path(vae.get('path')) or vae.get('repo_id') + vae_model = self.cache.get_model(vae_location,SDModelType.vae).model vae_path = None convert_ckpt_to_diffusers( ckpt_path, @@ -982,9 +1054,9 @@ class ModelManager(object): def _disambiguate_name(self, model_name:str, model_type:SDModelType)->str: model_type = model_type or SDModelType.diffusers full_name = f"{model_name}/{model_type.name}" - if self.valid_model(full_name): + if full_name in self.config: return full_name - if self.valid_model(model_name): + if model_name in self.config: return model_name raise InvalidModelError( f'Neither "{model_name}" nor "{full_name}" are known model names. Please check your models.yaml file' @@ -1014,3 +1086,20 @@ class ModelManager(object): return path return Path(Globals.root, path).resolve() + # This is not the same as global_resolve_path(), which prepends + # Globals.root. + def _resolve_path( + self, source: Union[str, Path], dest_directory: str + ) -> Optional[Path]: + resolved_path = None + if str(source).startswith(("http:", "https:", "ftp:")): + dest_directory = Path(dest_directory) + if not dest_directory.is_absolute(): + dest_directory = Globals.root / dest_directory + dest_directory.mkdir(parents=True, exist_ok=True) + resolved_path = download_with_resume(str(source), dest_directory) + else: + if not os.path.isabs(source): + source = os.path.join(Globals.root, source) + resolved_path = Path(source) + return resolved_path diff --git a/invokeai/frontend/CLI/CLI.py b/invokeai/frontend/CLI/CLI.py index 0c984080a6..8525853e93 100644 --- a/invokeai/frontend/CLI/CLI.py +++ b/invokeai/frontend/CLI/CLI.py @@ -54,10 +54,6 @@ def main(): "--weights argument has been deprecated. Please edit ./configs/models.yaml, and select the weights using --model instead." ) sys.exit(-1) - if args.max_loaded_models is not None: - if args.max_loaded_models <= 0: - print("--max_loaded_models must be >= 1; using 1") - args.max_loaded_models = 1 # alert - setting a few globals here Globals.try_patchmatch = args.patchmatch @@ -136,7 +132,7 @@ def main(): esrgan=esrgan, free_gpu_mem=opt.free_gpu_mem, safety_checker=opt.safety_checker, - max_loaded_models=opt.max_loaded_models, + max_cache_size=opt.max_cache_size, ) except (FileNotFoundError, TypeError, AssertionError) as e: report_model_error(opt, e) From 3d85e769ce8c41cf84f51a07745a2cc76ebfc3d3 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Tue, 9 May 2023 22:44:58 -0400 Subject: [PATCH 017/225] clean up ckpt handling - remove legacy ckpt loading code from model_cache - added placeholders for lora and textual inversion model loading --- .../backend/model_management/model_cache.py | 72 ++++++------------- .../backend/model_management/model_manager.py | 2 - 2 files changed, 22 insertions(+), 52 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index b8f44f82ec..64f95699c9 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -54,8 +54,6 @@ class LoraType(dict): pass class TIType(dict): pass -class CkptType(dict): - pass class SDModelType(Enum): diffusers=StableDiffusionGeneratorPipeline # whole pipeline @@ -70,7 +68,6 @@ class SDModelType(Enum): # distinguish them by class lora=LoraType textual_inversion=TIType - ckpt=CkptType class ModelStatus(Enum): unknown='unknown' @@ -93,18 +90,12 @@ SIZE_GUESSTIMATE = { SDModelType.feature_extractor: 0.001, SDModelType.lora: 0.1, SDModelType.textual_inversion: 0.001, - SDModelType.ckpt: 4.2, } # The list of model classes we know how to fetch, for typechecking ModelClass = Union[tuple([x.value for x in SDModelType])] DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel) -# Legacy information needed to load a legacy checkpoint file -class LegacyInfo(BaseModel): - config_file: Path - vae_file: Path = None - class UnsafeModelException(Exception): "Raised when a legacy model file fails the picklescan test" pass @@ -160,7 +151,6 @@ class ModelCache(object): subfolder: Path=None, submodel: SDModelType=None, revision: str=None, - legacy_info: LegacyInfo=None, attach_model_part: Tuple[SDModelType, str] = (None,None), gpu_load: bool=True, )->ModelLocker: # ?? what does it return @@ -210,13 +200,12 @@ class ModelCache(object): The model will be locked into GPU VRAM for the duration of the context. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model + :param model_type: An SDModelType enum indicating the type of the (parent) model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae :param attach_model_part: load and attach a diffusers model component. Pass a tuple of format (SDModelType,repo_id) :param revision: model revision - :param model_class: class of model to return :param gpu_load: load the model into GPU [default True] - :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt ''' key = self._model_key( # internal unique identifier for the model repo_id_or_path, @@ -256,10 +245,9 @@ class ModelCache(object): gc.collect() model = self._load_model_from_storage( repo_id_or_path=repo_id_or_path, - model_class=model_type.value, + model_type=model_type, subfolder=subfolder, revision=revision, - legacy_info=legacy_info, ) if mem_used := self.calc_model_size(model): @@ -459,27 +447,30 @@ class ModelCache(object): repo_id_or_path: Union[str,Path], subfolder: Path=None, revision: str=None, - model_class: ModelClass=StableDiffusionGeneratorPipeline, - legacy_info: LegacyInfo=None, + model_type: SDModelType=SDModelType.diffusers, )->ModelClass: ''' Load and return a HuggingFace model. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param revision: model revision - :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline - :param legacy_info: a LegacyInfo object containing additional info needed to load a legacy ckpt + :param model_type: type of model to return, defaults to SDModelType.diffusers ''' # silence transformer and diffuser warnings with SilenceWarnings(): - model = self._load_diffusers_from_storage( - repo_id_or_path, - subfolder, - revision, - model_class, - ) - if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): - model.enable_offload_submodels(self.execution_device) + if model_type==SDModelType.lora: + model = self._load_lora_from_storage(repo_id_or_path) + elif model_type==SDModelType.textual_inversion: + model = self._load_ti_from_storage(repo_id_or_path) + else: + model = self._load_diffusers_from_storage( + repo_id_or_path, + subfolder, + revision, + model_type.value, + ) + if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): + model.enable_offload_submodels(self.execution_device) return model def _load_diffusers_from_storage( @@ -519,30 +510,11 @@ class ModelCache(object): pass return model - def _load_ckpt_from_storage(self, - ckpt_path: Union[str,Path], - legacy_info:LegacyInfo)->StableDiffusionGeneratorPipeline: - ''' - Load a legacy checkpoint, convert it, and return a StableDiffusionGeneratorPipeline. - :param ckpt_path: string or Path pointing to the weights file (.ckpt or .safetensors) - :param legacy_info: LegacyInfo object containing paths to legacy config file and alternate vae if required - ''' - if legacy_info is None or legacy_info.config_file is None: - if Path(ckpt_path).suffix == '.safetensors': - return safetensors.torch.load_file(ckpt_path) - else: - return torch.load(ckpt_path) - else: - # deferred loading to avoid circular import errors - from .convert_ckpt_to_diffusers import load_pipeline_from_original_stable_diffusion_ckpt - pipeline = load_pipeline_from_original_stable_diffusion_ckpt( - checkpoint_path=ckpt_path, - original_config_file=legacy_info.config_file, - vae_path=legacy_info.vae_file, - return_generator_pipeline=True, - precision=self.precision, - ) - return pipeline + def _load_lora_from_storage(self, lora_path: Path)->SDModelType.lora.value: + assert False,"_load_lora_from_storage() is not yet implemented" + + def _load_ti_from_storage(self, lora_path: Path)->SDModelType.textual_inversion.value: + assert False,"_load_ti_from_storage() is not yet implemented" def _legacy_model_hash(self, checkpoint_path: Union[str,Path])->str: sha = hashlib.sha256() diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 4c0b1b3ad9..0905d5bf40 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -296,7 +296,6 @@ class ModelManager(object): ) model_parts = dict([(x.name,x) for x in SDModelType]) - legacy = None if format == 'diffusers': # intercept stanzas that point to checkpoint weights and replace them @@ -332,7 +331,6 @@ class ModelManager(object): model_type = model_type, revision = revision, subfolder = subfolder, - legacy_info = legacy, submodel = submodel, attach_model_part=vae, ) From 99c692f39704b642914731062a14e7807d0025e2 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Tue, 9 May 2023 23:46:59 -0400 Subject: [PATCH 018/225] check that model name matches format --- invokeai/backend/model_management/model_cache.py | 7 +++++++ invokeai/backend/model_management/model_manager.py | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 64f95699c9..08aa2f3044 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -289,19 +289,26 @@ class ModelCache(object): cache = self.cache key = self.key model = self.model + + # NOTE that the model has to have the to() method in order for this + # code to move it into GPU! if self.gpu_load and hasattr(model,'to'): cache.loaded_models.add(key) cache.locked_models[key] += 1 + if cache.lazy_offloading: cache._offload_unlocked_models() + if model.device != cache.execution_device: cache.logger.debug(f'Moving {key} into {cache.execution_device}') with VRAMUsage() as mem: model.to(cache.execution_device) # move into GPU cache.logger.debug(f'GPU VRAM used for load: {(mem.vram_used/GIG):.2f} GB') cache.model_sizes[key] = mem.vram_used # more accurate size + cache.logger.debug(f'Locking {key} in {cache.execution_device}') cache._print_cuda_stats() + else: # in the event that the caller wants the model in RAM, we # move it into CPU if it is in GPU and not locked diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 0905d5bf40..f4093ab116 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -1054,10 +1054,13 @@ class ModelManager(object): full_name = f"{model_name}/{model_type.name}" if full_name in self.config: return full_name - if model_name in self.config: + # special case - if diffusers requested, then allow name without type appended + if model_type==SDModelType.diffusers \ + and model_name in self.config \ + and self.config[model_name].format=='diffusers': return model_name raise InvalidModelError( - f'Neither "{model_name}" nor "{full_name}" are known model names. Please check your models.yaml file' + f'"{full_name}" is not a known model name. Please check your models.yaml file' ) From 4627910c5dfdbc9b10feae523a1b0f17f48d8dbf Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Thu, 11 May 2023 00:09:19 -0400 Subject: [PATCH 019/225] added a wrapper model_manager_service and model events --- invokeai/app/invocations/compel.py | 2 +- invokeai/app/services/events.py | 44 +- invokeai/app/services/model_manager.py | 34 +- .../app/services/model_manager_initializer.py | 8 +- .../app/services/model_manager_service.py | 412 ++++++++++++++++++ .../backend/model_management/model_manager.py | 3 +- 6 files changed, 495 insertions(+), 8 deletions(-) create mode 100644 invokeai/app/services/model_manager_service.py diff --git a/invokeai/app/invocations/compel.py b/invokeai/app/invocations/compel.py index 1fb7832031..e251ff8226 100644 --- a/invokeai/app/invocations/compel.py +++ b/invokeai/app/invocations/compel.py @@ -59,7 +59,7 @@ class CompelInvocation(BaseInvocation): # TODO: load without model model = choose_model(context.services.model_manager, self.model) - pipeline = model["model"] + pipeline = model.context.model tokenizer = pipeline.tokenizer text_encoder = pipeline.text_encoder diff --git a/invokeai/app/services/events.py b/invokeai/app/services/events.py index 5f26c42c17..a25549dfc5 100644 --- a/invokeai/app/services/events.py +++ b/invokeai/app/services/events.py @@ -3,7 +3,7 @@ from typing import Any from invokeai.app.api.models.images import ProgressImage from invokeai.app.util.misc import get_timestamp - +from invokeai.app.services.model_manager_service import SDModelType, SDModelInfo class EventServiceBase: session_event: str = "session_event" @@ -101,3 +101,45 @@ class EventServiceBase: graph_execution_state_id=graph_execution_state_id, ), ) + + def emit_model_load_started ( + self, + graph_execution_state_id: str, + node: dict, + source_node_id: str, + model_name: str, + submodel: SDModelType, + ) -> None: + """Emitted when a model is requested""" + self.__emit_session_event( + event_name="model_load_started", + payload=dict( + graph_execution_state_id=graph_execution_state_id, + node=node, + source_node_id=source_node_id, + model_name=str, + submodel=submodel, + ), + ) + + def emit_model_load_completed ( + self, + graph_execution_state_id: str, + node: dict, + source_node_id: str, + model_name: str, + submodel: SDModelType, + model_info: SDModelInfo, + ) -> None: + """Emitted when a model is correctly loaded (returns model info)""" + self.__emit_session_event( + event_name="model_load_started", + payload=dict( + graph_execution_state_id=graph_execution_state_id, + node=node, + source_node_id=source_node_id, + model_name=str, + submodel=submodel, + model_info=model_info, + ), + ) diff --git a/invokeai/app/services/model_manager.py b/invokeai/app/services/model_manager.py index 044310fccb..e28a37db99 100644 --- a/invokeai/app/services/model_manager.py +++ b/invokeai/app/services/model_manager.py @@ -6,7 +6,7 @@ from typing import Union, Callable from invokeai.backend import ModelManager, SDModelType, SDModelInfo -class ModelManagerBase(ABC): +class ModelManagerServiceBase(ABC): """Responsible for managing models on disk and in memory""" @abstractmethod @@ -177,3 +177,35 @@ class ModelManagerBase(ABC): original file/database used to initialize the object. """ pass + + # simple implementation + class ModelManagerService(ModelManagerServiceBase): + """Responsible for managing models on disk and in memory""" + def __init__( + self, + config: Union[Path, DictConfig, str], + device_type: torch.device = CUDA_DEVICE, + precision: torch.dtype = torch.float16, + max_cache_size=MAX_CACHE_SIZE, + sequential_offload=False, + logger: types.ModuleType = logger, + ): + """ + Initialize with the path to the models.yaml config file. + Optional parameters are the torch device type, precision, max_models, + and sequential_offload boolean. Note that the default device + type and precision are set up for a CUDA system running at half precision. + """ + self.mgr = ModelManager(config=config, + device_type=device_type, + precision=precision, + max_cache_size=max_cache_size, + sequential_offload=sequential_offload, + logger=logger + ) + + def get(self, model_name: str, submodel: SDModelType=None)->SDModelInfo: + """Retrieve the indicated model. submodel can be used to get a + part (such as the vae) of a diffusers mode.""" + self.mgr.get_model( + diff --git a/invokeai/app/services/model_manager_initializer.py b/invokeai/app/services/model_manager_initializer.py index 3c0d9dbef6..6645c50f15 100644 --- a/invokeai/app/services/model_manager_initializer.py +++ b/invokeai/app/services/model_manager_initializer.py @@ -8,12 +8,12 @@ from pathlib import Path from typing import types import invokeai.version -from ...backend import ModelManager +from .model_manager_service import ModelManagerService from ...backend.util import choose_precision, choose_torch_device from ...backend import Globals -# TODO: Replace with an abstract class base ModelManagerBase -def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManager: +# temporary function - should call ModelManagerService() directly +def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManagerService: if not config.conf: config_file = os.path.join(Globals.root, "configs", "models.yaml") if not os.path.exists(config_file): @@ -59,7 +59,7 @@ def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManager: if hasattr(config,'max_cache_size') \ else config.max_loaded_models * 2.5 - model_manager = ModelManager( + model_manager = ModelManagerService( config.conf, precision=dtype, device_type=device, diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py new file mode 100644 index 0000000000..b3f13bc7dd --- /dev/null +++ b/invokeai/app/services/model_manager_service.py @@ -0,0 +1,412 @@ +# Copyright (c) 2023 Lincoln D. Stein and the InvokeAI Team + + +from abc import ABC, abstractmethod +from pathlib import Path +from typing import Union, Callable + +from invokeai.backend.util import CUDA_DEVICE +from invokeai.backend.model_management.model_manager import ( + ModelManager, + SDModelType, + SDModelInfo, + DictConfig, + MAX_CACHE_SIZE, + types, + torch, + logger, +) + +class ModelManagerServiceBase(ABC): + """Responsible for managing models on disk and in memory""" + + @abstractmethod + def get_model(self, + model_name: str, + model_type: SDModelType=SDModelType.diffusers, + submodel: SDModelType=None + )->SDModelInfo: + """Retrieve the indicated model with name and type. + submodel can be used to get a part (such as the vae) + of a diffusers pipeline.""" + pass + + @property + @abstractmethod + def logger(self): + pass + + @abstractmethod + def valid_model(self, model_name: str) -> bool: + """ + Given a model name, returns True if it is a valid + identifier. + """ + pass + + @abstractmethod + def default_model(self) -> Union[str,None]: + """ + Returns the name of the default model, or None + if none is defined. + """ + pass + + @abstractmethod + def set_default_model(self, model_name:str): + """Sets the default model to the indicated name.""" + pass + + @abstractmethod + def model_info(self, model_name: str)->dict: + """ + Given a model name returns a dict-like (OmegaConf) object describing it. + """ + pass + + @abstractmethod + def model_names(self)->list[str]: + """ + Returns a list of all the model names known. + """ + pass + + @abstractmethod + def list_models(self)->dict: + """ + Return a dict of models in the format: + { model_name1: {'status': ('active'|'cached'|'not loaded'), + 'description': description, + 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), + }, + model_name2: { etc } + """ + pass + + + @abstractmethod + def add_model( + self, model_name: str, model_attributes: dict, clobber: bool = False)->None: + """ + Update the named model with a dictionary of attributes. Will fail with an + assertion error if the name already exists. Pass clobber=True to overwrite. + On a successful update, the config will be changed in memory. Will fail + with an assertion error if provided attributes are incorrect or + the model name is missing. Call commit() to write changes to disk. + """ + pass + + @abstractmethod + def del_model(self, + model_name: str, + model_type: SDModelType=SDModelType.diffusers, + delete_files: bool = False): + """ + Delete the named model from configuration. If delete_files is true, + then the underlying weight file or diffusers directory will be deleted + as well. Call commit() to write to disk. + """ + pass + + @abstractmethod + def import_diffuser_model( + repo_or_path: Union[str, Path], + model_name: str = None, + description: str = None, + vae: dict = None, + ) -> bool: + """ + Install the indicated diffuser model and returns True if successful. + + "repo_or_path" can be either a repo-id or a path-like object corresponding to the + top of a downloaded diffusers directory. + + You can optionally provide a model name and/or description. If not provided, + then these will be derived from the repo name. Call commit() to write to disk. + """ + pass + + @abstractmethod + def import_lora( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated lora file. Call + mgr.commit() to write out the configuration to models.yaml + """ + pass + + @abstractmethod + def import_embedding( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated textual inversion embedding file. + Call commit() to write out the configuration to models.yaml + """ + pass + + @abstractmethod + def heuristic_import( + self, + path_url_or_repo: str, + model_name: str = None, + description: str = None, + model_config_file: Path = None, + commit_to_conf: Path = None, + config_file_callback: Callable[[Path], Path] = None, + ) -> str: + """Accept a string which could be: + - a HF diffusers repo_id + - a URL pointing to a legacy .ckpt or .safetensors file + - a local path pointing to a legacy .ckpt or .safetensors file + - a local directory containing .ckpt and .safetensors files + - a local directory containing a diffusers model + + After determining the nature of the model and downloading it + (if necessary), the file is probed to determine the correct + configuration file (if needed) and it is imported. + + The model_name and/or description can be provided. If not, they will + be generated automatically. + + If commit_to_conf is provided, the newly loaded model will be written + to the `models.yaml` file at the indicated path. Otherwise, the changes + will only remain in memory. + + The routine will do its best to figure out the config file + needed to convert legacy checkpoint file, but if it can't it + will call the config_file_callback routine, if provided. The + callback accepts a single argument, the Path to the checkpoint + file, and returns a Path to the config file to use. + + The (potentially derived) name of the model is returned on + success, or None on failure. When multiple models are added + from a directory, only the last imported one is returned. + + """ + pass + + @abstractmethod + def commit(self, conf_file: Path=None) -> None: + """ + Write current configuration out to the indicated file. + If no conf_file is provided, then replaces the + original file/database used to initialize the object. + """ + pass + +# simple implementation +class ModelManagerService(ModelManagerServiceBase): + """Responsible for managing models on disk and in memory""" + def __init__( + self, + config: Union[Path, DictConfig, str], + device_type: torch.device = CUDA_DEVICE, + precision: torch.dtype = torch.float16, + max_cache_size=MAX_CACHE_SIZE, + sequential_offload=False, + logger: types.ModuleType = logger, + ): + """ + Initialize with the path to the models.yaml config file. + Optional parameters are the torch device type, precision, max_models, + and sequential_offload boolean. Note that the default device + type and precision are set up for a CUDA system running at half precision. + """ + self.mgr = ModelManager(config=config, + device_type=device_type, + precision=precision, + max_cache_size=max_cache_size, + sequential_offload=sequential_offload, + logger=logger + ) + + def get_model(self, + model_name: str, + model_type: SDModelType=SDModelType.diffusers, + submodel: SDModelType=None, + )->SDModelInfo: + """ + Retrieve the indicated model. submodel can be used to get a + part (such as the vae) of a diffusers mode. + """ + return self.mgr.get_model( + model_name, + model_type, + submodel, + ) + + def valid_model(self, *args, **kwargs) -> bool: + """ + Given a model name, returns True if it is a valid + identifier. + """ + return self.mgr.valid_model(*args, **kwargs) + + def default_model(self) -> Union[str,None]: + """ + Returns the name of the default model, or None + if none is defined. + """ + return self.mgr.default_model() + + def set_default_model(self, model_name:str): + """Sets the default model to the indicated name.""" + self.mgr.set_default_model(model_name) + + def model_info(self, model_name: str)->dict: + """ + Given a model name returns a dict-like (OmegaConf) object describing it. + """ + return self.mgr.model_info(model_name) + + def model_names(self)->list[str]: + """ + Returns a list of all the model names known. + """ + return self.mgr.model_names() + + def list_models(self)->dict: + """ + Return a dict of models in the format: + { model_name1: {'status': ('active'|'cached'|'not loaded'), + 'description': description, + 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), + }, + model_name2: { etc } + """ + return self.mgr.list_models() + + def add_model( + self, model_name: str, model_attributes: dict, clobber: bool = False)->None: + """ + Update the named model with a dictionary of attributes. Will fail with an + assertion error if the name already exists. Pass clobber=True to overwrite. + On a successful update, the config will be changed in memory. Will fail + with an assertion error if provided attributes are incorrect or + the model name is missing. Call commit() to write changes to disk. + """ + return self.mgr.add_model(model_name, model_attributes, dict, clobber) + + + def del_model(self, + model_name: str, + model_type: SDModelType=SDModelType.diffusers, + delete_files: bool = False + ): + """ + Delete the named model from configuration. If delete_files is true, + then the underlying weight file or diffusers directory will be deleted + as well. Call commit() to write to disk. + """ + self.mgr.del_model(model_name, model_type, delete_files) + + def import_diffuser_model( + self, + repo_or_path: Union[str, Path], + model_name: str = None, + description: str = None, + vae: dict = None, + ) -> bool: + """ + Install the indicated diffuser model and returns True if successful. + + "repo_or_path" can be either a repo-id or a path-like object corresponding to the + top of a downloaded diffusers directory. + + You can optionally provide a model name and/or description. If not provided, + then these will be derived from the repo name. Call commit() to write to disk. + """ + return self.mgr.import_diffuser_model(repo_or_path, model_name, description, vae) + + def import_lora( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated lora file. Call + mgr.commit() to write out the configuration to models.yaml + """ + self.mgr.import_lora(path, model_name, description) + + def import_embedding( + self, + path: Path, + model_name: str=None, + description: str=None, + ): + """ + Creates an entry for the indicated textual inversion embedding file. + Call commit() to write out the configuration to models.yaml + """ + self.mgr(path, model_name, description) + + def heuristic_import( + self, + path_url_or_repo: str, + model_name: str = None, + description: str = None, + model_config_file: Path = None, + commit_to_conf: Path = None, + config_file_callback: Callable[[Path], Path] = None, + ) -> str: + """Accept a string which could be: + - a HF diffusers repo_id + - a URL pointing to a legacy .ckpt or .safetensors file + - a local path pointing to a legacy .ckpt or .safetensors file + - a local directory containing .ckpt and .safetensors files + - a local directory containing a diffusers model + + After determining the nature of the model and downloading it + (if necessary), the file is probed to determine the correct + configuration file (if needed) and it is imported. + + The model_name and/or description can be provided. If not, they will + be generated automatically. + + If commit_to_conf is provided, the newly loaded model will be written + to the `models.yaml` file at the indicated path. Otherwise, the changes + will only remain in memory. + + The routine will do its best to figure out the config file + needed to convert legacy checkpoint file, but if it can't it + will call the config_file_callback routine, if provided. The + callback accepts a single argument, the Path to the checkpoint + file, and returns a Path to the config file to use. + + The (potentially derived) name of the model is returned on + success, or None on failure. When multiple models are added + from a directory, only the last imported one is returned. + + """ + return self.mgr.heuristic_import( + path_url_or_repo, + model_name, + description, + model_config_file, + commit_to_conf, + config_file_callback + ) + + + def commit(self, conf_file: Path=None): + """ + Write current configuration out to the indicated file. + If no conf_file is provided, then replaces the + original file/database used to initialize the object. + """ + return self.mgr.commit(conf_file) + + @property + def logger(self): + return self.mgr.logger + diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index f4093ab116..2c158cc953 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -479,10 +479,11 @@ class ModelManager(object): line = f"\033[1m{line}\033[0m" print(line) - def del_model(self, model_name: str, delete_files: bool = False) -> None: + def del_model(self, model_name: str, model_type: SDModelType.diffusers, delete_files: bool = False): """ Delete the named model. """ + model_name = self._disambiguate_name(model_name, model_type) omega = self.config if model_name not in omega: self.logger.error(f"Unknown model {model_name}") From df5b96895444d5a24093dfa136e7203581a23e5b Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Thu, 11 May 2023 21:24:29 -0400 Subject: [PATCH 020/225] model manager now running as a service --- invokeai/app/cli_app.py | 14 +- invokeai/app/invocations/compel.py | 107 +++++---- invokeai/app/invocations/generate.py | 3 +- invokeai/app/invocations/latent.py | 3 +- invokeai/app/invocations/util/choose_model.py | 14 -- invokeai/app/services/model_manager.py | 211 ------------------ .../app/services/model_manager_initializer.py | 124 ---------- .../app/services/model_manager_service.py | 66 ++++-- .../backend/model_management/model_manager.py | 2 +- pyproject.toml | 2 +- 10 files changed, 118 insertions(+), 428 deletions(-) delete mode 100644 invokeai/app/invocations/util/choose_model.py delete mode 100644 invokeai/app/services/model_manager.py delete mode 100644 invokeai/app/services/model_manager_initializer.py diff --git a/invokeai/app/cli_app.py b/invokeai/app/cli_app.py index abe672820b..89bef69e11 100644 --- a/invokeai/app/cli_app.py +++ b/invokeai/app/cli_app.py @@ -13,18 +13,20 @@ from typing import ( from pydantic import BaseModel from pydantic.fields import Field - import invokeai.backend.util.logging as logger +import invokeai.version + from invokeai.app.services.metadata import PngMetadataService from .services.default_graphs import create_system_graphs from .services.latent_storage import DiskLatentsStorage, ForwardCacheLatentsStorage from ..backend import Args +from ..backend import Globals # this should go when pr 3340 merged + from .cli.commands import BaseCommand, CliContext, ExitCli, add_graph_parsers, add_parsers from .cli.completer import set_autocompleter from .invocations.baseinvocation import BaseInvocation from .services.events import EventServiceBase -from .services.model_manager_initializer import get_model_manager from .services.restoration_services import RestorationServices from .services.graph import Edge, EdgeConnection, GraphExecutionState, GraphInvocation, LibraryGraph, are_connection_types_compatible from .services.default_graphs import default_text_to_image_graph_id @@ -34,7 +36,7 @@ from .services.invocation_services import InvocationServices from .services.invoker import Invoker from .services.processor import DefaultInvocationProcessor from .services.sqlite import SqliteItemStorage - +from .services.model_manager_service import ModelManagerService class CliCommand(BaseModel): command: Union[BaseCommand.get_commands() + BaseInvocation.get_invocations()] = Field(discriminator="type") # type: ignore @@ -191,7 +193,11 @@ def invoke_all(context: CliContext): def invoke_cli(): config = Args() config.parse_args() - model_manager = get_model_manager(config,logger=logger) + + logger.info(f"{invokeai.version.__app_name__}, version {invokeai.version.__version__}") + logger.info(f'InvokeAI runtime directory is "{Globals.root}"') + + model_manager = ModelManagerService(config,logger) # This initializes the autocompleter and returns it. # Currently nothing is done with the returned Completer diff --git a/invokeai/app/invocations/compel.py b/invokeai/app/invocations/compel.py index e251ff8226..6c2d703bc0 100644 --- a/invokeai/app/invocations/compel.py +++ b/invokeai/app/invocations/compel.py @@ -1,7 +1,6 @@ from typing import Literal, Optional, Union from pydantic import BaseModel, Field -from invokeai.app.invocations.util.choose_model import choose_model from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig from ...backend.util.devices import choose_torch_device, torch_dtype @@ -58,74 +57,74 @@ class CompelInvocation(BaseInvocation): def invoke(self, context: InvocationContext) -> CompelOutput: # TODO: load without model - model = choose_model(context.services.model_manager, self.model) - pipeline = model.context.model - tokenizer = pipeline.tokenizer - text_encoder = pipeline.text_encoder + model = context.services.model_manager.get_model(self.model) + with model.context as pipeline: + tokenizer = pipeline.tokenizer + text_encoder = pipeline.text_encoder - # TODO: global? input? - #use_full_precision = precision == "float32" or precision == "autocast" - #use_full_precision = False + # TODO: global? input? + #use_full_precision = precision == "float32" or precision == "autocast" + #use_full_precision = False - # TODO: redo TI when separate model loding implemented - #textual_inversion_manager = TextualInversionManager( - # tokenizer=tokenizer, - # text_encoder=text_encoder, - # full_precision=use_full_precision, - #) + # TODO: redo TI when separate model loding implemented + #textual_inversion_manager = TextualInversionManager( + # tokenizer=tokenizer, + # text_encoder=text_encoder, + # full_precision=use_full_precision, + #) - def load_huggingface_concepts(concepts: list[str]): - pipeline.textual_inversion_manager.load_huggingface_concepts(concepts) + def load_huggingface_concepts(concepts: list[str]): + pipeline.textual_inversion_manager.load_huggingface_concepts(concepts) - # apply the concepts library to the prompt - prompt_str = pipeline.textual_inversion_manager.hf_concepts_library.replace_concepts_with_triggers( - self.prompt, - lambda concepts: load_huggingface_concepts(concepts), - pipeline.textual_inversion_manager.get_all_trigger_strings(), - ) + # apply the concepts library to the prompt + prompt_str = pipeline.textual_inversion_manager.hf_concepts_library.replace_concepts_with_triggers( + self.prompt, + lambda concepts: load_huggingface_concepts(concepts), + pipeline.textual_inversion_manager.get_all_trigger_strings(), + ) - # lazy-load any deferred textual inversions. - # this might take a couple of seconds the first time a textual inversion is used. - pipeline.textual_inversion_manager.create_deferred_token_ids_for_any_trigger_terms( - prompt_str - ) + # lazy-load any deferred textual inversions. + # this might take a couple of seconds the first time a textual inversion is used. + pipeline.textual_inversion_manager.create_deferred_token_ids_for_any_trigger_terms( + prompt_str + ) - compel = Compel( - tokenizer=tokenizer, - text_encoder=text_encoder, - textual_inversion_manager=pipeline.textual_inversion_manager, - dtype_for_device_getter=torch_dtype, - truncate_long_prompts=True, # TODO: - ) + compel = Compel( + tokenizer=tokenizer, + text_encoder=text_encoder, + textual_inversion_manager=pipeline.textual_inversion_manager, + dtype_for_device_getter=torch_dtype, + truncate_long_prompts=True, # TODO: + ) - # TODO: support legacy blend? + # TODO: support legacy blend? - prompt: Union[FlattenedPrompt, Blend] = Compel.parse_prompt_string(prompt_str) + prompt: Union[FlattenedPrompt, Blend] = Compel.parse_prompt_string(prompt_str) - if getattr(Globals, "log_tokenization", False): - log_tokenization_for_prompt_object(prompt, tokenizer) + if getattr(Globals, "log_tokenization", False): + log_tokenization_for_prompt_object(prompt, tokenizer) - c, options = compel.build_conditioning_tensor_for_prompt_object(prompt) + c, options = compel.build_conditioning_tensor_for_prompt_object(prompt) - # TODO: long prompt support - #if not self.truncate_long_prompts: - # [c, uc] = compel.pad_conditioning_tensors_to_same_length([c, uc]) + # TODO: long prompt support + #if not self.truncate_long_prompts: + # [c, uc] = compel.pad_conditioning_tensors_to_same_length([c, uc]) - ec = InvokeAIDiffuserComponent.ExtraConditioningInfo( - tokens_count_including_eos_bos=get_max_token_count(tokenizer, prompt), - cross_attention_control_args=options.get("cross_attention_control", None), - ) + ec = InvokeAIDiffuserComponent.ExtraConditioningInfo( + tokens_count_including_eos_bos=get_max_token_count(tokenizer, prompt), + cross_attention_control_args=options.get("cross_attention_control", None), + ) - conditioning_name = f"{context.graph_execution_state_id}_{self.id}_conditioning" + conditioning_name = f"{context.graph_execution_state_id}_{self.id}_conditioning" - # TODO: hacky but works ;D maybe rename latents somehow? - context.services.latents.set(conditioning_name, (c, ec)) + # TODO: hacky but works ;D maybe rename latents somehow? + context.services.latents.set(conditioning_name, (c, ec)) - return CompelOutput( - conditioning=ConditioningField( - conditioning_name=conditioning_name, - ), - ) + return CompelOutput( + conditioning=ConditioningField( + conditioning_name=conditioning_name, + ), + ) def get_max_token_count( diff --git a/invokeai/app/invocations/generate.py b/invokeai/app/invocations/generate.py index 9a29502048..3d5dd7f5ce 100644 --- a/invokeai/app/invocations/generate.py +++ b/invokeai/app/invocations/generate.py @@ -9,7 +9,6 @@ from torch import Tensor from pydantic import BaseModel, Field from invokeai.app.models.image import ColorField, ImageField, ImageType -from invokeai.app.invocations.util.choose_model import choose_model from invokeai.app.util.misc import SEED_MAX, get_random_seed from invokeai.backend.generator.inpaint import infill_methods from .baseinvocation import BaseInvocation, InvocationContext, InvocationConfig @@ -72,7 +71,7 @@ class TextToImageInvocation(BaseInvocation, SDImageInvocation): def invoke(self, context: InvocationContext) -> ImageOutput: # Handle invalid model parameter - model = choose_model(context.services.model_manager, self.model) + model = context.services.model_manager.get_model(self.model) # Get the source node id (we are invoking the prepared node) graph_execution_state = context.services.graph_execution_manager.get( diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 55da8a4909..5229ace95f 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -6,7 +6,6 @@ import einops from pydantic import BaseModel, Field import torch -from invokeai.app.invocations.util.choose_model import choose_model from invokeai.app.util.misc import SEED_MAX, get_random_seed from invokeai.app.util.step_callback import stable_diffusion_step_callback @@ -177,7 +176,7 @@ class TextToLatentsInvocation(BaseInvocation): ) def get_model(self, model_manager: ModelManager) -> StableDiffusionGeneratorPipeline: - model_info = choose_model(model_manager, self.model) + model_info = model_manager.get_model(self.model) model_name = model_info.name model_hash = model_info.hash model_ctx: StableDiffusionGeneratorPipeline = model_info.context diff --git a/invokeai/app/invocations/util/choose_model.py b/invokeai/app/invocations/util/choose_model.py deleted file mode 100644 index c62640620b..0000000000 --- a/invokeai/app/invocations/util/choose_model.py +++ /dev/null @@ -1,14 +0,0 @@ -from invokeai.backend.model_management.model_manager_service import ModelManagerService, SDModelType - - -def choose_model(model_manager: ModelManagerService, model_name: str, model_type: SDModelType=SDModelType.diffusers): - """Returns the default model if the `model_name` not a valid model, else returns the selected model.""" - logger = model_manager.logger - if model_name and not model_manager.valid_model(model_name, model_type): - default_model_name = model_manager.default_model() - logger.warning(f"\'{model_name}\' is not a valid model name. Using default model \'{default_model_name}\' instead.") - model = model_manager.get_model() - else: - model = model_manager.get_model(model_name, model_type) - - return model diff --git a/invokeai/app/services/model_manager.py b/invokeai/app/services/model_manager.py deleted file mode 100644 index e28a37db99..0000000000 --- a/invokeai/app/services/model_manager.py +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright (c) 2023 Lincoln D. Stein and the InvokeAI Team - -from abc import ABC, abstractmethod -from pathlib import Path -from typing import Union, Callable - -from invokeai.backend import ModelManager, SDModelType, SDModelInfo - -class ModelManagerServiceBase(ABC): - """Responsible for managing models on disk and in memory""" - - @abstractmethod - def get(self, model_name: str, submodel: SDModelType=None)->SDModelInfo: - """Retrieve the indicated model. submodel can be used to get a - part (such as the vae) of a diffusers mode.l""" - pass - - @abstractmethod - def valid_model(self, model_name: str) -> bool: - """ - Given a model name, returns True if it is a valid - identifier. - """ - pass - - @abstractmethod - def default_model(self) -> Union[str,None]: - """ - Returns the name of the default model, or None - if none is defined. - """ - pass - - @abstractmethod - def set_default_model(self, model_name:str): - """Sets the default model to the indicated name.""" - pass - - @abstractmethod - def model_info(self, model_name: str)->dict: - """ - Given a model name returns a dict-like (OmegaConf) object describing it. - """ - pass - - @abstractmethod - def model_names(self)->list[str]: - """ - Returns a list of all the model names known. - """ - pass - - @abstractmethod - def list_models(self)->dict: - """ - Return a dict of models in the format: - { model_name1: {'status': ('active'|'cached'|'not loaded'), - 'description': description, - 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), - }, - model_name2: { etc } - """ - pass - - - @abstractmethod - def add_model( - self, model_name: str, model_attributes: dict, clobber: bool = False)->None: - """ - Update the named model with a dictionary of attributes. Will fail with an - assertion error if the name already exists. Pass clobber=True to overwrite. - On a successful update, the config will be changed in memory. Will fail - with an assertion error if provided attributes are incorrect or - the model name is missing. Call commit() to write changes to disk. - """ - pass - - @abstractmethod - def del_model(self, model_name: str, delete_files: bool = False) -> None: - """ - Delete the named model from configuration. If delete_files is true, - then the underlying weight file or diffusers directory will be deleted - as well. Call commit() to write to disk. - """ - pass - - @abstractmethod - def import_diffuser_model( - repo_or_path: Union[str, Path], - model_name: str = None, - description: str = None, - vae: dict = None, - ) -> bool: - """ - Install the indicated diffuser model and returns True if successful. - - "repo_or_path" can be either a repo-id or a path-like object corresponding to the - top of a downloaded diffusers directory. - - You can optionally provide a model name and/or description. If not provided, - then these will be derived from the repo name. Call commit() to write to disk. - """ - pass - - @abstractmethod - def import_lora( - self, - path: Path, - model_name: str=None, - description: str=None, - ): - """ - Creates an entry for the indicated lora file. Call - mgr.commit() to write out the configuration to models.yaml - """ - pass - - @abstractmethod - def import_embedding( - self, - path: Path, - model_name: str=None, - description: str=None, - ): - """ - Creates an entry for the indicated textual inversion embedding file. - Call commit() to write out the configuration to models.yaml - """ - pass - - @abstractmethod - def heuristic_import( - self, - path_url_or_repo: str, - model_name: str = None, - description: str = None, - model_config_file: Path = None, - commit_to_conf: Path = None, - config_file_callback: Callable[[Path], Path] = None, - ) -> str: - """Accept a string which could be: - - a HF diffusers repo_id - - a URL pointing to a legacy .ckpt or .safetensors file - - a local path pointing to a legacy .ckpt or .safetensors file - - a local directory containing .ckpt and .safetensors files - - a local directory containing a diffusers model - - After determining the nature of the model and downloading it - (if necessary), the file is probed to determine the correct - configuration file (if needed) and it is imported. - - The model_name and/or description can be provided. If not, they will - be generated automatically. - - If commit_to_conf is provided, the newly loaded model will be written - to the `models.yaml` file at the indicated path. Otherwise, the changes - will only remain in memory. - - The routine will do its best to figure out the config file - needed to convert legacy checkpoint file, but if it can't it - will call the config_file_callback routine, if provided. The - callback accepts a single argument, the Path to the checkpoint - file, and returns a Path to the config file to use. - - The (potentially derived) name of the model is returned on - success, or None on failure. When multiple models are added - from a directory, only the last imported one is returned. - - """ - pass - - @abstractmethod - def commit(self, conf_file: Path=None) -> None: - """ - Write current configuration out to the indicated file. - If no conf_file is provided, then replaces the - original file/database used to initialize the object. - """ - pass - - # simple implementation - class ModelManagerService(ModelManagerServiceBase): - """Responsible for managing models on disk and in memory""" - def __init__( - self, - config: Union[Path, DictConfig, str], - device_type: torch.device = CUDA_DEVICE, - precision: torch.dtype = torch.float16, - max_cache_size=MAX_CACHE_SIZE, - sequential_offload=False, - logger: types.ModuleType = logger, - ): - """ - Initialize with the path to the models.yaml config file. - Optional parameters are the torch device type, precision, max_models, - and sequential_offload boolean. Note that the default device - type and precision are set up for a CUDA system running at half precision. - """ - self.mgr = ModelManager(config=config, - device_type=device_type, - precision=precision, - max_cache_size=max_cache_size, - sequential_offload=sequential_offload, - logger=logger - ) - - def get(self, model_name: str, submodel: SDModelType=None)->SDModelInfo: - """Retrieve the indicated model. submodel can be used to get a - part (such as the vae) of a diffusers mode.""" - self.mgr.get_model( - diff --git a/invokeai/app/services/model_manager_initializer.py b/invokeai/app/services/model_manager_initializer.py deleted file mode 100644 index 6645c50f15..0000000000 --- a/invokeai/app/services/model_manager_initializer.py +++ /dev/null @@ -1,124 +0,0 @@ -import os -import sys -import torch -from argparse import Namespace -from invokeai.backend import Args -from omegaconf import OmegaConf -from pathlib import Path -from typing import types - -import invokeai.version -from .model_manager_service import ModelManagerService -from ...backend.util import choose_precision, choose_torch_device -from ...backend import Globals - -# temporary function - should call ModelManagerService() directly -def get_model_manager(config: Args, logger: types.ModuleType) -> ModelManagerService: - if not config.conf: - config_file = os.path.join(Globals.root, "configs", "models.yaml") - if not os.path.exists(config_file): - report_model_error( - config, FileNotFoundError(f"The file {config_file} could not be found."), logger - ) - - logger.info(f"{invokeai.version.__app_name__}, version {invokeai.version.__version__}") - logger.info(f'InvokeAI runtime directory is "{Globals.root}"') - - # these two lines prevent a horrible warning message from appearing - # when the frozen CLIP tokenizer is imported - import transformers # type: ignore - - transformers.logging.set_verbosity_error() - import diffusers - - diffusers.logging.set_verbosity_error() - - # normalize the config directory relative to root - if not os.path.isabs(config.conf): - config.conf = os.path.normpath(os.path.join(Globals.root, config.conf)) - - if config.embeddings: - if not os.path.isabs(config.embedding_path): - embedding_path = os.path.normpath( - os.path.join(Globals.root, config.embedding_path) - ) - else: - embedding_path = config.embedding_path - else: - embedding_path = None - - # creating the model manager - try: - device = torch.device(choose_torch_device()) - if config.precision=="auto": - precision = choose_precision(device) - dtype = torch.float32 if precision=='float32' \ - else torch.float16 - - max_cache_size = config.max_cache_size \ - if hasattr(config,'max_cache_size') \ - else config.max_loaded_models * 2.5 - - model_manager = ModelManagerService( - config.conf, - precision=dtype, - device_type=device, - max_cache_size=config.max_cache_size, -# temporarily disabled until model manager stabilizes -# embedding_path = Path(embedding_path), - logger = logger, - ) - except (FileNotFoundError, TypeError, AssertionError) as e: - report_model_error(config, e, logger) - except (IOError, KeyError) as e: - logger.error(f"{e}. Aborting.") - sys.exit(-1) - - # try to autoconvert new models - # autoimport new .ckpt files - if path := config.autoconvert: - model_manager.autoconvert_weights( - conf_path=config.conf, - weights_directory=path, - ) - logger.info('Model manager initialized') - return model_manager - -def report_model_error(opt: Namespace, e: Exception, logger: types.ModuleType): - logger.error(f'An error occurred while attempting to initialize the model: "{str(e)}"') - logger.error( - "This can be caused by a missing or corrupted models file, and can sometimes be fixed by (re)installing the models." - ) - yes_to_all = os.environ.get("INVOKE_MODEL_RECONFIGURE") - if yes_to_all: - logger.warning( - "Reconfiguration is being forced by environment variable INVOKE_MODEL_RECONFIGURE" - ) - else: - response = input( - "Do you want to run invokeai-configure script to select and/or reinstall models? [y] " - ) - if response.startswith(("n", "N")): - return - - logger.info("invokeai-configure is launching....\n") - - # Match arguments that were set on the CLI - # only the arguments accepted by the configuration script are parsed - root_dir = ["--root", opt.root_dir] if opt.root_dir is not None else [] - config = ["--config", opt.conf] if opt.conf is not None else [] - sys.argv = ["invokeai-configure"] - sys.argv.extend(root_dir) - sys.argv.extend(config.to_dict()) - if yes_to_all is not None: - for arg in yes_to_all.split(): - sys.argv.append(arg) - - from invokeai.frontend.install import invokeai_configure - - invokeai_configure() - # TODO: Figure out how to restart - # print('** InvokeAI will now restart') - # sys.argv = previous_args - # main() # would rather do a os.exec(), but doesn't exist? - # sys.exit(0) diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index 19dc8ddc88..e9c959d5e0 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -3,23 +3,35 @@ from abc import ABC, abstractmethod from pathlib import Path -from typing import Union, Callable +from typing import Union, Callable, types -from invokeai.backend.util import CUDA_DEVICE from invokeai.backend.model_management.model_manager import ( ModelManager, SDModelType, SDModelInfo, - DictConfig, - MAX_CACHE_SIZE, types, torch, - logger, ) +from ...backend import Args,Globals # this must go when pr 3340 merged +from ...backend.util import choose_precision, choose_torch_device class ModelManagerServiceBase(ABC): """Responsible for managing models on disk and in memory""" + @abstractmethod + def __init__( + self, + config: Args, + logger: types.ModuleType + ): + """ + Initialize with the path to the models.yaml config file. + Optional parameters are the torch device type, precision, max_models, + and sequential_offload boolean. Note that the default device + type and precision are set up for a CUDA system running at half precision. + """ + pass + @abstractmethod def get_model(self, model_name: str, @@ -207,26 +219,50 @@ class ModelManagerService(ModelManagerServiceBase): """Responsible for managing models on disk and in memory""" def __init__( self, - config: Union[Path, DictConfig, str], - device_type: torch.device = CUDA_DEVICE, - precision: torch.dtype = torch.float16, - max_cache_size=MAX_CACHE_SIZE, - sequential_offload=False, - logger: types.ModuleType = logger, - ): + config: Args, + logger: types.ModuleType + ): """ Initialize with the path to the models.yaml config file. Optional parameters are the torch device type, precision, max_models, and sequential_offload boolean. Note that the default device type and precision are set up for a CUDA system running at half precision. """ - self.mgr = ModelManager(config=config, - device_type=device_type, - precision=precision, + if config.conf and Path(config.conf).exists(): + config_file = config.conf + else: + config_file = Path(Globals.root, "configs", "models.yaml") + if not config_file.exists(): + raise IOError(f"The file {config_file} could not be found.") + + logger.debug(f'config file={config_file}') + + device = torch.device(choose_torch_device()) + if config.precision=="auto": + precision = choose_precision(device) + dtype = torch.float32 if precision=='float32' \ + else torch.float16 + + # this is transitional backward compatibility + # support for the deprecated `max_loaded_models` + # configuration value. If present, then the + # cache size is set to 2.5 GB times + # the number of max_loaded_models. Otherwise + # use new `max_cache_size` config setting + max_cache_size = config.max_cache_size \ + if hasattr(config,'max_cache_size') \ + else config.max_loaded_models * 2.5 + + sequential_offload = config.sequential_guidance + + self.mgr = ModelManager(config=config_file, + device_type=device, + precision=dtype, max_cache_size=max_cache_size, sequential_offload=sequential_offload, logger=logger ) + logger.info('Model manager service initialized') def get_model(self, model_name: str, diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 2c158cc953..f80e845f17 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -209,7 +209,7 @@ class ModelManager(object): if isinstance(config, DictConfig): self.config = config self.config_path = None - elif type(config) in [str,DictConfig]: + elif isinstance(config,(str,Path)): self.config_path = config self.config = OmegaConf.load(self.config_path) else: diff --git a/pyproject.toml b/pyproject.toml index 82130e7640..54fb9f7165 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "albumentations", "click", "clip_anytorch", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip", - "compel~=1.1.5", + "compel~=1.0.5", "datasets", "diffusers[torch]~=0.16.1", "dnspython==2.2.1", From 11ecf438f51e1ccdba2d05eb2f48ea6213a99e62 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Thu, 11 May 2023 23:33:24 -0400 Subject: [PATCH 021/225] latents.py converted to use model manager service; events emitted --- invokeai/app/invocations/latent.py | 135 +++++++++++------- invokeai/app/services/events.py | 1 + .../app/services/model_manager_service.py | 22 +++ 3 files changed, 104 insertions(+), 54 deletions(-) diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 5229ace95f..91320173ed 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -1,31 +1,32 @@ # Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654) -import random from typing import Literal, Optional, Union + +import diffusers import einops -from pydantic import BaseModel, Field import torch +from diffusers import DiffusionPipeline +from diffusers.schedulers import SchedulerMixin as Scheduler +from pydantic import BaseModel, Field +from invokeai.app.models.exceptions import CanceledException from invokeai.app.util.misc import SEED_MAX, get_random_seed - from invokeai.app.util.step_callback import stable_diffusion_step_callback -from ...backend.model_management.model_manager import ModelManager -from ...backend.util.devices import choose_torch_device, torch_dtype -from ...backend.stable_diffusion.diffusion.shared_invokeai_diffusion import PostprocessingSettings from ...backend.image_util.seamless import configure_model_padding -from ...backend.prompting.conditioning import get_uc_and_c_and_ec -from ...backend.stable_diffusion.diffusers_pipeline import ConditioningData, StableDiffusionGeneratorPipeline, image_resized_to_grid_as_tensor -from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig -import numpy as np -from ..services.image_storage import ImageType -from .baseinvocation import BaseInvocation, InvocationContext -from .image import ImageField, ImageOutput, build_image_output -from .compel import ConditioningField +from ...backend.model_management.model_manager import SDModelType from ...backend.stable_diffusion import PipelineIntermediateState -from diffusers.schedulers import SchedulerMixin as Scheduler -import diffusers -from diffusers import DiffusionPipeline +from ...backend.stable_diffusion.diffusers_pipeline import ( + ConditioningData, StableDiffusionGeneratorPipeline, + image_resized_to_grid_as_tensor) +from ...backend.stable_diffusion.diffusion.shared_invokeai_diffusion import \ + PostprocessingSettings +from ...backend.util.devices import choose_torch_device, torch_dtype +from ..services.image_storage import ImageType +from .baseinvocation import (BaseInvocation, BaseInvocationOutput, + InvocationConfig, InvocationContext) +from .compel import ConditioningField +from .image import ImageField, ImageOutput, build_image_output class LatentsField(BaseModel): @@ -103,6 +104,37 @@ def get_noise(width:int, height:int, device:torch.device, seed:int = 0, latent_c # x = (1 - self.perlin) * x + self.perlin * perlin_noise return x +class ModelChooser: + def choose_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: + + if context.services.queue.is_canceled(context.graph_execution_state_id): + raise CanceledException + + # Get the source node id (we are invoking the prepared node) + graph_execution_state = context.services.graph_execution_manager.get(context.graph_execution_state_id) + source_node_id = graph_execution_state.prepared_source_mapping[self.id] + + context.services.events.emit_model_load_started( + graph_execution_state_id=context.graph_execution_state_id, + node=self.dict(), + source_node_id=source_node_id, + model_name=self.model, + submodel=SDModelType.diffusers + ) + + model_manager = context.services.model_manager + model_info = model_manager.get_model(self.model) + model_ctx: StableDiffusionGeneratorPipeline = model_info.context + context.services.events.emit_model_load_completed ( + graph_execution_state_id=context.graph_execution_state_id, + node=self.dict(), + source_node_id=source_node_id, + model_name=self.model, + submodel=SDModelType.diffusers, + model_info=model_info + ) + + return model_ctx class NoiseInvocation(BaseInvocation): """Generates latent noise.""" @@ -135,7 +167,7 @@ class NoiseInvocation(BaseInvocation): # Text to image -class TextToLatentsInvocation(BaseInvocation): +class TextToLatentsInvocation(BaseInvocation, ModelChooser): """Generates latents from conditionings.""" type: Literal["t2l"] = "t2l" @@ -175,32 +207,6 @@ class TextToLatentsInvocation(BaseInvocation): source_node_id=source_node_id, ) - def get_model(self, model_manager: ModelManager) -> StableDiffusionGeneratorPipeline: - model_info = model_manager.get_model(self.model) - model_name = model_info.name - model_hash = model_info.hash - model_ctx: StableDiffusionGeneratorPipeline = model_info.context - with model_ctx as model: - model.scheduler = get_scheduler( - model=model, - scheduler_name=self.scheduler - ) - - if isinstance(model, DiffusionPipeline): - for component in [model.unet, model.vae]: - configure_model_padding(component, - self.seamless, - self.seamless_axes - ) - else: - configure_model_padding(model, - self.seamless, - self.seamless_axes - ) - - return model_ctx - - def get_conditioning_data(self, context: InvocationContext, model: StableDiffusionGeneratorPipeline) -> ConditioningData: c, extra_conditioning_info = context.services.latents.get(self.positive_conditioning.conditioning_name) uc, _ = context.services.latents.get(self.negative_conditioning.conditioning_name) @@ -230,8 +236,8 @@ class TextToLatentsInvocation(BaseInvocation): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - model = self.get_model(context.services.model_manager) - conditioning_data = self.get_conditioning_data(context, model) + with self.choose_model(context) as model: + conditioning_data = self.get_conditioning_data(context, model) # TODO: Verify the noise is the right size result_latents, result_attention_map_saver = model.latents_from_embeddings( @@ -251,8 +257,30 @@ class TextToLatentsInvocation(BaseInvocation): latents=LatentsField(latents_name=name) ) + def choose_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: + model_ctx = super().choose_model(context) -class LatentsToLatentsInvocation(TextToLatentsInvocation): + with model_ctx as model: + model.scheduler = get_scheduler( + model=model, + scheduler_name=self.scheduler + ) + + if isinstance(model, DiffusionPipeline): + for component in [model.unet, model.vae]: + configure_model_padding(component, + self.seamless, + self.seamless_axes + ) + else: + configure_model_padding(model, + self.seamless, + self.seamless_axes + ) + return model_ctx + + +class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelChooser): """Generates latents using latents as base image.""" type: Literal["l2l"] = "l2l" @@ -283,7 +311,7 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - with self.get_model(context.services.model_manager) as model: + with self.choose_model(context) as model: conditioning_data = self.get_conditioning_data(model) # TODO: Verify the noise is the right size @@ -318,7 +346,7 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation): # Latent to image -class LatentsToImageInvocation(BaseInvocation): +class LatentsToImageInvocation(BaseInvocation, ModelChooser): """Generates an image from latents.""" type: Literal["l2i"] = "l2i" @@ -343,9 +371,7 @@ class LatentsToImageInvocation(BaseInvocation): latents = context.services.latents.get(self.latents.latents_name) # TODO: this only really needs the vae - model_info = choose_model(context.services.model_manager, self.model) - - with model_info.context as model: + with self.choose_model(context) as model: with torch.inference_mode(): np_image = model.decode_latents(latents) image = model.numpy_to_pil(np_image)[0] @@ -432,7 +458,7 @@ class ScaleLatentsInvocation(BaseInvocation): return LatentsOutput(latents=LatentsField(latents_name=name)) -class ImageToLatentsInvocation(BaseInvocation): +class ImageToLatentsInvocation(BaseInvocation, ModelChooser): """Encodes an image into latents.""" type: Literal["i2l"] = "i2l" @@ -457,7 +483,7 @@ class ImageToLatentsInvocation(BaseInvocation): ) # TODO: this only really needs the vae - model_info = choose_model(context.services.model_manager, self.model) + model_info = self.choose_model(context) model: StableDiffusionGeneratorPipeline = model_info["model"] image_tensor = image_resized_to_grid_as_tensor(image.convert("RGB")) @@ -474,3 +500,4 @@ class ImageToLatentsInvocation(BaseInvocation): name = f"{context.graph_execution_state_id}__{self.id}" context.services.latents.set(name, latents) return LatentsOutput(latents=LatentsField(latents_name=name)) + diff --git a/invokeai/app/services/events.py b/invokeai/app/services/events.py index a25549dfc5..dda5557315 100644 --- a/invokeai/app/services/events.py +++ b/invokeai/app/services/events.py @@ -4,6 +4,7 @@ from typing import Any from invokeai.app.api.models.images import ProgressImage from invokeai.app.util.misc import get_timestamp from invokeai.app.services.model_manager_service import SDModelType, SDModelInfo +from invokeai.app.models.exceptions import CanceledException class EventServiceBase: session_event: str = "session_event" diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index e9c959d5e0..3e245bc47e 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -4,6 +4,7 @@ from abc import ABC, abstractmethod from pathlib import Path from typing import Union, Callable, types +from dataclasses import dataclass from invokeai.backend.model_management.model_manager import ( ModelManager, @@ -15,6 +16,11 @@ from invokeai.backend.model_management.model_manager import ( from ...backend import Args,Globals # this must go when pr 3340 merged from ...backend.util import choose_precision, choose_torch_device +@dataclass +class LastUsedModel: + model_name: str + model_type: SDModelType + class ModelManagerServiceBase(ABC): """Responsible for managing models on disk and in memory""" @@ -273,6 +279,22 @@ class ModelManagerService(ModelManagerServiceBase): Retrieve the indicated model. submodel can be used to get a part (such as the vae) of a diffusers mode. """ + + # Temporary hack here: we remember the last model fetched + # so that when executing a graph, the first node called gets + # to set default model for subsequent nodes in the event that + # they do not set the model explicitly. This should be + # displaced by model loader mechanism. + # This is to work around lack of model loader at current time, + # which was causing inconsistent model usage throughout graph. + if not model_name: + self.logger.debug('No model name provided, defaulting to last loaded model') + model_name = LastUsedModel.name + model_type = model_type or LastUsedModel.type + else: + LastUsedModel.name = model_name + LastUsedModel.model_type = model_type + return self.mgr.get_model( model_name, model_type, From 2ef79b8bf324802ef5b8df32bcdf276fc8e1704d Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Fri, 12 May 2023 00:14:56 -0400 Subject: [PATCH 022/225] fix bug in persistent model scheme --- invokeai/app/invocations/generate.py | 2 +- invokeai/app/invocations/latent.py | 56 ++++--------- invokeai/app/services/events.py | 4 + .../app/services/model_manager_service.py | 84 ++++++++++++++++--- 4 files changed, 93 insertions(+), 53 deletions(-) diff --git a/invokeai/app/invocations/generate.py b/invokeai/app/invocations/generate.py index 3d5dd7f5ce..1f0d99ba46 100644 --- a/invokeai/app/invocations/generate.py +++ b/invokeai/app/invocations/generate.py @@ -71,7 +71,7 @@ class TextToImageInvocation(BaseInvocation, SDImageInvocation): def invoke(self, context: InvocationContext) -> ImageOutput: # Handle invalid model parameter - model = context.services.model_manager.get_model(self.model) + model = context.services.model_manager.get_model(self.model,node=self,context=context) # Get the source node id (we are invoking the prepared node) graph_execution_state = context.services.graph_execution_manager.get( diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 91320173ed..3f99d08bd1 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -9,12 +9,10 @@ from diffusers import DiffusionPipeline from diffusers.schedulers import SchedulerMixin as Scheduler from pydantic import BaseModel, Field -from invokeai.app.models.exceptions import CanceledException from invokeai.app.util.misc import SEED_MAX, get_random_seed from invokeai.app.util.step_callback import stable_diffusion_step_callback from ...backend.image_util.seamless import configure_model_padding -from ...backend.model_management.model_manager import SDModelType from ...backend.stable_diffusion import PipelineIntermediateState from ...backend.stable_diffusion.diffusers_pipeline import ( ConditioningData, StableDiffusionGeneratorPipeline, @@ -104,37 +102,11 @@ def get_noise(width:int, height:int, device:torch.device, seed:int = 0, latent_c # x = (1 - self.perlin) * x + self.perlin * perlin_noise return x -class ModelChooser: - def choose_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: - - if context.services.queue.is_canceled(context.graph_execution_state_id): - raise CanceledException - - # Get the source node id (we are invoking the prepared node) - graph_execution_state = context.services.graph_execution_manager.get(context.graph_execution_state_id) - source_node_id = graph_execution_state.prepared_source_mapping[self.id] - - context.services.events.emit_model_load_started( - graph_execution_state_id=context.graph_execution_state_id, - node=self.dict(), - source_node_id=source_node_id, - model_name=self.model, - submodel=SDModelType.diffusers - ) - +class ModelGetter: + def get_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: model_manager = context.services.model_manager - model_info = model_manager.get_model(self.model) - model_ctx: StableDiffusionGeneratorPipeline = model_info.context - context.services.events.emit_model_load_completed ( - graph_execution_state_id=context.graph_execution_state_id, - node=self.dict(), - source_node_id=source_node_id, - model_name=self.model, - submodel=SDModelType.diffusers, - model_info=model_info - ) - - return model_ctx + model_info = model_manager.get_model(self.model,node=self,context=context) + return model_info.context class NoiseInvocation(BaseInvocation): """Generates latent noise.""" @@ -167,7 +139,7 @@ class NoiseInvocation(BaseInvocation): # Text to image -class TextToLatentsInvocation(BaseInvocation, ModelChooser): +class TextToLatentsInvocation(BaseInvocation, ModelGetter): """Generates latents from conditionings.""" type: Literal["t2l"] = "t2l" @@ -236,7 +208,7 @@ class TextToLatentsInvocation(BaseInvocation, ModelChooser): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - with self.choose_model(context) as model: + with self.get_model(context) as model: conditioning_data = self.get_conditioning_data(context, model) # TODO: Verify the noise is the right size @@ -257,8 +229,8 @@ class TextToLatentsInvocation(BaseInvocation, ModelChooser): latents=LatentsField(latents_name=name) ) - def choose_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: - model_ctx = super().choose_model(context) + def get_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: + model_ctx = super().get_model(context) with model_ctx as model: model.scheduler = get_scheduler( @@ -280,7 +252,7 @@ class TextToLatentsInvocation(BaseInvocation, ModelChooser): return model_ctx -class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelChooser): +class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelGetter): """Generates latents using latents as base image.""" type: Literal["l2l"] = "l2l" @@ -311,7 +283,7 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelChooser): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - with self.choose_model(context) as model: + with self.get_model(context) as model: conditioning_data = self.get_conditioning_data(model) # TODO: Verify the noise is the right size @@ -346,7 +318,7 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelChooser): # Latent to image -class LatentsToImageInvocation(BaseInvocation, ModelChooser): +class LatentsToImageInvocation(BaseInvocation, ModelGetter): """Generates an image from latents.""" type: Literal["l2i"] = "l2i" @@ -371,7 +343,7 @@ class LatentsToImageInvocation(BaseInvocation, ModelChooser): latents = context.services.latents.get(self.latents.latents_name) # TODO: this only really needs the vae - with self.choose_model(context) as model: + with self.get_model(context) as model: with torch.inference_mode(): np_image = model.decode_latents(latents) image = model.numpy_to_pil(np_image)[0] @@ -458,7 +430,7 @@ class ScaleLatentsInvocation(BaseInvocation): return LatentsOutput(latents=LatentsField(latents_name=name)) -class ImageToLatentsInvocation(BaseInvocation, ModelChooser): +class ImageToLatentsInvocation(BaseInvocation, ModelGetter): """Encodes an image into latents.""" type: Literal["i2l"] = "i2l" @@ -483,7 +455,7 @@ class ImageToLatentsInvocation(BaseInvocation, ModelChooser): ) # TODO: this only really needs the vae - model_info = self.choose_model(context) + model_info = self.get_model(context) model: StableDiffusionGeneratorPipeline = model_info["model"] image_tensor = image_resized_to_grid_as_tensor(image.convert("RGB")) diff --git a/invokeai/app/services/events.py b/invokeai/app/services/events.py index dda5557315..03a36962fc 100644 --- a/invokeai/app/services/events.py +++ b/invokeai/app/services/events.py @@ -109,6 +109,7 @@ class EventServiceBase: node: dict, source_node_id: str, model_name: str, + model_type: SDModelType, submodel: SDModelType, ) -> None: """Emitted when a model is requested""" @@ -119,6 +120,7 @@ class EventServiceBase: node=node, source_node_id=source_node_id, model_name=str, + model_type=model_type, submodel=submodel, ), ) @@ -129,6 +131,7 @@ class EventServiceBase: node: dict, source_node_id: str, model_name: str, + model_type: SDModelType, submodel: SDModelType, model_info: SDModelInfo, ) -> None: @@ -140,6 +143,7 @@ class EventServiceBase: node=node, source_node_id=source_node_id, model_name=str, + model_type=model_type, submodel=submodel, model_info=model_info, ), diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index 3e245bc47e..3c50d2ba2d 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -10,16 +10,18 @@ from invokeai.backend.model_management.model_manager import ( ModelManager, SDModelType, SDModelInfo, - types, torch, ) +from invokeai.app.models.exceptions import CanceledException from ...backend import Args,Globals # this must go when pr 3340 merged from ...backend.util import choose_precision, choose_torch_device @dataclass class LastUsedModel: - model_name: str - model_type: SDModelType + model_name: str=None + model_type: SDModelType=None + +last_used_model = LastUsedModel() class ModelManagerServiceBase(ABC): """Responsible for managing models on disk and in memory""" @@ -42,7 +44,9 @@ class ModelManagerServiceBase(ABC): def get_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers, - submodel: SDModelType=None + submodel: SDModelType=None, + node=None, # circular dependency issues, so untyped at moment + context=None, )->SDModelInfo: """Retrieve the indicated model with name and type. submodel can be used to get a part (such as the vae) @@ -274,6 +278,8 @@ class ModelManagerService(ModelManagerServiceBase): model_name: str, model_type: SDModelType=SDModelType.diffusers, submodel: SDModelType=None, + node=None, + context=None, )->SDModelInfo: """ Retrieve the indicated model. submodel can be used to get a @@ -287,20 +293,45 @@ class ModelManagerService(ModelManagerServiceBase): # displaced by model loader mechanism. # This is to work around lack of model loader at current time, # which was causing inconsistent model usage throughout graph. + global last_used_model + if not model_name: self.logger.debug('No model name provided, defaulting to last loaded model') - model_name = LastUsedModel.name - model_type = model_type or LastUsedModel.type + model_name = last_used_model.model_name + model_type = model_type or last_used_model.model_type else: - LastUsedModel.name = model_name - LastUsedModel.model_type = model_type - - return self.mgr.get_model( + last_used_model.model_name = model_name + last_used_model.model_type = model_type + + # if we are called from within a node, then we get to emit + # load start and complete events + if node and context: + self._emit_load_event( + node=node, + context=context, + model_name=model_name, + model_type=model_type, + submodel=submodel + ) + + model_info = self.mgr.get_model( model_name, model_type, submodel, ) + if node and context: + self._emit_load_event( + node=node, + context=context, + model_name=model_name, + model_type=model_type, + submodel=submodel, + model_info=model_info + ) + + return model_info + def valid_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> bool: """ Given a model name, returns True if it is a valid @@ -466,6 +497,39 @@ class ModelManagerService(ModelManagerServiceBase): """ return self.mgr.commit(conf_file) + def _emit_load_event( + self, + node, + context, + model_name: str, + model_type: SDModelType, + submodel: SDModelType, + model_info: SDModelInfo=None, + ): + if context.services.queue.is_canceled(context.graph_execution_state_id): + raise CanceledException + graph_execution_state = context.services.graph_execution_manager.get(context.graph_execution_state_id) + source_node_id = graph_execution_state.prepared_source_mapping[node.id] + if context: + context.services.events.emit_model_load_started( + graph_execution_state_id=context.graph_execution_state_id, + node=node.dict(), + source_node_id=source_node_id, + model_name=model_name, + model_type=model_type, + submodel=submodel, + ) + else: + context.services.events.emit_model_load_completed ( + graph_execution_state_id=context.graph_execution_state_id, + node=node.dict(), + source_node_id=source_node_id, + model_name=model_name, + model_type=model_type, + submodel=submodel, + model_info=model_info + ) + @property def logger(self): return self.mgr.logger From 79fecba274effaefb849fa24236553fe000c2af3 Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Fri, 12 May 2023 23:05:08 +0300 Subject: [PATCH 023/225] Fix model manager initialization in web ui --- invokeai/app/api/dependencies.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/invokeai/app/api/dependencies.py b/invokeai/app/api/dependencies.py index 99127c4332..0e0d7481a7 100644 --- a/invokeai/app/api/dependencies.py +++ b/invokeai/app/api/dependencies.py @@ -8,7 +8,6 @@ from typing import types from ..services.default_graphs import create_system_graphs from ..services.latent_storage import DiskLatentsStorage, ForwardCacheLatentsStorage from ...backend import Globals -from ..services.model_manager_initializer import get_model_manager from ..services.restoration_services import RestorationServices from ..services.graph import GraphExecutionState, LibraryGraph from ..services.image_storage import DiskImageStorage @@ -18,6 +17,7 @@ from ..services.invoker import Invoker from ..services.processor import DefaultInvocationProcessor from ..services.sqlite import SqliteItemStorage from ..services.metadata import PngMetadataService +from ..services.model_manager_service import ModelManagerService from .events import FastAPIEventService @@ -70,7 +70,7 @@ class ApiDependencies: db_location = os.path.join(output_folder, "invokeai.db") services = InvocationServices( - model_manager=get_model_manager(config,logger), + model_manager=ModelManagerService(config,logger), events=events, logger=logger, latents=latents, From 5431dd5f501a17b8e0ceb7f173d79a8ea4391056 Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Fri, 12 May 2023 23:08:03 +0300 Subject: [PATCH 024/225] Fix event args --- invokeai/app/services/events.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/invokeai/app/services/events.py b/invokeai/app/services/events.py index 03a36962fc..d3f61a70b8 100644 --- a/invokeai/app/services/events.py +++ b/invokeai/app/services/events.py @@ -119,13 +119,13 @@ class EventServiceBase: graph_execution_state_id=graph_execution_state_id, node=node, source_node_id=source_node_id, - model_name=str, - model_type=model_type, + model_name=model_name, + model_type=model_type.name, submodel=submodel, ), ) - def emit_model_load_completed ( + def emit_model_load_completed( self, graph_execution_state_id: str, node: dict, @@ -137,13 +137,13 @@ class EventServiceBase: ) -> None: """Emitted when a model is correctly loaded (returns model info)""" self.__emit_session_event( - event_name="model_load_started", + event_name="model_load_completed", payload=dict( graph_execution_state_id=graph_execution_state_id, node=node, source_node_id=source_node_id, - model_name=str, - model_type=model_type, + model_name=model_name, + model_type=model_type.name, submodel=submodel, model_info=model_info, ), From 4492044d29305088121302248bca6e6e7fa544e3 Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Fri, 12 May 2023 23:09:33 +0300 Subject: [PATCH 025/225] Redo compel node to separate model loading --- invokeai/app/invocations/compel.py | 32 ++++++++++-------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/invokeai/app/invocations/compel.py b/invokeai/app/invocations/compel.py index 6c2d703bc0..25bb421544 100644 --- a/invokeai/app/invocations/compel.py +++ b/invokeai/app/invocations/compel.py @@ -6,6 +6,7 @@ from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationCont from ...backend.util.devices import choose_torch_device, torch_dtype from ...backend.stable_diffusion.diffusion import InvokeAIDiffuserComponent from ...backend.stable_diffusion.textual_inversion_manager import TextualInversionManager +from ...backend.model_management import SDModelType from compel import Compel from compel.prompt_parser import ( @@ -58,9 +59,14 @@ class CompelInvocation(BaseInvocation): # TODO: load without model model = context.services.model_manager.get_model(self.model) - with model.context as pipeline: - tokenizer = pipeline.tokenizer - text_encoder = pipeline.text_encoder + text_encoder_info = context.services.model_manager.get_model( + self.model, SDModelType.diffusers, SDModelType.text_encoder + ) + tokenizer_info = context.services.model_manager.get_model( + self.model, SDModelType.diffusers, SDModelType.tokenizer + ) + with text_encoder_info.context as text_encoder,\ + tokenizer_info.context as tokenizer: # TODO: global? input? #use_full_precision = precision == "float32" or precision == "autocast" @@ -73,33 +79,17 @@ class CompelInvocation(BaseInvocation): # full_precision=use_full_precision, #) - def load_huggingface_concepts(concepts: list[str]): - pipeline.textual_inversion_manager.load_huggingface_concepts(concepts) - - # apply the concepts library to the prompt - prompt_str = pipeline.textual_inversion_manager.hf_concepts_library.replace_concepts_with_triggers( - self.prompt, - lambda concepts: load_huggingface_concepts(concepts), - pipeline.textual_inversion_manager.get_all_trigger_strings(), - ) - - # lazy-load any deferred textual inversions. - # this might take a couple of seconds the first time a textual inversion is used. - pipeline.textual_inversion_manager.create_deferred_token_ids_for_any_trigger_terms( - prompt_str - ) - compel = Compel( tokenizer=tokenizer, text_encoder=text_encoder, - textual_inversion_manager=pipeline.textual_inversion_manager, + textual_inversion_manager=None, # TODO: dtype_for_device_getter=torch_dtype, truncate_long_prompts=True, # TODO: ) # TODO: support legacy blend? - prompt: Union[FlattenedPrompt, Blend] = Compel.parse_prompt_string(prompt_str) + prompt: Union[FlattenedPrompt, Blend] = Compel.parse_prompt_string(self.prompt) if getattr(Globals, "log_tokenization", False): log_tokenization_for_prompt_object(prompt, tokenizer) From 131145eab1e746e2f477320e0cce222d358257fd Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Fri, 12 May 2023 23:13:34 +0300 Subject: [PATCH 026/225] A big refactor of model manager(according to IMHO) --- .../backend/model_management/model_manager.py | 355 ++++++++++-------- 1 file changed, 190 insertions(+), 165 deletions(-) diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index f80e845f17..bd70e23f5b 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -133,6 +133,7 @@ from enum import Enum, auto from pathlib import Path from shutil import rmtree from typing import Union, Callable, types +from contextlib import suppress import safetensors import safetensors.torch @@ -192,13 +193,13 @@ class ModelManager(object): logger: types.ModuleType = logger def __init__( - self, - config: Union[Path, DictConfig, str], - device_type: torch.device = CUDA_DEVICE, - precision: torch.dtype = torch.float16, - max_cache_size=MAX_CACHE_SIZE, - sequential_offload=False, - logger: types.ModuleType = logger, + self, + config: Union[Path, DictConfig, str], + device_type: torch.device = CUDA_DEVICE, + precision: torch.dtype = torch.float16, + max_cache_size=MAX_CACHE_SIZE, + sequential_offload=False, + logger: types.ModuleType = logger, ): """ Initialize with the path to the models.yaml config file. @@ -225,22 +226,36 @@ class ModelManager(object): self.cache_keys = dict() self.logger = logger - def valid_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> bool: + # TODO: rename to smth like - is_model_exists + def valid_model( + self, + model_name: str, + model_type: SDModelType = SDModelType.diffusers, + ) -> bool: """ Given a model name, returns True if it is a valid identifier. """ - try: - self._disambiguate_name(model_name, model_type) - return True - except InvalidModelError: - return False + model_key = self.create_key(model_name, model_class) + return model_key in self.config - def get_model(self, - model_name: str, - model_type: SDModelType=None, - submodel: SDModelType=None, - ) -> SDModelInfo: + def create_key(self, model_name: str, model_type: SDModelType) -> str: + return f"{model_type.name}/{model_name}" + + def parse_key(self, model_key: str) -> Tuple[str, SDModelType]: + model_type_str, model_name = model_key.split('/', 1) + if model_type_str not in SDModelType.__members__: + # TODO: + raise Exception(f"Unkown model type: {model_type_str}") + + return (model_name, SDModelType[model_type_str]) + + def get_model( + self, + model_name: str, + model_type: SDModelType=None, + submodel: SDModelType=None, + ) -> SDModelInfo: """Given a model named identified in models.yaml, return an SDModelInfo object describing it. :param model_name: symbolic name of the model in models.yaml @@ -254,85 +269,77 @@ class ModelManager(object): assume a diffusers pipeline. The behavior is illustrated here: [models.yaml] - test1/diffusers: + diffusers/test1: repo_id: foo/bar - format: diffusers description: Typical diffusers pipeline - test1/lora: + lora/test1: repo_id: /tmp/loras/test1.safetensors - format: lora description: Typical lora file test1_pipeline = mgr.get_model('test1') # returns a StableDiffusionGeneratorPipeline - test1_vae1 = mgr.get_model('test1',submodel=SDModelType.vae) + test1_vae1 = mgr.get_model('test1', submodel=SDModelType.vae) # returns the VAE part of a diffusers model as an AutoencoderKL - test1_vae2 = mgr.get_model('test1',model_type=SDModelType.diffusers,submodel=SDModelType.vae) + test1_vae2 = mgr.get_model('test1', model_type=SDModelType.diffusers, submodel=SDModelType.vae) # does the same thing as the previous statement. Note that model_type # is for the parent model, and submodel is for the part - test1_lora = mgr.get_model('test1',model_type=SDModelType.lora) + test1_lora = mgr.get_model('test1', model_type=SDModelType.lora) # returns a LoRA embed (as a 'dict' of tensors) - test1_encoder = mgr.get_modelI('test1',model_type=SDModelType.textencoder) + test1_encoder = mgr.get_modelI('test1', model_type=SDModelType.textencoder) # raises an InvalidModelError """ - if not model_name: - model_name = self.default_model() + # TODO: delete default model or add check that this stable diffusion model + # if not model_name: + # model_name = self.default_model() - model_key = self._disambiguate_name(model_name, model_type) + model_key = self.create_key(model_name, model_type) + if model_key not in self.config: + raise InvalidModelError( + f'"{model_key}" is not a known model name. Please check your models.yaml file' + ) # get the required loading info out of the config file mconfig = self.config[model_key] - format = mconfig.get('format','diffusers') - if model_type and model_type.name != format: - raise InvalidModelError( - f'Inconsistent model definition; {model_key} has format {format}, but type {model_type.name} was requested' - ) - - model_parts = dict([(x.name,x) for x in SDModelType]) - - if format == 'diffusers': + # type already checked as it's part of key + if model_type == SDModelType.diffusers: # intercept stanzas that point to checkpoint weights and replace them # with the equivalent diffusers model if 'weights' in mconfig: location = self.convert_ckpt_and_cache(mconfig) else: location = global_resolve_path(mconfig.get('path')) or mconfig.get('repo_id') - elif format in model_parts: - location = global_resolve_path(mconfig.get('path')) \ - or mconfig.get('repo_id') \ - or global_resolve_path(mconfig.get('weights')) else: - raise InvalidModelError( - f'"{model_key}" has an unknown format {format}' + location = global_resolve_path( + mconfig.get('path')) \ + or mconfig.get('repo_id') \ + or global_resolve_path(mconfig.get('weights') ) - model_type = model_parts[format] subfolder = mconfig.get('subfolder') revision = mconfig.get('revision') - hash = self.cache.model_hash(location,revision) + hash = self.cache.model_hash(location, revision) # to support the traditional way of attaching a VAE # to a model, we hacked in `attach_model_part` - vae = (None,None) - try: + vae = (None, None) + with suppress(Exception): vae_id = mconfig.vae.repo_id - vae = (SDModelType.vae,vae_id) - except Exception: - pass + vae = (SDModelType.vae, vae_id) + model_context = self.cache.get_model( location, model_type = model_type, revision = revision, subfolder = subfolder, submodel = submodel, - attach_model_part=vae, + attach_model_part = vae, ) # in case we need to communicate information about this @@ -402,27 +409,28 @@ class ModelManager(object): def list_models(self) -> dict: """ - Return a dict of models in the format: - { model_name1: {'status': ('active'|'cached'|'not loaded'), - 'description': description, - 'format': ('ckpt'|'diffusers'|'vae'), - }, - model_name2: { etc } + Return a dict of models Please use model_manager.models() to get all the model names, model_manager.model_info('model-name') to get the stanza for the model named 'model-name', and model_manager.config to get the full OmegaConf object derived from models.yaml """ models = {} - for name in sorted(self.config, key=str.casefold): - stanza = self.config[name] + for model_key in sorted(self.config, key=str.casefold): + stanza = self.config[model_key] # don't include VAEs in listing (legacy style) if "config" in stanza and "/VAE/" in stanza["config"]: continue - models[name] = dict() - format = stanza.get("format", "ckpt") # Determine Format + model_name, model_type = self.parse_key(model_key) + models[model_name] = dict() + + # TODO: return all models in future + if model_type != SDModelType.diffusers: + continue + + model_format = "ckpt" if "weights" in stanza else "diffusers" # Common Attribs status = self.cache.status( @@ -431,37 +439,38 @@ class ModelManager(object): subfolder=stanza.get('subfolder') ) description = stanza.get("description", None) - models[name].update( + models[model_name].update( description=description, - format=format, + type=model_type, + format=model_format, status=status.value ) # Checkpoint Config Parse - if format == "ckpt": - models[name].update( - config=str(stanza.get("config", None)), - weights=str(stanza.get("weights", None)), - vae=str(stanza.get("vae", None)), - width=str(stanza.get("width", 512)), - height=str(stanza.get("height", 512)), + if model_format == "ckpt": + models[model_name].update( + config = str(stanza.get("config", None)), + weights = str(stanza.get("weights", None)), + vae = str(stanza.get("vae", None)), + width = str(stanza.get("width", 512)), + height = str(stanza.get("height", 512)), ) # Diffusers Config Parse - if vae := stanza.get("vae", None): - if isinstance(vae, DictConfig): - vae = dict( - repo_id=str(vae.get("repo_id", None)), - path=str(vae.get("path", None)), - subfolder=str(vae.get("subfolder", None)), - ) + elif model_format == "diffusers": + if vae := stanza.get("vae", None): + if isinstance(vae, DictConfig): + vae = dict( + repo_id = str(vae.get("repo_id", None)), + path = str(vae.get("path", None)), + subfolder = str(vae.get("subfolder", None)), + ) - if format == "diffusers": - models[name].update( - vae=vae, - repo_id=str(stanza.get("repo_id", None)), - path=str(stanza.get("path", None)), + models[model_name].update( + vae = vae, + repo_id = str(stanza.get("repo_id", None)), + path = str(stanza.get("path", None)), ) return models @@ -472,44 +481,60 @@ class ModelManager(object): """ models = self.list_models() for name in models: - if models[name]["format"] == "vae": + if models[name]["type"] == "vae": continue - line = f'{name:25s} {models[name]["status"]:>15s} {models[name]["format"]:10s} {models[name]["description"]}' + line = f'{name:25s} {models[name]["status"]:>15s} {models[name]["type"]:10s} {models[name]["description"]}' if models[name]["status"] == "active": line = f"\033[1m{line}\033[0m" print(line) - def del_model(self, model_name: str, model_type: SDModelType.diffusers, delete_files: bool = False): + def del_model( + self, + model_name: str, + model_type: SDModelType.diffusers, + delete_files: bool = False + ): """ Delete the named model. """ - model_name = self._disambiguate_name(model_name, model_type) - omega = self.config - if model_name not in omega: - self.logger.error(f"Unknown model {model_name}") - return - # save these for use in deletion later - conf = omega[model_name] - repo_id = conf.get("repo_id", None) - path = self._abs_path(conf.get("path", None)) - weights = self._abs_path(conf.get("weights", None)) + model_key = self.create_key(model_name, model_type) + model_cfg = self.pop(model_key, None) + + if model_cfg is None: + self.logger.error( + f"Unknown model {model_key}" + ) + return + + # TODO: some legacy? + #if model_name in self.stack: + # self.stack.remove(model_name) - del omega[model_name] - if model_name in self.stack: - self.stack.remove(model_name) if delete_files: - if weights: + repo_id = conf.get("repo_id", None) + path = self._abs_path(conf.get("path", None)) + weights = self._abs_path(conf.get("weights", None)) + if "weights" in model_cfg: + weights = self._abs_path(model_cfg["weights"]) self.logger.info(f"Deleting file {weights}") Path(weights).unlink(missing_ok=True) - elif path: + + elif "path" in model_cfg: + path = self._abs_path(model_cfg["path"]) self.logger.info(f"Deleting directory {path}") rmtree(path, ignore_errors=True) - elif repo_id: + + elif "repo_id" in model_cfg: + repo_id = model_cfg["repo_id"] self.logger.info(f"Deleting the cached model directory for {repo_id}") self._delete_model_from_cache(repo_id) def add_model( - self, model_name: str, model_attributes: dict, clobber: bool = False + self, + model_name: str, + model_type: SDModelType, + model_attributes: dict, + clobber: bool = False ) -> None: """ Update the named model with a dictionary of attributes. Will fail with an @@ -518,37 +543,47 @@ class ModelManager(object): method will return True. Will fail with an assertion error if provided attributes are incorrect or the model name is missing. """ - omega = self.config - assert "format" in model_attributes, 'missing required field "format"' - if model_attributes["format"] == "diffusers": - assert ( - "description" in model_attributes - ), 'required field "description" is missing' - assert ( - "path" in model_attributes or "repo_id" in model_attributes - ), 'model must have either the "path" or "repo_id" fields defined' - elif model_attributes["format"] == "ckpt": - for field in ("description", "weights", "height", "width", "config"): - assert field in model_attributes, f"required field {field} is missing" + if model_type == SDModelType.diffusers: + # TODO: automaticaly or manualy? + #assert "format" in model_attributes, 'missing required field "format"' + model_format = "ckpt" if "weights" in model_attributes else "diffusers" + + if model_format == "diffusers": + assert ( + "description" in model_attributes + ), 'required field "description" is missing' + assert ( + "path" in model_attributes or "repo_id" in model_attributes + ), 'model must have either the "path" or "repo_id" fields defined' + + elif model_format == "ckpt": + for field in ("description", "weights", "height", "width", "config"): + assert field in model_attributes, f"required field {field} is missing" + else: assert "weights" in model_attributes and "description" in model_attributes - model_key = f'{model_name}/{model_attributes["format"]}' + model_key = self.create_key(model_name, model_type) assert ( - clobber or model_key not in omega + clobber or model_key not in self.config ), f'attempt to overwrite existing model definition "{model_key}"' - omega[model_key] = model_attributes + self.config[model_key] = model_attributes - if "weights" in omega[model_key]: - omega[model_key]["weights"].replace("\\", "/") + if "weights" in self.config[model_key]: + self.config[model_key]["weights"].replace("\\", "/") if clobber and model_key in self.cache_keys: self.cache.uncache_model(self.cache_keys[model_key]) del self.cache_keys[model_key] + + + + + def import_diffuser_model( self, repo_or_path: Union[str, Path], @@ -587,10 +622,10 @@ class ModelManager(object): return model_key def import_lora( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: str=None, + description: str=None, ): """ Creates an entry for the indicated lora file. Call @@ -599,20 +634,21 @@ class ModelManager(object): path = Path(path) model_name = model_name or path.stem model_description = description or f"LoRA model {model_name}" - self.add_model(f'{model_name}/{SDModelType.lora.name}', - dict( - format="lora", - weights=str(path), - description=model_description, - ), - True - ) + self.add_model( + f'{model_name}/{SDModelType.lora.name}', + dict( + format="lora", + weights=str(path), + description=model_description, + ), + True + ) def import_embedding( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: str=None, + description: str=None, ): """ Creates an entry for the indicated lora file. Call @@ -626,14 +662,15 @@ class ModelManager(object): model_name = model_name or path.stem model_description = description or f"Textual embedding model {model_name}" - self.add_model(f'{model_name}/{SDModelType.textual_inversion.name}', - dict( - format="textual_inversion", - weights=str(weights), - description=model_description, - ), - True - ) + self.add_model( + f'{model_name}/{SDModelType.textual_inversion.name}', + dict( + format="textual_inversion", + weights=str(weights), + description=model_description, + ), + True + ) @classmethod def probe_model_type(self, checkpoint: dict) -> SDLegacyType: @@ -857,7 +894,7 @@ class ModelManager(object): ) return model_name - def convert_ckpt_and_cache(self, mconfig:DictConfig)->Path: + def convert_ckpt_and_cache(self, mconfig: DictConfig)->Path: """ Convert the checkpoint model indicated in mconfig into a diffusers, cache it to disk, and return Path to converted @@ -872,6 +909,7 @@ class ModelManager(object): return diffusers_path vae_ckpt_path, vae_model = self._get_vae_for_conversion(weights, mconfig) + # to avoid circular import errors from .convert_ckpt_to_diffusers import convert_ckpt_to_diffusers with SilenceWarnings(): @@ -881,15 +919,16 @@ class ModelManager(object): extract_ema=True, original_config_file=config_file, vae=vae_model, - vae_path=str(global_resolve_path(vae_ckpt_path)), + vae_path=str(global_resolve_path(vae_ckpt_path)) if vae_ckpt_path else None, scan_needed=True, ) return diffusers_path - def _get_vae_for_conversion(self, - weights: Path, - mconfig: DictConfig - )->tuple(Path,SDModelType.vae): + def _get_vae_for_conversion( + self, + weights: Path, + mconfig: DictConfig + ) -> Tuple[Path, SDModelType.vae]: # VAE handling is convoluted # 1. If there is a .vae.ckpt file sharing same stem as weights, then use # it as the vae_path passed to convert @@ -1047,21 +1086,7 @@ class ModelManager(object): # model requires a model config file, a weights file, # and the width and height of the images it # was trained on. - """ - ) - - def _disambiguate_name(self, model_name:str, model_type:SDModelType)->str: - model_type = model_type or SDModelType.diffusers - full_name = f"{model_name}/{model_type.name}" - if full_name in self.config: - return full_name - # special case - if diffusers requested, then allow name without type appended - if model_type==SDModelType.diffusers \ - and model_name in self.config \ - and self.config[model_name].format=='diffusers': - return model_name - raise InvalidModelError( - f'"{full_name}" is not a known model name. Please check your models.yaml file' + """ ) From 3b2a054f7a62351ffa6162aa881bdad065d95b3c Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Sat, 13 May 2023 04:37:20 +0300 Subject: [PATCH 027/225] Add model loader node; unet, clip, vae fields; change compel node to clip field --- invokeai/app/invocations/compel.py | 13 +- invokeai/app/invocations/model.py | 131 +++++++++++++++++ .../backend/model_management/model_manager.py | 2 +- .../web/src/common/util/parseMetadata.ts | 133 +++++++++++++++++- .../nodes/components/InputFieldComponent.tsx | 33 +++++ .../fields/ClipInputFieldComponent.tsx | 16 +++ .../fields/UNetInputFieldComponent.tsx | 16 +++ .../fields/VaeInputFieldComponent.tsx | 16 +++ .../web/src/features/nodes/types/constants.ts | 21 +++ .../web/src/features/nodes/types/types.ts | 24 ++++ .../nodes/util/fieldTemplateBuilders.ts | 57 ++++++++ .../features/nodes/util/fieldValueBuilders.ts | 12 ++ 12 files changed, 466 insertions(+), 8 deletions(-) create mode 100644 invokeai/app/invocations/model.py create mode 100644 invokeai/frontend/web/src/features/nodes/components/fields/ClipInputFieldComponent.tsx create mode 100644 invokeai/frontend/web/src/features/nodes/components/fields/UNetInputFieldComponent.tsx create mode 100644 invokeai/frontend/web/src/features/nodes/components/fields/VaeInputFieldComponent.tsx diff --git a/invokeai/app/invocations/compel.py b/invokeai/app/invocations/compel.py index 25bb421544..584e14ea0f 100644 --- a/invokeai/app/invocations/compel.py +++ b/invokeai/app/invocations/compel.py @@ -3,6 +3,8 @@ from pydantic import BaseModel, Field from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig +from .model import ClipField + from ...backend.util.devices import choose_torch_device, torch_dtype from ...backend.stable_diffusion.diffusion import InvokeAIDiffuserComponent from ...backend.stable_diffusion.textual_inversion_manager import TextualInversionManager @@ -41,7 +43,7 @@ class CompelInvocation(BaseInvocation): type: Literal["compel"] = "compel" prompt: str = Field(default="", description="Prompt") - model: str = Field(default="", description="Model to use") + clip: ClipField = Field(None, description="Clip to use") # Schema customisation class Config(InvocationConfig): @@ -58,12 +60,15 @@ class CompelInvocation(BaseInvocation): def invoke(self, context: InvocationContext) -> CompelOutput: # TODO: load without model - model = context.services.model_manager.get_model(self.model) text_encoder_info = context.services.model_manager.get_model( - self.model, SDModelType.diffusers, SDModelType.text_encoder + model_name=self.clip.text_encoder.model_name, + model_type=SDModelType[self.clip.text_encoder.model_type], + submodel=SDModelType[self.clip.text_encoder.submodel], ) tokenizer_info = context.services.model_manager.get_model( - self.model, SDModelType.diffusers, SDModelType.tokenizer + model_name=self.clip.tokenizer.model_name, + model_type=SDModelType[self.clip.tokenizer.model_type], + submodel=SDModelType[self.clip.tokenizer.submodel], ) with text_encoder_info.context as text_encoder,\ tokenizer_info.context as tokenizer: diff --git a/invokeai/app/invocations/model.py b/invokeai/app/invocations/model.py new file mode 100644 index 0000000000..11f1fd5c5f --- /dev/null +++ b/invokeai/app/invocations/model.py @@ -0,0 +1,131 @@ +from typing import Literal, Optional, Union +from pydantic import BaseModel, Field + +from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig + +from ...backend.util.devices import choose_torch_device, torch_dtype +from ...backend.model_management import SDModelType + +class ModelInfo(BaseModel): + model_name: str = Field(description="Info to load unet submodel") + model_type: str = Field(description="Info to load unet submodel") + submodel: Optional[str] = Field(description="Info to load unet submodel") + +class UNetField(BaseModel): + unet: ModelInfo = Field(description="Info to load unet submodel") + scheduler: ModelInfo = Field(description="Info to load scheduler submodel") + # loras: List[ModelInfo] + +class ClipField(BaseModel): + tokenizer: ModelInfo = Field(description="Info to load tokenizer submodel") + text_encoder: ModelInfo = Field(description="Info to load text_encoder submodel") + # loras: List[ModelInfo] + +class VaeField(BaseModel): + # TODO: better naming? + vae: ModelInfo = Field(description="Info to load vae submodel") + + +class ModelLoaderOutput(BaseInvocationOutput): + """Model loader output""" + + #fmt: off + type: Literal["model_loader_output"] = "model_loader_output" + + unet: UNetField = Field(default=None, description="UNet submodel") + clip: ClipField = Field(default=None, description="Tokenizer and text_encoder submodels") + vae: VaeField = Field(default=None, description="Vae submodel") + #fmt: on + + +class ModelLoaderInvocation(BaseInvocation): + """Loading submodels of selected model.""" + + type: Literal["model_loader"] = "model_loader" + + model_name: str = Field(default="", description="Model to load") + # TODO: precision? + + # Schema customisation + class Config(InvocationConfig): + schema_extra = { + "ui": { + "tags": ["model", "loader"], + "type_hints": { + "model_name": "model" # TODO: rename to model_name? + } + }, + } + + def invoke(self, context: InvocationContext) -> ModelLoaderOutput: + + # TODO: not found exceptions + if not context.services.model_manager.valid_model( + model_name=self.model_name, + model_type=SDModelType.diffusers, + ): + raise Exception(f"Unkown model name: {self.model_name}!") + + """ + if not context.services.model_manager.valid_model( + model_name=self.model_name, + model_type=SDModelType.diffusers, + submodel=SDModelType.tokenizer, + ): + raise Exception( + f"Failed to find tokenizer submodel in {self.model_name}! Check if model corrupted" + ) + + if not context.services.model_manager.valid_model( + model_name=self.model_name, + model_type=SDModelType.diffusers, + submodel=SDModelType.text_encoder, + ): + raise Exception( + f"Failed to find text_encoder submodel in {self.model_name}! Check if model corrupted" + ) + + if not context.services.model_manager.valid_model( + model_name=self.model_name, + model_type=SDModelType.diffusers, + submodel=SDModelType.unet, + ): + raise Exception( + f"Failed to find unet submodel from {self.model_name}! Check if model corrupted" + ) + """ + + + return ModelLoaderOutput( + unet=UNetField( + unet=ModelInfo( + model_name=self.model_name, + model_type=SDModelType.diffusers.name, + submodel=SDModelType.unet.name, + ), + scheduler=ModelInfo( + model_name=self.model_name, + model_type=SDModelType.diffusers.name, + submodel=SDModelType.scheduler.name, + ), + ), + clip=ClipField( + tokenizer=ModelInfo( + model_name=self.model_name, + model_type=SDModelType.diffusers.name, + submodel=SDModelType.tokenizer.name, + ), + text_encoder=ModelInfo( + model_name=self.model_name, + model_type=SDModelType.diffusers.name, + submodel=SDModelType.text_encoder.name, + ), + ), + vae=VaeField( + vae=ModelInfo( + model_name=self.model_name, + model_type=SDModelType.diffusers.name, + submodel=SDModelType.vae.name, + ), + ) + ) diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index bd70e23f5b..e32ba3b22a 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -236,7 +236,7 @@ class ModelManager(object): Given a model name, returns True if it is a valid identifier. """ - model_key = self.create_key(model_name, model_class) + model_key = self.create_key(model_name, model_type) return model_key in self.config def create_key(self, model_name: str, model_type: SDModelType) -> str: diff --git a/invokeai/frontend/web/src/common/util/parseMetadata.ts b/invokeai/frontend/web/src/common/util/parseMetadata.ts index c27833218b..95d08db3e0 100644 --- a/invokeai/frontend/web/src/common/util/parseMetadata.ts +++ b/invokeai/frontend/web/src/common/util/parseMetadata.ts @@ -1,5 +1,12 @@ import { forEach, size } from 'lodash-es'; -import { ImageField, LatentsField, ConditioningField } from 'services/api'; +import { + ImageField, + LatentsField, + ConditioningField, + UNetField, + ClipField, + VaeField, +} from 'services/api'; const OBJECT_TYPESTRING = '[object Object]'; const STRING_TYPESTRING = '[object String]'; @@ -98,6 +105,101 @@ const parseConditioningField = ( }; }; +const _parseModelInfo = (modelInfo: unknown): ModelInfo | undefined => { + // Must be an object + if (!isObject(modelInfo)) { + return; + } + + if (!('model_name' in modelInfo && typeof modelInfo.model_name == 'string')) { + return; + } + + if (!('model_type' in modelInfo && typeof modelInfo.model_type == 'string')) { + return; + } + + if (!('submodel' in modelInfo && typeof modelInfo.submodel == 'string')) { + return; + } + + return { + model_name: modelInfo.model_name, + model_type: modelInfo.model_type, + submodel: modelInfo.submodel, + }; +}; + +const parseUNetField = (unetField: unknown): UNetField | undefined => { + // Must be an object + if (!isObject(unetField)) { + return; + } + + if (!('unet' in unetField && 'scheduler' in unetField)) { + return; + } + + const unet = _parseModelInfo(unetField.unet); + const scheduler = _parseModelInfo(unetField.scheduler); + + if (!(unet && scheduler)) { + return; + } + + // Build a valid UNetField + return { + unet: unet, + scheduler: scheduler, + }; +}; + +const parseClipField = (clipField: unknown): ClipField | undefined => { + // Must be an object + if (!isObject(clipField)) { + return; + } + + if (!('tokenizer' in clipField && 'text_encoder' in clipField)) { + return; + } + + const tokenizer = _parseModelInfo(clipField.tokenizer); + const text_encoder = _parseModelInfo(clipField.text_encoder); + + if (!(tokenizer && text_encoder)) { + return; + } + + // Build a valid ClipField + return { + tokenizer: tokenizer, + text_encoder: text_encoder, + }; +}; + +const parseVaeField = (vaeField: unknown): VaeField | undefined => { + // Must be an object + if (!isObject(vaeField)) { + return; + } + + if (!('vae' in vaeField)) { + return; + } + + const vae = _parseModelInfo(vaeField.vae); + + if (!vae) { + return; + } + + // Build a valid VaeField + return { + vae: vae, + }; +}; + type NodeMetadata = { [key: string]: | string @@ -105,7 +207,10 @@ type NodeMetadata = { | boolean | ImageField | LatentsField - | ConditioningField; + | ConditioningField + | UNetField + | ClipField + | VaeField; }; type InvokeAIMetadata = { @@ -131,7 +236,8 @@ export const parseNodeMetadata = ( return; } - // the only valid object types are ImageField, LatentsField and ConditioningField + // valid object types are: + // ImageField, LatentsField ConditioningField, UNetField, ClipField, VaeField if (isObject(nodeItem)) { if ('image_name' in nodeItem || 'image_type' in nodeItem) { const imageField = parseImageField(nodeItem); @@ -156,6 +262,27 @@ export const parseNodeMetadata = ( } return; } + + if ('unet' in nodeItem && 'tokenizer' in nodeItem) { + const unetField = parseUNetField(nodeItem); + if (unetField) { + parsed[nodeKey] = unetField; + } + } + + if ('tokenizer' in nodeItem && 'text_encoder' in nodeItem) { + const clipField = parseClipField(nodeItem); + if (clipField) { + parsed[nodeKey] = clipField; + } + } + + if ('vae' in nodeItem) { + const vaeField = parseVaeField(nodeItem); + if (vaeField) { + parsed[nodeKey] = vaeField; + } + } } // otherwise we accept any string, number or boolean diff --git a/invokeai/frontend/web/src/features/nodes/components/InputFieldComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/InputFieldComponent.tsx index 9527708c40..341ca19fa9 100644 --- a/invokeai/frontend/web/src/features/nodes/components/InputFieldComponent.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/InputFieldComponent.tsx @@ -7,6 +7,9 @@ import EnumInputFieldComponent from './fields/EnumInputFieldComponent'; import ImageInputFieldComponent from './fields/ImageInputFieldComponent'; import LatentsInputFieldComponent from './fields/LatentsInputFieldComponent'; import ConditioningInputFieldComponent from './fields/ConditioningInputFieldComponent'; +import UNetInputFieldComponent from './fields/UNetInputFieldComponent'; +import ClipInputFieldComponent from './fields/ClipInputFieldComponent'; +import VaeInputFieldComponent from './fields/VaeInputFieldComponent'; import ModelInputFieldComponent from './fields/ModelInputFieldComponent'; import NumberInputFieldComponent from './fields/NumberInputFieldComponent'; import StringInputFieldComponent from './fields/StringInputFieldComponent'; @@ -97,6 +100,36 @@ const InputFieldComponent = (props: InputFieldComponentProps) => { ); } + if (type === 'unet' && template.type === 'unet') { + return ( + + ); + } + + if (type === 'clip' && template.type === 'clip') { + return ( + + ); + } + + if (type === 'vae' && template.type === 'vae') { + return ( + + ); + } + if (type === 'model' && template.type === 'model') { return ( +) => { + const { nodeId, field } = props; + + return null; +}; + +export default memo(ClipInputFieldComponent); diff --git a/invokeai/frontend/web/src/features/nodes/components/fields/UNetInputFieldComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/fields/UNetInputFieldComponent.tsx new file mode 100644 index 0000000000..5926bf113a --- /dev/null +++ b/invokeai/frontend/web/src/features/nodes/components/fields/UNetInputFieldComponent.tsx @@ -0,0 +1,16 @@ +import { + UNetInputFieldTemplate, + UNetInputFieldValue, +} from 'features/nodes/types/types'; +import { memo } from 'react'; +import { FieldComponentProps } from './types'; + +const UNetInputFieldComponent = ( + props: FieldComponentProps +) => { + const { nodeId, field } = props; + + return null; +}; + +export default memo(UNetInputFieldComponent); diff --git a/invokeai/frontend/web/src/features/nodes/components/fields/VaeInputFieldComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/fields/VaeInputFieldComponent.tsx new file mode 100644 index 0000000000..0fa11ae34e --- /dev/null +++ b/invokeai/frontend/web/src/features/nodes/components/fields/VaeInputFieldComponent.tsx @@ -0,0 +1,16 @@ +import { + VaeInputFieldTemplate, + VaeInputFieldValue, +} from 'features/nodes/types/types'; +import { memo } from 'react'; +import { FieldComponentProps } from './types'; + +const VaeInputFieldComponent = ( + props: FieldComponentProps +) => { + const { nodeId, field } = props; + + return null; +}; + +export default memo(VaeInputFieldComponent); diff --git a/invokeai/frontend/web/src/features/nodes/types/constants.ts b/invokeai/frontend/web/src/features/nodes/types/constants.ts index 7e4dadc21d..36c3514eeb 100644 --- a/invokeai/frontend/web/src/features/nodes/types/constants.ts +++ b/invokeai/frontend/web/src/features/nodes/types/constants.ts @@ -11,6 +11,9 @@ export const FIELD_TYPE_MAP: Record = { ImageField: 'image', LatentsField: 'latents', ConditioningField: 'conditioning', + UNetField: 'unet', + ClipField: 'clip', + VaeField: 'vae', model: 'model', array: 'array', item: 'item', @@ -71,6 +74,24 @@ export const FIELDS: Record = { title: 'Conditioning', description: 'Conditioning may be passed between nodes.', }, + unet: { + color: 'red', + colorCssVar: getColorTokenCssVariable('red'), + title: 'UNet', + description: 'UNet submodel.', + }, + clip: { + color: 'green', + colorCssVar: getColorTokenCssVariable('green'), + title: 'Clip', + description: 'Tokenizer and text_encoder submodels.', + }, + vae: { + color: 'blue', + colorCssVar: getColorTokenCssVariable('blue'), + title: 'Vae', + description: 'Vae submodel.', + }, model: { color: 'teal', colorCssVar: getColorTokenCssVariable('teal'), diff --git a/invokeai/frontend/web/src/features/nodes/types/types.ts b/invokeai/frontend/web/src/features/nodes/types/types.ts index 876ba95cac..0ed0a46964 100644 --- a/invokeai/frontend/web/src/features/nodes/types/types.ts +++ b/invokeai/frontend/web/src/features/nodes/types/types.ts @@ -58,6 +58,9 @@ export type FieldType = | 'image' | 'latents' | 'conditioning' + | 'unet' + | 'clip' + | 'vae' | 'model' | 'array' | 'item' @@ -79,6 +82,9 @@ export type InputFieldValue = | ImageInputFieldValue | LatentsInputFieldValue | ConditioningInputFieldValue + | UNetInputFieldValue + | ClipInputFieldValue + | VaeInputFieldValue | EnumInputFieldValue | ModelInputFieldValue | ArrayInputFieldValue @@ -99,6 +105,9 @@ export type InputFieldTemplate = | ImageInputFieldTemplate | LatentsInputFieldTemplate | ConditioningInputFieldTemplate + | UNetInputFieldTemplate + | ClipInputFieldTemplate + | VaeInputFieldTemplate | EnumInputFieldTemplate | ModelInputFieldTemplate | ArrayInputFieldTemplate @@ -177,6 +186,21 @@ export type ConditioningInputFieldValue = FieldValueBase & { value?: undefined; }; +export type UNetInputFieldValue = FieldValueBase & { + type: 'unet'; + value?: undefined; +}; + +export type ClipInputFieldValue = FieldValueBase & { + type: 'clip'; + value?: undefined; +}; + +export type VaeInputFieldValue = FieldValueBase & { + type: 'vae'; + value?: undefined; +}; + export type ImageInputFieldValue = FieldValueBase & { type: 'image'; value?: Pick; diff --git a/invokeai/frontend/web/src/features/nodes/util/fieldTemplateBuilders.ts b/invokeai/frontend/web/src/features/nodes/util/fieldTemplateBuilders.ts index 11f0087488..b275c84248 100644 --- a/invokeai/frontend/web/src/features/nodes/util/fieldTemplateBuilders.ts +++ b/invokeai/frontend/web/src/features/nodes/util/fieldTemplateBuilders.ts @@ -10,6 +10,9 @@ import { IntegerInputFieldTemplate, LatentsInputFieldTemplate, ConditioningInputFieldTemplate, + UNetInputFieldTemplate, + ClipInputFieldTemplate, + VaeInputFieldTemplate, StringInputFieldTemplate, ModelInputFieldTemplate, ArrayInputFieldTemplate, @@ -215,6 +218,51 @@ const buildConditioningInputFieldTemplate = ({ return template; }; +const buildUNetInputFieldTemplate = ({ + schemaObject, + baseField, +}: BuildInputFieldArg): UNetInputFieldTemplate => { + const template: UNetInputFieldTemplate = { + ...baseField, + type: 'unet', + inputRequirement: 'always', + inputKind: 'connection', + default: schemaObject.default ?? undefined, + }; + + return template; +}; + +const buildClipInputFieldTemplate = ({ + schemaObject, + baseField, +}: BuildInputFieldArg): ClipInputFieldTemplate => { + const template: ClipInputFieldTemplate = { + ...baseField, + type: 'clip', + inputRequirement: 'always', + inputKind: 'connection', + default: schemaObject.default ?? undefined, + }; + + return template; +}; + +const buildVaeInputFieldTemplate = ({ + schemaObject, + baseField, +}: BuildInputFieldArg): VaeInputFieldTemplate => { + const template: VaeInputFieldTemplate = { + ...baseField, + type: 'vae', + inputRequirement: 'always', + inputKind: 'connection', + default: schemaObject.default ?? undefined, + }; + + return template; +}; + const buildEnumInputFieldTemplate = ({ schemaObject, baseField, @@ -331,6 +379,15 @@ export const buildInputFieldTemplate = ( if (['conditioning'].includes(fieldType)) { return buildConditioningInputFieldTemplate({ schemaObject, baseField }); } + if (['unet'].includes(fieldType)) { + return buildUNetInputFieldTemplate({ schemaObject, baseField }); + } + if (['clip'].includes(fieldType)) { + return buildClipInputFieldTemplate({ schemaObject, baseField }); + } + if (['vae'].includes(fieldType)) { + return buildVaeInputFieldTemplate({ schemaObject, baseField }); + } if (['model'].includes(fieldType)) { return buildModelInputFieldTemplate({ schemaObject, baseField }); } diff --git a/invokeai/frontend/web/src/features/nodes/util/fieldValueBuilders.ts b/invokeai/frontend/web/src/features/nodes/util/fieldValueBuilders.ts index 9221e5f7ac..c0c19708c7 100644 --- a/invokeai/frontend/web/src/features/nodes/util/fieldValueBuilders.ts +++ b/invokeai/frontend/web/src/features/nodes/util/fieldValueBuilders.ts @@ -52,6 +52,18 @@ export const buildInputFieldValue = ( fieldValue.value = undefined; } + if (template.type === 'unet') { + fieldValue.value = undefined; + } + + if (template.type === 'clip') { + fieldValue.value = undefined; + } + + if (template.type === 'vae') { + fieldValue.value = undefined; + } + if (template.type === 'model') { fieldValue.value = undefined; } From bc96727cbe4399cbfde4d1f2daaf73830ac502f5 Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Sat, 13 May 2023 16:08:03 +0300 Subject: [PATCH 028/225] Rewrite latent nodes to new model manager --- invokeai/app/invocations/latent.py | 251 ++++++++++++++++++----------- 1 file changed, 160 insertions(+), 91 deletions(-) diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 3f99d08bd1..9ca1c81a3d 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -7,6 +7,7 @@ import einops import torch from diffusers import DiffusionPipeline from diffusers.schedulers import SchedulerMixin as Scheduler +from diffusers.image_processor import VaeImageProcessor from pydantic import BaseModel, Field from invokeai.app.util.misc import SEED_MAX, get_random_seed @@ -26,6 +27,9 @@ from .baseinvocation import (BaseInvocation, BaseInvocationOutput, from .compel import ConditioningField from .image import ImageField, ImageOutput, build_image_output +from .model import ModelInfo, UNetField, VaeField +from ...backend.model_management import SDModelType + class LatentsField(BaseModel): """A latents field used for passing latents between invocations""" @@ -70,9 +74,21 @@ SAMPLER_NAME_VALUES = Literal[ ] -def get_scheduler(scheduler_name:str, model: StableDiffusionGeneratorPipeline)->Scheduler: +def get_scheduler( + context: InvocationContext, + scheduler_info: ModelInfo, + scheduler_name: str, +) -> Scheduler: + orig_scheduler_info = context.services.model_manager.get_model( + model_name=scheduler_info.model_name, + model_type=SDModelType[scheduler_info.model_type], + submodel=SDModelType[scheduler_info.submodel], + ) + with orig_scheduler_info.context as orig_scheduler: + scheduler_config = orig_scheduler.config + scheduler_class = scheduler_map.get(scheduler_name,'ddim') - scheduler = scheduler_class.from_config(model.scheduler.config) + scheduler = scheduler_class.from_config(scheduler_config) # hack copied over from generate.py if not hasattr(scheduler, 'uses_inpainting_model'): scheduler.uses_inpainting_model = lambda: False @@ -102,12 +118,6 @@ def get_noise(width:int, height:int, device:torch.device, seed:int = 0, latent_c # x = (1 - self.perlin) * x + self.perlin * perlin_noise return x -class ModelGetter: - def get_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: - model_manager = context.services.model_manager - model_info = model_manager.get_model(self.model,node=self,context=context) - return model_info.context - class NoiseInvocation(BaseInvocation): """Generates latent noise.""" @@ -139,7 +149,7 @@ class NoiseInvocation(BaseInvocation): # Text to image -class TextToLatentsInvocation(BaseInvocation, ModelGetter): +class TextToLatentsInvocation(BaseInvocation): """Generates latents from conditionings.""" type: Literal["t2l"] = "t2l" @@ -152,9 +162,10 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): steps: int = Field(default=10, gt=0, description="The number of steps to use to generate the image") cfg_scale: float = Field(default=7.5, gt=0, description="The Classifier-Free Guidance, higher values may result in a result closer to the prompt", ) scheduler: SAMPLER_NAME_VALUES = Field(default="k_lms", description="The scheduler to use" ) - model: str = Field(default="", description="The model to use (currently ignored)") seamless: bool = Field(default=False, description="Whether or not to generate an image that can tile without seams", ) seamless_axes: str = Field(default="", description="The axes to tile the image on, 'x' and/or 'y'") + + unet: UNetField = Field(default=None, description="UNet submodel") # fmt: on # Schema customisation @@ -162,9 +173,6 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): schema_extra = { "ui": { "tags": ["latents", "image"], - "type_hints": { - "model": "model" - } }, } @@ -179,7 +187,7 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): source_node_id=source_node_id, ) - def get_conditioning_data(self, context: InvocationContext, model: StableDiffusionGeneratorPipeline) -> ConditioningData: + def get_conditioning_data(self, context: InvocationContext, scheduler) -> ConditioningData: c, extra_conditioning_info = context.services.latents.get(self.positive_conditioning.conditioning_name) uc, _ = context.services.latents.get(self.negative_conditioning.conditioning_name) @@ -194,9 +202,36 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): h_symmetry_time_pct=None,#h_symmetry_time_pct, v_symmetry_time_pct=None#v_symmetry_time_pct, ), - ).add_scheduler_args_if_applicable(model.scheduler, eta=None)#ddim_eta) + ).add_scheduler_args_if_applicable(scheduler, eta=None)#ddim_eta) return conditioning_data + def create_pipeline(self, unet, scheduler) -> StableDiffusionGeneratorPipeline: + configure_model_padding( + unet, + self.seamless, + self.seamless_axes, + ) + + class FakeVae: + class FakeVaeConfig: + def __init__(self): + self.block_out_channels = [0] + + def __init__(self): + self.config = FakeVae.FakeVaeConfig() + + return StableDiffusionGeneratorPipeline( + vae=FakeVae(), # TODO: oh... + text_encoder=None, + tokenizer=None, + unet=unet, + scheduler=scheduler, + safety_checker=None, + feature_extractor=None, + requires_safety_checker=False, + precision="float16" if unet.dtype == torch.float16 else "float32", + #precision="float16", # TODO: + ) def invoke(self, context: InvocationContext) -> LatentsOutput: noise = context.services.latents.get(self.noise.latents_name) @@ -207,19 +242,33 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - - with self.get_model(context) as model: - conditioning_data = self.get_conditioning_data(context, model) - # TODO: Verify the noise is the right size - result_latents, result_attention_map_saver = model.latents_from_embeddings( - latents=torch.zeros_like(noise, dtype=torch_dtype(model.device)), - noise=noise, - num_inference_steps=self.steps, - conditioning_data=conditioning_data, - callback=step_callback + #unet_info = context.services.model_manager.get_model(**self.unet.unet.dict()) + unet_info = context.services.model_manager.get_model( + model_name=self.unet.unet.model_name, + model_type=SDModelType[self.unet.unet.model_type], + submodel=SDModelType[self.unet.unet.submodel] if self.unet.unet.submodel else None, ) + with unet_info.context as unet: + scheduler = get_scheduler( + context=context, + scheduler_info=self.unet.scheduler, + scheduler_name=self.scheduler, + ) + + pipeline = self.create_pipeline(unet, scheduler) + conditioning_data = self.get_conditioning_data(context, scheduler) + + # TODO: Verify the noise is the right size + result_latents, result_attention_map_saver = pipeline.latents_from_embeddings( + latents=torch.zeros_like(noise, dtype=torch_dtype(unet.device)), + noise=noise, + num_inference_steps=self.steps, + conditioning_data=conditioning_data, + callback=step_callback + ) + # https://discuss.huggingface.co/t/memory-usage-by-later-pipeline-stages/23699 torch.cuda.empty_cache() @@ -229,30 +278,8 @@ class TextToLatentsInvocation(BaseInvocation, ModelGetter): latents=LatentsField(latents_name=name) ) - def get_model(self, context: InvocationContext) -> StableDiffusionGeneratorPipeline: - model_ctx = super().get_model(context) - with model_ctx as model: - model.scheduler = get_scheduler( - model=model, - scheduler_name=self.scheduler - ) - - if isinstance(model, DiffusionPipeline): - for component in [model.unet, model.vae]: - configure_model_padding(component, - self.seamless, - self.seamless_axes - ) - else: - configure_model_padding(model, - self.seamless, - self.seamless_axes - ) - return model_ctx - - -class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelGetter): +class LatentsToLatentsInvocation(TextToLatentsInvocation): """Generates latents using latents as base image.""" type: Literal["l2l"] = "l2l" @@ -266,9 +293,6 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelGetter): schema_extra = { "ui": { "tags": ["latents"], - "type_hints": { - "model": "model" - } }, } @@ -283,22 +307,35 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelGetter): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - with self.get_model(context) as model: - conditioning_data = self.get_conditioning_data(model) + #unet_info = context.services.model_manager.get_model(**self.unet.unet.dict()) + unet_info = context.services.model_manager.get_model( + model_name=self.unet.unet.model_name, + model_type=SDModelType[self.unet.unet.model_type], + submodel=SDModelType[self.unet.unet.submodel] if self.unet.unet.submodel else None, + ) + + with unet_info.context as unet: + scheduler = get_scheduler( + context=context, + scheduler_info=self.unet.scheduler, + scheduler_name=self.scheduler, + ) + + pipeline = self.create_pipeline(unet, scheduler) + conditioning_data = self.get_conditioning_data(context, scheduler) # TODO: Verify the noise is the right size - initial_latents = latent if self.strength < 1.0 else torch.zeros_like( - latent, device=model.device, dtype=latent.dtype + latent, device=unet.device, dtype=latent.dtype ) - timesteps, _ = model.get_img2img_timesteps( + timesteps, _ = pipeline.get_img2img_timesteps( self.steps, self.strength, - device=model.device, + device=unet.device, ) - result_latents, result_attention_map_saver = model.latents_from_embeddings( + result_latents, result_attention_map_saver = pipeline.latents_from_embeddings( latents=initial_latents, timesteps=timesteps, noise=noise, @@ -318,23 +355,21 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation, ModelGetter): # Latent to image -class LatentsToImageInvocation(BaseInvocation, ModelGetter): +class LatentsToImageInvocation(BaseInvocation): """Generates an image from latents.""" type: Literal["l2i"] = "l2i" # Inputs latents: Optional[LatentsField] = Field(description="The latents to generate an image from") - model: str = Field(default="", description="The model to use") + vae: VaeField = Field(default=None, description="Vae submodel") + tiled: bool = Field(default=False, description="Decode latents by overlaping tiles(less memory consumption)") # Schema customisation class Config(InvocationConfig): schema_extra = { "ui": { "tags": ["latents", "image"], - "type_hints": { - "model": "model" - } }, } @@ -342,27 +377,45 @@ class LatentsToImageInvocation(BaseInvocation, ModelGetter): def invoke(self, context: InvocationContext) -> ImageOutput: latents = context.services.latents.get(self.latents.latents_name) - # TODO: this only really needs the vae - with self.get_model(context) as model: + #vae_info = context.services.model_manager.get_model(**self.vae.vae.dict()) + vae_info = context.services.model_manager.get_model( + model_name=self.vae.vae.model_name, + model_type=SDModelType[self.vae.vae.model_type], + submodel=SDModelType[self.vae.vae.submodel] if self.vae.vae.submodel else None, + ) + + with vae_info.context as vae: + # TODO: check if it works + if self.tiled: + vae.enable_tiling() + else: + vae.disable_tiling() + with torch.inference_mode(): - np_image = model.decode_latents(latents) - image = model.numpy_to_pil(np_image)[0] + # copied from diffusers pipeline + latents = latents / vae.config.scaling_factor + image = vae.decode(latents, return_dict=False)[0] + image = (image / 2 + 0.5).clamp(0, 1) # denormalize + # we always cast to float32 as this does not cause significant overhead and is compatible with bfloat16 + np_image = image.cpu().permute(0, 2, 3, 1).float().numpy() - image_type = ImageType.RESULT - image_name = context.services.images.create_name( - context.graph_execution_state_id, self.id - ) + image = VaeImageProcessor.numpy_to_pil(np_image)[0] - metadata = context.services.metadata.build_metadata( - session_id=context.graph_execution_state_id, node=self - ) + image_type = ImageType.RESULT + image_name = context.services.images.create_name( + context.graph_execution_state_id, self.id + ) - torch.cuda.empty_cache() + metadata = context.services.metadata.build_metadata( + session_id=context.graph_execution_state_id, node=self + ) - context.services.images.save(image_type, image_name, image, metadata) - return build_image_output( - image_type=image_type, image_name=image_name, image=image - ) + torch.cuda.empty_cache() + + context.services.images.save(image_type, image_name, image, metadata) + return build_image_output( + image_type=image_type, image_name=image_name, image=image + ) LATENTS_INTERPOLATION_MODE = Literal[ @@ -430,21 +483,21 @@ class ScaleLatentsInvocation(BaseInvocation): return LatentsOutput(latents=LatentsField(latents_name=name)) -class ImageToLatentsInvocation(BaseInvocation, ModelGetter): +class ImageToLatentsInvocation(BaseInvocation): """Encodes an image into latents.""" type: Literal["i2l"] = "i2l" # Inputs image: Union[ImageField, None] = Field(description="The image to encode") - model: str = Field(default="", description="The model to use") + vae: VaeField = Field(default=None, description="Vae submodel") + tiled: bool = Field(default=False, description="Encode latents by overlaping tiles(less memory consumption)") # Schema customisation class Config(InvocationConfig): schema_extra = { "ui": { "tags": ["latents", "image"], - "type_hints": {"model": "model"}, }, } @@ -454,22 +507,38 @@ class ImageToLatentsInvocation(BaseInvocation, ModelGetter): self.image.image_type, self.image.image_name ) - # TODO: this only really needs the vae - model_info = self.get_model(context) - model: StableDiffusionGeneratorPipeline = model_info["model"] + #vae_info = context.services.model_manager.get_model(**self.vae.vae.dict()) + vae_info = context.services.model_manager.get_model( + model_name=self.vae.vae.model_name, + model_type=SDModelType[self.vae.vae.model_type], + submodel=SDModelType[self.vae.vae.submodel] if self.vae.vae.submodel else None, + ) image_tensor = image_resized_to_grid_as_tensor(image.convert("RGB")) - if image_tensor.dim() == 3: image_tensor = einops.rearrange(image_tensor, "c h w -> 1 c h w") - latents = model.non_noised_latents_from_image( - image_tensor, - device=model._model_group.device_for(model.unet), - dtype=model.unet.dtype, - ) + with vae_info.context as vae: + # TODO: check if it works + if self.tiled: + vae.enable_tiling() + else: + vae.disable_tiling() + + latents = self.non_noised_latents_from_image(vae, image_tensor) name = f"{context.graph_execution_state_id}__{self.id}" context.services.latents.set(name, latents) return LatentsOutput(latents=LatentsField(latents_name=name)) + + def non_noised_latents_from_image(self, vae, init_image): + init_image = init_image.to(device=vae.device, dtype=vae.dtype) + with torch.inference_mode(): + init_latent_dist = vae.encode(init_image).latent_dist + init_latents = init_latent_dist.sample().to( + dtype=vae.dtype + ) # FIXME: uses torch.randn. make reproducible! + + init_latents = 0.18215 * init_latents + return init_latents \ No newline at end of file From 72967bf1180c151638e2c1c4a26517557c8f60e8 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 14:44:44 -0400 Subject: [PATCH 029/225] convert add_model(), del_model(), list_models() etc to use bifurcated names --- invokeai/app/api/routers/models.py | 26 +- invokeai/app/invocations/model.py | 8 +- .../app/services/model_manager_service.py | 72 +++--- invokeai/backend/generate.py | 4 +- .../backend/model_management/model_manager.py | 230 ++++++++++++------ invokeai/frontend/CLI/readline.py | 5 +- 6 files changed, 217 insertions(+), 128 deletions(-) diff --git a/invokeai/app/api/routers/models.py b/invokeai/app/api/routers/models.py index ca83b44bf3..97c0265c50 100644 --- a/invokeai/app/api/routers/models.py +++ b/invokeai/app/api/routers/models.py @@ -1,12 +1,9 @@ # Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654) and 2023 Kent Keirsey (https://github.com/hipsterusername) -import shutil -import asyncio -from typing import Annotated, Any, List, Literal, Optional, Union +from typing import Annotated, Literal, Optional, Union from fastapi.routing import APIRouter, HTTPException from pydantic import BaseModel, Field, parse_obj_as -from pathlib import Path from ..dependencies import ApiDependencies models_router = APIRouter(prefix="/v1/models", tags=["models"]) @@ -19,6 +16,15 @@ class VaeRepo(BaseModel): class ModelInfo(BaseModel): description: Optional[str] = Field(description="A description of the model") + model_name: str = Field(description="The name of the model") + model_type: str = Field(description="The type of the model") + +class DiffusersModelInfo(ModelInfo): + format: Literal['folder'] = 'folder' + + vae: Optional[VaeRepo] = Field(description="The VAE repo to use for this model") + repo_id: Optional[str] = Field(description="The repo ID to use for this model") + path: Optional[str] = Field(description="The path to the model") class CkptModelInfo(ModelInfo): format: Literal['ckpt'] = 'ckpt' @@ -29,12 +35,8 @@ class CkptModelInfo(ModelInfo): width: Optional[int] = Field(description="The width of the model") height: Optional[int] = Field(description="The height of the model") -class DiffusersModelInfo(ModelInfo): - format: Literal['diffusers'] = 'diffusers' - - vae: Optional[VaeRepo] = Field(description="The VAE repo to use for this model") - repo_id: Optional[str] = Field(description="The repo ID to use for this model") - path: Optional[str] = Field(description="The path to the model") +class SafetensorsModelInfo(CkptModelInfo): + format: Literal['safetensors'] = 'safetensors' class CreateModelRequest(BaseModel): name: str = Field(description="The name of the model") @@ -56,7 +58,7 @@ class ConvertedModelResponse(BaseModel): info: DiffusersModelInfo = Field(description="The converted model info") class ModelsList(BaseModel): - models: dict[str, Annotated[Union[(CkptModelInfo,DiffusersModelInfo)], Field(discriminator="format")]] + models: dict[str, Annotated[Union[(DiffusersModelInfo,CkptModelInfo,SafetensorsModelInfo)], Field(discriminator="format")]] @models_router.get( @@ -121,7 +123,7 @@ async def delete_model(model_name: str) -> None: raise HTTPException(status_code=204, detail=f"Model '{model_name}' deleted successfully") else: - logger.error(f"Model not found") + logger.error("Model not found") raise HTTPException(status_code=404, detail=f"Model '{model_name}' not found") diff --git a/invokeai/app/invocations/model.py b/invokeai/app/invocations/model.py index 11f1fd5c5f..74467d7ab3 100644 --- a/invokeai/app/invocations/model.py +++ b/invokeai/app/invocations/model.py @@ -60,14 +60,14 @@ class ModelLoaderInvocation(BaseInvocation): def invoke(self, context: InvocationContext) -> ModelLoaderOutput: # TODO: not found exceptions - if not context.services.model_manager.valid_model( + if not context.services.model_manager.model_exists( model_name=self.model_name, model_type=SDModelType.diffusers, ): raise Exception(f"Unkown model name: {self.model_name}!") """ - if not context.services.model_manager.valid_model( + if not context.services.model_manager.model_exists( model_name=self.model_name, model_type=SDModelType.diffusers, submodel=SDModelType.tokenizer, @@ -76,7 +76,7 @@ class ModelLoaderInvocation(BaseInvocation): f"Failed to find tokenizer submodel in {self.model_name}! Check if model corrupted" ) - if not context.services.model_manager.valid_model( + if not context.services.model_manager.model_exists( model_name=self.model_name, model_type=SDModelType.diffusers, submodel=SDModelType.text_encoder, @@ -85,7 +85,7 @@ class ModelLoaderInvocation(BaseInvocation): f"Failed to find text_encoder submodel in {self.model_name}! Check if model corrupted" ) - if not context.services.model_manager.valid_model( + if not context.services.model_manager.model_exists( model_name=self.model_name, model_type=SDModelType.diffusers, submodel=SDModelType.unet, diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index 3c50d2ba2d..fd24aca81b 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -59,35 +59,35 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def valid_model(self, model_name: str) -> bool: - """ - Given a model name, returns True if it is a valid - identifier. - """ + def model_exists( + self, + model_name: str, + model_type: SDModelType + ) -> bool: pass @abstractmethod - def default_model(self) -> Union[str,None]: + def default_model(self) -> Union[Tuple(str, SDModelType),None], """ - Returns the name of the default model, or None + Returns the name and typeof the default model, or None if none is defined. """ pass @abstractmethod - def set_default_model(self, model_name:str): + def set_default_model(self, model_name: str, model_type: SDModelType): """Sets the default model to the indicated name.""" pass @abstractmethod - def model_info(self, model_name: str)->dict: + def model_info(self, model_name: str, model_type: SDModelType)->dict: """ Given a model name returns a dict-like (OmegaConf) object describing it. """ pass @abstractmethod - def model_names(self)->list[str]: + def model_names(self)->List[Tuple(str, SDModelType)]: """ Returns a list of all the model names known. """ @@ -97,18 +97,25 @@ class ModelManagerServiceBase(ABC): def list_models(self)->dict: """ Return a dict of models in the format: - { model_name1: {'status': ('active'|'cached'|'not loaded'), - 'description': description, - 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), + { model_key1: {'status': 'active'|'cached'|'not loaded', + 'model_name' : name, + 'model_type' : SDModelType, + 'description': description, + 'format': 'folder'|'safetensors'|'ckpt' }, - model_name2: { etc } + model_key2: { etc } """ pass @abstractmethod def add_model( - self, model_name: str, model_attributes: dict, clobber: bool = False)->None: + self, + model_name: str, + model_type: SDModelType, + model_attributes: dict, + clobber: bool = False + )->None: """ Update the named model with a dictionary of attributes. Will fail with an assertion error if the name already exists. Pass clobber=True to overwrite. @@ -121,7 +128,7 @@ class ModelManagerServiceBase(ABC): @abstractmethod def del_model(self, model_name: str, - model_type: SDModelType=SDModelType.diffusers, + model_type: SDModelType, delete_files: bool = False): """ Delete the named model from configuration. If delete_files is true, @@ -332,33 +339,37 @@ class ModelManagerService(ModelManagerServiceBase): return model_info - def valid_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> bool: + def model_exists( + self, + model_name: str, + model_type: SDModelType + ) -> bool: """ Given a model name, returns True if it is a valid identifier. """ - return self.mgr.valid_model( + return self.mgr.model_exists( model_name, model_type) - def default_model(self) -> Union[str,None]: + def default_model(self) -> Union[Tuple(str, SDModelType),None], """ Returns the name of the default model, or None if none is defined. """ return self.mgr.default_model() - def set_default_model(self, model_name:str): + def set_default_model(self, model_name:str, model_type: SDModelType): """Sets the default model to the indicated name.""" self.mgr.set_default_model(model_name) - def model_info(self, model_name: str)->dict: + def model_info(self, model_name: str, model_type: SDModelType)->dict: """ Given a model name returns a dict-like (OmegaConf) object describing it. """ return self.mgr.model_info(model_name) - def model_names(self)->list[str]: + def model_names(self)->List[Tuple(str, SDModelType)]: """ Returns a list of all the model names known. """ @@ -367,16 +378,21 @@ class ModelManagerService(ModelManagerServiceBase): def list_models(self)->dict: """ Return a dict of models in the format: - { model_name1: {'status': ('active'|'cached'|'not loaded'), + { model_key: {'status': 'active'|'cached'|'not loaded', + 'model_name' : name, + 'model_type' : SDModelType, 'description': description, - 'format': ('ckpt'|'diffusers'|'vae'|'text_encoder'|'tokenizer'|'lora'...), + 'format': 'folder'|'safetensors'|'ckpt' }, - model_name2: { etc } """ return self.mgr.list_models() def add_model( - self, model_name: str, model_attributes: dict, clobber: bool = False)->None: + self, + model_name: str, + model_type: SDModelType, + model_attributes: dict, + clobber: bool = False)->None: """ Update the named model with a dictionary of attributes. Will fail with an assertion error if the name already exists. Pass clobber=True to overwrite. @@ -384,7 +400,7 @@ class ModelManagerService(ModelManagerServiceBase): with an assertion error if provided attributes are incorrect or the model name is missing. Call commit() to write changes to disk. """ - return self.mgr.add_model(model_name, model_attributes, dict, clobber) + return self.mgr.add_model(model_name, model_type, model_attributes, dict, clobber) def del_model(self, @@ -439,7 +455,7 @@ class ModelManagerService(ModelManagerServiceBase): Creates an entry for the indicated textual inversion embedding file. Call commit() to write out the configuration to models.yaml """ - self.mgr(path, model_name, description) + self.mgr.import_embedding(path, model_name, description) def heuristic_import( self, diff --git a/invokeai/backend/generate.py b/invokeai/backend/generate.py index 8cddc1496b..bdf9f25b6f 100644 --- a/invokeai/backend/generate.py +++ b/invokeai/backend/generate.py @@ -227,7 +227,7 @@ class Generate: # don't accept invalid models fallback = self.model_manager.default_model() or FALLBACK_MODEL_NAME model = model or fallback - if not self.model_manager.valid_model(model): + if not self.model_manager.model_exists(model): logger.warning( f'"{model}" is not a known model name; falling back to {fallback}.' ) @@ -877,7 +877,7 @@ class Generate: # the model cache does the loading and offloading cache = self.model_manager - if not cache.valid_model(model_name): + if not cache.model_exists(model_name): raise KeyError( f'** "{model_name}" is not a known model name. Cannot change.' ) diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index e32ba3b22a..301f29f2c9 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -9,6 +9,7 @@ return a SDModelInfo object that contains the following attributes: model into GPU VRAM and returns the model for use. See below for usage. * name -- symbolic name of the model + * type -- SDModelType of the model * hash -- unique hash for the model * location -- path or repo_id of the model * revision -- revision of the model if coming from a repo id, @@ -26,7 +27,7 @@ Typical usage: max_cache_size=8 ) # gigabytes - model_info = manager.get_model('stable-diffusion-1.5') + model_info = manager.get_model('stable-diffusion-1.5', SDModelType.diffusers) with model_info.context as my_model: my_model.latents_from_embeddings(...) @@ -54,15 +55,20 @@ MODELS.YAML The general format of a models.yaml section is: - name-of-model: - format: diffusers|ckpt|vae|text_encoder|tokenizer... + type-of-model/name-of-model: + format: folder|ckpt|safetensors repo_id: owner/repo path: /path/to/local/file/or/directory subfolder: subfolder-name -The format is one of {diffusers, ckpt, vae, text_encoder, tokenizer, -unet, scheduler, safety_checker, feature_extractor}, and correspond to -items in the SDModelType enum defined in model_cache.py +The type of model is given in the stanza key, and is one of +{diffusers, ckpt, vae, text_encoder, tokenizer, unet, scheduler, +safety_checker, feature_extractor, lora, textual_inversion}, and +correspond to items in the SDModelType enum defined in model_cache.py + +The format indicates whether the model is organized as a folder with +model subdirectories, or is contained in a single checkpoint or +safetensors file. One, but not both, of repo_id and path are provided. repo_id is the HuggingFace repository ID of the model, and path points to the file or @@ -74,13 +80,13 @@ the main model. These are usually named after the model type, such as This example summarizes the two ways of getting a non-diffuser model: - clip-test-1: - format: text_encoder + text_encoder/clip-test-1: + format: folder repo_id: openai/clip-vit-large-patch14 description: Returns standalone CLIPTextModel - clip-test-2: - format: text_encoder + text_encoder/clip-test-2: + format: folder repo_id: stabilityai/stable-diffusion-2 subfolder: text_encoder description: Returns the text_encoder in the subfolder of the diffusers model (just the encoder in RAM) @@ -101,12 +107,12 @@ You may wish to use the same name for a related family of models. To do this, disambiguate the stanza key with the model and and format separated by "/". Example: - clip-large/tokenizer: + tokenizer/clip-large: format: tokenizer repo_id: openai/clip-vit-large-patch14 description: Returns standalone tokenizer - clip-large/text_encoder: + text_encoder/clip-large: format: text_encoder repo_id: openai/clip-vit-large-patch14 description: Returns standalone text encoder @@ -128,31 +134,41 @@ from __future__ import annotations import os import re import textwrap +from contextlib import suppress from dataclasses import dataclass from enum import Enum, auto +from packaging import version from pathlib import Path from shutil import rmtree -from typing import Union, Callable, types -from contextlib import suppress +from typing import Callable, Optional, List, Tuple, Union, types import safetensors import safetensors.torch import torch -import invokeai.backend.util.logging as logger from huggingface_hub import scan_cache_dir from omegaconf import OmegaConf from omegaconf.dictconfig import DictConfig -from invokeai.backend.globals import Globals, global_cache_dir, global_resolve_path -from .model_cache import ModelCache, ModelLocker, SDModelType, ModelStatus, SilenceWarnings +import invokeai.backend.util.logging as logger +from invokeai.backend.globals import (Globals, global_cache_dir, + global_resolve_path) +from invokeai.backend.util import download_with_resume from ..util import CUDA_DEVICE +from .model_cache import (ModelCache, ModelLocker, ModelStatus, SDModelType, + SilenceWarnings) + +# We are only starting to number the config file with release 3. +# The config file version doesn't have to start at release version, but it will help +# reduce confusion. +CONFIG_FILE_VERSION='3.0.0' # wanted to use pydantic here, but Generator objects not supported @dataclass class SDModelInfo(): context: ModelLocker name: str + type: SDModelType hash: str location: Union[Path,str] precision: torch.dtype @@ -208,14 +224,17 @@ class ModelManager(object): type and precision are set up for a CUDA system running at half precision. """ if isinstance(config, DictConfig): - self.config = config self.config_path = None + self.config = config elif isinstance(config,(str,Path)): self.config_path = config self.config = OmegaConf.load(self.config_path) else: raise ValueError('config argument must be an OmegaConf object, a Path or a string') + # check config version number and update on disk/RAM if necessary + self._update_config_file_version() + self.cache = ModelCache( max_cache_size=max_cache_size, execution_device = device_type, @@ -226,8 +245,7 @@ class ModelManager(object): self.cache_keys = dict() self.logger = logger - # TODO: rename to smth like - is_model_exists - def valid_model( + def model_exists( self, model_name: str, model_type: SDModelType = SDModelType.diffusers, @@ -246,14 +264,14 @@ class ModelManager(object): model_type_str, model_name = model_key.split('/', 1) if model_type_str not in SDModelType.__members__: # TODO: - raise Exception(f"Unkown model type: {model_type_str}") + raise Exception(f"Unknown model type: {model_type_str}") return (model_name, SDModelType[model_type_str]) def get_model( self, model_name: str, - model_type: SDModelType=None, + model_type: SDModelType=SDModelType.diffusers, submodel: SDModelType=None, ) -> SDModelInfo: """Given a model named identified in models.yaml, return @@ -311,7 +329,7 @@ class ModelManager(object): if model_type == SDModelType.diffusers: # intercept stanzas that point to checkpoint weights and replace them # with the equivalent diffusers model - if 'weights' in mconfig: + if mconfig.format in ["ckpt", "diffusers"]: location = self.convert_ckpt_and_cache(mconfig) else: location = global_resolve_path(mconfig.get('path')) or mconfig.get('repo_id') @@ -350,6 +368,7 @@ class ModelManager(object): return SDModelInfo( context = model_context, name = model_name, + type = submodel or model_type, hash = hash, location = location, revision = revision, @@ -358,43 +377,50 @@ class ModelManager(object): _cache = self.cache ) - def default_model(self) -> Union[str,None]: + def default_model(self) -> Union[Tuple(str, SDModelType),None]: """ Returns the name of the default model, or None if none is defined. """ - for model_name in self.config: - if self.config[model_name].get("default"): - return model_name - return list(self.config.keys())[0] # first one + for model_name, model_type in self.model_names(): + model_key = self.create_key(model_name, model_type) + if self.config[model_key].get("default"): + return (model_name, model_type) + return self.model_names()[0][0] - def set_default_model(self, model_name: str) -> None: + def set_default_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> None: """ Set the default model. The change will not take effect until you call model_manager.commit() """ - assert model_name in self.model_names(), f"unknown model '{model_name}'" + assert self.model_exists(model_name, model_type), f"unknown model '{model_name}'" config = self.config - for model in config: - config[model].pop("default", None) - config[model_name]["default"] = True + for model_name, model_type in self.model_names(): + key = self.create_key(model_name, model_type) + config[key].pop("default", None) + config[self.create_key(model_name, model_type)]["default"] = True - def model_info(self, model_name: str) -> dict: + def model_info( + self, + model_name: str, + model_type: SDModelType=SDModelType.diffusers + ) -> dict: """ Given a model name returns the OmegaConf (dict-like) object describing it. """ - if model_name not in self.config: + if not self.exists(model_name, model_type): return None - return self.config[model_name] + return self.config[self.create_key(model_name,model_type)] - def model_names(self) -> list[str]: + def model_names(self) -> List[Tuple(str, SDModelType)]: """ - Return a list consisting of all the names of models defined in models.yaml + Return a list of (str, SDModelType) corresponding to all models + known to the configuration. """ - return list(self.config.keys()) + return [(self.parse_key(x)) for x in self.config.keys() if isinstance(self.config[x],DictConfig)] - def is_legacy(self, model_name: str) -> bool: + def is_legacy(self, model_name: str, model_type: SDModelType.diffusers) -> bool: """ Return true if this is a legacy (.ckpt) model """ @@ -402,7 +428,7 @@ class ModelManager(object): # there are no legacy ckpts! if Globals.ckpt_convert: return False - info = self.model_info(model_name) + info = self.model_info(model_name, model_type) if "weights" in info and info["weights"].endswith((".ckpt", ".safetensors")): return True return False @@ -422,15 +448,17 @@ class ModelManager(object): # don't include VAEs in listing (legacy style) if "config" in stanza and "/VAE/" in stanza["config"]: continue + if model_key=='config_file_version': + continue model_name, model_type = self.parse_key(model_key) - models[model_name] = dict() + models[model_key] = dict() # TODO: return all models in future if model_type != SDModelType.diffusers: continue - model_format = "ckpt" if "weights" in stanza else "diffusers" + model_format = stanza.get('format') # Common Attribs status = self.cache.status( @@ -439,26 +467,25 @@ class ModelManager(object): subfolder=stanza.get('subfolder') ) description = stanza.get("description", None) - models[model_name].update( - description=description, - type=model_type, + models[model_key].update( + model_name=model_name, + model_type=model_type.name, format=model_format, + description=description, status=status.value ) # Checkpoint Config Parse - if model_format == "ckpt": - models[model_name].update( + if model_format in ["ckpt","safetensors"]: + models[model_key].update( config = str(stanza.get("config", None)), weights = str(stanza.get("weights", None)), vae = str(stanza.get("vae", None)), - width = str(stanza.get("width", 512)), - height = str(stanza.get("height", 512)), ) # Diffusers Config Parse - elif model_format == "diffusers": + elif model_format == "folder": if vae := stanza.get("vae", None): if isinstance(vae, DictConfig): vae = dict( @@ -467,7 +494,7 @@ class ModelManager(object): subfolder = str(vae.get("subfolder", None)), ) - models[model_name].update( + models[model_key].update( vae = vae, repo_id = str(stanza.get("repo_id", None)), path = str(stanza.get("path", None)), @@ -479,12 +506,9 @@ class ModelManager(object): """ Print a table of models, their descriptions, and load status """ - models = self.list_models() - for name in models: - if models[name]["type"] == "vae": - continue - line = f'{name:25s} {models[name]["status"]:>15s} {models[name]["type"]:10s} {models[name]["description"]}' - if models[name]["status"] == "active": + for model_key, model_info in self.list_models().items(): + line = f'{model_info["model_name"]:25s} {model_info["status"]:>15s} {model_info["model_type"]:10s} {model_info["description"]}' + if model_info["status"] in ["in gpu","locked in gpu"]: line = f"\033[1m{line}\033[0m" print(line) @@ -511,9 +535,9 @@ class ModelManager(object): # self.stack.remove(model_name) if delete_files: - repo_id = conf.get("repo_id", None) - path = self._abs_path(conf.get("path", None)) - weights = self._abs_path(conf.get("weights", None)) + repo_id = model_cfg.get("repo_id", None) + path = self._abs_path(model_cfg.get("path", None)) + weights = self._abs_path(model_cfg.get("weights", None)) if "weights" in model_cfg: weights = self._abs_path(model_cfg["weights"]) self.logger.info(f"Deleting file {weights}") @@ -558,7 +582,7 @@ class ModelManager(object): ), 'model must have either the "path" or "repo_id" fields defined' elif model_format == "ckpt": - for field in ("description", "weights", "height", "width", "config"): + for field in ("description", "weights", "config"): assert field in model_attributes, f"required field {field} is missing" else: @@ -579,11 +603,6 @@ class ModelManager(object): self.cache.uncache_model(self.cache_keys[model_key]) del self.cache_keys[model_key] - - - - - def import_diffuser_model( self, repo_or_path: Union[str, Path], @@ -604,7 +623,6 @@ class ModelManager(object): models.yaml file. """ model_name = model_name or Path(repo_or_path).stem - model_key = f'{model_name}/diffusers' model_description = description or f"Imported diffusers model {model_name}" new_config = dict( description=model_description, @@ -616,10 +634,10 @@ class ModelManager(object): else: new_config.update(repo_id=repo_or_path) - self.add_model(model_key, new_config, True) + self.add_model(model_name, SDModelType.diffusers, new_config, True) if commit_to_conf: self.commit(commit_to_conf) - return model_key + return self.create_key(model_name, SDModelType.diffusers) def import_lora( self, @@ -635,7 +653,8 @@ class ModelManager(object): model_name = model_name or path.stem model_description = description or f"LoRA model {model_name}" self.add_model( - f'{model_name}/{SDModelType.lora.name}', + model_name, + SDModelType.lora, dict( format="lora", weights=str(path), @@ -663,7 +682,8 @@ class ModelManager(object): model_name = model_name or path.stem model_description = description or f"Textual embedding model {model_name}" self.add_model( - f'{model_name}/{SDModelType.textual_inversion.name}', + model_name, + SDModelType.textual_inversion, dict( format="textual_inversion", weights=str(weights), @@ -1025,9 +1045,14 @@ class ModelManager(object): description=model_description, format="diffusers", ) - if model_name in self.config: - self.del_model(model_name) - self.add_model(model_name, new_config, True) + if self.model_exists(model_name, SDModelType.diffusers): + self.del_model(model_name, SDModelType.diffusers) + self.add_model( + model_name, + SDModelType.diffusers, + new_config, + True + ) if commit_to_conf: self.commit(commit_to_conf) self.logger.debug("Conversion succeeded") @@ -1081,11 +1106,6 @@ class ModelManager(object): """\ # This file describes the alternative machine learning models # available to InvokeAI script. - # - # To add a new model, follow the examples below. Each - # model requires a model config file, a weights file, - # and the width and height of the images it - # was trained on. """ ) @@ -1130,3 +1150,53 @@ class ModelManager(object): source = os.path.join(Globals.root, source) resolved_path = Path(source) return resolved_path + + def _update_config_file_version(self): + """ + This gets called at object init time and will update + from older versions of the config file to new ones + as necessary. + """ + current_version = self.config.get("config_file_version","1.0.0") + if version.parse(current_version) < version.parse(CONFIG_FILE_VERSION): + self.logger.info(f'models.yaml version {current_version} detected. Updating to {CONFIG_FILE_VERSION}') + + new_config = OmegaConf.create() + new_config["config_file_version"] = CONFIG_FILE_VERSION + + for model_key in self.config: + + old_stanza = self.config[model_key] + + # ignore old and ugly way of associating a legacy + # vae with a legacy checkpont model + if old_stanza.get("config") and '/VAE/' in old_stanza.get("config"): + continue + + # bare keys are updated to be prefixed with 'diffusers/' + if '/' not in model_key: + new_key = f'diffusers/{model_key}' + else: + new_key = model_key + + if old_stanza.get('format')=='diffusers': + model_format = 'folder' + elif old_stanza.get('weights') and Path(old_stanza.get('weights')).suffix == '.ckpt': + model_format = 'ckpt' + elif old_stanza.get('weights') and Path(old_stanza.get('weights')).suffix == '.safetensors': + model_format = 'safetensors' + + # copy fields over manually rather than doing a copy() or deepcopy() + # in order to avoid bringing in unwanted fields. + new_config[new_key] = dict( + description = old_stanza.get('description'), + format = model_format, + ) + for field in ["repo_id", "path", "weights", "config", "vae"]: + if field_value := old_stanza.get(field): + new_config[new_key].update({field: field_value}) + + self.config = new_config + if self.config_path: + self.commit() + diff --git a/invokeai/frontend/CLI/readline.py b/invokeai/frontend/CLI/readline.py index 5a877ae810..228ab88b57 100644 --- a/invokeai/frontend/CLI/readline.py +++ b/invokeai/frontend/CLI/readline.py @@ -345,13 +345,14 @@ class Completer(object): partial = text matches = list() for s in self.models: + name = self.models[s]["model_name"] format = self.models[s]["format"] if format == "vae": continue if ckpt_only and format != "ckpt": continue - if s.startswith(partial): - matches.append(switch + s) + if name.startswith(partial): + matches.append(switch + name) matches.sort() return matches From 5e8e3cf4640c4e358533f930a3564a16a423fe34 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 14:55:59 -0400 Subject: [PATCH 030/225] correct typos in model_manager_service --- invokeai/app/services/model_manager_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index fd24aca81b..8384a97435 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -3,7 +3,7 @@ from abc import ABC, abstractmethod from pathlib import Path -from typing import Union, Callable, types +from typing import Union, Callable, List, Tuple, types from dataclasses import dataclass from invokeai.backend.model_management.model_manager import ( @@ -67,7 +67,7 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def default_model(self) -> Union[Tuple(str, SDModelType),None], + def default_model(self) -> Union[Tuple(str, SDModelType),None]: """ Returns the name and typeof the default model, or None if none is defined. @@ -352,7 +352,7 @@ class ModelManagerService(ModelManagerServiceBase): model_name, model_type) - def default_model(self) -> Union[Tuple(str, SDModelType),None], + def default_model(self) -> Union[Tuple(str, SDModelType),None]: """ Returns the name of the default model, or None if none is defined. From b23c9f1da5f19167669ac044179884092187253a Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 14:59:21 -0400 Subject: [PATCH 031/225] get Tuple type hint syntax right --- invokeai/app/services/model_manager_service.py | 8 ++++---- invokeai/backend/model_management/model_manager.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index 8384a97435..5c57c5462c 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -67,7 +67,7 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def default_model(self) -> Union[Tuple(str, SDModelType),None]: + def default_model(self) -> Union[Tuple[str, SDModelType],None]: """ Returns the name and typeof the default model, or None if none is defined. @@ -87,7 +87,7 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def model_names(self)->List[Tuple(str, SDModelType)]: + def model_names(self)->List[Tuple[str, SDModelType]]: """ Returns a list of all the model names known. """ @@ -352,7 +352,7 @@ class ModelManagerService(ModelManagerServiceBase): model_name, model_type) - def default_model(self) -> Union[Tuple(str, SDModelType),None]: + def default_model(self) -> Union[Tuple[str, SDModelType],None]: """ Returns the name of the default model, or None if none is defined. @@ -369,7 +369,7 @@ class ModelManagerService(ModelManagerServiceBase): """ return self.mgr.model_info(model_name) - def model_names(self)->List[Tuple(str, SDModelType)]: + def model_names(self)->List[Tuple[str, SDModelType]]: """ Returns a list of all the model names known. """ diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 301f29f2c9..f1a6dc18dc 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -377,7 +377,7 @@ class ModelManager(object): _cache = self.cache ) - def default_model(self) -> Union[Tuple(str, SDModelType),None]: + def default_model(self) -> Union[Tuple[str, SDModelType],None]: """ Returns the name of the default model, or None if none is defined. @@ -413,7 +413,7 @@ class ModelManager(object): return None return self.config[self.create_key(model_name,model_type)] - def model_names(self) -> List[Tuple(str, SDModelType)]: + def model_names(self) -> List[Tuple[str, SDModelType]]: """ Return a list of (str, SDModelType) corresponding to all models known to the configuration. From d8b1f29066d1b93c0aaca093a67ac9bbec0ccf05 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 16:29:18 -0400 Subject: [PATCH 032/225] proxy SDModelInfo so that it can be used directly as context --- invokeai/backend/model_management/model_cache.py | 2 +- invokeai/backend/model_management/model_manager.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 08aa2f3044..558de0f28c 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -68,7 +68,7 @@ class SDModelType(Enum): # distinguish them by class lora=LoraType textual_inversion=TIType - + class ModelStatus(Enum): unknown='unknown' not_loaded='not loaded' diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index f1a6dc18dc..4fbc80703a 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -176,6 +176,12 @@ class SDModelInfo(): revision: str = None _cache: ModelCache = None + def __enter__(self): + return self.context.__enter__() + + def __exit__(self,*args, **kwargs): + self.context.__exit__(*args, **kwargs) + @property def status(self)->ModelStatus: '''Return load status of this model as a model_cache.ModelStatus enum''' From 2204e4759669d100a3f13e0069241bb7f35570ce Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 16:54:47 -0400 Subject: [PATCH 033/225] allow submodels to be fetched independent of parent pipeline --- invokeai/backend/model_management/model_manager.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 4fbc80703a..87fb938338 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -357,6 +357,13 @@ class ModelManager(object): vae_id = mconfig.vae.repo_id vae = (SDModelType.vae, vae_id) + # optimization - don't load whole model if the user + # is asking for just a piece of it + if model_type == SDModelType.diffusers and submodel and not subfolder: + model_type = submodel + subfolder = submodel.name + submodel = None + model_context = self.cache.get_model( location, model_type = model_type, From 039fa73269f2decb55e75347e3b19dad534de9ac Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Sun, 14 May 2023 03:06:26 +0300 Subject: [PATCH 034/225] Change SDModelType enum to string, fixes(model unload negative locks count, scheduler load error, saftensors convert, wrong logic in del_model, wrong parse metadata in web) --- invokeai/app/invocations/compel.py | 13 +- invokeai/app/invocations/latent.py | 63 ++-- invokeai/app/invocations/model.py | 38 +-- invokeai/app/services/events.py | 4 +- .../app/services/model_manager_service.py | 228 +++++++------- .../backend/model_management/model_cache.py | 277 ++++++++++-------- .../backend/model_management/model_manager.py | 126 ++++---- .../web/src/common/util/parseMetadata.ts | 2 +- 8 files changed, 388 insertions(+), 363 deletions(-) diff --git a/invokeai/app/invocations/compel.py b/invokeai/app/invocations/compel.py index 584e14ea0f..633b53accd 100644 --- a/invokeai/app/invocations/compel.py +++ b/invokeai/app/invocations/compel.py @@ -59,19 +59,14 @@ class CompelInvocation(BaseInvocation): def invoke(self, context: InvocationContext) -> CompelOutput: - # TODO: load without model text_encoder_info = context.services.model_manager.get_model( - model_name=self.clip.text_encoder.model_name, - model_type=SDModelType[self.clip.text_encoder.model_type], - submodel=SDModelType[self.clip.text_encoder.submodel], + **self.clip.text_encoder.dict(), ) tokenizer_info = context.services.model_manager.get_model( - model_name=self.clip.tokenizer.model_name, - model_type=SDModelType[self.clip.tokenizer.model_type], - submodel=SDModelType[self.clip.tokenizer.submodel], + **self.clip.tokenizer.dict(), ) - with text_encoder_info.context as text_encoder,\ - tokenizer_info.context as tokenizer: + with text_encoder_info as text_encoder,\ + tokenizer_info as tokenizer: # TODO: global? input? #use_full_precision = precision == "float32" or precision == "autocast" diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index 9ca1c81a3d..cedadde4d0 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -79,12 +79,8 @@ def get_scheduler( scheduler_info: ModelInfo, scheduler_name: str, ) -> Scheduler: - orig_scheduler_info = context.services.model_manager.get_model( - model_name=scheduler_info.model_name, - model_type=SDModelType[scheduler_info.model_type], - submodel=SDModelType[scheduler_info.submodel], - ) - with orig_scheduler_info.context as orig_scheduler: + orig_scheduler_info = context.services.model_manager.get_model(**scheduler_info.dict()) + with orig_scheduler_info as orig_scheduler: scheduler_config = orig_scheduler.config scheduler_class = scheduler_map.get(scheduler_name,'ddim') @@ -243,14 +239,8 @@ class TextToLatentsInvocation(BaseInvocation): def step_callback(state: PipelineIntermediateState): self.dispatch_progress(context, source_node_id, state) - #unet_info = context.services.model_manager.get_model(**self.unet.unet.dict()) - unet_info = context.services.model_manager.get_model( - model_name=self.unet.unet.model_name, - model_type=SDModelType[self.unet.unet.model_type], - submodel=SDModelType[self.unet.unet.submodel] if self.unet.unet.submodel else None, - ) - - with unet_info.context as unet: + unet_info = context.services.model_manager.get_model(**self.unet.unet.dict()) + with unet_info as unet: scheduler = get_scheduler( context=context, scheduler_info=self.unet.scheduler, @@ -309,12 +299,10 @@ class LatentsToLatentsInvocation(TextToLatentsInvocation): #unet_info = context.services.model_manager.get_model(**self.unet.unet.dict()) unet_info = context.services.model_manager.get_model( - model_name=self.unet.unet.model_name, - model_type=SDModelType[self.unet.unet.model_type], - submodel=SDModelType[self.unet.unet.submodel] if self.unet.unet.submodel else None, + **self.unet.unet.dict(), ) - with unet_info.context as unet: + with unet_info as unet: scheduler = get_scheduler( context=context, scheduler_info=self.unet.scheduler, @@ -379,18 +367,18 @@ class LatentsToImageInvocation(BaseInvocation): #vae_info = context.services.model_manager.get_model(**self.vae.vae.dict()) vae_info = context.services.model_manager.get_model( - model_name=self.vae.vae.model_name, - model_type=SDModelType[self.vae.vae.model_type], - submodel=SDModelType[self.vae.vae.submodel] if self.vae.vae.submodel else None, + **self.vae.vae.dict(), ) - with vae_info.context as vae: - # TODO: check if it works + with vae_info as vae: if self.tiled: vae.enable_tiling() else: vae.disable_tiling() + # clear memory as vae decode can request a lot + torch.cuda.empty_cache() + with torch.inference_mode(): # copied from diffusers pipeline latents = latents / vae.config.scaling_factor @@ -509,36 +497,29 @@ class ImageToLatentsInvocation(BaseInvocation): #vae_info = context.services.model_manager.get_model(**self.vae.vae.dict()) vae_info = context.services.model_manager.get_model( - model_name=self.vae.vae.model_name, - model_type=SDModelType[self.vae.vae.model_type], - submodel=SDModelType[self.vae.vae.submodel] if self.vae.vae.submodel else None, + **self.vae.vae.dict(), ) image_tensor = image_resized_to_grid_as_tensor(image.convert("RGB")) if image_tensor.dim() == 3: image_tensor = einops.rearrange(image_tensor, "c h w -> 1 c h w") - with vae_info.context as vae: - # TODO: check if it works + with vae_info as vae: if self.tiled: vae.enable_tiling() else: vae.disable_tiling() - latents = self.non_noised_latents_from_image(vae, image_tensor) + # non_noised_latents_from_image + image_tensor = image_tensor.to(device=vae.device, dtype=vae.dtype) + with torch.inference_mode(): + image_tensor_dist = vae.encode(image_tensor).latent_dist + latents = image_tensor_dist.sample().to( + dtype=vae.dtype + ) # FIXME: uses torch.randn. make reproducible! + + latents = 0.18215 * latents name = f"{context.graph_execution_state_id}__{self.id}" context.services.latents.set(name, latents) return LatentsOutput(latents=LatentsField(latents_name=name)) - - - def non_noised_latents_from_image(self, vae, init_image): - init_image = init_image.to(device=vae.device, dtype=vae.dtype) - with torch.inference_mode(): - init_latent_dist = vae.encode(init_image).latent_dist - init_latents = init_latent_dist.sample().to( - dtype=vae.dtype - ) # FIXME: uses torch.randn. make reproducible! - - init_latents = 0.18215 * init_latents - return init_latents \ No newline at end of file diff --git a/invokeai/app/invocations/model.py b/invokeai/app/invocations/model.py index 74467d7ab3..c473451c6c 100644 --- a/invokeai/app/invocations/model.py +++ b/invokeai/app/invocations/model.py @@ -8,8 +8,8 @@ from ...backend.model_management import SDModelType class ModelInfo(BaseModel): model_name: str = Field(description="Info to load unet submodel") - model_type: str = Field(description="Info to load unet submodel") - submodel: Optional[str] = Field(description="Info to load unet submodel") + model_type: SDModelType = Field(description="Info to load unet submodel") + submodel: Optional[SDModelType] = Field(description="Info to load unet submodel") class UNetField(BaseModel): unet: ModelInfo = Field(description="Info to load unet submodel") @@ -62,15 +62,15 @@ class ModelLoaderInvocation(BaseInvocation): # TODO: not found exceptions if not context.services.model_manager.model_exists( model_name=self.model_name, - model_type=SDModelType.diffusers, + model_type=SDModelType.Diffusers, ): raise Exception(f"Unkown model name: {self.model_name}!") """ if not context.services.model_manager.model_exists( model_name=self.model_name, - model_type=SDModelType.diffusers, - submodel=SDModelType.tokenizer, + model_type=SDModelType.Diffusers, + submodel=SDModelType.Tokenizer, ): raise Exception( f"Failed to find tokenizer submodel in {self.model_name}! Check if model corrupted" @@ -78,8 +78,8 @@ class ModelLoaderInvocation(BaseInvocation): if not context.services.model_manager.model_exists( model_name=self.model_name, - model_type=SDModelType.diffusers, - submodel=SDModelType.text_encoder, + model_type=SDModelType.Diffusers, + submodel=SDModelType.TextEncoder, ): raise Exception( f"Failed to find text_encoder submodel in {self.model_name}! Check if model corrupted" @@ -87,8 +87,8 @@ class ModelLoaderInvocation(BaseInvocation): if not context.services.model_manager.model_exists( model_name=self.model_name, - model_type=SDModelType.diffusers, - submodel=SDModelType.unet, + model_type=SDModelType.Diffusers, + submodel=SDModelType.UNet, ): raise Exception( f"Failed to find unet submodel from {self.model_name}! Check if model corrupted" @@ -100,32 +100,32 @@ class ModelLoaderInvocation(BaseInvocation): unet=UNetField( unet=ModelInfo( model_name=self.model_name, - model_type=SDModelType.diffusers.name, - submodel=SDModelType.unet.name, + model_type=SDModelType.Diffusers, + submodel=SDModelType.UNet, ), scheduler=ModelInfo( model_name=self.model_name, - model_type=SDModelType.diffusers.name, - submodel=SDModelType.scheduler.name, + model_type=SDModelType.Diffusers, + submodel=SDModelType.Scheduler, ), ), clip=ClipField( tokenizer=ModelInfo( model_name=self.model_name, - model_type=SDModelType.diffusers.name, - submodel=SDModelType.tokenizer.name, + model_type=SDModelType.Diffusers, + submodel=SDModelType.Tokenizer, ), text_encoder=ModelInfo( model_name=self.model_name, - model_type=SDModelType.diffusers.name, - submodel=SDModelType.text_encoder.name, + model_type=SDModelType.Diffusers, + submodel=SDModelType.TextEncoder, ), ), vae=VaeField( vae=ModelInfo( model_name=self.model_name, - model_type=SDModelType.diffusers.name, - submodel=SDModelType.vae.name, + model_type=SDModelType.Diffusers, + submodel=SDModelType.Vae, ), ) ) diff --git a/invokeai/app/services/events.py b/invokeai/app/services/events.py index d3f61a70b8..9e2db4bfe8 100644 --- a/invokeai/app/services/events.py +++ b/invokeai/app/services/events.py @@ -120,7 +120,7 @@ class EventServiceBase: node=node, source_node_id=source_node_id, model_name=model_name, - model_type=model_type.name, + model_type=model_type, submodel=submodel, ), ) @@ -143,7 +143,7 @@ class EventServiceBase: node=node, source_node_id=source_node_id, model_name=model_name, - model_type=model_type.name, + model_type=model_type, submodel=submodel, model_info=model_info, ), diff --git a/invokeai/app/services/model_manager_service.py b/invokeai/app/services/model_manager_service.py index 5c57c5462c..0d140511e0 100644 --- a/invokeai/app/services/model_manager_service.py +++ b/invokeai/app/services/model_manager_service.py @@ -1,21 +1,25 @@ # Copyright (c) 2023 Lincoln D. Stein and the InvokeAI Team +from __future__ import annotations +import torch from abc import ABC, abstractmethod from pathlib import Path -from typing import Union, Callable, List, Tuple, types +from typing import Union, Callable, List, Tuple, types, TYPE_CHECKING from dataclasses import dataclass from invokeai.backend.model_management.model_manager import ( ModelManager, SDModelType, SDModelInfo, - torch, ) from invokeai.app.models.exceptions import CanceledException -from ...backend import Args,Globals # this must go when pr 3340 merged +from ...backend import Args, Globals # this must go when pr 3340 merged from ...backend.util import choose_precision, choose_torch_device +if TYPE_CHECKING: + from ..invocations.baseinvocation import BaseInvocation, InvocationContext + @dataclass class LastUsedModel: model_name: str=None @@ -28,9 +32,9 @@ class ModelManagerServiceBase(ABC): @abstractmethod def __init__( - self, - config: Args, - logger: types.ModuleType + self, + config: Args, + logger: types.ModuleType, ): """ Initialize with the path to the models.yaml config file. @@ -41,13 +45,14 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def get_model(self, - model_name: str, - model_type: SDModelType=SDModelType.diffusers, - submodel: SDModelType=None, - node=None, # circular dependency issues, so untyped at moment - context=None, - )->SDModelInfo: + def get_model( + self, + model_name: str, + model_type: SDModelType = SDModelType.Diffusers, + submodel: Optional[SDModelType] = None, + node: Optional[BaseInvocation] = None, + context: Optional[InvocationContext] = None, + ) -> SDModelInfo: """Retrieve the indicated model with name and type. submodel can be used to get a part (such as the vae) of a diffusers pipeline.""" @@ -60,14 +65,14 @@ class ModelManagerServiceBase(ABC): @abstractmethod def model_exists( - self, - model_name: str, - model_type: SDModelType + self, + model_name: str, + model_type: SDModelType, ) -> bool: pass @abstractmethod - def default_model(self) -> Union[Tuple[str, SDModelType],None]: + def default_model(self) -> Optional[Tuple[str, SDModelType]]: """ Returns the name and typeof the default model, or None if none is defined. @@ -80,21 +85,21 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def model_info(self, model_name: str, model_type: SDModelType)->dict: + def model_info(self, model_name: str, model_type: SDModelType) -> dict: """ Given a model name returns a dict-like (OmegaConf) object describing it. """ pass @abstractmethod - def model_names(self)->List[Tuple[str, SDModelType]]: + def model_names(self) -> List[Tuple[str, SDModelType]]: """ Returns a list of all the model names known. """ pass @abstractmethod - def list_models(self)->dict: + def list_models(self) -> dict: """ Return a dict of models in the format: { model_key1: {'status': 'active'|'cached'|'not loaded', @@ -110,12 +115,12 @@ class ModelManagerServiceBase(ABC): @abstractmethod def add_model( - self, - model_name: str, - model_type: SDModelType, - model_attributes: dict, - clobber: bool = False - )->None: + self, + model_name: str, + model_type: SDModelType, + model_attributes: dict, + clobber: bool = False + ) -> None: """ Update the named model with a dictionary of attributes. Will fail with an assertion error if the name already exists. Pass clobber=True to overwrite. @@ -126,10 +131,12 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def del_model(self, - model_name: str, - model_type: SDModelType, - delete_files: bool = False): + def del_model( + self, + model_name: str, + model_type: SDModelType, + delete_files: bool = False, + ): """ Delete the named model from configuration. If delete_files is true, then the underlying weight file or diffusers directory will be deleted @@ -140,9 +147,9 @@ class ModelManagerServiceBase(ABC): @abstractmethod def import_diffuser_model( repo_or_path: Union[str, Path], - model_name: str = None, - description: str = None, - vae: dict = None, + model_name: Optional[str] = None, + description: Optional[str] = None, + vae: Optional[dict] = None, ) -> bool: """ Install the indicated diffuser model and returns True if successful. @@ -157,10 +164,10 @@ class ModelManagerServiceBase(ABC): @abstractmethod def import_lora( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: Optional[str] = None, + description: Optional[str] = None, ): """ Creates an entry for the indicated lora file. Call @@ -170,10 +177,10 @@ class ModelManagerServiceBase(ABC): @abstractmethod def import_embedding( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: str=None, + description: str=None, ): """ Creates an entry for the indicated textual inversion embedding file. @@ -223,7 +230,7 @@ class ModelManagerServiceBase(ABC): pass @abstractmethod - def commit(self, conf_file: Path=None) -> None: + def commit(self, conf_file: Path = None) -> None: """ Write current configuration out to the indicated file. If no conf_file is provided, then replaces the @@ -235,10 +242,10 @@ class ModelManagerServiceBase(ABC): class ModelManagerService(ModelManagerServiceBase): """Responsible for managing models on disk and in memory""" def __init__( - self, - config: Args, - logger: types.ModuleType - ): + self, + config: Args, + logger: types.ModuleType, + ): """ Initialize with the path to the models.yaml config file. Optional parameters are the torch device type, precision, max_models, @@ -255,7 +262,7 @@ class ModelManagerService(ModelManagerServiceBase): logger.debug(f'config file={config_file}') device = torch.device(choose_torch_device()) - if config.precision=="auto": + if config.precision == "auto": precision = choose_precision(device) dtype = torch.float32 if precision=='float32' \ else torch.float16 @@ -272,22 +279,24 @@ class ModelManagerService(ModelManagerServiceBase): sequential_offload = config.sequential_guidance - self.mgr = ModelManager(config=config_file, - device_type=device, - precision=dtype, - max_cache_size=max_cache_size, - sequential_offload=sequential_offload, - logger=logger - ) + self.mgr = ModelManager( + config=config_file, + device_type=device, + precision=dtype, + max_cache_size=max_cache_size, + sequential_offload=sequential_offload, + logger=logger, + ) logger.info('Model manager service initialized') - def get_model(self, - model_name: str, - model_type: SDModelType=SDModelType.diffusers, - submodel: SDModelType=None, - node=None, - context=None, - )->SDModelInfo: + def get_model( + self, + model_name: str, + model_type: SDModelType = SDModelType.Diffusers, + submodel: Optional[SDModelType] = None, + node: Optional[BaseInvocation] = None, + context: Optional[InvocationContext] = None, + ) -> SDModelInfo: """ Retrieve the indicated model. submodel can be used to get a part (such as the vae) of a diffusers mode. @@ -340,9 +349,9 @@ class ModelManagerService(ModelManagerServiceBase): return model_info def model_exists( - self, - model_name: str, - model_type: SDModelType + self, + model_name: str, + model_type: SDModelType, ) -> bool: """ Given a model name, returns True if it is a valid @@ -350,32 +359,33 @@ class ModelManagerService(ModelManagerServiceBase): """ return self.mgr.model_exists( model_name, - model_type) + model_type, + ) - def default_model(self) -> Union[Tuple[str, SDModelType],None]: + def default_model(self) -> Optional[Tuple[str, SDModelType]]: """ Returns the name of the default model, or None if none is defined. """ return self.mgr.default_model() - def set_default_model(self, model_name:str, model_type: SDModelType): + def set_default_model(self, model_name: str, model_type: SDModelType): """Sets the default model to the indicated name.""" self.mgr.set_default_model(model_name) - def model_info(self, model_name: str, model_type: SDModelType)->dict: + def model_info(self, model_name: str, model_type: SDModelType) -> dict: """ Given a model name returns a dict-like (OmegaConf) object describing it. """ return self.mgr.model_info(model_name) - def model_names(self)->List[Tuple[str, SDModelType]]: + def model_names(self) -> List[Tuple[str, SDModelType]]: """ Returns a list of all the model names known. """ return self.mgr.model_names() - def list_models(self)->dict: + def list_models(self) -> dict: """ Return a dict of models in the format: { model_key: {'status': 'active'|'cached'|'not loaded', @@ -388,11 +398,12 @@ class ModelManagerService(ModelManagerServiceBase): return self.mgr.list_models() def add_model( - self, - model_name: str, - model_type: SDModelType, - model_attributes: dict, - clobber: bool = False)->None: + self, + model_name: str, + model_type: SDModelType, + model_attributes: dict, + clobber: bool = False, + )->None: """ Update the named model with a dictionary of attributes. Will fail with an assertion error if the name already exists. Pass clobber=True to overwrite. @@ -400,14 +411,15 @@ class ModelManagerService(ModelManagerServiceBase): with an assertion error if provided attributes are incorrect or the model name is missing. Call commit() to write changes to disk. """ - return self.mgr.add_model(model_name, model_type, model_attributes, dict, clobber) + return self.mgr.add_model(model_name, model_type, model_attributes, clobber) - def del_model(self, - model_name: str, - model_type: SDModelType=SDModelType.diffusers, - delete_files: bool = False - ): + def del_model( + self, + model_name: str, + model_type: SDModelType = SDModelType.Diffusers, + delete_files: bool = False, + ): """ Delete the named model from configuration. If delete_files is true, then the underlying weight file or diffusers directory will be deleted @@ -416,11 +428,11 @@ class ModelManagerService(ModelManagerServiceBase): self.mgr.del_model(model_name, model_type, delete_files) def import_diffuser_model( - self, - repo_or_path: Union[str, Path], - model_name: str = None, - description: str = None, - vae: dict = None, + self, + repo_or_path: Union[str, Path], + model_name: Optional[str] = None, + description: Optional[str] = None, + vae: Optional[dict] = None, ) -> bool: """ Install the indicated diffuser model and returns True if successful. @@ -431,13 +443,13 @@ class ModelManagerService(ModelManagerServiceBase): You can optionally provide a model name and/or description. If not provided, then these will be derived from the repo name. Call commit() to write to disk. """ - return self.mgr.import_diffuser_model(repo_or_path, model_name, description, vae) + return self.mgr.import_diffuser_model(repo_or_path, model_name, description, vae) def import_lora( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: Optional[str] = None, + description: Optional[str] = None, ): """ Creates an entry for the indicated lora file. Call @@ -446,10 +458,10 @@ class ModelManagerService(ModelManagerServiceBase): self.mgr.import_lora(path, model_name, description) def import_embedding( - self, - path: Path, - model_name: str=None, - description: str=None, + self, + path: Path, + model_name: Optional[str] = None, + description: Optional[str] = None, ): """ Creates an entry for the indicated textual inversion embedding file. @@ -462,9 +474,9 @@ class ModelManagerService(ModelManagerServiceBase): path_url_or_repo: str, model_name: str = None, description: str = None, - model_config_file: Path = None, - commit_to_conf: Path = None, - config_file_callback: Callable[[Path], Path] = None, + model_config_file: Optional[Path] = None, + commit_to_conf: Optional[Path] = None, + config_file_callback: Optional[Callable[[Path], Path]] = None, ) -> str: """Accept a string which could be: - a HF diffusers repo_id @@ -505,7 +517,7 @@ class ModelManagerService(ModelManagerServiceBase): ) - def commit(self, conf_file: Path=None): + def commit(self, conf_file: Optional[Path]=None): """ Write current configuration out to the indicated file. If no conf_file is provided, then replaces the @@ -514,16 +526,16 @@ class ModelManagerService(ModelManagerServiceBase): return self.mgr.commit(conf_file) def _emit_load_event( - self, - node, - context, - model_name: str, - model_type: SDModelType, - submodel: SDModelType, - model_info: SDModelInfo=None, + self, + node, + context, + model_name: str, + model_type: SDModelType, + submodel: SDModelType, + model_info: Optional[SDModelInfo] = None, ): if context.services.queue.is_canceled(context.graph_execution_state_id): - raise CanceledException + raise CanceledException() graph_execution_state = context.services.graph_execution_manager.get(context.graph_execution_state_id) source_node_id = graph_execution_state.prepared_source_mapping[node.id] if context: @@ -536,7 +548,7 @@ class ModelManagerService(ModelManagerServiceBase): submodel=submodel, ) else: - context.services.events.emit_model_load_completed ( + context.services.events.emit_model_load_completed( graph_execution_state_id=context.graph_execution_state_id, node=node.dict(), source_node_id=source_node_id, diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 558de0f28c..5c062483db 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -23,12 +23,12 @@ import warnings from collections import Counter from enum import Enum from pathlib import Path -from typing import Dict, Sequence, Union, Tuple, types +from typing import Dict, Sequence, Union, Tuple, types, Optional import torch import safetensors.torch -from diffusers import DiffusionPipeline, StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel +from diffusers import DiffusionPipeline, StableDiffusionPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel, ConfigMixin from diffusers import logging as diffusers_logging from diffusers.pipelines.stable_diffusion.safety_checker import \ StableDiffusionSafetyChecker @@ -55,20 +55,38 @@ class LoraType(dict): class TIType(dict): pass -class SDModelType(Enum): - diffusers=StableDiffusionGeneratorPipeline # whole pipeline - vae=AutoencoderKL # diffusers parts - text_encoder=CLIPTextModel - tokenizer=CLIPTokenizer - unet=UNet2DConditionModel - scheduler=SchedulerMixin - safety_checker=StableDiffusionSafetyChecker - feature_extractor=CLIPFeatureExtractor +class SDModelType(str, Enum): + Diffusers="diffusers" # whole pipeline + Vae="vae" # diffusers parts + TextEncoder="text_encoder" + Tokenizer="tokenizer" + UNet="unet" + Scheduler="scheduler" + SafetyChecker="safety_checker" + FeatureExtractor="feature_extractor" # These are all loaded as dicts of tensors, and we # distinguish them by class - lora=LoraType - textual_inversion=TIType - + Lora="lora" + TextualInversion="textual_inversion" + +# TODO: +class EmptyScheduler(SchedulerMixin, ConfigMixin): + pass + +MODEL_CLASSES = { + SDModelType.Diffusers: StableDiffusionGeneratorPipeline, + SDModelType.Vae: AutoencoderKL, + SDModelType.TextEncoder: CLIPTextModel, # TODO: t5 + SDModelType.Tokenizer: CLIPTokenizer, # TODO: t5 + SDModelType.UNet: UNet2DConditionModel, + SDModelType.Scheduler: EmptyScheduler, + SDModelType.SafetyChecker: StableDiffusionSafetyChecker, + SDModelType.FeatureExtractor: CLIPFeatureExtractor, + + SDModelType.Lora: LoraType, + SDModelType.TextualInversion: TIType, +} + class ModelStatus(Enum): unknown='unknown' not_loaded='not loaded' @@ -80,21 +98,21 @@ class ModelStatus(Enum): # After loading, we will know it exactly. # Sizes are in Gigs, estimated for float16; double for float32 SIZE_GUESSTIMATE = { - SDModelType.diffusers: 2.2, - SDModelType.vae: 0.35, - SDModelType.text_encoder: 0.5, - SDModelType.tokenizer: 0.001, - SDModelType.unet: 3.4, - SDModelType.scheduler: 0.001, - SDModelType.safety_checker: 1.2, - SDModelType.feature_extractor: 0.001, - SDModelType.lora: 0.1, - SDModelType.textual_inversion: 0.001, + SDModelType.Diffusers: 2.2, + SDModelType.Vae: 0.35, + SDModelType.TextEncoder: 0.5, + SDModelType.Tokenizer: 0.001, + SDModelType.UNet: 3.4, + SDModelType.Scheduler: 0.001, + SDModelType.SafetyChecker: 1.2, + SDModelType.FeatureExtractor: 0.001, + SDModelType.Lora: 0.1, + SDModelType.TextualInversion: 0.001, } # The list of model classes we know how to fetch, for typechecking -ModelClass = Union[tuple([x.value for x in SDModelType])] -DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, SchedulerMixin, UNet2DConditionModel) +ModelClass = Union[tuple([x for x in MODEL_CLASSES.values()])] +DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, EmptyScheduler, UNet2DConditionModel) class UnsafeModelException(Exception): "Raised when a legacy model file fails the picklescan test" @@ -110,15 +128,15 @@ class ModelLocker(object): class ModelCache(object): def __init__( - self, - max_cache_size: float=DEFAULT_MAX_CACHE_SIZE, - execution_device: torch.device=torch.device('cuda'), - storage_device: torch.device=torch.device('cpu'), - precision: torch.dtype=torch.float16, - sequential_offload: bool=False, - lazy_offloading: bool=True, - sha_chunksize: int = 16777216, - logger: types.ModuleType = logger + self, + max_cache_size: float=DEFAULT_MAX_CACHE_SIZE, + execution_device: torch.device=torch.device('cuda'), + storage_device: torch.device=torch.device('cpu'), + precision: torch.dtype=torch.float16, + sequential_offload: bool=False, + lazy_offloading: bool=True, + sha_chunksize: int = 16777216, + logger: types.ModuleType = logger ): ''' :param max_models: Maximum number of models to cache in CPU RAM [4] @@ -145,15 +163,15 @@ class ModelCache(object): self.model_sizes: Dict[str,int] = dict() def get_model( - self, - repo_id_or_path: Union[str,Path], - model_type: SDModelType=SDModelType.diffusers, - subfolder: Path=None, - submodel: SDModelType=None, - revision: str=None, - attach_model_part: Tuple[SDModelType, str] = (None,None), - gpu_load: bool=True, - )->ModelLocker: # ?? what does it return + self, + repo_id_or_path: Union[str, Path], + model_type: SDModelType = SDModelType.Diffusers, + subfolder: Path = None, + submodel: SDModelType = None, + revision: str = None, + attach_model_part: Tuple[SDModelType, str] = (None, None), + gpu_load: bool = True, + ) -> ModelLocker: # ?? what does it return ''' Load and return a HuggingFace model wrapped in a context manager generator, with RAM caching. Use like this: @@ -178,14 +196,14 @@ class ModelCache(object): vae_context = cache.get_model( 'stabilityai/sd-stable-diffusion-2', - submodel=SDModelType.vae + submodel=SDModelType.Vae ) This is equivalent to: vae_context = cache.get_model( 'stabilityai/sd-stable-diffusion-2', - model_type = SDModelType.vae, + model_type = SDModelType.Vae, subfolder='vae' ) @@ -195,14 +213,14 @@ class ModelCache(object): pipeline_context = cache.get_model( 'runwayml/stable-diffusion-v1-5', - attach_model_part=(SDModelType.vae,'stabilityai/sd-vae-ft-mse') + attach_model_part=(SDModelType.Vae,'stabilityai/sd-vae-ft-mse') ) The model will be locked into GPU VRAM for the duration of the context. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param model_type: An SDModelType enum indicating the type of the (parent) model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" - :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.vae + :param submodel: an SDModelType enum indicating the model part to return, e.g. SDModelType.Vae :param attach_model_part: load and attach a diffusers model component. Pass a tuple of format (SDModelType,repo_id) :param revision: model revision :param gpu_load: load the model into GPU [default True] @@ -211,7 +229,7 @@ class ModelCache(object): repo_id_or_path, revision, subfolder, - model_type.value, + model_type, ) # optimization: if caller is asking to load a submodel of a diffusers pipeline, then @@ -221,11 +239,11 @@ class ModelCache(object): repo_id_or_path, None, revision, - SDModelType.diffusers.value + SDModelType.Diffusers ) if possible_parent_key in self.models: key = possible_parent_key - submodel=model_type + submodel = model_type # Look for the model in the cache RAM if key in self.models: # cached - move to bottom of stack (most recently used) @@ -256,24 +274,24 @@ class ModelCache(object): self.current_cache_size += mem_used # increment size of the cache # this is a bit of legacy work needed to support the old-style "load this diffuser with custom VAE" - if model_type==SDModelType.diffusers and attach_model_part[0]: - self.attach_part(model,*attach_model_part) + if model_type == SDModelType.Diffusers and attach_model_part[0]: + self.attach_part(model, *attach_model_part) self.stack.append(key) # add to LRU cache - self.models[key]=model # keep copy of model in dict + self.models[key] = model # keep copy of model in dict if submodel: - model = getattr(model, submodel.name) + model = getattr(model, submodel) return self.ModelLocker(self, key, model, gpu_load) def uncache_model(self, key: str): '''Remove corresponding model from the cache''' if key is not None and key in self.models: - with contextlib.suppress(ValueError), contextlib.suppress(KeyError): - del self.models[key] - del self.locked_models[key] - self.loaded_models.remove(key) + self.models.pop(key, None) + self.locked_models.pop(key, None) + self.loaded_models.discard(key) + with contextlib.suppress(ValueError): self.stack.remove(key) class ModelLocker(object): @@ -302,7 +320,7 @@ class ModelCache(object): if model.device != cache.execution_device: cache.logger.debug(f'Moving {key} into {cache.execution_device}') with VRAMUsage() as mem: - model.to(cache.execution_device) # move into GPU + model.to(cache.execution_device, dtype=cache.precision) # move into GPU cache.logger.debug(f'GPU VRAM used for load: {(mem.vram_used/GIG):.2f} GB') cache.model_sizes[key] = mem.vram_used # more accurate size @@ -312,13 +330,16 @@ class ModelCache(object): else: # in the event that the caller wants the model in RAM, we # move it into CPU if it is in GPU and not locked - if hasattr(model,'to') and (key in cache.loaded_models + if hasattr(model, 'to') and (key in cache.loaded_models and cache.locked_models[key] == 0): model.to(cache.storage_device) cache.loaded_models.remove(key) return model def __exit__(self, type, value, traceback): + if not hasattr(self.model, 'to'): + return + key = self.key cache = self.cache cache.locked_models[key] -= 1 @@ -326,11 +347,12 @@ class ModelCache(object): cache._offload_unlocked_models() cache._print_cuda_stats() - def attach_part(self, - diffusers_model: StableDiffusionPipeline, - part_type: SDModelType, - part_id: str - ): + def attach_part( + self, + diffusers_model: StableDiffusionPipeline, + part_type: SDModelType, + part_id: str, + ): ''' Attach a diffusers model part to a diffusers model. This can be used to replace the VAE, tokenizer, textencoder, unet, etc. @@ -338,27 +360,26 @@ class ModelCache(object): :param part_type: An SD ModelType indicating the part :param part_id: A HF repo_id for the part ''' - part_key = part_type.name - part_class = part_type.value part = self._load_diffusers_from_storage( part_id, - model_class=part_class, + model_class=MODEL_CLASSES[part_type], ) part.to(diffusers_model.device) - setattr(diffusers_model,part_key,part) - self.logger.debug(f'Attached {part_key} {part_id}') + setattr(diffusers_model, part_type, part) + self.logger.debug(f'Attached {part_type} {part_id}') - def status(self, - repo_id_or_path: Union[str,Path], - model_type: SDModelType=SDModelType.diffusers, - revision: str=None, - subfolder: Path=None, - )->ModelStatus: + def status( + self, + repo_id_or_path: Union[str, Path], + model_type: SDModelType = SDModelType.Diffusers, + revision: str = None, + subfolder: Path = None, + ) -> ModelStatus: key = self._model_key( repo_id_or_path, revision, subfolder, - model_type.value, + model_type, ) if key not in self.models: return ModelStatus.not_loaded @@ -370,9 +391,11 @@ class ModelCache(object): else: return ModelStatus.in_ram - def model_hash(self, - repo_id_or_path: Union[str,Path], - revision: str="main")->str: + def model_hash( + self, + repo_id_or_path: Union[str, Path], + revision: str = "main", + ) -> str: ''' Given the HF repo id or path to a model on disk, returns a unique hash. Works for legacy checkpoint files, HF models on disk, and HF repo IDs @@ -385,7 +408,7 @@ class ModelCache(object): else: return self._hf_commit_hash(repo_id_or_path,revision) - def cache_size(self)->float: + def cache_size(self) -> float: "Return the current size of the cache, in GB" return self.current_cache_size / GIG @@ -407,10 +430,15 @@ class ModelCache(object): logger.debug("Model scanned ok") @staticmethod - def _model_key(path,revision,subfolder,model_class)->str: - return ':'.join([str(path),str(revision or ''),str(subfolder or ''),model_class.__name__]) + def _model_key(path, revision, subfolder, model_class) -> str: + return ':'.join([ + str(path), + str(revision or ''), + str(subfolder or ''), + model_class, + ]) - def _has_cuda(self)->bool: + def _has_cuda(self) -> bool: return self.execution_device.type == 'cuda' def _print_cuda_stats(self): @@ -450,43 +478,43 @@ class ModelCache(object): self.loaded_models.remove(key) def _load_model_from_storage( - self, - repo_id_or_path: Union[str,Path], - subfolder: Path=None, - revision: str=None, - model_type: SDModelType=SDModelType.diffusers, - )->ModelClass: + self, + repo_id_or_path: Union[str, Path], + subfolder: Optional[Path] = None, + revision: Optional[str] = None, + model_type: SDModelType = SDModelType.Diffusers, + ) -> ModelClass: ''' Load and return a HuggingFace model. :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model :param subfolder: name of a subfolder in which the model can be found, e.g. "vae" :param revision: model revision - :param model_type: type of model to return, defaults to SDModelType.diffusers + :param model_type: type of model to return, defaults to SDModelType.Diffusers ''' # silence transformer and diffuser warnings with SilenceWarnings(): - if model_type==SDModelType.lora: + if model_type==SDModelType.Lora: model = self._load_lora_from_storage(repo_id_or_path) - elif model_type==SDModelType.textual_inversion: + elif model_type==SDModelType.TextualInversion: model = self._load_ti_from_storage(repo_id_or_path) else: model = self._load_diffusers_from_storage( repo_id_or_path, subfolder, revision, - model_type.value, + model_type, ) - if self.sequential_offload and isinstance(model,StableDiffusionGeneratorPipeline): + if self.sequential_offload and isinstance(model, StableDiffusionGeneratorPipeline): model.enable_offload_submodels(self.execution_device) return model def _load_diffusers_from_storage( - self, - repo_id_or_path: Union[str,Path], - subfolder: Path=None, - revision: str=None, - model_class: ModelClass=StableDiffusionGeneratorPipeline, - )->ModelClass: + self, + repo_id_or_path: Union[str, Path], + subfolder: Optional[Path] = None, + revision: Optional[str] = None, + model_type: ModelClass = StableDiffusionGeneratorPipeline, + ) -> ModelClass: ''' Load and return a HuggingFace model using from_pretrained(). :param repo_id_or_path: either the HuggingFace repo_id or a Path to a local model @@ -494,17 +522,26 @@ class ModelCache(object): :param revision: model revision :param model_class: class of model to return, defaults to StableDiffusionGeneratorPIpeline ''' - revisions = [revision] if revision \ - else ['fp16','main'] if self.precision==torch.float16 \ - else ['main'] - extra_args = {'torch_dtype': self.precision, - 'safety_checker': None}\ - if model_class in DiffusionClasses\ - else {} + + model_class = MODEL_CLASSES[model_type] + + if revision is not None: + revisions = [revision] + elif self.precision == torch.float16: + revisions = ['fp16', 'main'] + else: + revisions = ['main'] + + extra_args = dict() + if model_class in DiffusionClasses: + extra_args = dict( + torch_dtype=self.precision, + safety_checker=None, + ) for rev in revisions: try: - model = model_class.from_pretrained( + model = model_class.from_pretrained( repo_id_or_path, revision=rev, subfolder=subfolder or '.', @@ -517,13 +554,13 @@ class ModelCache(object): pass return model - def _load_lora_from_storage(self, lora_path: Path)->SDModelType.lora.value: - assert False,"_load_lora_from_storage() is not yet implemented" + def _load_lora_from_storage(self, lora_path: Path) -> LoraType: + assert False, "_load_lora_from_storage() is not yet implemented" - def _load_ti_from_storage(self, lora_path: Path)->SDModelType.textual_inversion.value: - assert False,"_load_ti_from_storage() is not yet implemented" + def _load_ti_from_storage(self, lora_path: Path) -> TIType: + assert False, "_load_ti_from_storage() is not yet implemented" - def _legacy_model_hash(self, checkpoint_path: Union[str,Path])->str: + def _legacy_model_hash(self, checkpoint_path: Union[str, Path]) -> str: sha = hashlib.sha256() path = Path(checkpoint_path) assert path.is_file(),f"File {checkpoint_path} not found" @@ -544,7 +581,7 @@ class ModelCache(object): f.write(hash) return hash - def _local_model_hash(self, model_path: Union[str,Path])->str: + def _local_model_hash(self, model_path: Union[str, Path]) -> str: sha = hashlib.sha256() path = Path(model_path) @@ -566,7 +603,7 @@ class ModelCache(object): f.write(hash) return hash - def _hf_commit_hash(self, repo_id: str, revision: str='main')->str: + def _hf_commit_hash(self, repo_id: str, revision: str='main') -> str: api = HfApi() info = api.list_repo_refs( repo_id=repo_id, @@ -578,7 +615,7 @@ class ModelCache(object): return desired_revisions[0].target_commit @staticmethod - def calc_model_size(model)->int: + def calc_model_size(model) -> int: if isinstance(model,DiffusionPipeline): return ModelCache._calc_pipeline(model) elif isinstance(model,torch.nn.Module): @@ -587,7 +624,7 @@ class ModelCache(object): return None @staticmethod - def _calc_pipeline(pipeline)->int: + def _calc_pipeline(pipeline) -> int: res = 0 for submodel_key in pipeline.components.keys(): submodel = getattr(pipeline, submodel_key) @@ -596,7 +633,7 @@ class ModelCache(object): return res @staticmethod - def _calc_model(model)->int: + def _calc_model(model) -> int: mem_params = sum([param.nelement()*param.element_size() for param in model.parameters()]) mem_bufs = sum([buf.nelement()*buf.element_size() for buf in model.buffers()]) mem = mem_params + mem_bufs # in bytes diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 87fb938338..05e0afff98 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -27,7 +27,7 @@ Typical usage: max_cache_size=8 ) # gigabytes - model_info = manager.get_model('stable-diffusion-1.5', SDModelType.diffusers) + model_info = manager.get_model('stable-diffusion-1.5', SDModelType.Diffusers) with model_info.context as my_model: my_model.latents_from_embeddings(...) @@ -45,7 +45,7 @@ parameter: model_info = manager.get_model( 'clip-tokenizer', - model_type=SDModelType.tokenizer + model_type=SDModelType.Tokenizer ) This will raise an InvalidModelError if the format defined in the @@ -96,7 +96,7 @@ SUBMODELS: It is also possible to fetch an isolated submodel from a diffusers model. Use the `submodel` parameter to select which part: - vae = manager.get_model('stable-diffusion-1.5',submodel=SDModelType.vae) + vae = manager.get_model('stable-diffusion-1.5',submodel=SDModelType.Vae) with vae.context as my_vae: print(type(my_vae)) # "AutoencoderKL" @@ -120,8 +120,8 @@ separated by "/". Example: You can now use the `model_type` argument to indicate which model you want: - tokenizer = mgr.get('clip-large',model_type=SDModelType.tokenizer) - encoder = mgr.get('clip-large',model_type=SDModelType.text_encoder) + tokenizer = mgr.get('clip-large',model_type=SDModelType.Tokenizer) + encoder = mgr.get('clip-large',model_type=SDModelType.TextEncoder) OTHER FUNCTIONS: @@ -254,7 +254,7 @@ class ModelManager(object): def model_exists( self, model_name: str, - model_type: SDModelType = SDModelType.diffusers, + model_type: SDModelType = SDModelType.Diffusers, ) -> bool: """ Given a model name, returns True if it is a valid @@ -264,28 +264,28 @@ class ModelManager(object): return model_key in self.config def create_key(self, model_name: str, model_type: SDModelType) -> str: - return f"{model_type.name}/{model_name}" + return f"{model_type}/{model_name}" def parse_key(self, model_key: str) -> Tuple[str, SDModelType]: model_type_str, model_name = model_key.split('/', 1) - if model_type_str not in SDModelType.__members__: - # TODO: + try: + model_type = SDModelType(model_type_str) + return (model_name, model_type) + except: raise Exception(f"Unknown model type: {model_type_str}") - return (model_name, SDModelType[model_type_str]) - def get_model( self, model_name: str, - model_type: SDModelType=SDModelType.diffusers, - submodel: SDModelType=None, + model_type: SDModelType = SDModelType.Diffusers, + submodel: Optional[SDModelType] = None, ) -> SDModelInfo: """Given a model named identified in models.yaml, return an SDModelInfo object describing it. :param model_name: symbolic name of the model in models.yaml :param model_type: SDModelType enum indicating the type of model to return :param submodel: an SDModelType enum indicating the portion of - the model to retrieve (e.g. SDModelType.vae) + the model to retrieve (e.g. SDModelType.Vae) If not provided, the model_type will be read from the `format` field of the corresponding stanza. If provided, the model_type will be used @@ -304,17 +304,17 @@ class ModelManager(object): test1_pipeline = mgr.get_model('test1') # returns a StableDiffusionGeneratorPipeline - test1_vae1 = mgr.get_model('test1', submodel=SDModelType.vae) + test1_vae1 = mgr.get_model('test1', submodel=SDModelType.Vae) # returns the VAE part of a diffusers model as an AutoencoderKL - test1_vae2 = mgr.get_model('test1', model_type=SDModelType.diffusers, submodel=SDModelType.vae) + test1_vae2 = mgr.get_model('test1', model_type=SDModelType.Diffusers, submodel=SDModelType.Vae) # does the same thing as the previous statement. Note that model_type # is for the parent model, and submodel is for the part - test1_lora = mgr.get_model('test1', model_type=SDModelType.lora) + test1_lora = mgr.get_model('test1', model_type=SDModelType.Lora) # returns a LoRA embed (as a 'dict' of tensors) - test1_encoder = mgr.get_modelI('test1', model_type=SDModelType.textencoder) + test1_encoder = mgr.get_modelI('test1', model_type=SDModelType.TextEncoder) # raises an InvalidModelError """ @@ -332,10 +332,10 @@ class ModelManager(object): mconfig = self.config[model_key] # type already checked as it's part of key - if model_type == SDModelType.diffusers: + if model_type == SDModelType.Diffusers: # intercept stanzas that point to checkpoint weights and replace them # with the equivalent diffusers model - if mconfig.format in ["ckpt", "diffusers"]: + if mconfig.format in ["ckpt", "safetensors"]: location = self.convert_ckpt_and_cache(mconfig) else: location = global_resolve_path(mconfig.get('path')) or mconfig.get('repo_id') @@ -355,13 +355,13 @@ class ModelManager(object): vae = (None, None) with suppress(Exception): vae_id = mconfig.vae.repo_id - vae = (SDModelType.vae, vae_id) + vae = (SDModelType.Vae, vae_id) # optimization - don't load whole model if the user # is asking for just a piece of it - if model_type == SDModelType.diffusers and submodel and not subfolder: + if model_type == SDModelType.Diffusers and submodel and not subfolder: model_type = submodel - subfolder = submodel.name + subfolder = submodel.value submodel = None model_context = self.cache.get_model( @@ -390,7 +390,7 @@ class ModelManager(object): _cache = self.cache ) - def default_model(self) -> Union[Tuple[str, SDModelType],None]: + def default_model(self) -> Optional[Tuple[str, SDModelType]]: """ Returns the name of the default model, or None if none is defined. @@ -401,7 +401,7 @@ class ModelManager(object): return (model_name, model_type) return self.model_names()[0][0] - def set_default_model(self, model_name: str, model_type: SDModelType=SDModelType.diffusers) -> None: + def set_default_model(self, model_name: str, model_type: SDModelType=SDModelType.Diffusers) -> None: """ Set the default model. The change will not take effect until you call model_manager.commit() @@ -415,25 +415,25 @@ class ModelManager(object): config[self.create_key(model_name, model_type)]["default"] = True def model_info( - self, - model_name: str, - model_type: SDModelType=SDModelType.diffusers + self, + model_name: str, + model_type: SDModelType=SDModelType.Diffusers, ) -> dict: """ Given a model name returns the OmegaConf (dict-like) object describing it. """ if not self.exists(model_name, model_type): return None - return self.config[self.create_key(model_name,model_type)] + return self.config[self.create_key(model_name, model_type)] def model_names(self) -> List[Tuple[str, SDModelType]]: """ Return a list of (str, SDModelType) corresponding to all models known to the configuration. """ - return [(self.parse_key(x)) for x in self.config.keys() if isinstance(self.config[x],DictConfig)] + return [(self.parse_key(x)) for x in self.config.keys() if isinstance(self.config[x], DictConfig)] - def is_legacy(self, model_name: str, model_type: SDModelType.diffusers) -> bool: + def is_legacy(self, model_name: str, model_type: SDModelType.Diffusers) -> bool: """ Return true if this is a legacy (.ckpt) model """ @@ -461,14 +461,14 @@ class ModelManager(object): # don't include VAEs in listing (legacy style) if "config" in stanza and "/VAE/" in stanza["config"]: continue - if model_key=='config_file_version': + if model_key == 'config_file_version': continue model_name, model_type = self.parse_key(model_key) models[model_key] = dict() # TODO: return all models in future - if model_type != SDModelType.diffusers: + if model_type != SDModelType.Diffusers: continue model_format = stanza.get('format') @@ -477,15 +477,15 @@ class ModelManager(object): status = self.cache.status( stanza.get('weights') or stanza.get('repo_id'), revision=stanza.get('revision'), - subfolder=stanza.get('subfolder') + subfolder=stanza.get('subfolder'), ) description = stanza.get("description", None) models[model_key].update( model_name=model_name, - model_type=model_type.name, + model_type=model_type, format=model_format, description=description, - status=status.value + status=status.value, ) @@ -528,8 +528,8 @@ class ModelManager(object): def del_model( self, model_name: str, - model_type: SDModelType.diffusers, - delete_files: bool = False + model_type: SDModelType.Diffusers, + delete_files: bool = False, ): """ Delete the named model. @@ -539,9 +539,9 @@ class ModelManager(object): if model_cfg is None: self.logger.error( - f"Unknown model {model_key}" - ) - return + f"Unknown model {model_key}" + ) + return # TODO: some legacy? #if model_name in self.stack: @@ -571,7 +571,7 @@ class ModelManager(object): model_name: str, model_type: SDModelType, model_attributes: dict, - clobber: bool = False + clobber: bool = False, ) -> None: """ Update the named model with a dictionary of attributes. Will fail with an @@ -581,7 +581,7 @@ class ModelManager(object): attributes are incorrect or the model name is missing. """ - if model_type == SDModelType.diffusers: + if model_type == SDModelType.Fiffusers: # TODO: automaticaly or manualy? #assert "format" in model_attributes, 'missing required field "format"' model_format = "ckpt" if "weights" in model_attributes else "diffusers" @@ -647,16 +647,16 @@ class ModelManager(object): else: new_config.update(repo_id=repo_or_path) - self.add_model(model_name, SDModelType.diffusers, new_config, True) + self.add_model(model_name, SDModelType.Diffusers, new_config, True) if commit_to_conf: self.commit(commit_to_conf) - return self.create_key(model_name, SDModelType.diffusers) + return self.create_key(model_name, SDModelType.Diffusers) def import_lora( self, path: Path, - model_name: str=None, - description: str=None, + model_name: Optional[str] = None, + description: Optional[str] = None, ): """ Creates an entry for the indicated lora file. Call @@ -667,7 +667,7 @@ class ModelManager(object): model_description = description or f"LoRA model {model_name}" self.add_model( model_name, - SDModelType.lora, + SDModelType.Lora, dict( format="lora", weights=str(path), @@ -679,8 +679,8 @@ class ModelManager(object): def import_embedding( self, path: Path, - model_name: str=None, - description: str=None, + model_name: Optional[str] = None, + description: Optional[str] = None, ): """ Creates an entry for the indicated lora file. Call @@ -696,7 +696,7 @@ class ModelManager(object): model_description = description or f"Textual embedding model {model_name}" self.add_model( model_name, - SDModelType.textual_inversion, + SDModelType.TextualInversion, dict( format="textual_inversion", weights=str(weights), @@ -746,11 +746,11 @@ class ModelManager(object): def heuristic_import( self, path_url_or_repo: str, - model_name: str = None, - description: str = None, - model_config_file: Path = None, - commit_to_conf: Path = None, - config_file_callback: Callable[[Path], Path] = None, + model_name: Optional[str] = None, + description: Optional[str] = None, + model_config_file: Optional[Path] = None, + commit_to_conf: Optional[Path] = None, + config_file_callback: Optional[Callable[[Path], Path]] = None, ) -> str: """Accept a string which could be: - a HF diffusers repo_id @@ -927,7 +927,7 @@ class ModelManager(object): ) return model_name - def convert_ckpt_and_cache(self, mconfig: DictConfig)->Path: + def convert_ckpt_and_cache(self, mconfig: DictConfig) -> Path: """ Convert the checkpoint model indicated in mconfig into a diffusers, cache it to disk, and return Path to converted @@ -961,7 +961,7 @@ class ModelManager(object): self, weights: Path, mconfig: DictConfig - ) -> Tuple[Path, SDModelType.vae]: + ) -> Tuple[Path, AutoencoderKL]: # VAE handling is convoluted # 1. If there is a .vae.ckpt file sharing same stem as weights, then use # it as the vae_path passed to convert @@ -990,7 +990,7 @@ class ModelManager(object): vae_diffusers_location = "stabilityai/sd-vae-ft-mse" if vae_diffusers_location: - vae_model = self.cache.get_model(vae_diffusers_location, SDModelType.vae).model + vae_model = self.cache.get_model(vae_diffusers_location, SDModelType.Vae).model return (None, vae_model) return (None, None) @@ -1038,7 +1038,7 @@ class ModelManager(object): vae_model = None if vae: vae_location = global_resolve_path(vae.get('path')) or vae.get('repo_id') - vae_model = self.cache.get_model(vae_location,SDModelType.vae).model + vae_model = self.cache.get_model(vae_location, SDModelType.Vae).model vae_path = None convert_ckpt_to_diffusers( ckpt_path, @@ -1058,11 +1058,11 @@ class ModelManager(object): description=model_description, format="diffusers", ) - if self.model_exists(model_name, SDModelType.diffusers): - self.del_model(model_name, SDModelType.diffusers) + if self.model_exists(model_name, SDModelType.Diffusers): + self.del_model(model_name, SDModelType.Diffusers) self.add_model( model_name, - SDModelType.diffusers, + SDModelType.Diffusers, new_config, True ) diff --git a/invokeai/frontend/web/src/common/util/parseMetadata.ts b/invokeai/frontend/web/src/common/util/parseMetadata.ts index 95d08db3e0..f1828d95e7 100644 --- a/invokeai/frontend/web/src/common/util/parseMetadata.ts +++ b/invokeai/frontend/web/src/common/util/parseMetadata.ts @@ -263,7 +263,7 @@ export const parseNodeMetadata = ( return; } - if ('unet' in nodeItem && 'tokenizer' in nodeItem) { + if ('unet' in nodeItem && 'scheduler' in nodeItem) { const unetField = parseUNetField(nodeItem); if (unetField) { parsed[nodeKey] = unetField; From 1f602e614305993f5db8bc40c2bc05af48004a6f Mon Sep 17 00:00:00 2001 From: Sergey Borisov Date: Sun, 14 May 2023 03:46:13 +0300 Subject: [PATCH 035/225] Fix - apply precision to text_encoder --- invokeai/backend/model_management/model_cache.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 5c062483db..8d7aaa8af4 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -112,7 +112,7 @@ SIZE_GUESSTIMATE = { # The list of model classes we know how to fetch, for typechecking ModelClass = Union[tuple([x for x in MODEL_CLASSES.values()])] -DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, EmptyScheduler, UNet2DConditionModel) +DiffusionClasses = (StableDiffusionGeneratorPipeline, AutoencoderKL, EmptyScheduler, UNet2DConditionModel, CLIPTextModel) class UnsafeModelException(Exception): "Raised when a legacy model file fails the picklescan test" @@ -320,7 +320,7 @@ class ModelCache(object): if model.device != cache.execution_device: cache.logger.debug(f'Moving {key} into {cache.execution_device}') with VRAMUsage() as mem: - model.to(cache.execution_device, dtype=cache.precision) # move into GPU + model.to(cache.execution_device) # move into GPU cache.logger.debug(f'GPU VRAM used for load: {(mem.vram_used/GIG):.2f} GB') cache.model_sizes[key] = mem.vram_used # more accurate size @@ -534,11 +534,14 @@ class ModelCache(object): extra_args = dict() if model_class in DiffusionClasses: - extra_args = dict( + extra_args.update( torch_dtype=self.precision, + ) + if model_class == StableDiffusionGeneratorPipeline: + extra_args.update( safety_checker=None, ) - + for rev in revisions: try: model = model_class.from_pretrained( From b31a6ff605a734fa7b884e7bd7ca4fb5a44f8b0d Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 21:11:06 -0400 Subject: [PATCH 036/225] fix reversed args in _model_key() call --- invokeai/backend/model_management/model_cache.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index 8d7aaa8af4..bf77e7fb02 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -237,8 +237,8 @@ class ModelCache(object): if subfolder and not submodel: possible_parent_key = self._model_key( repo_id_or_path, - None, revision, + None, SDModelType.Diffusers ) if possible_parent_key in self.models: From 426f4eaf7e72b03962903a74238a58c93e8f7489 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sat, 13 May 2023 22:29:33 -0400 Subject: [PATCH 037/225] adjusted regression tests to work with new SDModelTypes --- invokeai/app/invocations/latent.py | 14 +++++--------- tests/test_model_cache.py | 28 ++++++++++++++++++---------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index efd9b458c7..54eb0c6630 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -2,10 +2,8 @@ from typing import Literal, Optional, Union -import diffusers import einops import torch -from diffusers import DiffusionPipeline from diffusers.schedulers import SchedulerMixin as Scheduler from diffusers.image_processor import VaeImageProcessor from pydantic import BaseModel, Field @@ -22,18 +20,16 @@ from ...backend.stable_diffusion.diffusers_pipeline import ( from ...backend.stable_diffusion.diffusion.shared_invokeai_diffusion import \ PostprocessingSettings from ...backend.util.devices import choose_torch_device, torch_dtype -from ...backend.prompting.conditioning import get_uc_and_c_and_ec from ...backend.stable_diffusion.schedulers import SCHEDULER_MAP -from .baseinvocation import BaseInvocation, BaseInvocationOutput, InvocationContext, InvocationConfig -import numpy as np +from .baseinvocation import ( + BaseInvocation, BaseInvocationOutput, + InvocationContext, InvocationConfig + ) from ..services.image_storage import ImageType -from .baseinvocation import (BaseInvocation, BaseInvocationOutput, - InvocationConfig, InvocationContext) from .compel import ConditioningField from .image import ImageField, ImageOutput, build_image_output from .model import ModelInfo, UNetField, VaeField -from ...backend.model_management import SDModelType class LatentsField(BaseModel): @@ -213,7 +209,7 @@ class TextToLatentsInvocation(BaseInvocation): h_symmetry_time_pct=None,#h_symmetry_time_pct, v_symmetry_time_pct=None#v_symmetry_time_pct, ), - ).add_scheduler_args_if_applicable(scheduler, eta=None)#ddim_eta) + ).add_scheduler_args_if_applicable(scheduler, eta=0.0)#ddim_eta) return conditioning_data def create_pipeline(self, unet, scheduler) -> StableDiffusionGeneratorPipeline: diff --git a/tests/test_model_cache.py b/tests/test_model_cache.py index 6510f7ac1f..2ced3ea5bd 100644 --- a/tests/test_model_cache.py +++ b/tests/test_model_cache.py @@ -2,7 +2,7 @@ import pytest import torch from enum import Enum -from invokeai.backend.model_management.model_cache import ModelCache +from invokeai.backend.model_management.model_cache import ModelCache, MODEL_CLASSES class DummyModelBase(object): '''Base class for dummy component of a diffusers model''' @@ -32,13 +32,21 @@ class DummyPipeline(DummyModelBase): '''Dummy pipeline object is a composite of several types''' def __init__(self,repo_id): super().__init__(repo_id) - self.type1 = DummyModelType1('dummy/type1') - self.type2 = DummyModelType2('dummy/type2') + self.dummy_model_type1 = DummyModelType1('dummy/type1') + self.dummy_model_type2 = DummyModelType2('dummy/type2') -class DMType(Enum): - dummy_pipeline = DummyPipeline - type1 = DummyModelType1 - type2 = DummyModelType2 +class DMType(str, Enum): + dummy_pipeline = 'dummy_pipeline' + type1 = 'dummy_model_type1' + type2 = 'dummy_model_type2' + +MODEL_CLASSES.update( + { + DMType.dummy_pipeline: DummyPipeline, + DMType.type1: DummyModelType1, + DMType.type2: DummyModelType2, + } +) cache = ModelCache(max_cache_size=4) @@ -50,7 +58,7 @@ def test_pipeline_fetch(): assert pipeline1 is not None, 'get_model() should not return None' assert pipeline1a is not None, 'get_model() should not return None' assert pipeline2 is not None, 'get_model() should not return None' - assert type(pipeline1)==DMType.dummy_pipeline.value,'get_model() did not return model of expected type' + assert type(pipeline1)==DummyPipeline,'get_model() did not return model of expected type' assert pipeline1==pipeline1a,'pipelines with the same repo_id should be the same' assert pipeline1!=pipeline2,'pipelines with different repo_ids should not be the same' assert len(cache.models)==2,'cache should uniquely cache models with same identity' @@ -77,6 +85,6 @@ def test_submodel_fetch(): cache.get_model(repo_id_or_path='dummy/pipeline2',model_type=DMType.dummy_pipeline,submodel=DMType.type1) as part2: assert type(part1)==DummyModelType1,'returned submodel is not of expected type' assert part1.device==torch.device('cuda'),'returned submodel should be in the GPU when in context' - assert pipeline.type1==part1,'returned submodel should match the corresponding subpart of parent model' - assert pipeline.type1!=part2,'returned submodel should not match the subpart of a different parent' + assert pipeline.dummy_model_type1==part1,'returned submodel should match the corresponding subpart of parent model' + assert pipeline.dummy_model_type1!=part2,'returned submodel should not match the subpart of a different parent' From 63e465eb5c35c34370d3c36143cc82213aa0ac7e Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Sun, 14 May 2023 16:45:40 -0400 Subject: [PATCH 038/225] tweaks to `get_model()` behavior 1. If an external VAE is specified in config file, then get_model(submodel=vae) will return the external VAE, not the one burnt into the parent diffusers pipeline. 2. The mechanism in (1) is generalized such that you can now have "unet:", "text_encoder:" and similar stanzas in the config file. Valid formats of these subsections: unet: repo_id: foo/bar unet: path: /path/to/local/folder unet: repo_id: foo/bar subfolder: unet In the near future, these will also be used to attach external parts to the pipeline, generalizing VAE behavior. 3. Accommodate callers (i.e. the WebUI) that are passing the model key ("diffusers/stable-diffusion-1.5") to get_model() instead of the tuple of model_name and model_type. 4. Fixed bug in VAE model attaching code. 5. Rebuilt web front end. --- .../backend/model_management/model_cache.py | 10 +- .../backend/model_management/model_manager.py | 38 ++- .../frontend/web/dist/assets/App-08e5c546.css | 1 - .../frontend/web/dist/assets/App-af7ef809.js | 188 ----------- .../assets/ThemeLocaleProvider-7791bd91.js | 315 ------------------ .../web/dist/assets/index-5483945c.css | 1 - .../web/dist/assets/index-e53e8108.js | 115 ------- .../assets/inter-all-100-normal-2596a8cd.woff | Bin 131292 -> 0 bytes .../assets/inter-all-200-normal-34e907e6.woff | Bin 137016 -> 0 bytes .../assets/inter-all-300-normal-e375e256.woff | Bin 136800 -> 0 bytes .../assets/inter-all-400-normal-f824029b.woff | Bin 129252 -> 0 bytes .../assets/inter-all-500-normal-94e08ad8.woff | Bin 138892 -> 0 bytes .../assets/inter-all-600-normal-ba29c057.woff | Bin 140048 -> 0 bytes .../assets/inter-all-700-normal-9d318ccb.woff | Bin 140344 -> 0 bytes .../assets/inter-all-800-normal-ab496fbe.woff | Bin 140096 -> 0 bytes .../assets/inter-all-900-normal-50daf4f1.woff | Bin 135644 -> 0 bytes .../inter-cyrillic-100-normal-9747741a.woff2 | Bin 6432 -> 0 bytes .../inter-cyrillic-200-normal-87d2e1ba.woff2 | Bin 6680 -> 0 bytes .../inter-cyrillic-300-normal-cff08766.woff2 | Bin 6632 -> 0 bytes .../inter-cyrillic-400-normal-e9493683.woff2 | Bin 6304 -> 0 bytes .../inter-cyrillic-500-normal-f6bd191e.woff2 | Bin 6724 -> 0 bytes .../inter-cyrillic-600-normal-9bc492f5.woff2 | Bin 6804 -> 0 bytes .../inter-cyrillic-700-normal-f6c6dcaf.woff2 | Bin 6772 -> 0 bytes .../inter-cyrillic-800-normal-82994ee8.woff2 | Bin 6836 -> 0 bytes .../inter-cyrillic-900-normal-768011c3.woff2 | Bin 6616 -> 0 bytes ...ter-cyrillic-ext-100-normal-a1f4d02d.woff2 | Bin 9336 -> 0 bytes ...ter-cyrillic-ext-200-normal-82562199.woff2 | Bin 10040 -> 0 bytes ...ter-cyrillic-ext-300-normal-66b2369e.woff2 | Bin 9948 -> 0 bytes ...ter-cyrillic-ext-400-normal-f7666a51.woff2 | Bin 9344 -> 0 bytes ...ter-cyrillic-ext-500-normal-8b5f6999.woff2 | Bin 10184 -> 0 bytes ...ter-cyrillic-ext-600-normal-2ea11f8c.woff2 | Bin 10264 -> 0 bytes ...ter-cyrillic-ext-700-normal-b7bb121f.woff2 | Bin 10256 -> 0 bytes ...ter-cyrillic-ext-800-normal-f15d8f83.woff2 | Bin 10352 -> 0 bytes ...ter-cyrillic-ext-900-normal-b1c13874.woff2 | Bin 10076 -> 0 bytes .../inter-greek-100-normal-a44b9fc9.woff2 | Bin 8152 -> 0 bytes .../inter-greek-200-normal-9575e0f8.woff2 | Bin 8356 -> 0 bytes .../inter-greek-300-normal-d0749e19.woff2 | Bin 8308 -> 0 bytes .../inter-greek-400-normal-2f2d421a.woff2 | Bin 7936 -> 0 bytes .../inter-greek-500-normal-ddbf6a70.woff2 | Bin 8400 -> 0 bytes .../inter-greek-600-normal-4591e350.woff2 | Bin 8476 -> 0 bytes .../inter-greek-700-normal-9e078f49.woff2 | Bin 8436 -> 0 bytes .../inter-greek-800-normal-fb5de277.woff2 | Bin 8464 -> 0 bytes .../inter-greek-900-normal-ffa82654.woff2 | Bin 8400 -> 0 bytes .../inter-greek-ext-100-normal-71976b96.woff2 | Bin 5012 -> 0 bytes .../inter-greek-ext-200-normal-45dafb12.woff2 | Bin 5256 -> 0 bytes .../inter-greek-ext-300-normal-09d21325.woff2 | Bin 5264 -> 0 bytes .../inter-greek-ext-400-normal-d3e30cde.woff2 | Bin 4760 -> 0 bytes .../inter-greek-ext-500-normal-528b79aa.woff2 | Bin 5188 -> 0 bytes .../inter-greek-ext-600-normal-c37a11b3.woff2 | Bin 5200 -> 0 bytes .../inter-greek-ext-700-normal-22174f43.woff2 | Bin 5212 -> 0 bytes .../inter-greek-ext-800-normal-bddb6f8e.woff2 | Bin 5200 -> 0 bytes .../inter-greek-ext-900-normal-bebcb6fc.woff2 | Bin 5032 -> 0 bytes .../inter-latin-100-normal-61cac109.woff2 | Bin 16548 -> 0 bytes .../inter-latin-200-normal-74885a0c.woff2 | Bin 17344 -> 0 bytes .../inter-latin-300-normal-6b2cee46.woff2 | Bin 17328 -> 0 bytes .../inter-latin-400-normal-0364d368.woff2 | Bin 16708 -> 0 bytes .../inter-latin-500-normal-d5333670.woff2 | Bin 17552 -> 0 bytes .../inter-latin-600-normal-048d136d.woff2 | Bin 17660 -> 0 bytes .../inter-latin-700-normal-ced2d8e0.woff2 | Bin 17784 -> 0 bytes .../inter-latin-800-normal-a51ac27d.woff2 | Bin 17764 -> 0 bytes .../inter-latin-900-normal-f2db7f82.woff2 | Bin 17176 -> 0 bytes .../inter-latin-ext-100-normal-d3be20b3.woff2 | Bin 20400 -> 0 bytes .../inter-latin-ext-200-normal-4336e69d.woff2 | Bin 21960 -> 0 bytes .../inter-latin-ext-300-normal-34623012.woff2 | Bin 21848 -> 0 bytes .../inter-latin-ext-400-normal-64a98f58.woff2 | Bin 20432 -> 0 bytes .../inter-latin-ext-500-normal-4fba9ae6.woff2 | Bin 22336 -> 0 bytes .../inter-latin-ext-600-normal-cc23fe6f.woff2 | Bin 22444 -> 0 bytes .../inter-latin-ext-700-normal-1cc47d25.woff2 | Bin 22624 -> 0 bytes .../inter-latin-ext-800-normal-b6167428.woff2 | Bin 22640 -> 0 bytes .../inter-latin-ext-900-normal-3cff82a5.woff2 | Bin 21768 -> 0 bytes .../web/dist/assets/storeHooks-5cde7d31.js | 9 - invokeai/frontend/web/dist/index.html | 3 +- invokeai/frontend/web/dist/locales/de.json | 59 +++- invokeai/frontend/web/dist/locales/en.json | 53 ++- invokeai/frontend/web/dist/locales/es.json | 16 +- invokeai/frontend/web/dist/locales/it.json | 16 +- invokeai/frontend/web/dist/locales/ja.json | 73 +++- invokeai/frontend/web/dist/locales/nl.json | 47 ++- invokeai/frontend/web/dist/locales/ru.json | 136 ++++++-- invokeai/frontend/web/dist/locales/uk.json | 173 ++++++++-- invokeai/frontend/web/dist/locales/zh_CN.json | 17 + invokeai/frontend/web/stats.html | 2 +- 82 files changed, 554 insertions(+), 718 deletions(-) delete mode 100644 invokeai/frontend/web/dist/assets/App-08e5c546.css delete mode 100644 invokeai/frontend/web/dist/assets/App-af7ef809.js delete mode 100644 invokeai/frontend/web/dist/assets/ThemeLocaleProvider-7791bd91.js delete mode 100644 invokeai/frontend/web/dist/assets/index-5483945c.css delete mode 100644 invokeai/frontend/web/dist/assets/index-e53e8108.js delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-300-normal-e375e256.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-600-normal-ba29c057.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-700-normal-9d318ccb.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-100-normal-a1f4d02d.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-400-normal-f7666a51.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-700-normal-b7bb121f.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-400-normal-2f2d421a.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-500-normal-ddbf6a70.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-600-normal-4591e350.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-800-normal-fb5de277.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-900-normal-ffa82654.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-100-normal-71976b96.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-400-normal-d3e30cde.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-500-normal-528b79aa.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-700-normal-22174f43.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-200-normal-74885a0c.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-300-normal-6b2cee46.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-400-normal-0364d368.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-600-normal-048d136d.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-800-normal-a51ac27d.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-100-normal-d3be20b3.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-600-normal-cc23fe6f.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-700-normal-1cc47d25.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-800-normal-b6167428.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 delete mode 100644 invokeai/frontend/web/dist/assets/storeHooks-5cde7d31.js diff --git a/invokeai/backend/model_management/model_cache.py b/invokeai/backend/model_management/model_cache.py index bf77e7fb02..aee9cbeb49 100644 --- a/invokeai/backend/model_management/model_cache.py +++ b/invokeai/backend/model_management/model_cache.py @@ -267,16 +267,16 @@ class ModelCache(object): subfolder=subfolder, revision=revision, ) - + if mem_used := self.calc_model_size(model): logger.debug(f'CPU RAM used for load: {(mem_used/GIG):.2f} GB') self.model_sizes[key] = mem_used # remember size of this model for cache cleansing self.current_cache_size += mem_used # increment size of the cache - + # this is a bit of legacy work needed to support the old-style "load this diffuser with custom VAE" if model_type == SDModelType.Diffusers and attach_model_part[0]: self.attach_part(model, *attach_model_part) - + self.stack.append(key) # add to LRU cache self.models[key] = model # keep copy of model in dict @@ -352,6 +352,7 @@ class ModelCache(object): diffusers_model: StableDiffusionPipeline, part_type: SDModelType, part_id: str, + subfolder: Optional[str] = None ): ''' Attach a diffusers model part to a diffusers model. This can be @@ -362,7 +363,8 @@ class ModelCache(object): ''' part = self._load_diffusers_from_storage( part_id, - model_class=MODEL_CLASSES[part_type], + model_type=part_type, + subfolder=subfolder, ) part.to(diffusers_model.device) setattr(diffusers_model, part_type, part) diff --git a/invokeai/backend/model_management/model_manager.py b/invokeai/backend/model_management/model_manager.py index 05e0afff98..3c15bb1bfb 100644 --- a/invokeai/backend/model_management/model_manager.py +++ b/invokeai/backend/model_management/model_manager.py @@ -133,6 +133,7 @@ from __future__ import annotations import os import re +import sys import textwrap from contextlib import suppress from dataclasses import dataclass @@ -318,11 +319,18 @@ class ModelManager(object): # raises an InvalidModelError """ + + # This is a temporary workaround for callers that use "type/name" as the model name + # because they haven't adjusted to the new return format of `list_models()` + if "/" in model_name: + model_key = model_name + else: + model_key = self.create_key(model_name, model_type) + # TODO: delete default model or add check that this stable diffusion model # if not model_name: # model_name = self.default_model() - model_key = self.create_key(model_name, model_type) if model_key not in self.config: raise InvalidModelError( f'"{model_key}" is not a known model name. Please check your models.yaml file' @@ -350,20 +358,30 @@ class ModelManager(object): revision = mconfig.get('revision') hash = self.cache.model_hash(location, revision) - # to support the traditional way of attaching a VAE - # to a model, we hacked in `attach_model_part` - vae = (None, None) - with suppress(Exception): - vae_id = mconfig.vae.repo_id - vae = (SDModelType.Vae, vae_id) + # If the caller is asking for part of the model and the config indicates + # an external replacement for that field, then we fetch the replacement + if submodel and mconfig.get(submodel): + location = mconfig.get(submodel).get('path') \ + or mconfig.get(submodel).get('repo_id') + model_type = submodel + submodel = None - # optimization - don't load whole model if the user - # is asking for just a piece of it - if model_type == SDModelType.Diffusers and submodel and not subfolder: + # We don't need to load whole model if the user is asking for just a piece of it + elif model_type == SDModelType.Diffusers and submodel and not subfolder: model_type = submodel subfolder = submodel.value submodel = None + # to support the traditional way of attaching a VAE + # to a model, we hacked in `attach_model_part` + # TODO: generalize this + vae = (None, None) + if model_type == SDModelType.Diffusers: + with suppress(Exception): + vae_id = mconfig.vae.get('path') or mconfig.vae.get('repo_id') + vae_subfolder = mconfig.vae.get('subfolder') + vae = (SDModelType.Vae, vae_id, vae_subfolder) + model_context = self.cache.get_model( location, model_type = model_type, diff --git a/invokeai/frontend/web/dist/assets/App-08e5c546.css b/invokeai/frontend/web/dist/assets/App-08e5c546.css deleted file mode 100644 index 27d0052b89..0000000000 --- a/invokeai/frontend/web/dist/assets/App-08e5c546.css +++ /dev/null @@ -1 +0,0 @@ -.ltr-image-gallery-css-transition-enter{transform:translate(150%)}.ltr-image-gallery-css-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.ltr-image-gallery-css-transition-exit{transform:translate(0)}.ltr-image-gallery-css-transition-exit-active{transform:translate(150%);transition:all .12s ease-out}.rtl-image-gallery-css-transition-enter{transform:translate(-150%)}.rtl-image-gallery-css-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.rtl-image-gallery-css-transition-exit{transform:translate(0)}.rtl-image-gallery-css-transition-exit-active{transform:translate(-150%);transition:all .12s ease-out} diff --git a/invokeai/frontend/web/dist/assets/App-af7ef809.js b/invokeai/frontend/web/dist/assets/App-af7ef809.js deleted file mode 100644 index 9cc392a2c2..0000000000 --- a/invokeai/frontend/web/dist/assets/App-af7ef809.js +++ /dev/null @@ -1,188 +0,0 @@ -import{r as g,f as ue,j as l,u as BS,c as ne,a as ze,b as Ee,w as ns,d as un,o as At,S as yc,e as yo,g as qe,h as Nr,k as ei,i as xc,_ as Xd,l as HS,m as WS,R as _e,n as Pv,p as VS,q as Qd,s as ta,t as b1,v as S1,x as US,y as $S,z as ee,A as C1,B as w1,C as bc,D as rs,F as L,E as K,G as GS,H as dd,T as Ce,I as j1,J as qS,K as os,L as Iv,M as YS,N as KS,O as XS,P as Di,Q as k1,U as Mv,V as QS,W as E1,X as ZS,Y as JS,Z as e3,$ as P1,a0 as t3,a1 as n3,a2 as r3,a3 as o3,a4 as i3,a5 as a3,a6 as s3,a7 as I1,a8 as l3,a9 as c3,aa as ql,ab as u3,ac as d3,ad as Nl,ae as Yl,af as Zd,ag as Jd,ah as ef,ai as f3,aj as M1,ak as h3,al as T1,am as p3,an as _1,ao as D1,ap as Uo,aq as kn,ar as m3,as as A1,at as is,au as v3,av as g3,aw as O1,ax as tf,ay as nf,az as z1,aA as rf,aB as of,aC as Tv,aD as R1,aE as N1,aF as F1,aG as Fl,aH as Ll,aI as y3,aJ as af,aK as L1,aL as B1,aM as H1,aN as x3,aO as b3,aP as _v,aQ as Dv,aR as S3,aS as C3,aT as w3,aU as W1,aV as V1,aW as j3,aX as k3,aY as U1,aZ as Av,a_ as E3,a$ as Ov,b0 as P3,b1 as I3,b2 as $1,b3 as M3,b4 as T3,b5 as _3,b6 as fd,b7 as zv,b8 as G1,b9 as sf,ba as D3,bb as Rv,bc as Bl,bd as A3,be as O3,bf as Ua,bg as Kl,bh as q1,bi as Xl,bj as z3,bk as R3,bl as Sr,bm as Y1,bn as Zf,bo as as,bp as N3,bq as F3,br as L3,bs as jr,bt as K1,bu as B3,bv as H3,bw as X1,bx as W3,by as V3,bz as U3,bA as $3,bB as G3,bC as q3,bD as Y3,bE as K3,bF as X3,bG as Nv,bH as Q3,bI as Z3,bJ as J3,bK as eC,bL as tC,bM as nC,bN as hd,bO as za,bP as ml,bQ as Fv,bR as pd,bS as md,bT as vl,bU as Lv,bV as lf,bW as rC,bX as oC,bY as iC,bZ as Sc,b_ as aC,b$ as sC,c0 as lC,c1 as cC,c2 as gl,c3 as vd,c4 as yl,c5 as Ma,c6 as uC,c7 as dC,c8 as Q1,c9 as Ql,ca as Jf,cb as Z1,cc as J1,cd as e2,ce as fC,cf as t2,cg as n2,ch as r2,ci as o2,cj as i2,ck as Li,cl as Bi,cm as a2,cn as s2,co as l2,cp as c2,cq as u2,cr as hC,cs as pC,ct as Bv,cu as xl,cv as mC,cw as Hv,cx as Wv,cy as Vv,cz as Uv,cA as vC,cB as gC,cC as cf,cD as yC,cE as $v,cF as bl,cG as Zl,cH as xC,cI as bC,cJ as SC,cK as CC,cL as d2,cM as wC,cN as jC}from"./index-e53e8108.js";import{I as tn,u as kC,c as EC,a as kt,b as Wt,A as xo,m as ar,d as Hi,e as ti,P as $a,f as PC,C as IC,g as Y,h as A}from"./storeHooks-5cde7d31.js";function MC(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,s;for(s=0;s=0)&&(n[o]=e[o]);return n}var Jl="NOT_FOUND";function TC(e){var t;return{get:function(r){return t&&e(t.key,r)?t.value:Jl},put:function(r,o){t={key:r,value:o}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}function _C(e,t){var n=[];function r(u){var f=n.findIndex(function(h){return t(u,h.key)});if(f>-1){var p=n[f];return f>0&&(n.splice(f,1),n.unshift(p)),p.value}return Jl}function o(u,f){r(u)===Jl&&(n.unshift({key:u,value:f}),n.length>e&&n.pop())}function s(){return n}function c(){n=[]}return{get:r,put:o,getEntries:s,clear:c}}var DC=function(t,n){return t===n};function AC(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var o=n.length,s=0;s1?t-1:0),r=1;rperformance.now():()=>Date.now(),p2=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(BC()),h2);function HC(e){let t=[],n=[],r=0,o=!1,s=!1;const c=new WeakSet,u={schedule:(f,p=!1,h=!1)=>{const y=h&&o,x=y?t:n;return p&&c.add(f),x.indexOf(f)===-1&&(x.push(f),y&&o&&(r=t.length)),f},cancel:f=>{const p=n.indexOf(f);p!==-1&&n.splice(p,1),c.delete(f)},process:f=>{if(o){s=!0;return}if(o=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let p=0;p(e[t]=HC(()=>Ga=!0),e),{}),VC=ss.reduce((e,t)=>{const n=Cc[t];return e[t]=(r,o=!1,s=!1)=>(Ga||GC(),n.schedule(r,o,s)),e},{}),UC=ss.reduce((e,t)=>(e[t]=Cc[t].cancel,e),{});ss.reduce((e,t)=>(e[t]=()=>Cc[t].process(Wi),e),{});const $C=e=>Cc[e].process(Wi),m2=e=>{Ga=!1,Wi.delta=uf?h2:Math.max(Math.min(e-Wi.timestamp,WC),1),Wi.timestamp=e,df=!0,ss.forEach($C),df=!1,Ga&&(uf=!1,p2(m2))},GC=()=>{Ga=!0,uf=!0,df||p2(m2)},Gv=()=>Wi;function eh(e){const{viewBox:t="0 0 24 24",d:n,displayName:r,defaultProps:o={}}=e,s=g.Children.toArray(e.path),c=ue((u,f)=>l.jsx(tn,{ref:f,viewBox:t,...o,...u,children:s.length?s:l.jsx("path",{fill:"currentColor",d:n})}));return c.displayName=r,c}function ls(e){const{theme:t}=BS(),n=kC();return g.useMemo(()=>EC(t.direction,{...n,...e}),[e,t.direction,n])}var qC=Object.defineProperty,YC=(e,t,n)=>t in e?qC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zt=(e,t,n)=>(YC(e,typeof t!="symbol"?t+"":t,n),n);function qv(e){return e.sort((t,n)=>{const r=t.compareDocumentPosition(n);if(r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0})}var KC=e=>typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE;function Yv(e,t,n){let r=e+1;return n&&r>=t&&(r=0),r}function Kv(e,t,n){let r=e-1;return n&&r<0&&(r=t),r}var ff=typeof window<"u"?g.useLayoutEffect:g.useEffect,ec=e=>e,XC=class{constructor(){zt(this,"descendants",new Map),zt(this,"register",e=>{if(e!=null)return KC(e)?this.registerNode(e):t=>{this.registerNode(t,e)}}),zt(this,"unregister",e=>{this.descendants.delete(e);const t=qv(Array.from(this.descendants.keys()));this.assignIndex(t)}),zt(this,"destroy",()=>{this.descendants.clear()}),zt(this,"assignIndex",e=>{this.descendants.forEach(t=>{const n=e.indexOf(t.node);t.index=n,t.node.dataset.index=t.index.toString()})}),zt(this,"count",()=>this.descendants.size),zt(this,"enabledCount",()=>this.enabledValues().length),zt(this,"values",()=>Array.from(this.descendants.values()).sort((t,n)=>t.index-n.index)),zt(this,"enabledValues",()=>this.values().filter(e=>!e.disabled)),zt(this,"item",e=>{if(this.count()!==0)return this.values()[e]}),zt(this,"enabledItem",e=>{if(this.enabledCount()!==0)return this.enabledValues()[e]}),zt(this,"first",()=>this.item(0)),zt(this,"firstEnabled",()=>this.enabledItem(0)),zt(this,"last",()=>this.item(this.descendants.size-1)),zt(this,"lastEnabled",()=>{const e=this.enabledValues().length-1;return this.enabledItem(e)}),zt(this,"indexOf",e=>{var t,n;return e&&(n=(t=this.descendants.get(e))==null?void 0:t.index)!=null?n:-1}),zt(this,"enabledIndexOf",e=>e==null?-1:this.enabledValues().findIndex(t=>t.node.isSameNode(e))),zt(this,"next",(e,t=!0)=>{const n=Yv(e,this.count(),t);return this.item(n)}),zt(this,"nextEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),o=Yv(r,this.enabledCount(),t);return this.enabledItem(o)}),zt(this,"prev",(e,t=!0)=>{const n=Kv(e,this.count()-1,t);return this.item(n)}),zt(this,"prevEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),o=Kv(r,this.enabledCount()-1,t);return this.enabledItem(o)}),zt(this,"registerNode",(e,t)=>{if(!e||this.descendants.has(e))return;const n=Array.from(this.descendants.keys()).concat(e),r=qv(n);t!=null&&t.disabled&&(t.disabled=!!t.disabled);const o={node:e,index:-1,...t};this.descendants.set(e,o),this.assignIndex(r)})}};function QC(e,t){if(e!=null){if(typeof e=="function"){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function ct(...e){return t=>{e.forEach(n=>{QC(n,t)})}}function ZC(...e){return g.useMemo(()=>ct(...e),e)}function JC(){const e=g.useRef(new XC);return ff(()=>()=>e.current.destroy()),e.current}var[ew,v2]=kt({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function tw(e){const t=v2(),[n,r]=g.useState(-1),o=g.useRef(null);ff(()=>()=>{o.current&&t.unregister(o.current)},[]),ff(()=>{if(!o.current)return;const c=Number(o.current.dataset.index);n!=c&&!Number.isNaN(c)&&r(c)});const s=ec(e?t.register(e):t.register);return{descendants:t,index:n,enabledIndex:t.enabledIndexOf(o.current),register:ct(s,o)}}function th(){return[ec(ew),()=>ec(v2()),()=>JC(),o=>tw(o)]}var[nw,wc]=kt({name:"AccordionStylesContext",hookName:"useAccordionStyles",providerName:""}),[rw,nh]=kt({name:"AccordionItemContext",hookName:"useAccordionItemContext",providerName:""}),[ow,oL,iw,aw]=th(),Ai=ue(function(t,n){const{getButtonProps:r}=nh(),o=r(t,n),c={display:"flex",alignItems:"center",width:"100%",outline:0,...wc().button};return l.jsx(ne.button,{...o,className:ze("chakra-accordion__button",t.className),__css:c})});Ai.displayName="AccordionButton";function rh(e){const{value:t,defaultValue:n,onChange:r,shouldUpdate:o=(x,S)=>x!==S}=e,s=Wt(r),c=Wt(o),[u,f]=g.useState(n),p=t!==void 0,h=p?t:u,y=Wt(x=>{const j=typeof x=="function"?x(h):x;c(h,j)&&(p||f(j),s(j))},[p,s,h,c]);return[h,y]}function sw(e){const{onChange:t,defaultIndex:n,index:r,allowMultiple:o,allowToggle:s,...c}=e;uw(e),dw(e);const u=iw(),[f,p]=g.useState(-1);g.useEffect(()=>()=>{p(-1)},[]);const[h,y]=rh({value:r,defaultValue(){return o?n??[]:n??-1},onChange:t});return{index:h,setIndex:y,htmlProps:c,getAccordionItemProps:S=>{let j=!1;return S!==null&&(j=Array.isArray(h)?h.includes(S):h===S),{isOpen:j,onChange:w=>{if(S!==null)if(o&&Array.isArray(h)){const k=w?h.concat(S):h.filter(I=>I!==S);y(k)}else w?y(S):s&&y(-1)}}},focusedIndex:f,setFocusedIndex:p,descendants:u}}var[lw,oh]=kt({name:"AccordionContext",hookName:"useAccordionContext",providerName:"Accordion"});function cw(e){const{isDisabled:t,isFocusable:n,id:r,...o}=e,{getAccordionItemProps:s,setFocusedIndex:c}=oh(),u=g.useRef(null),f=g.useId(),p=r??f,h=`accordion-button-${p}`,y=`accordion-panel-${p}`;fw(e);const{register:x,index:S,descendants:j}=aw({disabled:t&&!n}),{isOpen:C,onChange:w}=s(S===-1?null:S);hw({isOpen:C,isDisabled:t});const k=()=>{w==null||w(!0)},I=()=>{w==null||w(!1)},P=g.useCallback(()=>{w==null||w(!C),c(S)},[S,c,C,w]),M=g.useCallback(R=>{const F={ArrowDown:()=>{const B=j.nextEnabled(S);B==null||B.node.focus()},ArrowUp:()=>{const B=j.prevEnabled(S);B==null||B.node.focus()},Home:()=>{const B=j.firstEnabled();B==null||B.node.focus()},End:()=>{const B=j.lastEnabled();B==null||B.node.focus()}}[R.key];F&&(R.preventDefault(),F(R))},[j,S]),T=g.useCallback(()=>{c(S)},[c,S]),D=g.useCallback(function(V={},F=null){return{...V,type:"button",ref:ct(x,u,F),id:h,disabled:!!t,"aria-expanded":!!C,"aria-controls":y,onClick:Ee(V.onClick,P),onFocus:Ee(V.onFocus,T),onKeyDown:Ee(V.onKeyDown,M)}},[h,t,C,P,T,M,y,x]),_=g.useCallback(function(V={},F=null){return{...V,ref:F,role:"region",id:y,"aria-labelledby":h,hidden:!C}},[h,C,y]);return{isOpen:C,isDisabled:t,isFocusable:n,onOpen:k,onClose:I,getButtonProps:D,getPanelProps:_,htmlProps:o}}function uw(e){const t=e.index||e.defaultIndex,n=t!=null&&!Array.isArray(t)&&e.allowMultiple;ns({condition:!!n,message:`If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: ${typeof t},`})}function dw(e){ns({condition:!!(e.allowMultiple&&e.allowToggle),message:"If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not"})}function fw(e){ns({condition:!!(e.isFocusable&&!e.isDisabled),message:`Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well. - `})}function hw(e){ns({condition:e.isOpen&&!!e.isDisabled,message:"Cannot open a disabled accordion item"})}function Oi(e){const{isOpen:t,isDisabled:n}=nh(),{reduceMotion:r}=oh(),o=ze("chakra-accordion__icon",e.className),s=wc(),c={opacity:n?.4:1,transform:t?"rotate(-180deg)":void 0,transition:r?void 0:"transform 0.2s",transformOrigin:"center",...s.icon};return l.jsx(tn,{viewBox:"0 0 24 24","aria-hidden":!0,className:o,__css:c,...e,children:l.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})})}Oi.displayName="AccordionIcon";var zi=ue(function(t,n){const{children:r,className:o}=t,{htmlProps:s,...c}=cw(t),f={...wc().container,overflowAnchor:"none"},p=g.useMemo(()=>c,[c]);return l.jsx(rw,{value:p,children:l.jsx(ne.div,{ref:n,...s,className:ze("chakra-accordion__item",o),__css:f,children:typeof r=="function"?r({isExpanded:!!c.isOpen,isDisabled:!!c.isDisabled}):r})})});zi.displayName="AccordionItem";var Wo={ease:[.25,.1,.25,1],easeIn:[.4,0,1,1],easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1]},Ta={scale:{enter:{scale:1},exit:{scale:.95}},fade:{enter:{opacity:1},exit:{opacity:0}},pushLeft:{enter:{x:"100%"},exit:{x:"-30%"}},pushRight:{enter:{x:"-100%"},exit:{x:"30%"}},pushUp:{enter:{y:"100%"},exit:{y:"-30%"}},pushDown:{enter:{y:"-100%"},exit:{y:"30%"}},slideLeft:{position:{left:0,top:0,bottom:0,width:"100%"},enter:{x:0,y:0},exit:{x:"-100%",y:0}},slideRight:{position:{right:0,top:0,bottom:0,width:"100%"},enter:{x:0,y:0},exit:{x:"100%",y:0}},slideUp:{position:{top:0,left:0,right:0,maxWidth:"100vw"},enter:{x:0,y:0},exit:{x:0,y:"-100%"}},slideDown:{position:{bottom:0,left:0,right:0,maxWidth:"100vw"},enter:{x:0,y:0},exit:{x:0,y:"100%"}}};function hf(e){var t;switch((t=e==null?void 0:e.direction)!=null?t:"right"){case"right":return Ta.slideRight;case"left":return Ta.slideLeft;case"bottom":return Ta.slideDown;case"top":return Ta.slideUp;default:return Ta.slideRight}}var $o={enter:{duration:.2,ease:Wo.easeOut},exit:{duration:.1,ease:Wo.easeIn}},rr={enter:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.enter}),exit:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.exit})},pw=e=>e!=null&&parseInt(e.toString(),10)>0,Xv={exit:{height:{duration:.2,ease:Wo.ease},opacity:{duration:.3,ease:Wo.ease}},enter:{height:{duration:.3,ease:Wo.ease},opacity:{duration:.4,ease:Wo.ease}}},mw={exit:({animateOpacity:e,startingHeight:t,transition:n,transitionEnd:r,delay:o})=>{var s;return{...e&&{opacity:pw(t)?1:0},height:t,transitionEnd:r==null?void 0:r.exit,transition:(s=n==null?void 0:n.exit)!=null?s:rr.exit(Xv.exit,o)}},enter:({animateOpacity:e,endingHeight:t,transition:n,transitionEnd:r,delay:o})=>{var s;return{...e&&{opacity:1},height:t,transitionEnd:r==null?void 0:r.enter,transition:(s=n==null?void 0:n.enter)!=null?s:rr.enter(Xv.enter,o)}}},g2=g.forwardRef((e,t)=>{const{in:n,unmountOnExit:r,animateOpacity:o=!0,startingHeight:s=0,endingHeight:c="auto",style:u,className:f,transition:p,transitionEnd:h,...y}=e,[x,S]=g.useState(!1);g.useEffect(()=>{const I=setTimeout(()=>{S(!0)});return()=>clearTimeout(I)},[]),ns({condition:Boolean(s>0&&r),message:"startingHeight and unmountOnExit are mutually exclusive. You can't use them together"});const j=parseFloat(s.toString())>0,C={startingHeight:s,endingHeight:c,animateOpacity:o,transition:x?p:{enter:{duration:0}},transitionEnd:{enter:h==null?void 0:h.enter,exit:r?h==null?void 0:h.exit:{...h==null?void 0:h.exit,display:j?"block":"none"}}},w=r?n:!0,k=n||r?"enter":"exit";return l.jsx(xo,{initial:!1,custom:C,children:w&&l.jsx(ar.div,{ref:t,...y,className:ze("chakra-collapse",f),style:{overflow:"hidden",display:"block",...u},custom:C,variants:mw,initial:r?"exit":!1,animate:k,exit:"exit"})})});g2.displayName="Collapse";var vw={enter:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:1,transition:(r=e==null?void 0:e.enter)!=null?r:rr.enter($o.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:0,transition:(r=e==null?void 0:e.exit)!=null?r:rr.exit($o.exit,n),transitionEnd:t==null?void 0:t.exit}}},y2={initial:"exit",animate:"enter",exit:"exit",variants:vw},gw=g.forwardRef(function(t,n){const{unmountOnExit:r,in:o,className:s,transition:c,transitionEnd:u,delay:f,...p}=t,h=o||r?"enter":"exit",y=r?o&&r:!0,x={transition:c,transitionEnd:u,delay:f};return l.jsx(xo,{custom:x,children:y&&l.jsx(ar.div,{ref:n,className:ze("chakra-fade",s),custom:x,...y2,animate:h,...p})})});gw.displayName="Fade";var yw={exit:({reverse:e,initialScale:t,transition:n,transitionEnd:r,delay:o})=>{var s;return{opacity:0,...e?{scale:t,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{scale:t,...r==null?void 0:r.exit}},transition:(s=n==null?void 0:n.exit)!=null?s:rr.exit($o.exit,o)}},enter:({transitionEnd:e,transition:t,delay:n})=>{var r;return{opacity:1,scale:1,transition:(r=t==null?void 0:t.enter)!=null?r:rr.enter($o.enter,n),transitionEnd:e==null?void 0:e.enter}}},x2={initial:"exit",animate:"enter",exit:"exit",variants:yw},xw=g.forwardRef(function(t,n){const{unmountOnExit:r,in:o,reverse:s=!0,initialScale:c=.95,className:u,transition:f,transitionEnd:p,delay:h,...y}=t,x=r?o&&r:!0,S=o||r?"enter":"exit",j={initialScale:c,reverse:s,transition:f,transitionEnd:p,delay:h};return l.jsx(xo,{custom:j,children:x&&l.jsx(ar.div,{ref:n,className:ze("chakra-offset-slide",u),...x2,animate:S,custom:j,...y})})});xw.displayName="ScaleFade";var bw={initial:({offsetX:e,offsetY:t,transition:n,transitionEnd:r,delay:o})=>{var s;return{opacity:0,x:e,y:t,transition:(s=n==null?void 0:n.exit)!=null?s:rr.exit($o.exit,o),transitionEnd:r==null?void 0:r.exit}},enter:({transition:e,transitionEnd:t,delay:n})=>{var r;return{opacity:1,x:0,y:0,transition:(r=e==null?void 0:e.enter)!=null?r:rr.enter($o.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({offsetY:e,offsetX:t,transition:n,transitionEnd:r,reverse:o,delay:s})=>{var c;const u={x:t,y:e};return{opacity:0,transition:(c=n==null?void 0:n.exit)!=null?c:rr.exit($o.exit,s),...o?{...u,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{...u,...r==null?void 0:r.exit}}}}},pf={initial:"initial",animate:"enter",exit:"exit",variants:bw},Sw=g.forwardRef(function(t,n){const{unmountOnExit:r,in:o,reverse:s=!0,className:c,offsetX:u=0,offsetY:f=8,transition:p,transitionEnd:h,delay:y,...x}=t,S=r?o&&r:!0,j=o||r?"enter":"exit",C={offsetX:u,offsetY:f,reverse:s,transition:p,transitionEnd:h,delay:y};return l.jsx(xo,{custom:C,children:S&&l.jsx(ar.div,{ref:n,className:ze("chakra-offset-slide",c),custom:C,...pf,animate:j,...x})})});Sw.displayName="SlideFade";var Qv={exit:{duration:.15,ease:Wo.easeInOut},enter:{type:"spring",damping:25,stiffness:180}},Cw={exit:({direction:e,transition:t,transitionEnd:n,delay:r})=>{var o;const{exit:s}=hf({direction:e});return{...s,transition:(o=t==null?void 0:t.exit)!=null?o:rr.exit(Qv.exit,r),transitionEnd:n==null?void 0:n.exit}},enter:({direction:e,transitionEnd:t,transition:n,delay:r})=>{var o;const{enter:s}=hf({direction:e});return{...s,transition:(o=n==null?void 0:n.enter)!=null?o:rr.enter(Qv.enter,r),transitionEnd:t==null?void 0:t.enter}}},b2=g.forwardRef(function(t,n){const{direction:r="right",style:o,unmountOnExit:s,in:c,className:u,transition:f,transitionEnd:p,delay:h,motionProps:y,...x}=t,S=hf({direction:r}),j=Object.assign({position:"fixed"},S.position,o),C=s?c&&s:!0,w=c||s?"enter":"exit",k={transitionEnd:p,transition:f,direction:r,delay:h};return l.jsx(xo,{custom:k,children:C&&l.jsx(ar.div,{...x,ref:n,initial:"exit",className:ze("chakra-slide",u),animate:w,exit:"exit",custom:k,variants:Cw,style:j,...y})})});b2.displayName="Slide";var Ri=ue(function(t,n){const{className:r,motionProps:o,...s}=t,{reduceMotion:c}=oh(),{getPanelProps:u,isOpen:f}=nh(),p=u(s,n),h=ze("chakra-accordion__panel",r),y=wc();c||delete p.hidden;const x=l.jsx(ne.div,{...p,__css:y.panel,className:h});return c?x:l.jsx(g2,{in:f,...o,children:x})});Ri.displayName="AccordionPanel";var ih=ue(function({children:t,reduceMotion:n,...r},o){const s=un("Accordion",r),c=At(r),{htmlProps:u,descendants:f,...p}=sw(c),h=g.useMemo(()=>({...p,reduceMotion:!!n}),[p,n]);return l.jsx(ow,{value:f,children:l.jsx(lw,{value:h,children:l.jsx(nw,{value:s,children:l.jsx(ne.div,{ref:o,...u,className:ze("chakra-accordion",r.className),__css:s.root,children:t})})})})});ih.displayName="Accordion";var mf=ue(function(t,n){const{htmlWidth:r,htmlHeight:o,alt:s,...c}=t;return l.jsx("img",{width:r,height:o,ref:n,alt:s,...c})});mf.displayName="NativeImage";function ww(e){const{loading:t,src:n,srcSet:r,onLoad:o,onError:s,crossOrigin:c,sizes:u,ignoreFallback:f}=e,[p,h]=g.useState("pending");g.useEffect(()=>{h(n?"loading":"pending")},[n]);const y=g.useRef(),x=g.useCallback(()=>{if(!n)return;S();const j=new Image;j.src=n,c&&(j.crossOrigin=c),r&&(j.srcset=r),u&&(j.sizes=u),t&&(j.loading=t),j.onload=C=>{S(),h("loaded"),o==null||o(C)},j.onerror=C=>{S(),h("failed"),s==null||s(C)},y.current=j},[n,c,r,u,o,s,t]),S=()=>{y.current&&(y.current.onload=null,y.current.onerror=null,y.current=null)};return Hi(()=>{if(!f)return p==="loading"&&x(),()=>{S()}},[p,x,f]),f?"loaded":p}var jw=(e,t)=>e!=="loaded"&&t==="beforeLoadOrError"||e==="failed"&&t==="onError";function kw(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var cs=ue(function(t,n){const{fallbackSrc:r,fallback:o,src:s,srcSet:c,align:u,fit:f,loading:p,ignoreFallback:h,crossOrigin:y,fallbackStrategy:x="beforeLoadOrError",referrerPolicy:S,...j}=t,C=r!==void 0||o!==void 0,w=p!=null||h||!C,k=ww({...t,ignoreFallback:w}),I=jw(k,x),P={ref:n,objectFit:f,objectPosition:u,...w?j:kw(j,["onError","onLoad"])};return I?o||l.jsx(ne.img,{as:mf,className:"chakra-image__placeholder",src:r,...P}):l.jsx(ne.img,{as:mf,src:s,srcSet:c,crossOrigin:y,loading:p,referrerPolicy:S,className:"chakra-image",...P})});cs.displayName="Image";function ah(e){return g.Children.toArray(e).filter(t=>g.isValidElement(t))}var[Ew,Pw]=kt({strict:!1,name:"ButtonGroupContext"}),Iw={horizontal:{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}},vertical:{"> *:first-of-type:not(:last-of-type)":{borderBottomRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderTopRadius:0}}},Mw={horizontal:e=>({"& > *:not(style) ~ *:not(style)":{marginStart:e}}),vertical:e=>({"& > *:not(style) ~ *:not(style)":{marginTop:e}})},Qt=ue(function(t,n){const{size:r,colorScheme:o,variant:s,className:c,spacing:u="0.5rem",isAttached:f,isDisabled:p,orientation:h="horizontal",...y}=t,x=ze("chakra-button__group",c),S=g.useMemo(()=>({size:r,colorScheme:o,variant:s,isDisabled:p}),[r,o,s,p]);let j={display:"inline-flex",...f?Iw[h]:Mw[h](u)};const C=h==="vertical";return l.jsx(Ew,{value:S,children:l.jsx(ne.div,{ref:n,role:"group",__css:j,className:x,"data-attached":f?"":void 0,"data-orientation":h,flexDir:C?"column":void 0,...y})})});Qt.displayName="ButtonGroup";function Tw(e){const[t,n]=g.useState(!e);return{ref:g.useCallback(s=>{s&&n(s.tagName==="BUTTON")},[]),type:t?"button":void 0}}function vf(e){const{children:t,className:n,...r}=e,o=g.isValidElement(t)?g.cloneElement(t,{"aria-hidden":!0,focusable:!1}):t,s=ze("chakra-button__icon",n);return l.jsx(ne.span,{display:"inline-flex",alignSelf:"center",flexShrink:0,...r,className:s,children:o})}vf.displayName="ButtonIcon";function tc(e){const{label:t,placement:n,spacing:r="0.5rem",children:o=l.jsx(yc,{color:"currentColor",width:"1em",height:"1em"}),className:s,__css:c,...u}=e,f=ze("chakra-button__spinner",s),p=n==="start"?"marginEnd":"marginStart",h=g.useMemo(()=>({display:"flex",alignItems:"center",position:t?"relative":"absolute",[p]:t?r:0,fontSize:"1em",lineHeight:"normal",...c}),[c,t,p,r]);return l.jsx(ne.div,{className:f,...u,__css:h,children:o})}tc.displayName="ButtonSpinner";var ni=ue((e,t)=>{const n=Pw(),r=yo("Button",{...n,...e}),{isDisabled:o=n==null?void 0:n.isDisabled,isLoading:s,isActive:c,children:u,leftIcon:f,rightIcon:p,loadingText:h,iconSpacing:y="0.5rem",type:x,spinner:S,spinnerPlacement:j="start",className:C,as:w,...k}=At(e),I=g.useMemo(()=>{const D={...r==null?void 0:r._focus,zIndex:1};return{display:"inline-flex",appearance:"none",alignItems:"center",justifyContent:"center",userSelect:"none",position:"relative",whiteSpace:"nowrap",verticalAlign:"middle",outline:"none",...r,...!!n&&{_focus:D}}},[r,n]),{ref:P,type:M}=Tw(w),T={rightIcon:p,leftIcon:f,iconSpacing:y,children:u};return l.jsxs(ne.button,{ref:ZC(t,P),as:w,type:x??M,"data-active":qe(c),"data-loading":qe(s),__css:I,className:ze("chakra-button",C),...k,disabled:o||s,children:[s&&j==="start"&&l.jsx(tc,{className:"chakra-button__spinner--start",label:h,placement:"start",spacing:y,children:S}),s?h||l.jsx(ne.span,{opacity:0,children:l.jsx(Zv,{...T})}):l.jsx(Zv,{...T}),s&&j==="end"&&l.jsx(tc,{className:"chakra-button__spinner--end",label:h,placement:"end",spacing:y,children:S})]})});ni.displayName="Button";function Zv(e){const{leftIcon:t,rightIcon:n,children:r,iconSpacing:o}=e;return l.jsxs(l.Fragment,{children:[t&&l.jsx(vf,{marginEnd:o,children:t}),r,n&&l.jsx(vf,{marginStart:o,children:n})]})}var ho=ue((e,t)=>{const{icon:n,children:r,isRound:o,"aria-label":s,...c}=e,u=n||r,f=g.isValidElement(u)?g.cloneElement(u,{"aria-hidden":!0,focusable:!1}):null;return l.jsx(ni,{padding:"0",borderRadius:o?"full":void 0,ref:t,"aria-label":s,...c,children:f})});ho.displayName="IconButton";var[iL,_w]=kt({name:"CheckboxGroupContext",strict:!1});function Dw(e){return l.jsx(ne.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...e,children:l.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function Aw(e){return l.jsx(ne.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...e,children:l.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function Ow(e){const{isIndeterminate:t,isChecked:n,...r}=e,o=t?Aw:Dw;return n||t?l.jsx(ne.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:l.jsx(o,{...r})}):null}var[zw,S2]=kt({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Rw,ri]=kt({strict:!1,name:"FormControlContext"});function Nw(e){const{id:t,isRequired:n,isInvalid:r,isDisabled:o,isReadOnly:s,...c}=e,u=g.useId(),f=t||`field-${u}`,p=`${f}-label`,h=`${f}-feedback`,y=`${f}-helptext`,[x,S]=g.useState(!1),[j,C]=g.useState(!1),[w,k]=g.useState(!1),I=g.useCallback((_={},R=null)=>({id:y,..._,ref:ct(R,V=>{V&&C(!0)})}),[y]),P=g.useCallback((_={},R=null)=>{var V,F;return{..._,ref:R,"data-focus":qe(w),"data-disabled":qe(o),"data-invalid":qe(r),"data-readonly":qe(s),id:(V=_.id)!=null?V:p,htmlFor:(F=_.htmlFor)!=null?F:f}},[f,o,w,r,s,p]),M=g.useCallback((_={},R=null)=>({id:h,..._,ref:ct(R,V=>{V&&S(!0)}),"aria-live":"polite"}),[h]),T=g.useCallback((_={},R=null)=>({..._,...c,ref:R,role:"group"}),[c]),D=g.useCallback((_={},R=null)=>({..._,ref:R,role:"presentation","aria-hidden":!0,children:_.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!s,isDisabled:!!o,isFocused:!!w,onFocus:()=>k(!0),onBlur:()=>k(!1),hasFeedbackText:x,setHasFeedbackText:S,hasHelpText:j,setHasHelpText:C,id:f,labelId:p,feedbackId:h,helpTextId:y,htmlProps:c,getHelpTextProps:I,getErrorMessageProps:M,getRootProps:T,getLabelProps:P,getRequiredIndicatorProps:D}}var rt=ue(function(t,n){const r=un("Form",t),o=At(t),{getRootProps:s,htmlProps:c,...u}=Nw(o),f=ze("chakra-form-control",t.className);return l.jsx(Rw,{value:u,children:l.jsx(zw,{value:r,children:l.jsx(ne.div,{...s({},n),className:f,__css:r.container})})})});rt.displayName="FormControl";var pn=ue(function(t,n){const r=ri(),o=S2(),s=ze("chakra-form__helper-text",t.className);return l.jsx(ne.div,{...r==null?void 0:r.getHelpTextProps(t,n),__css:o.helperText,className:s})});pn.displayName="FormHelperText";var[Fw,Lw]=kt({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),mn=ue((e,t)=>{const n=un("FormError",e),r=At(e),o=ri();return o!=null&&o.isInvalid?l.jsx(Fw,{value:n,children:l.jsx(ne.div,{...o==null?void 0:o.getErrorMessageProps(r,t),className:ze("chakra-form__error-message",e.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});mn.displayName="FormErrorMessage";var Bw=ue((e,t)=>{const n=Lw(),r=ri();if(!(r!=null&&r.isInvalid))return null;const o=ze("chakra-form__error-icon",e.className);return l.jsx(tn,{ref:t,"aria-hidden":!0,...e,__css:n.icon,className:o,children:l.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})});Bw.displayName="FormErrorIcon";var st=ue(function(t,n){var r;const o=yo("FormLabel",t),s=At(t),{className:c,children:u,requiredIndicator:f=l.jsx(C2,{}),optionalIndicator:p=null,...h}=s,y=ri(),x=(r=y==null?void 0:y.getLabelProps(h,n))!=null?r:{ref:n,...h};return l.jsxs(ne.label,{...x,className:ze("chakra-form__label",s.className),__css:{display:"block",textAlign:"start",...o},children:[u,y!=null&&y.isRequired?f:p]})});st.displayName="FormLabel";var C2=ue(function(t,n){const r=ri(),o=S2();if(!(r!=null&&r.isRequired))return null;const s=ze("chakra-form__required-indicator",t.className);return l.jsx(ne.span,{...r==null?void 0:r.getRequiredIndicatorProps(t,n),__css:o.requiredIndicator,className:s})});C2.displayName="RequiredIndicator";function sh(e){const{isDisabled:t,isInvalid:n,isReadOnly:r,isRequired:o,...s}=lh(e);return{...s,disabled:t,readOnly:r,required:o,"aria-invalid":Nr(n),"aria-required":Nr(o),"aria-readonly":Nr(r)}}function lh(e){var t,n,r;const o=ri(),{id:s,disabled:c,readOnly:u,required:f,isRequired:p,isInvalid:h,isReadOnly:y,isDisabled:x,onFocus:S,onBlur:j,...C}=e,w=e["aria-describedby"]?[e["aria-describedby"]]:[];return o!=null&&o.hasFeedbackText&&(o!=null&&o.isInvalid)&&w.push(o.feedbackId),o!=null&&o.hasHelpText&&w.push(o.helpTextId),{...C,"aria-describedby":w.join(" ")||void 0,id:s??(o==null?void 0:o.id),isDisabled:(t=c??x)!=null?t:o==null?void 0:o.isDisabled,isReadOnly:(n=u??y)!=null?n:o==null?void 0:o.isReadOnly,isRequired:(r=f??p)!=null?r:o==null?void 0:o.isRequired,isInvalid:h??(o==null?void 0:o.isInvalid),onFocus:Ee(o==null?void 0:o.onFocus,S),onBlur:Ee(o==null?void 0:o.onBlur,j)}}var ch={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},w2=ne("span",{baseStyle:ch});w2.displayName="VisuallyHidden";var Hw=ne("input",{baseStyle:ch});Hw.displayName="VisuallyHiddenInput";var Jv=!1,us=null,Xo=!1,gf=!1,yf=new Set;function uh(e,t){yf.forEach(n=>n(e,t))}var Ww=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function Vw(e){return!(e.metaKey||!Ww&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function eg(e){Xo=!0,Vw(e)&&(us="keyboard",uh("keyboard",e))}function wi(e){if(us="pointer",e.type==="mousedown"||e.type==="pointerdown"){Xo=!0;const t=e.composedPath?e.composedPath()[0]:e.target;let n=!1;try{n=t.matches(":focus-visible")}catch{}if(n)return;uh("pointer",e)}}function Uw(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function $w(e){Uw(e)&&(Xo=!0,us="virtual")}function Gw(e){e.target===window||e.target===document||(!Xo&&!gf&&(us="virtual",uh("virtual",e)),Xo=!1,gf=!1)}function qw(){Xo=!1,gf=!0}function tg(){return us!=="pointer"}function Yw(){if(typeof window>"u"||Jv)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...n){Xo=!0,e.apply(this,n)},document.addEventListener("keydown",eg,!0),document.addEventListener("keyup",eg,!0),document.addEventListener("click",$w,!0),window.addEventListener("focus",Gw,!0),window.addEventListener("blur",qw,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",wi,!0),document.addEventListener("pointermove",wi,!0),document.addEventListener("pointerup",wi,!0)):(document.addEventListener("mousedown",wi,!0),document.addEventListener("mousemove",wi,!0),document.addEventListener("mouseup",wi,!0)),Jv=!0}function j2(e){Yw(),e(tg());const t=()=>e(tg());return yf.add(t),()=>{yf.delete(t)}}function Kw(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function k2(e={}){const t=lh(e),{isDisabled:n,isReadOnly:r,isRequired:o,isInvalid:s,id:c,onBlur:u,onFocus:f,"aria-describedby":p}=t,{defaultChecked:h,isChecked:y,isFocusable:x,onChange:S,isIndeterminate:j,name:C,value:w,tabIndex:k=void 0,"aria-label":I,"aria-labelledby":P,"aria-invalid":M,...T}=e,D=Kw(T,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),_=Wt(S),R=Wt(u),V=Wt(f),[F,B]=g.useState(!1),[Q,U]=g.useState(!1),[X,te]=g.useState(!1),[re,$]=g.useState(!1);g.useEffect(()=>j2(B),[]);const Z=g.useRef(null),[fe,Se]=g.useState(!0),[Me,Ie]=g.useState(!!h),Pe=y!==void 0,he=Pe?y:Me,se=g.useCallback(ge=>{if(r||n){ge.preventDefault();return}Pe||Ie(he?ge.target.checked:j?!0:ge.target.checked),_==null||_(ge)},[r,n,he,Pe,j,_]);Hi(()=>{Z.current&&(Z.current.indeterminate=Boolean(j))},[j]),ti(()=>{n&&U(!1)},[n,U]),Hi(()=>{const ge=Z.current;ge!=null&&ge.form&&(ge.form.onreset=()=>{Ie(!!h)})},[]);const Ne=n&&!x,Ve=g.useCallback(ge=>{ge.key===" "&&$(!0)},[$]),Ue=g.useCallback(ge=>{ge.key===" "&&$(!1)},[$]);Hi(()=>{if(!Z.current)return;Z.current.checked!==he&&Ie(Z.current.checked)},[Z.current]);const $e=g.useCallback((ge={},Te=null)=>{const et=Be=>{Q&&Be.preventDefault(),$(!0)};return{...ge,ref:Te,"data-active":qe(re),"data-hover":qe(X),"data-checked":qe(he),"data-focus":qe(Q),"data-focus-visible":qe(Q&&F),"data-indeterminate":qe(j),"data-disabled":qe(n),"data-invalid":qe(s),"data-readonly":qe(r),"aria-hidden":!0,onMouseDown:Ee(ge.onMouseDown,et),onMouseUp:Ee(ge.onMouseUp,()=>$(!1)),onMouseEnter:Ee(ge.onMouseEnter,()=>te(!0)),onMouseLeave:Ee(ge.onMouseLeave,()=>te(!1))}},[re,he,n,Q,F,X,j,s,r]),Qe=g.useCallback((ge={},Te=null)=>({...D,...ge,ref:ct(Te,et=>{et&&Se(et.tagName==="LABEL")}),onClick:Ee(ge.onClick,()=>{var et;fe||((et=Z.current)==null||et.click(),requestAnimationFrame(()=>{var Be;(Be=Z.current)==null||Be.focus()}))}),"data-disabled":qe(n),"data-checked":qe(he),"data-invalid":qe(s)}),[D,n,he,s,fe]),me=g.useCallback((ge={},Te=null)=>({...ge,ref:ct(Z,Te),type:"checkbox",name:C,value:w,id:c,tabIndex:k,onChange:Ee(ge.onChange,se),onBlur:Ee(ge.onBlur,R,()=>U(!1)),onFocus:Ee(ge.onFocus,V,()=>U(!0)),onKeyDown:Ee(ge.onKeyDown,Ve),onKeyUp:Ee(ge.onKeyUp,Ue),required:o,checked:he,disabled:Ne,readOnly:r,"aria-label":I,"aria-labelledby":P,"aria-invalid":M?Boolean(M):s,"aria-describedby":p,"aria-disabled":n,style:ch}),[C,w,c,se,R,V,Ve,Ue,o,he,Ne,r,I,P,M,s,p,n,k]),De=g.useCallback((ge={},Te=null)=>({...ge,ref:Te,onMouseDown:Ee(ge.onMouseDown,ng),onTouchStart:Ee(ge.onTouchStart,ng),"data-disabled":qe(n),"data-checked":qe(he),"data-invalid":qe(s)}),[he,n,s]);return{state:{isInvalid:s,isFocused:Q,isChecked:he,isActive:re,isHovered:X,isIndeterminate:j,isDisabled:n,isReadOnly:r,isRequired:o},getRootProps:Qe,getCheckboxProps:$e,getInputProps:me,getLabelProps:De,htmlProps:D}}function ng(e){e.preventDefault(),e.stopPropagation()}var Xw={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},Qw={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},Zw=ei({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),Jw=ei({from:{opacity:0},to:{opacity:1}}),e5=ei({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),E2=ue(function(t,n){const r=_w(),o={...r,...t},s=un("Checkbox",o),c=At(t),{spacing:u="0.5rem",className:f,children:p,iconColor:h,iconSize:y,icon:x=l.jsx(Ow,{}),isChecked:S,isDisabled:j=r==null?void 0:r.isDisabled,onChange:C,inputProps:w,...k}=c;let I=S;r!=null&&r.value&&c.value&&(I=r.value.includes(c.value));let P=C;r!=null&&r.onChange&&c.value&&(P=xc(r.onChange,C));const{state:M,getInputProps:T,getCheckboxProps:D,getLabelProps:_,getRootProps:R}=k2({...k,isDisabled:j,isChecked:I,onChange:P}),V=g.useMemo(()=>({animation:M.isIndeterminate?`${Jw} 20ms linear, ${e5} 200ms linear`:`${Zw} 200ms linear`,fontSize:y,color:h,...s.icon}),[h,y,,M.isIndeterminate,s.icon]),F=g.cloneElement(x,{__css:V,isIndeterminate:M.isIndeterminate,isChecked:M.isChecked});return l.jsxs(ne.label,{__css:{...Qw,...s.container},className:ze("chakra-checkbox",f),...R(),children:[l.jsx("input",{className:"chakra-checkbox__input",...T(w,n)}),l.jsx(ne.span,{__css:{...Xw,...s.control},className:"chakra-checkbox__control",...D(),children:F}),p&&l.jsx(ne.span,{className:"chakra-checkbox__label",..._(),__css:{marginStart:u,...s.label},children:p})]})});E2.displayName="Checkbox";function t5(e){const t=parseFloat(e);return typeof t!="number"||Number.isNaN(t)?0:t}function dh(e,t){let n=t5(e);const r=10**(t??10);return n=Math.round(n*r)/r,t?n.toFixed(t):n.toString()}function xf(e){if(!Number.isFinite(e))return 0;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n+=1;return n}function rg(e,t,n){return(e-t)*100/(n-t)}function n5(e,t,n){return(n-t)*e+t}function og(e,t,n){const r=Math.round((e-t)/n)*n+t,o=xf(n);return dh(r,o)}function Hl(e,t,n){return e==null?e:(n{var F;return r==null?"":(F=gd(r,s,n))!=null?F:""}),x=typeof o<"u",S=x?o:h,j=P2(io(S),s),C=n??j,w=g.useCallback(F=>{F!==S&&(x||y(F.toString()),p==null||p(F.toString(),io(F)))},[p,x,S]),k=g.useCallback(F=>{let B=F;return f&&(B=Hl(B,c,u)),dh(B,C)},[C,f,u,c]),I=g.useCallback((F=s)=>{let B;S===""?B=io(F):B=io(S)+F,B=k(B),w(B)},[k,s,w,S]),P=g.useCallback((F=s)=>{let B;S===""?B=io(-F):B=io(S)-F,B=k(B),w(B)},[k,s,w,S]),M=g.useCallback(()=>{var F;let B;r==null?B="":B=(F=gd(r,s,n))!=null?F:c,w(B)},[r,n,s,w,c]),T=g.useCallback(F=>{var B;const Q=(B=gd(F,s,C))!=null?B:c;w(Q)},[C,s,w,c]),D=io(S);return{isOutOfRange:D>u||D{const s=typeof e=="function"?e():e??document;if(!(!n||!s))return s.addEventListener(t,o,r),()=>{s.removeEventListener(t,o,r)}},[t,e,r,o,n]),()=>{const s=typeof e=="function"?e():e??document;s==null||s.removeEventListener(t,o,r)}}function o5(e){return"current"in e}var I2=()=>typeof window<"u";function i5(){var e;const t=navigator.userAgentData;return(e=t==null?void 0:t.platform)!=null?e:navigator.platform}var a5=e=>I2()&&e.test(navigator.vendor),s5=e=>I2()&&e.test(i5()),l5=()=>s5(/mac|iphone|ipad|ipod/i),c5=()=>l5()&&a5(/apple/i);function u5(e){const{ref:t,elements:n,enabled:r}=e,o=()=>{var s,c;return(c=(s=t.current)==null?void 0:s.ownerDocument)!=null?c:document};Go(o,"pointerdown",s=>{if(!c5()||!r)return;const c=s.target,f=(n??[t]).some(p=>{const h=o5(p)?p.current:p;return(h==null?void 0:h.contains(c))||h===c});o().activeElement!==c&&f&&(s.preventDefault(),c.focus())})}var lt={},d5={get exports(){return lt},set exports(e){lt=e}},f5="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",h5=f5,p5=h5;function M2(){}function T2(){}T2.resetWarningCache=M2;var m5=function(){function e(r,o,s,c,u,f){if(f!==p5){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:T2,resetWarningCache:M2};return n.PropTypes=n,n};d5.exports=m5();var bf="data-focus-lock",_2="data-focus-lock-disabled",v5="data-no-focus-lock",g5="data-autofocus-inside",y5="data-no-autofocus";function x5(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function b5(e,t){var n=g.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}function D2(e,t){return b5(t||null,function(n){return e.forEach(function(r){return x5(r,n)})})}var yd={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"},xr=function(){return xr=Object.assign||function(t){for(var n,r=1,o=arguments.length;r0&&s[s.length-1])&&(p[0]===6||p[0]===2)){n=0;continue}if(p[0]===3&&(!s||p[1]>s[0]&&p[1]0)&&!(o=r.next()).done;)s.push(o.value)}catch(u){c={error:u}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(c)throw c.error}}return s}function Sf(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,s;r=0}).sort(O5)},z5=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],mh=z5.join(","),R5="".concat(mh,", [data-focus-guard]"),X2=function(e,t){return Er((e.shadowRoot||e).children).reduce(function(n,r){return n.concat(r.matches(t?R5:mh)?[r]:[],X2(r))},[])},N5=function(e,t){var n;return e instanceof HTMLIFrameElement&&(!((n=e.contentDocument)===null||n===void 0)&&n.body)?jc([e.contentDocument.body],t):[e]},jc=function(e,t){return e.reduce(function(n,r){var o,s=X2(r,t),c=(o=[]).concat.apply(o,s.map(function(u){return N5(u,t)}));return n.concat(c,r.parentNode?Er(r.parentNode.querySelectorAll(mh)).filter(function(u){return u===r}):[])},[])},F5=function(e){var t=e.querySelectorAll("[".concat(g5,"]"));return Er(t).map(function(n){return jc([n])}).reduce(function(n,r){return n.concat(r)},[])},vh=function(e,t){return Er(e).filter(function(n){return U2(t,n)}).filter(function(n){return _5(n)})},ag=function(e,t){return t===void 0&&(t=new Map),Er(e).filter(function(n){return $2(t,n)})},Cf=function(e,t,n){return K2(vh(jc(e,n),t),!0,n)},sg=function(e,t){return K2(vh(jc(e),t),!1)},L5=function(e,t){return vh(F5(e),t)},Vi=function(e,t){return e.shadowRoot?Vi(e.shadowRoot,t):Object.getPrototypeOf(e).contains!==void 0&&Object.getPrototypeOf(e).contains.call(e,t)?!0:Er(e.children).some(function(n){var r;if(n instanceof HTMLIFrameElement){var o=(r=n.contentDocument)===null||r===void 0?void 0:r.body;return o?Vi(o,t):!1}return Vi(n,t)})},B5=function(e){for(var t=new Set,n=e.length,r=0;r0&&t.add(o),(s&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(r)}return e.filter(function(c,u){return!t.has(u)})},Q2=function(e){return e.parentNode?Q2(e.parentNode):e},gh=function(e){var t=nc(e);return t.filter(Boolean).reduce(function(n,r){var o=r.getAttribute(bf);return n.push.apply(n,o?B5(Er(Q2(r).querySelectorAll("[".concat(bf,'="').concat(o,'"]:not([').concat(_2,'="disabled"])')))):[r]),n},[])},H5=function(e){try{return e()}catch{return}},qa=function(e){if(e===void 0&&(e=document),!(!e||!e.activeElement)){var t=e.activeElement;return t.shadowRoot?qa(t.shadowRoot):t instanceof HTMLIFrameElement&&H5(function(){return t.contentWindow.document})?qa(t.contentWindow.document):t}},W5=function(e,t){return e===t},V5=function(e,t){return Boolean(Er(e.querySelectorAll("iframe")).some(function(n){return W5(n,t)}))},Z2=function(e,t){return t===void 0&&(t=qa(H2(e).ownerDocument)),!t||t.dataset&&t.dataset.focusGuard?!1:gh(e).some(function(n){return Vi(n,t)||V5(n,t)})},U5=function(e){e===void 0&&(e=document);var t=qa(e);return t?Er(e.querySelectorAll("[".concat(v5,"]"))).some(function(n){return Vi(n,t)}):!1},$5=function(e,t){return t.filter(Y2).filter(function(n){return n.name===e.name}).filter(function(n){return n.checked})[0]||e},yh=function(e,t){return Y2(e)&&e.name?$5(e,t):e},G5=function(e){var t=new Set;return e.forEach(function(n){return t.add(yh(n,e))}),e.filter(function(n){return t.has(n)})},lg=function(e){return e[0]&&e.length>1?yh(e[0],e):e[0]},cg=function(e,t){return e.length>1?e.indexOf(yh(e[t],e)):t},J2="NEW_FOCUS",q5=function(e,t,n,r){var o=e.length,s=e[0],c=e[o-1],u=ph(n);if(!(n&&e.indexOf(n)>=0)){var f=n!==void 0?t.indexOf(n):-1,p=r?t.indexOf(r):f,h=r?e.indexOf(r):-1,y=f-p,x=t.indexOf(s),S=t.indexOf(c),j=G5(t),C=n!==void 0?j.indexOf(n):-1,w=C-(r?j.indexOf(r):f),k=cg(e,0),I=cg(e,o-1);if(f===-1||h===-1)return J2;if(!y&&h>=0)return h;if(f<=x&&u&&Math.abs(y)>1)return I;if(f>=S&&u&&Math.abs(y)>1)return k;if(y&&Math.abs(w)>1)return h;if(f<=x)return I;if(f>S)return k;if(y)return Math.abs(y)>1?h:(o+h+y)%o}},Y5=function(e){return function(t){var n,r=(n=G2(t))===null||n===void 0?void 0:n.autofocus;return t.autofocus||r!==void 0&&r!=="false"||e.indexOf(t)>=0}},K5=function(e,t,n){var r=e.map(function(s){var c=s.node;return c}),o=ag(r.filter(Y5(n)));return o&&o.length?lg(o):lg(ag(t))},wf=function(e,t){return t===void 0&&(t=[]),t.push(e),e.parentNode&&wf(e.parentNode.host||e.parentNode,t),t},xd=function(e,t){for(var n=wf(e),r=wf(t),o=0;o=0)return s}return!1},ey=function(e,t,n){var r=nc(e),o=nc(t),s=r[0],c=!1;return o.filter(Boolean).forEach(function(u){c=xd(c||u,u)||c,n.filter(Boolean).forEach(function(f){var p=xd(s,f);p&&(!c||Vi(p,c)?c=p:c=xd(p,c))})}),c},X5=function(e,t){return e.reduce(function(n,r){return n.concat(L5(r,t))},[])},Q5=function(e,t){var n=new Map;return t.forEach(function(r){return n.set(r.node,r)}),e.map(function(r){return n.get(r)}).filter(A5)},Z5=function(e,t){var n=qa(nc(e).length>0?document:H2(e).ownerDocument),r=gh(e).filter(rc),o=ey(n||e,e,r),s=new Map,c=sg(r,s),u=Cf(r,s).filter(function(S){var j=S.node;return rc(j)});if(!(!u[0]&&(u=c,!u[0]))){var f=sg([o],s).map(function(S){var j=S.node;return j}),p=Q5(f,u),h=p.map(function(S){var j=S.node;return j}),y=q5(h,f,n,t);if(y===J2){var x=K5(c,h,X5(r,s));if(x)return{node:x};console.warn("focus-lock: cannot find any node to move focus into");return}return y===void 0?y:p[y]}},J5=function(e){var t=gh(e).filter(rc),n=ey(e,e,t),r=new Map,o=Cf([n],r,!0),s=Cf(t,r).filter(function(c){var u=c.node;return rc(u)}).map(function(c){var u=c.node;return u});return o.map(function(c){var u=c.node,f=c.index;return{node:u,index:f,lockItem:s.indexOf(u)>=0,guard:ph(u)}})},e6=function(e,t){"focus"in e&&e.focus(t),"contentWindow"in e&&e.contentWindow&&e.contentWindow.focus()},bd=0,Sd=!1,ty=function(e,t,n){n===void 0&&(n={});var r=Z5(e,t);if(!Sd&&r){if(bd>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),Sd=!0,setTimeout(function(){Sd=!1},1);return}bd++,e6(r.node,n.focusOptions),bd--}};function ny(e){var t=window,n=t.setImmediate;typeof n<"u"?n(e):setTimeout(e,1)}var t6=function(){return document&&document.activeElement===document.body},n6=function(){return t6()||U5()},Ui=null,Ni=null,$i=null,Ya=!1,r6=function(){return!0},o6=function(t){return(Ui.whiteList||r6)(t)},i6=function(t,n){$i={observerNode:t,portaledElement:n}},a6=function(t){return $i&&$i.portaledElement===t};function ug(e,t,n,r){var o=null,s=e;do{var c=r[s];if(c.guard)c.node.dataset.focusAutoGuard&&(o=c);else if(c.lockItem){if(s!==e)return;o=null}else break}while((s+=n)!==t);o&&(o.node.tabIndex=0)}var s6=function(t){return t&&"current"in t?t.current:t},l6=function(t){return t?Boolean(Ya):Ya==="meanwhile"},c6=function e(t,n,r){return n&&(n.host===t&&(!n.activeElement||r.contains(n.activeElement))||n.parentNode&&e(t,n.parentNode,r))},u6=function(t,n){return n.some(function(r){return c6(t,r,r)})},oc=function(){var t=!1;if(Ui){var n=Ui,r=n.observed,o=n.persistentFocus,s=n.autoFocus,c=n.shards,u=n.crossFrame,f=n.focusOptions,p=r||$i&&$i.portaledElement,h=document&&document.activeElement;if(p){var y=[p].concat(c.map(s6).filter(Boolean));if((!h||o6(h))&&(o||l6(u)||!n6()||!Ni&&s)&&(p&&!(Z2(y)||h&&u6(h,y)||a6(h))&&(document&&!Ni&&h&&!s?(h.blur&&h.blur(),document.body.focus()):(t=ty(y,Ni,{focusOptions:f}),$i={})),Ya=!1,Ni=document&&document.activeElement),document){var x=document&&document.activeElement,S=J5(y),j=S.map(function(C){var w=C.node;return w}).indexOf(x);j>-1&&(S.filter(function(C){var w=C.guard,k=C.node;return w&&k.dataset.focusAutoGuard}).forEach(function(C){var w=C.node;return w.removeAttribute("tabIndex")}),ug(j,S.length,1,S),ug(j,-1,-1,S))}}}return t},ry=function(t){oc()&&t&&(t.stopPropagation(),t.preventDefault())},xh=function(){return ny(oc)},d6=function(t){var n=t.target,r=t.currentTarget;r.contains(n)||i6(r,n)},f6=function(){return null},oy=function(){Ya="just",setTimeout(function(){Ya="meanwhile"},0)},h6=function(){document.addEventListener("focusin",ry),document.addEventListener("focusout",xh),window.addEventListener("blur",oy)},p6=function(){document.removeEventListener("focusin",ry),document.removeEventListener("focusout",xh),window.removeEventListener("blur",oy)};function m6(e){return e.filter(function(t){var n=t.disabled;return!n})}function v6(e){var t=e.slice(-1)[0];t&&!Ui&&h6();var n=Ui,r=n&&t&&t.id===n.id;Ui=t,n&&!r&&(n.onDeactivation(),e.filter(function(o){var s=o.id;return s===n.id}).length||n.returnFocus(!t)),t?(Ni=null,(!r||n.observed!==t.observed)&&t.onActivation(),oc(),ny(oc)):(p6(),Ni=null)}F2.assignSyncMedium(d6);L2.assignMedium(xh);C5.assignMedium(function(e){return e({moveFocusInside:ty,focusInside:Z2})});const g6=E5(m6,v6)(f6);var iy=g.forwardRef(function(t,n){return g.createElement(B2,Xd({sideCar:g6,ref:n},t))}),ay=B2.propTypes||{};ay.sideCar;MC(ay,["sideCar"]);iy.propTypes={};const dg=iy;function sy(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function ly(e){var t;if(!sy(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function y6(e){var t,n;return(n=(t=cy(e))==null?void 0:t.defaultView)!=null?n:window}function cy(e){return sy(e)?e.ownerDocument:document}function x6(e){return cy(e).activeElement}var uy=e=>e.hasAttribute("tabindex"),b6=e=>uy(e)&&e.tabIndex===-1;function S6(e){return Boolean(e.getAttribute("disabled"))===!0||Boolean(e.getAttribute("aria-disabled"))===!0}function dy(e){return e.parentElement&&dy(e.parentElement)?!0:e.hidden}function C6(e){const t=e.getAttribute("contenteditable");return t!=="false"&&t!=null}function fy(e){if(!ly(e)||dy(e)||S6(e))return!1;const{localName:t}=e;if(["input","select","textarea","button"].indexOf(t)>=0)return!0;const r={a:()=>e.hasAttribute("href"),audio:()=>e.hasAttribute("controls"),video:()=>e.hasAttribute("controls")};return t in r?r[t]():C6(e)?!0:uy(e)}function w6(e){return e?ly(e)&&fy(e)&&!b6(e):!1}var j6=["input:not(:disabled):not([disabled])","select:not(:disabled):not([disabled])","textarea:not(:disabled):not([disabled])","embed","iframe","object","a[href]","area[href]","button:not(:disabled):not([disabled])","[tabindex]","audio[controls]","video[controls]","*[tabindex]:not([aria-disabled])","*[contenteditable]"],k6=j6.join(),E6=e=>e.offsetWidth>0&&e.offsetHeight>0;function hy(e){const t=Array.from(e.querySelectorAll(k6));return t.unshift(e),t.filter(n=>fy(n)&&E6(n))}var fg,P6=(fg=dg.default)!=null?fg:dg,py=e=>{const{initialFocusRef:t,finalFocusRef:n,contentRef:r,restoreFocus:o,children:s,isDisabled:c,autoFocus:u,persistentFocus:f,lockFocusAcrossFrames:p}=e,h=g.useCallback(()=>{t!=null&&t.current?t.current.focus():r!=null&&r.current&&hy(r.current).length===0&&requestAnimationFrame(()=>{var j;(j=r.current)==null||j.focus()})},[t,r]),y=g.useCallback(()=>{var S;(S=n==null?void 0:n.current)==null||S.focus()},[n]),x=o&&!n;return l.jsx(P6,{crossFrame:p,persistentFocus:f,autoFocus:u,disabled:c,onActivation:h,onDeactivation:y,returnFocus:x,children:s})};py.displayName="FocusLock";var I6=LC?g.useLayoutEffect:g.useEffect;function ic(e,t=[]){const n=g.useRef(e);return I6(()=>{n.current=e}),g.useCallback((...r)=>{var o;return(o=n.current)==null?void 0:o.call(n,...r)},t)}function M6(e,t,n,r){const o=ic(t);return g.useEffect(()=>{var s;const c=(s=Pv(n))!=null?s:document;if(t)return c.addEventListener(e,o,r),()=>{c.removeEventListener(e,o,r)}},[e,n,r,o,t]),()=>{var s;((s=Pv(n))!=null?s:document).removeEventListener(e,o,r)}}function T6(e){const{ref:t,handler:n,enabled:r=!0}=e,o=ic(n),c=g.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;g.useEffect(()=>{if(!r)return;const u=y=>{Cd(y,t)&&(c.isPointerDown=!0)},f=y=>{if(c.ignoreEmulatedMouseEvents){c.ignoreEmulatedMouseEvents=!1;return}c.isPointerDown&&n&&Cd(y,t)&&(c.isPointerDown=!1,o(y))},p=y=>{c.ignoreEmulatedMouseEvents=!0,n&&c.isPointerDown&&Cd(y,t)&&(c.isPointerDown=!1,o(y))},h=f2(t.current);return h.addEventListener("mousedown",u,!0),h.addEventListener("mouseup",f,!0),h.addEventListener("touchstart",u,!0),h.addEventListener("touchend",p,!0),()=>{h.removeEventListener("mousedown",u,!0),h.removeEventListener("mouseup",f,!0),h.removeEventListener("touchstart",u,!0),h.removeEventListener("touchend",p,!0)}},[n,t,o,c,r])}function Cd(e,t){var n;const r=e.target;return e.button>0||r&&!f2(r).contains(r)?!1:!((n=t.current)!=null&&n.contains(r))}function _6(e,t){const n=g.useId();return g.useMemo(()=>e||[t,n].filter(Boolean).join("-"),[e,t,n])}function D6(e,t){const n=e!==void 0;return[n,n&&typeof e<"u"?e:t]}function po(e={}){const{onClose:t,onOpen:n,isOpen:r,id:o}=e,s=ic(n),c=ic(t),[u,f]=g.useState(e.defaultIsOpen||!1),[p,h]=D6(r,u),y=_6(o,"disclosure"),x=g.useCallback(()=>{p||f(!1),c==null||c()},[p,c]),S=g.useCallback(()=>{p||f(!0),s==null||s()},[p,s]),j=g.useCallback(()=>{(h?x:S)()},[h,S,x]);return{isOpen:!!h,onOpen:S,onClose:x,onToggle:j,isControlled:p,getButtonProps:(C={})=>({...C,"aria-expanded":h,"aria-controls":y,onClick:VS(C.onClick,j)}),getDisclosureProps:(C={})=>({...C,hidden:!h,id:y})}}var bh=ue(function(t,n){const{htmlSize:r,...o}=t,s=un("Input",o),c=At(o),u=sh(c),f=ze("chakra-input",t.className);return l.jsx(ne.input,{size:r,...u,__css:s.field,ref:n,className:f})});bh.displayName="Input";bh.id="Input";var[A6,my]=kt({name:"ListStylesContext",errorMessage:`useListStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Sh=ue(function(t,n){const r=un("List",t),{children:o,styleType:s="none",stylePosition:c,spacing:u,...f}=At(t),p=ah(o),y=u?{["& > *:not(style) ~ *:not(style)"]:{mt:u}}:{};return l.jsx(A6,{value:r,children:l.jsx(ne.ul,{ref:n,listStyleType:s,listStylePosition:c,role:"list",__css:{...r.container,...y},...f,children:p})})});Sh.displayName="List";var O6=ue((e,t)=>{const{as:n,...r}=e;return l.jsx(Sh,{ref:t,as:"ol",styleType:"decimal",marginStart:"1em",...r})});O6.displayName="OrderedList";var vy=ue(function(t,n){const{as:r,...o}=t;return l.jsx(Sh,{ref:n,as:"ul",styleType:"initial",marginStart:"1em",...o})});vy.displayName="UnorderedList";var Ra=ue(function(t,n){const r=my();return l.jsx(ne.li,{ref:n,...t,__css:r.item})});Ra.displayName="ListItem";var z6=ue(function(t,n){const r=my();return l.jsx(tn,{ref:n,role:"presentation",...t,__css:r.icon})});z6.displayName="ListIcon";var ir=ue(function(t,n){const{templateAreas:r,gap:o,rowGap:s,columnGap:c,column:u,row:f,autoFlow:p,autoRows:h,templateRows:y,autoColumns:x,templateColumns:S,...j}=t,C={display:"grid",gridTemplateAreas:r,gridGap:o,gridRowGap:s,gridColumnGap:c,gridAutoColumns:x,gridColumn:u,gridRow:f,gridAutoFlow:p,gridAutoRows:h,gridTemplateRows:y,gridTemplateColumns:S};return l.jsx(ne.div,{ref:n,__css:C,...j})});ir.displayName="Grid";function gy(e,t){return Array.isArray(e)?e.map(n=>n===null?null:t(n)):Qd(e)?Object.keys(e).reduce((n,r)=>(n[r]=t(e[r]),n),{}):e!=null?t(e):null}var kc=ne("div",{baseStyle:{flex:1,justifySelf:"stretch",alignSelf:"stretch"}});kc.displayName="Spacer";var yy=e=>l.jsx(ne.div,{className:"chakra-stack__item",...e,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...e.__css}});yy.displayName="StackItem";var jf="& > *:not(style) ~ *:not(style)";function R6(e){const{spacing:t,direction:n}=e,r={column:{marginTop:t,marginEnd:0,marginBottom:0,marginStart:0},row:{marginTop:0,marginEnd:0,marginBottom:0,marginStart:t},"column-reverse":{marginTop:0,marginEnd:0,marginBottom:t,marginStart:0},"row-reverse":{marginTop:0,marginEnd:t,marginBottom:0,marginStart:0}};return{flexDirection:n,[jf]:gy(n,o=>r[o])}}function N6(e){const{spacing:t,direction:n}=e,r={column:{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":gy(n,o=>r[o])}}var Ch=ue((e,t)=>{const{isInline:n,direction:r,align:o,justify:s,spacing:c="0.5rem",wrap:u,children:f,divider:p,className:h,shouldWrapChildren:y,...x}=e,S=n?"row":r??"column",j=g.useMemo(()=>R6({direction:S,spacing:c}),[S,c]),C=g.useMemo(()=>N6({spacing:c,direction:S}),[c,S]),w=!!p,k=!y&&!w,I=g.useMemo(()=>{const M=ah(f);return k?M:M.map((T,D)=>{const _=typeof T.key<"u"?T.key:D,R=D+1===M.length,F=y?l.jsx(yy,{children:T},_):T;if(!w)return F;const B=g.cloneElement(p,{__css:C}),Q=R?null:B;return l.jsxs(g.Fragment,{children:[F,Q]},_)})},[p,C,w,k,y,f]),P=ze("chakra-stack",h);return l.jsx(ne.div,{ref:t,display:"flex",alignItems:o,justifyContent:s,flexDirection:j.flexDirection,flexWrap:u,className:P,__css:w?{}:{[jf]:j[jf]},...x,children:I})});Ch.displayName="Stack";var Fe=ue((e,t)=>l.jsx(Ch,{align:"center",...e,direction:"column",ref:t}));Fe.displayName="VStack";var oa=ue((e,t)=>l.jsx(Ch,{align:"center",...e,direction:"row",ref:t}));oa.displayName="HStack";var Wn=ue(function(t,n){const r=yo("Heading",t),{className:o,...s}=At(t);return l.jsx(ne.h2,{ref:n,className:ze("chakra-heading",t.className),...s,__css:r})});Wn.displayName="Heading";var Ye=ne("div");Ye.displayName="Box";var xy=ue(function(t,n){const{size:r,centerContent:o=!0,...s}=t,c=o?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return l.jsx(Ye,{ref:n,boxSize:r,__css:{...c,flexShrink:0,flexGrow:0},...s})});xy.displayName="Square";var F6=ue(function(t,n){const{size:r,...o}=t;return l.jsx(xy,{size:r,ref:n,borderRadius:"9999px",...o})});F6.displayName="Circle";var qo=ue(function(t,n){const r=yo("Link",t),{className:o,isExternal:s,...c}=At(t);return l.jsx(ne.a,{target:s?"_blank":void 0,rel:s?"noopener":void 0,ref:n,className:ze("chakra-link",o),...c,__css:r})});qo.displayName="Link";var by=ue(function(t,n){const r=yo("Badge",t),{className:o,...s}=At(t);return l.jsx(ne.span,{ref:n,className:ze("chakra-badge",t.className),...s,__css:{display:"inline-block",whiteSpace:"nowrap",verticalAlign:"middle",...r}})});by.displayName="Badge";var Sy=ne("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center"}});Sy.displayName="Center";var L6={horizontal:{insetStart:"50%",transform:"translateX(-50%)"},vertical:{top:"50%",transform:"translateY(-50%)"},both:{insetStart:"50%",top:"50%",transform:"translate(-50%, -50%)"}};ue(function(t,n){const{axis:r="both",...o}=t;return l.jsx(ne.div,{ref:n,__css:L6[r],...o,position:"absolute"})});var Cy=ue(function(t,n){const{borderLeftWidth:r,borderBottomWidth:o,borderTopWidth:s,borderRightWidth:c,borderWidth:u,borderStyle:f,borderColor:p,...h}=yo("Divider",t),{className:y,orientation:x="horizontal",__css:S,...j}=At(t),C={vertical:{borderLeftWidth:r||c||u||"1px",height:"100%"},horizontal:{borderBottomWidth:o||s||u||"1px",width:"100%"}};return l.jsx(ne.hr,{ref:n,"aria-orientation":x,...j,__css:{...h,border:"0",borderColor:p,borderStyle:f,...C[x],...S},className:ze("chakra-divider",y)})});Cy.displayName="Divider";function B6(e){const{key:t}=e;return t.length===1||t.length>1&&/[^a-zA-Z0-9]/.test(t)}function H6(e={}){const{timeout:t=300,preventDefault:n=()=>!0}=e,[r,o]=g.useState([]),s=g.useRef(),c=()=>{s.current&&(clearTimeout(s.current),s.current=null)},u=()=>{c(),s.current=setTimeout(()=>{o([]),s.current=null},t)};g.useEffect(()=>c,[]);function f(p){return h=>{if(h.key==="Backspace"){const y=[...r];y.pop(),o(y);return}if(B6(h)){const y=r.concat(h.key);n(h)&&(h.preventDefault(),h.stopPropagation()),o(y),p(y.join("")),u()}}}return f}function W6(e,t,n,r){if(t==null)return r;if(!r)return e.find(c=>n(c).toLowerCase().startsWith(t.toLowerCase()));const o=e.filter(s=>n(s).toLowerCase().startsWith(t.toLowerCase()));if(o.length>0){let s;return o.includes(r)?(s=o.indexOf(r)+1,s===o.length&&(s=0),o[s]):(s=e.indexOf(o[0]),e[s])}return r}function V6(){const e=g.useRef(new Map),t=e.current,n=g.useCallback((o,s,c,u)=>{e.current.set(c,{type:s,el:o,options:u}),o.addEventListener(s,c,u)},[]),r=g.useCallback((o,s,c,u)=>{o.removeEventListener(s,c,u),e.current.delete(c)},[]);return g.useEffect(()=>()=>{t.forEach((o,s)=>{r(o.el,o.type,s,o.options)})},[r,t]),{add:n,remove:r}}function wd(e){const t=e.target,{tagName:n,isContentEditable:r}=t;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function wy(e={}){const{ref:t,isDisabled:n,isFocusable:r,clickOnEnter:o=!0,clickOnSpace:s=!0,onMouseDown:c,onMouseUp:u,onClick:f,onKeyDown:p,onKeyUp:h,tabIndex:y,onMouseOver:x,onMouseLeave:S,...j}=e,[C,w]=g.useState(!0),[k,I]=g.useState(!1),P=V6(),M=$=>{$&&$.tagName!=="BUTTON"&&w(!1)},T=C?y:y||0,D=n&&!r,_=g.useCallback($=>{if(n){$.stopPropagation(),$.preventDefault();return}$.currentTarget.focus(),f==null||f($)},[n,f]),R=g.useCallback($=>{k&&wd($)&&($.preventDefault(),$.stopPropagation(),I(!1),P.remove(document,"keyup",R,!1))},[k,P]),V=g.useCallback($=>{if(p==null||p($),n||$.defaultPrevented||$.metaKey||!wd($.nativeEvent)||C)return;const Z=o&&$.key==="Enter";s&&$.key===" "&&($.preventDefault(),I(!0)),Z&&($.preventDefault(),$.currentTarget.click()),P.add(document,"keyup",R,!1)},[n,C,p,o,s,P,R]),F=g.useCallback($=>{if(h==null||h($),n||$.defaultPrevented||$.metaKey||!wd($.nativeEvent)||C)return;s&&$.key===" "&&($.preventDefault(),I(!1),$.currentTarget.click())},[s,C,n,h]),B=g.useCallback($=>{$.button===0&&(I(!1),P.remove(document,"mouseup",B,!1))},[P]),Q=g.useCallback($=>{if($.button!==0)return;if(n){$.stopPropagation(),$.preventDefault();return}C||I(!0),$.currentTarget.focus({preventScroll:!0}),P.add(document,"mouseup",B,!1),c==null||c($)},[n,C,c,P,B]),U=g.useCallback($=>{$.button===0&&(C||I(!1),u==null||u($))},[u,C]),X=g.useCallback($=>{if(n){$.preventDefault();return}x==null||x($)},[n,x]),te=g.useCallback($=>{k&&($.preventDefault(),I(!1)),S==null||S($)},[k,S]),re=ct(t,M);return C?{...j,ref:re,type:"button","aria-disabled":D?void 0:n,disabled:D,onClick:_,onMouseDown:c,onMouseUp:u,onKeyUp:h,onKeyDown:p,onMouseOver:x,onMouseLeave:S}:{...j,ref:re,role:"button","data-active":qe(k),"aria-disabled":n?"true":void 0,tabIndex:D?void 0:T,onClick:_,onMouseDown:Q,onMouseUp:U,onKeyUp:F,onKeyDown:V,onMouseOver:X,onMouseLeave:te}}function U6(e){const t=e.current;if(!t)return!1;const n=x6(t);return!n||t.contains(n)?!1:!!w6(n)}function jy(e,t){const{shouldFocus:n,visible:r,focusRef:o}=t,s=n&&!r;ti(()=>{if(!s||U6(e))return;const c=(o==null?void 0:o.current)||e.current;c&&requestAnimationFrame(()=>{c.focus()})},[s,e,o])}var $6={preventScroll:!0,shouldFocus:!1};function G6(e,t=$6){const{focusRef:n,preventScroll:r,shouldFocus:o,visible:s}=t,c=q6(e)?e.current:e,u=o&&s,f=g.useRef(u),p=g.useRef(s);Hi(()=>{!p.current&&s&&(f.current=u),p.current=s},[s,u]);const h=g.useCallback(()=>{if(!(!s||!c||!f.current)&&(f.current=!1,!c.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var y;(y=n.current)==null||y.focus({preventScroll:r})});else{const y=hy(c);y.length>0&&requestAnimationFrame(()=>{y[0].focus({preventScroll:r})})}},[s,r,c,n]);ti(()=>{h()},[h]),Go(c,"transitionend",h)}function q6(e){return"current"in e}var ji=(e,t)=>({var:e,varRef:t?`var(${e}, ${t})`:`var(${e})`}),Ht={arrowShadowColor:ji("--popper-arrow-shadow-color"),arrowSize:ji("--popper-arrow-size","8px"),arrowSizeHalf:ji("--popper-arrow-size-half"),arrowBg:ji("--popper-arrow-bg"),transformOrigin:ji("--popper-transform-origin"),arrowOffset:ji("--popper-arrow-offset")};function Y6(e){if(e.includes("top"))return"1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("bottom"))return"-1px -1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("right"))return"-1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("left"))return"1px -1px 1px 0 var(--popper-arrow-shadow-color)"}var K6={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},X6=e=>K6[e],hg={scroll:!0,resize:!0};function Q6(e){let t;return typeof e=="object"?t={enabled:!0,options:{...hg,...e}}:t={enabled:e,options:hg},t}var Z6={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},effect:({state:e})=>()=>{const t=e.elements.reference;e.elements.popper.style.width=`${t.offsetWidth}px`}},J6={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:e})=>{pg(e)},effect:({state:e})=>()=>{pg(e)}},pg=e=>{e.elements.popper.style.setProperty(Ht.transformOrigin.var,X6(e.placement))},ej={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:e})=>{tj(e)}},tj=e=>{var t;if(!e.placement)return;const n=nj(e.placement);if((t=e.elements)!=null&&t.arrow&&n){Object.assign(e.elements.arrow.style,{[n.property]:n.value,width:Ht.arrowSize.varRef,height:Ht.arrowSize.varRef,zIndex:-1});const r={[Ht.arrowSizeHalf.var]:`calc(${Ht.arrowSize.varRef} / 2)`,[Ht.arrowOffset.var]:`calc(${Ht.arrowSizeHalf.varRef} * -1)`};for(const o in r)e.elements.arrow.style.setProperty(o,r[o])}},nj=e=>{if(e.startsWith("top"))return{property:"bottom",value:Ht.arrowOffset.varRef};if(e.startsWith("bottom"))return{property:"top",value:Ht.arrowOffset.varRef};if(e.startsWith("left"))return{property:"right",value:Ht.arrowOffset.varRef};if(e.startsWith("right"))return{property:"left",value:Ht.arrowOffset.varRef}},rj={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:e})=>{mg(e)},effect:({state:e})=>()=>{mg(e)}},mg=e=>{if(!e.elements.arrow)return;const t=e.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!t)return;const n=Y6(e.placement);n&&t.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(t.style,{transform:"rotate(45deg)",background:Ht.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},oj={"start-start":{ltr:"left-start",rtl:"right-start"},"start-end":{ltr:"left-end",rtl:"right-end"},"end-start":{ltr:"right-start",rtl:"left-start"},"end-end":{ltr:"right-end",rtl:"left-end"},start:{ltr:"left",rtl:"right"},end:{ltr:"right",rtl:"left"}},ij={"auto-start":"auto-end","auto-end":"auto-start","top-start":"top-end","top-end":"top-start","bottom-start":"bottom-end","bottom-end":"bottom-start"};function aj(e,t="ltr"){var n,r;const o=((n=oj[e])==null?void 0:n[t])||e;return t==="ltr"?o:(r=ij[e])!=null?r:o}var Pn="top",Un="bottom",$n="right",In="left",wh="auto",ds=[Pn,Un,$n,In],Gi="start",Ka="end",sj="clippingParents",ky="viewport",_a="popper",lj="reference",vg=ds.reduce(function(e,t){return e.concat([t+"-"+Gi,t+"-"+Ka])},[]),Ey=[].concat(ds,[wh]).reduce(function(e,t){return e.concat([t,t+"-"+Gi,t+"-"+Ka])},[]),cj="beforeRead",uj="read",dj="afterRead",fj="beforeMain",hj="main",pj="afterMain",mj="beforeWrite",vj="write",gj="afterWrite",yj=[cj,uj,dj,fj,hj,pj,mj,vj,gj];function kr(e){return e?(e.nodeName||"").toLowerCase():null}function Gn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Qo(e){var t=Gn(e).Element;return e instanceof t||e instanceof Element}function Vn(e){var t=Gn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function jh(e){if(typeof ShadowRoot>"u")return!1;var t=Gn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function xj(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},s=t.elements[n];!Vn(s)||!kr(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(c){var u=o[c];u===!1?s.removeAttribute(c):s.setAttribute(c,u===!0?"":u)}))})}function bj(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],s=t.attributes[r]||{},c=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),u=c.reduce(function(f,p){return f[p]="",f},{});!Vn(o)||!kr(o)||(Object.assign(o.style,u),Object.keys(s).forEach(function(f){o.removeAttribute(f)}))})}}const Sj={name:"applyStyles",enabled:!0,phase:"write",fn:xj,effect:bj,requires:["computeStyles"]};function Cr(e){return e.split("-")[0]}var Yo=Math.max,ac=Math.min,qi=Math.round;function kf(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Py(){return!/^((?!chrome|android).)*safari/i.test(kf())}function Yi(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),o=1,s=1;t&&Vn(e)&&(o=e.offsetWidth>0&&qi(r.width)/e.offsetWidth||1,s=e.offsetHeight>0&&qi(r.height)/e.offsetHeight||1);var c=Qo(e)?Gn(e):window,u=c.visualViewport,f=!Py()&&n,p=(r.left+(f&&u?u.offsetLeft:0))/o,h=(r.top+(f&&u?u.offsetTop:0))/s,y=r.width/o,x=r.height/s;return{width:y,height:x,top:h,right:p+y,bottom:h+x,left:p,x:p,y:h}}function kh(e){var t=Yi(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Iy(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&jh(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Fr(e){return Gn(e).getComputedStyle(e)}function Cj(e){return["table","td","th"].indexOf(kr(e))>=0}function bo(e){return((Qo(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ec(e){return kr(e)==="html"?e:e.assignedSlot||e.parentNode||(jh(e)?e.host:null)||bo(e)}function gg(e){return!Vn(e)||Fr(e).position==="fixed"?null:e.offsetParent}function wj(e){var t=/firefox/i.test(kf()),n=/Trident/i.test(kf());if(n&&Vn(e)){var r=Fr(e);if(r.position==="fixed")return null}var o=Ec(e);for(jh(o)&&(o=o.host);Vn(o)&&["html","body"].indexOf(kr(o))<0;){var s=Fr(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function fs(e){for(var t=Gn(e),n=gg(e);n&&Cj(n)&&Fr(n).position==="static";)n=gg(n);return n&&(kr(n)==="html"||kr(n)==="body"&&Fr(n).position==="static")?t:n||wj(e)||t}function Eh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Fa(e,t,n){return Yo(e,ac(t,n))}function jj(e,t,n){var r=Fa(e,t,n);return r>n?n:r}function My(){return{top:0,right:0,bottom:0,left:0}}function Ty(e){return Object.assign({},My(),e)}function _y(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var kj=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Ty(typeof t!="number"?t:_y(t,ds))};function Ej(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,c=n.modifiersData.popperOffsets,u=Cr(n.placement),f=Eh(u),p=[In,$n].indexOf(u)>=0,h=p?"height":"width";if(!(!s||!c)){var y=kj(o.padding,n),x=kh(s),S=f==="y"?Pn:In,j=f==="y"?Un:$n,C=n.rects.reference[h]+n.rects.reference[f]-c[f]-n.rects.popper[h],w=c[f]-n.rects.reference[f],k=fs(s),I=k?f==="y"?k.clientHeight||0:k.clientWidth||0:0,P=C/2-w/2,M=y[S],T=I-x[h]-y[j],D=I/2-x[h]/2+P,_=Fa(M,D,T),R=f;n.modifiersData[r]=(t={},t[R]=_,t.centerOffset=_-D,t)}}function Pj(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||Iy(t.elements.popper,o)&&(t.elements.arrow=o))}const Ij={name:"arrow",enabled:!0,phase:"main",fn:Ej,effect:Pj,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ki(e){return e.split("-")[1]}var Mj={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Tj(e){var t=e.x,n=e.y,r=window,o=r.devicePixelRatio||1;return{x:qi(t*o)/o||0,y:qi(n*o)/o||0}}function yg(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,c=e.offsets,u=e.position,f=e.gpuAcceleration,p=e.adaptive,h=e.roundOffsets,y=e.isFixed,x=c.x,S=x===void 0?0:x,j=c.y,C=j===void 0?0:j,w=typeof h=="function"?h({x:S,y:C}):{x:S,y:C};S=w.x,C=w.y;var k=c.hasOwnProperty("x"),I=c.hasOwnProperty("y"),P=In,M=Pn,T=window;if(p){var D=fs(n),_="clientHeight",R="clientWidth";if(D===Gn(n)&&(D=bo(n),Fr(D).position!=="static"&&u==="absolute"&&(_="scrollHeight",R="scrollWidth")),D=D,o===Pn||(o===In||o===$n)&&s===Ka){M=Un;var V=y&&D===T&&T.visualViewport?T.visualViewport.height:D[_];C-=V-r.height,C*=f?1:-1}if(o===In||(o===Pn||o===Un)&&s===Ka){P=$n;var F=y&&D===T&&T.visualViewport?T.visualViewport.width:D[R];S-=F-r.width,S*=f?1:-1}}var B=Object.assign({position:u},p&&Mj),Q=h===!0?Tj({x:S,y:C}):{x:S,y:C};if(S=Q.x,C=Q.y,f){var U;return Object.assign({},B,(U={},U[M]=I?"0":"",U[P]=k?"0":"",U.transform=(T.devicePixelRatio||1)<=1?"translate("+S+"px, "+C+"px)":"translate3d("+S+"px, "+C+"px, 0)",U))}return Object.assign({},B,(t={},t[M]=I?C+"px":"",t[P]=k?S+"px":"",t.transform="",t))}function _j(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,c=s===void 0?!0:s,u=n.roundOffsets,f=u===void 0?!0:u,p={placement:Cr(t.placement),variation:Ki(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,yg(Object.assign({},p,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:c,roundOffsets:f})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,yg(Object.assign({},p,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Dj={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_j,data:{}};var Sl={passive:!0};function Aj(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,s=o===void 0?!0:o,c=r.resize,u=c===void 0?!0:c,f=Gn(t.elements.popper),p=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&p.forEach(function(h){h.addEventListener("scroll",n.update,Sl)}),u&&f.addEventListener("resize",n.update,Sl),function(){s&&p.forEach(function(h){h.removeEventListener("scroll",n.update,Sl)}),u&&f.removeEventListener("resize",n.update,Sl)}}const Oj={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Aj,data:{}};var zj={left:"right",right:"left",bottom:"top",top:"bottom"};function Wl(e){return e.replace(/left|right|bottom|top/g,function(t){return zj[t]})}var Rj={start:"end",end:"start"};function xg(e){return e.replace(/start|end/g,function(t){return Rj[t]})}function Ph(e){var t=Gn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Ih(e){return Yi(bo(e)).left+Ph(e).scrollLeft}function Nj(e,t){var n=Gn(e),r=bo(e),o=n.visualViewport,s=r.clientWidth,c=r.clientHeight,u=0,f=0;if(o){s=o.width,c=o.height;var p=Py();(p||!p&&t==="fixed")&&(u=o.offsetLeft,f=o.offsetTop)}return{width:s,height:c,x:u+Ih(e),y:f}}function Fj(e){var t,n=bo(e),r=Ph(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=Yo(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),c=Yo(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-r.scrollLeft+Ih(e),f=-r.scrollTop;return Fr(o||n).direction==="rtl"&&(u+=Yo(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:c,x:u,y:f}}function Mh(e){var t=Fr(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function Dy(e){return["html","body","#document"].indexOf(kr(e))>=0?e.ownerDocument.body:Vn(e)&&Mh(e)?e:Dy(Ec(e))}function La(e,t){var n;t===void 0&&(t=[]);var r=Dy(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),s=Gn(r),c=o?[s].concat(s.visualViewport||[],Mh(r)?r:[]):r,u=t.concat(c);return o?u:u.concat(La(Ec(c)))}function Ef(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lj(e,t){var n=Yi(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function bg(e,t,n){return t===ky?Ef(Nj(e,n)):Qo(t)?Lj(t,n):Ef(Fj(bo(e)))}function Bj(e){var t=La(Ec(e)),n=["absolute","fixed"].indexOf(Fr(e).position)>=0,r=n&&Vn(e)?fs(e):e;return Qo(r)?t.filter(function(o){return Qo(o)&&Iy(o,r)&&kr(o)!=="body"}):[]}function Hj(e,t,n,r){var o=t==="clippingParents"?Bj(e):[].concat(t),s=[].concat(o,[n]),c=s[0],u=s.reduce(function(f,p){var h=bg(e,p,r);return f.top=Yo(h.top,f.top),f.right=ac(h.right,f.right),f.bottom=ac(h.bottom,f.bottom),f.left=Yo(h.left,f.left),f},bg(e,c,r));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function Ay(e){var t=e.reference,n=e.element,r=e.placement,o=r?Cr(r):null,s=r?Ki(r):null,c=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2,f;switch(o){case Pn:f={x:c,y:t.y-n.height};break;case Un:f={x:c,y:t.y+t.height};break;case $n:f={x:t.x+t.width,y:u};break;case In:f={x:t.x-n.width,y:u};break;default:f={x:t.x,y:t.y}}var p=o?Eh(o):null;if(p!=null){var h=p==="y"?"height":"width";switch(s){case Gi:f[p]=f[p]-(t[h]/2-n[h]/2);break;case Ka:f[p]=f[p]+(t[h]/2-n[h]/2);break}}return f}function Xa(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,s=n.strategy,c=s===void 0?e.strategy:s,u=n.boundary,f=u===void 0?sj:u,p=n.rootBoundary,h=p===void 0?ky:p,y=n.elementContext,x=y===void 0?_a:y,S=n.altBoundary,j=S===void 0?!1:S,C=n.padding,w=C===void 0?0:C,k=Ty(typeof w!="number"?w:_y(w,ds)),I=x===_a?lj:_a,P=e.rects.popper,M=e.elements[j?I:x],T=Hj(Qo(M)?M:M.contextElement||bo(e.elements.popper),f,h,c),D=Yi(e.elements.reference),_=Ay({reference:D,element:P,strategy:"absolute",placement:o}),R=Ef(Object.assign({},P,_)),V=x===_a?R:D,F={top:T.top-V.top+k.top,bottom:V.bottom-T.bottom+k.bottom,left:T.left-V.left+k.left,right:V.right-T.right+k.right},B=e.modifiersData.offset;if(x===_a&&B){var Q=B[o];Object.keys(F).forEach(function(U){var X=[$n,Un].indexOf(U)>=0?1:-1,te=[Pn,Un].indexOf(U)>=0?"y":"x";F[U]+=Q[te]*X})}return F}function Wj(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,c=n.padding,u=n.flipVariations,f=n.allowedAutoPlacements,p=f===void 0?Ey:f,h=Ki(r),y=h?u?vg:vg.filter(function(j){return Ki(j)===h}):ds,x=y.filter(function(j){return p.indexOf(j)>=0});x.length===0&&(x=y);var S=x.reduce(function(j,C){return j[C]=Xa(e,{placement:C,boundary:o,rootBoundary:s,padding:c})[Cr(C)],j},{});return Object.keys(S).sort(function(j,C){return S[j]-S[C]})}function Vj(e){if(Cr(e)===wh)return[];var t=Wl(e);return[xg(e),t,xg(t)]}function Uj(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,c=n.altAxis,u=c===void 0?!0:c,f=n.fallbackPlacements,p=n.padding,h=n.boundary,y=n.rootBoundary,x=n.altBoundary,S=n.flipVariations,j=S===void 0?!0:S,C=n.allowedAutoPlacements,w=t.options.placement,k=Cr(w),I=k===w,P=f||(I||!j?[Wl(w)]:Vj(w)),M=[w].concat(P).reduce(function(he,se){return he.concat(Cr(se)===wh?Wj(t,{placement:se,boundary:h,rootBoundary:y,padding:p,flipVariations:j,allowedAutoPlacements:C}):se)},[]),T=t.rects.reference,D=t.rects.popper,_=new Map,R=!0,V=M[0],F=0;F=0,te=X?"width":"height",re=Xa(t,{placement:B,boundary:h,rootBoundary:y,altBoundary:x,padding:p}),$=X?U?$n:In:U?Un:Pn;T[te]>D[te]&&($=Wl($));var Z=Wl($),fe=[];if(s&&fe.push(re[Q]<=0),u&&fe.push(re[$]<=0,re[Z]<=0),fe.every(function(he){return he})){V=B,R=!1;break}_.set(B,fe)}if(R)for(var Se=j?3:1,Me=function(se){var Ne=M.find(function(Ve){var Ue=_.get(Ve);if(Ue)return Ue.slice(0,se).every(function($e){return $e})});if(Ne)return V=Ne,"break"},Ie=Se;Ie>0;Ie--){var Pe=Me(Ie);if(Pe==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}const $j={name:"flip",enabled:!0,phase:"main",fn:Uj,requiresIfExists:["offset"],data:{_skip:!1}};function Sg(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Cg(e){return[Pn,$n,Un,In].some(function(t){return e[t]>=0})}function Gj(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,c=Xa(t,{elementContext:"reference"}),u=Xa(t,{altBoundary:!0}),f=Sg(c,r),p=Sg(u,o,s),h=Cg(f),y=Cg(p);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:p,isReferenceHidden:h,hasPopperEscaped:y},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":y})}const qj={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Gj};function Yj(e,t,n){var r=Cr(e),o=[In,Pn].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,c=s[0],u=s[1];return c=c||0,u=(u||0)*o,[In,$n].indexOf(r)>=0?{x:u,y:c}:{x:c,y:u}}function Kj(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=o===void 0?[0,0]:o,c=Ey.reduce(function(h,y){return h[y]=Yj(y,t.rects,s),h},{}),u=c[t.placement],f=u.x,p=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=p),t.modifiersData[r]=c}const Xj={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Kj};function Qj(e){var t=e.state,n=e.name;t.modifiersData[n]=Ay({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const Zj={name:"popperOffsets",enabled:!0,phase:"read",fn:Qj,data:{}};function Jj(e){return e==="x"?"y":"x"}function ek(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=o===void 0?!0:o,c=n.altAxis,u=c===void 0?!1:c,f=n.boundary,p=n.rootBoundary,h=n.altBoundary,y=n.padding,x=n.tether,S=x===void 0?!0:x,j=n.tetherOffset,C=j===void 0?0:j,w=Xa(t,{boundary:f,rootBoundary:p,padding:y,altBoundary:h}),k=Cr(t.placement),I=Ki(t.placement),P=!I,M=Eh(k),T=Jj(M),D=t.modifiersData.popperOffsets,_=t.rects.reference,R=t.rects.popper,V=typeof C=="function"?C(Object.assign({},t.rects,{placement:t.placement})):C,F=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),B=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,Q={x:0,y:0};if(D){if(s){var U,X=M==="y"?Pn:In,te=M==="y"?Un:$n,re=M==="y"?"height":"width",$=D[M],Z=$+w[X],fe=$-w[te],Se=S?-R[re]/2:0,Me=I===Gi?_[re]:R[re],Ie=I===Gi?-R[re]:-_[re],Pe=t.elements.arrow,he=S&&Pe?kh(Pe):{width:0,height:0},se=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:My(),Ne=se[X],Ve=se[te],Ue=Fa(0,_[re],he[re]),$e=P?_[re]/2-Se-Ue-Ne-F.mainAxis:Me-Ue-Ne-F.mainAxis,Qe=P?-_[re]/2+Se+Ue+Ve+F.mainAxis:Ie+Ue+Ve+F.mainAxis,me=t.elements.arrow&&fs(t.elements.arrow),De=me?M==="y"?me.clientTop||0:me.clientLeft||0:0,Ge=(U=B==null?void 0:B[M])!=null?U:0,ge=$+$e-Ge-De,Te=$+Qe-Ge,et=Fa(S?ac(Z,ge):Z,$,S?Yo(fe,Te):fe);D[M]=et,Q[M]=et-$}if(u){var Be,vt=M==="x"?Pn:In,Rt=M==="x"?Un:$n,N=D[T],le=T==="y"?"height":"width",ye=N+w[vt],je=N-w[Rt],q=[Pn,In].indexOf(k)!==-1,ie=(Be=B==null?void 0:B[T])!=null?Be:0,Re=q?ye:N-_[le]-R[le]-ie+F.altAxis,Ze=q?N+_[le]+R[le]-ie-F.altAxis:je,J=S&&q?jj(Re,N,Ze):Fa(S?Re:ye,N,S?Ze:je);D[T]=J,Q[T]=J-N}t.modifiersData[r]=Q}}const tk={name:"preventOverflow",enabled:!0,phase:"main",fn:ek,requiresIfExists:["offset"]};function nk(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function rk(e){return e===Gn(e)||!Vn(e)?Ph(e):nk(e)}function ok(e){var t=e.getBoundingClientRect(),n=qi(t.width)/e.offsetWidth||1,r=qi(t.height)/e.offsetHeight||1;return n!==1||r!==1}function ik(e,t,n){n===void 0&&(n=!1);var r=Vn(t),o=Vn(t)&&ok(t),s=bo(t),c=Yi(e,o,n),u={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(r||!r&&!n)&&((kr(t)!=="body"||Mh(s))&&(u=rk(t)),Vn(t)?(f=Yi(t,!0),f.x+=t.clientLeft,f.y+=t.clientTop):s&&(f.x=Ih(s))),{x:c.left+u.scrollLeft-f.x,y:c.top+u.scrollTop-f.y,width:c.width,height:c.height}}function ak(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var c=[].concat(s.requires||[],s.requiresIfExists||[]);c.forEach(function(u){if(!n.has(u)){var f=t.get(u);f&&o(f)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),r}function sk(e){var t=ak(e);return yj.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function lk(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function ck(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var wg={placement:"bottom",modifiers:[],strategy:"absolute"};function jg(){for(var e=arguments.length,t=new Array(e),n=0;n{}),P=g.useCallback(()=>{var F;!t||!j.current||!C.current||((F=I.current)==null||F.call(I),w.current=fk(j.current,C.current,{placement:k,modifiers:[rj,ej,J6,{...Z6,enabled:!!x},{name:"eventListeners",...Q6(c)},{name:"arrow",options:{padding:s}},{name:"offset",options:{offset:u??[0,f]}},{name:"flip",enabled:!!p,options:{padding:8}},{name:"preventOverflow",enabled:!!y,options:{boundary:h}},...n??[]],strategy:o}),w.current.forceUpdate(),I.current=w.current.destroy)},[k,t,n,x,c,s,u,f,p,y,h,o]);g.useEffect(()=>()=>{var F;!j.current&&!C.current&&((F=w.current)==null||F.destroy(),w.current=null)},[]);const M=g.useCallback(F=>{j.current=F,P()},[P]),T=g.useCallback((F={},B=null)=>({...F,ref:ct(M,B)}),[M]),D=g.useCallback(F=>{C.current=F,P()},[P]),_=g.useCallback((F={},B=null)=>({...F,ref:ct(D,B),style:{...F.style,position:o,minWidth:x?void 0:"max-content",inset:"0 auto auto 0"}}),[o,D,x]),R=g.useCallback((F={},B=null)=>{const{size:Q,shadowColor:U,bg:X,style:te,...re}=F;return{...re,ref:B,"data-popper-arrow":"",style:hk(F)}},[]),V=g.useCallback((F={},B=null)=>({...F,ref:B,"data-popper-arrow-inner":""}),[]);return{update(){var F;(F=w.current)==null||F.update()},forceUpdate(){var F;(F=w.current)==null||F.forceUpdate()},transformOrigin:Ht.transformOrigin.varRef,referenceRef:M,popperRef:D,getPopperProps:_,getArrowProps:R,getArrowInnerProps:V,getReferenceProps:T}}function hk(e){const{size:t,shadowColor:n,bg:r,style:o}=e,s={...o,position:"absolute"};return t&&(s["--popper-arrow-size"]=t),n&&(s["--popper-arrow-shadow-color"]=n),r&&(s["--popper-arrow-bg"]=r),s}function _h(e={}){const{onClose:t,onOpen:n,isOpen:r,id:o}=e,s=Wt(n),c=Wt(t),[u,f]=g.useState(e.defaultIsOpen||!1),p=r!==void 0?r:u,h=r!==void 0,y=g.useId(),x=o??`disclosure-${y}`,S=g.useCallback(()=>{h||f(!1),c==null||c()},[h,c]),j=g.useCallback(()=>{h||f(!0),s==null||s()},[h,s]),C=g.useCallback(()=>{p?S():j()},[p,j,S]);function w(I={}){return{...I,"aria-expanded":p,"aria-controls":x,onClick(P){var M;(M=I.onClick)==null||M.call(I,P),C()}}}function k(I={}){return{...I,hidden:!p,id:x}}return{isOpen:p,onOpen:j,onClose:S,onToggle:C,isControlled:h,getButtonProps:w,getDisclosureProps:k}}function pk(e){const{ref:t,handler:n,enabled:r=!0}=e,o=Wt(n),c=g.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;g.useEffect(()=>{if(!r)return;const u=y=>{jd(y,t)&&(c.isPointerDown=!0)},f=y=>{if(c.ignoreEmulatedMouseEvents){c.ignoreEmulatedMouseEvents=!1;return}c.isPointerDown&&n&&jd(y,t)&&(c.isPointerDown=!1,o(y))},p=y=>{c.ignoreEmulatedMouseEvents=!0,n&&c.isPointerDown&&jd(y,t)&&(c.isPointerDown=!1,o(y))},h=Oy(t.current);return h.addEventListener("mousedown",u,!0),h.addEventListener("mouseup",f,!0),h.addEventListener("touchstart",u,!0),h.addEventListener("touchend",p,!0),()=>{h.removeEventListener("mousedown",u,!0),h.removeEventListener("mouseup",f,!0),h.removeEventListener("touchstart",u,!0),h.removeEventListener("touchend",p,!0)}},[n,t,o,c,r])}function jd(e,t){var n;const r=e.target;return e.button>0||r&&!Oy(r).contains(r)?!1:!((n=t.current)!=null&&n.contains(r))}function Oy(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function zy(e){const{isOpen:t,ref:n}=e,[r,o]=g.useState(t),[s,c]=g.useState(!1);return g.useEffect(()=>{s||(o(t),c(!0))},[t,s,r]),Go(()=>n.current,"animationend",()=>{o(t)}),{present:!(t?!1:!r),onComplete(){var f;const p=y6(n.current),h=new p.CustomEvent("animationend",{bubbles:!0});(f=n.current)==null||f.dispatchEvent(h)}}}function Dh(e){const{wasSelected:t,enabled:n,isSelected:r,mode:o="unmount"}=e;return!!(!n||r||o==="keepMounted"&&t)}var[mk,vk,gk,yk]=th(),[xk,hs]=kt({strict:!1,name:"MenuContext"});function bk(e,...t){const n=g.useId(),r=e||n;return g.useMemo(()=>t.map(o=>`${o}-${r}`),[r,t])}function Ry(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function kg(e){return Ry(e).activeElement===e}function Sk(e={}){const{id:t,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:o,autoSelect:s=!0,isLazy:c,isOpen:u,defaultIsOpen:f,onClose:p,onOpen:h,placement:y="bottom-start",lazyBehavior:x="unmount",direction:S,computePositionOnMount:j=!1,...C}=e,w=g.useRef(null),k=g.useRef(null),I=gk(),P=g.useCallback(()=>{requestAnimationFrame(()=>{var Pe;(Pe=w.current)==null||Pe.focus({preventScroll:!1})})},[]),M=g.useCallback(()=>{const Pe=setTimeout(()=>{var he;if(o)(he=o.current)==null||he.focus();else{const se=I.firstEnabled();se&&U(se.index)}});Z.current.add(Pe)},[I,o]),T=g.useCallback(()=>{const Pe=setTimeout(()=>{const he=I.lastEnabled();he&&U(he.index)});Z.current.add(Pe)},[I]),D=g.useCallback(()=>{h==null||h(),s?M():P()},[s,M,P,h]),{isOpen:_,onOpen:R,onClose:V,onToggle:F}=_h({isOpen:u,defaultIsOpen:f,onClose:p,onOpen:D});pk({enabled:_&&r,ref:w,handler:Pe=>{var he;(he=k.current)!=null&&he.contains(Pe.target)||V()}});const B=Th({...C,enabled:_||j,placement:y,direction:S}),[Q,U]=g.useState(-1);ti(()=>{_||U(-1)},[_]),jy(w,{focusRef:k,visible:_,shouldFocus:!0});const X=zy({isOpen:_,ref:w}),[te,re]=bk(t,"menu-button","menu-list"),$=g.useCallback(()=>{R(),P()},[R,P]),Z=g.useRef(new Set([]));Ik(()=>{Z.current.forEach(Pe=>clearTimeout(Pe)),Z.current.clear()});const fe=g.useCallback(()=>{R(),M()},[M,R]),Se=g.useCallback(()=>{R(),T()},[R,T]),Me=g.useCallback(()=>{var Pe,he;const se=Ry(w.current),Ne=(Pe=w.current)==null?void 0:Pe.contains(se.activeElement);if(!(_&&!Ne))return;const Ue=(he=I.item(Q))==null?void 0:he.node;Ue==null||Ue.focus()},[_,Q,I]),Ie=g.useRef(null);return{openAndFocusMenu:$,openAndFocusFirstItem:fe,openAndFocusLastItem:Se,onTransitionEnd:Me,unstable__animationState:X,descendants:I,popper:B,buttonId:te,menuId:re,forceUpdate:B.forceUpdate,orientation:"vertical",isOpen:_,onToggle:F,onOpen:R,onClose:V,menuRef:w,buttonRef:k,focusedIndex:Q,closeOnSelect:n,closeOnBlur:r,autoSelect:s,setFocusedIndex:U,isLazy:c,lazyBehavior:x,initialFocusRef:o,rafId:Ie}}function Ck(e={},t=null){const n=hs(),{onToggle:r,popper:o,openAndFocusFirstItem:s,openAndFocusLastItem:c}=n,u=g.useCallback(f=>{const p=f.key,y={Enter:s,ArrowDown:s,ArrowUp:c}[p];y&&(f.preventDefault(),f.stopPropagation(),y(f))},[s,c]);return{...e,ref:ct(n.buttonRef,t,o.referenceRef),id:n.buttonId,"data-active":qe(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:Ee(e.onClick,r),onKeyDown:Ee(e.onKeyDown,u)}}function Pf(e){var t;return Ek(e)&&!!((t=e==null?void 0:e.getAttribute("role"))!=null&&t.startsWith("menuitem"))}function wk(e={},t=null){const n=hs();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within ");const{focusedIndex:r,setFocusedIndex:o,menuRef:s,isOpen:c,onClose:u,menuId:f,isLazy:p,lazyBehavior:h,unstable__animationState:y}=n,x=vk(),S=H6({preventDefault:k=>k.key!==" "&&Pf(k.target)}),j=g.useCallback(k=>{const I=k.key,M={Tab:D=>D.preventDefault(),Escape:u,ArrowDown:()=>{const D=x.nextEnabled(r);D&&o(D.index)},ArrowUp:()=>{const D=x.prevEnabled(r);D&&o(D.index)}}[I];if(M){k.preventDefault(),M(k);return}const T=S(D=>{const _=W6(x.values(),D,R=>{var V,F;return(F=(V=R==null?void 0:R.node)==null?void 0:V.textContent)!=null?F:""},x.item(r));if(_){const R=x.indexOf(_.node);o(R)}});Pf(k.target)&&T(k)},[x,r,S,u,o]),C=g.useRef(!1);c&&(C.current=!0);const w=Dh({wasSelected:C.current,enabled:p,mode:h,isSelected:y.present});return{...e,ref:ct(s,t),children:w?e.children:null,tabIndex:-1,role:"menu",id:f,style:{...e.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:Ee(e.onKeyDown,j)}}function jk(e={}){const{popper:t,isOpen:n}=hs();return t.getPopperProps({...e,style:{visibility:n?"visible":"hidden",...e.style}})}function kk(e={},t=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onClick:s,onFocus:c,isDisabled:u,isFocusable:f,closeOnSelect:p,type:h,...y}=e,x=hs(),{setFocusedIndex:S,focusedIndex:j,closeOnSelect:C,onClose:w,menuRef:k,isOpen:I,menuId:P,rafId:M}=x,T=g.useRef(null),D=`${P}-menuitem-${g.useId()}`,{index:_,register:R}=yk({disabled:u&&!f}),V=g.useCallback($=>{n==null||n($),!u&&S(_)},[S,_,u,n]),F=g.useCallback($=>{r==null||r($),T.current&&!kg(T.current)&&V($)},[V,r]),B=g.useCallback($=>{o==null||o($),!u&&S(-1)},[S,u,o]),Q=g.useCallback($=>{s==null||s($),Pf($.currentTarget)&&(p??C)&&w()},[w,s,C,p]),U=g.useCallback($=>{c==null||c($),S(_)},[S,c,_]),X=_===j,te=u&&!f;ti(()=>{I&&(X&&!te&&T.current?(M.current&&cancelAnimationFrame(M.current),M.current=requestAnimationFrame(()=>{var $;($=T.current)==null||$.focus(),M.current=null})):k.current&&!kg(k.current)&&k.current.focus())},[X,te,k,I]);const re=wy({onClick:Q,onFocus:U,onMouseEnter:V,onMouseMove:F,onMouseLeave:B,ref:ct(R,T,t),isDisabled:u,isFocusable:f});return{...y,...re,type:h??re.type,id:D,role:"menuitem",tabIndex:X?0:-1}}function Ek(e){var t;if(!Pk(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function Pk(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Ik(e,t=[]){return g.useEffect(()=>()=>e(),t)}var[Mk,Pc]=kt({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Ah=e=>{const{children:t}=e,n=un("Menu",e),r=At(e),{direction:o}=ta(),{descendants:s,...c}=Sk({...r,direction:o}),u=g.useMemo(()=>c,[c]),{isOpen:f,onClose:p,forceUpdate:h}=u;return l.jsx(mk,{value:s,children:l.jsx(xk,{value:u,children:l.jsx(Mk,{value:n,children:b1(t,{isOpen:f,onClose:p,forceUpdate:h})})})})};Ah.displayName="Menu";var Ny=ue((e,t)=>{const n=Pc();return l.jsx(ne.span,{ref:t,...e,__css:n.command,className:"chakra-menu__command"})});Ny.displayName="MenuCommand";var Tk=ue((e,t)=>{const{type:n,...r}=e,o=Pc(),s=r.as||n?n??void 0:"button",c=g.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...o.item}),[o.item]);return l.jsx(ne.button,{ref:t,type:s,...r,__css:c})}),Fy=e=>{const{className:t,children:n,...r}=e,o=g.Children.only(n),s=g.isValidElement(o)?g.cloneElement(o,{focusable:"false","aria-hidden":!0,className:ze("chakra-menu__icon",o.props.className)}):null,c=ze("chakra-menu__icon-wrapper",t);return l.jsx(ne.span,{className:c,...r,__css:{flexShrink:0},children:s})};Fy.displayName="MenuIcon";var gr=ue((e,t)=>{const{icon:n,iconSpacing:r="0.75rem",command:o,commandSpacing:s="0.75rem",children:c,...u}=e,f=kk(u,t),h=n||o?l.jsx("span",{style:{pointerEvents:"none",flex:1},children:c}):c;return l.jsxs(Tk,{...f,className:ze("chakra-menu__menuitem",f.className),children:[n&&l.jsx(Fy,{fontSize:"0.8em",marginEnd:r,children:n}),h,o&&l.jsx(Ny,{marginStart:s,children:o})]})});gr.displayName="MenuItem";var _k={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},Dk=ne(ar.div),Oh=ue(function(t,n){var r,o;const{rootProps:s,motionProps:c,...u}=t,{isOpen:f,onTransitionEnd:p,unstable__animationState:h}=hs(),y=wk(u,n),x=jk(s),S=Pc();return l.jsx(ne.div,{...x,__css:{zIndex:(o=t.zIndex)!=null?o:(r=S.list)==null?void 0:r.zIndex},children:l.jsx(Dk,{variants:_k,initial:!1,animate:f?"enter":"exit",__css:{outline:0,...S.list},...c,className:ze("chakra-menu__menu-list",y.className),...y,onUpdate:p,onAnimationComplete:xc(h.onComplete,y.onAnimationComplete)})})});Oh.displayName="MenuList";var Ak=ue((e,t)=>{const n=Pc();return l.jsx(ne.button,{ref:t,...e,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...n.button}})}),zh=ue((e,t)=>{const{children:n,as:r,...o}=e,s=Ck(o,t),c=r||Ak;return l.jsx(c,{...s,className:ze("chakra-menu__menu-button",e.className),children:l.jsx(ne.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:e.children})})});zh.displayName="MenuButton";var Ok={slideInBottom:{...pf,custom:{offsetY:16,reverse:!0}},slideInRight:{...pf,custom:{offsetX:16,reverse:!0}},scale:{...x2,custom:{initialScale:.95,reverse:!0}},none:{}},zk=ne(ar.section),Rk=e=>Ok[e||"none"],Ly=g.forwardRef((e,t)=>{const{preset:n,motionProps:r=Rk(n),...o}=e;return l.jsx(zk,{ref:t,...r,...o})});Ly.displayName="ModalTransition";var Nk=Object.defineProperty,Fk=(e,t,n)=>t in e?Nk(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lk=(e,t,n)=>(Fk(e,typeof t!="symbol"?t+"":t,n),n),Bk=class{constructor(){Lk(this,"modals"),this.modals=new Map}add(e){return this.modals.set(e,this.modals.size+1),this.modals.size}remove(e){this.modals.delete(e)}isTopModal(e){return e?this.modals.get(e)===this.modals.size:!1}},If=new Bk;function By(e,t){const[n,r]=g.useState(0);return g.useEffect(()=>{const o=e.current;if(o){if(t){const s=If.add(o);r(s)}return()=>{If.remove(o),r(0)}}},[t,e]),n}var Hk=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ki=new WeakMap,Cl=new WeakMap,wl={},kd=0,Hy=function(e){return e&&(e.host||Hy(e.parentNode))},Wk=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Hy(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return Boolean(n)})},Vk=function(e,t,n,r){var o=Wk(t,Array.isArray(e)?e:[e]);wl[n]||(wl[n]=new WeakMap);var s=wl[n],c=[],u=new Set,f=new Set(o),p=function(y){!y||u.has(y)||(u.add(y),p(y.parentNode))};o.forEach(p);var h=function(y){!y||f.has(y)||Array.prototype.forEach.call(y.children,function(x){if(u.has(x))h(x);else{var S=x.getAttribute(r),j=S!==null&&S!=="false",C=(ki.get(x)||0)+1,w=(s.get(x)||0)+1;ki.set(x,C),s.set(x,w),c.push(x),C===1&&j&&Cl.set(x,!0),w===1&&x.setAttribute(n,"true"),j||x.setAttribute(r,"true")}})};return h(t),u.clear(),kd++,function(){c.forEach(function(y){var x=ki.get(y)-1,S=s.get(y)-1;ki.set(y,x),s.set(y,S),x||(Cl.has(y)||y.removeAttribute(r),Cl.delete(y)),S||y.removeAttribute(n)}),kd--,kd||(ki=new WeakMap,ki=new WeakMap,Cl=new WeakMap,wl={})}},Uk=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||Hk(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),Vk(r,o,n,"aria-hidden")):function(){return null}};function $k(e){const{isOpen:t,onClose:n,id:r,closeOnOverlayClick:o=!0,closeOnEsc:s=!0,useInert:c=!0,onOverlayClick:u,onEsc:f}=e,p=g.useRef(null),h=g.useRef(null),[y,x,S]=qk(r,"chakra-modal","chakra-modal--header","chakra-modal--body");Gk(p,t&&c),By(p,t);const j=g.useRef(null),C=g.useCallback(R=>{j.current=R.target},[]),w=g.useCallback(R=>{R.key==="Escape"&&(R.stopPropagation(),s&&(n==null||n()),f==null||f())},[s,n,f]),[k,I]=g.useState(!1),[P,M]=g.useState(!1),T=g.useCallback((R={},V=null)=>({role:"dialog",...R,ref:ct(V,p),id:y,tabIndex:-1,"aria-modal":!0,"aria-labelledby":k?x:void 0,"aria-describedby":P?S:void 0,onClick:Ee(R.onClick,F=>F.stopPropagation())}),[S,P,y,x,k]),D=g.useCallback(R=>{R.stopPropagation(),j.current===R.target&&If.isTopModal(p.current)&&(o&&(n==null||n()),u==null||u())},[n,o,u]),_=g.useCallback((R={},V=null)=>({...R,ref:ct(V,h),onClick:Ee(R.onClick,D),onKeyDown:Ee(R.onKeyDown,w),onMouseDown:Ee(R.onMouseDown,C)}),[w,C,D]);return{isOpen:t,onClose:n,headerId:x,bodyId:S,setBodyMounted:M,setHeaderMounted:I,dialogRef:p,overlayRef:h,getDialogProps:T,getDialogContainerProps:_}}function Gk(e,t){const n=e.current;g.useEffect(()=>{if(!(!e.current||!t))return Uk(e.current)},[t,e,n])}function qk(e,...t){const n=g.useId(),r=e||n;return g.useMemo(()=>t.map(o=>`${o}-${r}`),[r,t])}var[Yk,ia]=kt({name:"ModalStylesContext",errorMessage:`useModalStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Kk,Zo]=kt({strict:!0,name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap modal components in ``"}),mo=e=>{const t={scrollBehavior:"outside",autoFocus:!0,trapFocus:!0,returnFocusOnClose:!0,blockScrollOnMount:!0,allowPinchZoom:!1,motionPreset:"scale",lockFocusAcrossFrames:!0,...e},{portalProps:n,children:r,autoFocus:o,trapFocus:s,initialFocusRef:c,finalFocusRef:u,returnFocusOnClose:f,blockScrollOnMount:p,allowPinchZoom:h,preserveScrollBarGap:y,motionPreset:x,lockFocusAcrossFrames:S,onCloseComplete:j}=t,C=un("Modal",t),k={...$k(t),autoFocus:o,trapFocus:s,initialFocusRef:c,finalFocusRef:u,returnFocusOnClose:f,blockScrollOnMount:p,allowPinchZoom:h,preserveScrollBarGap:y,motionPreset:x,lockFocusAcrossFrames:S};return l.jsx(Kk,{value:k,children:l.jsx(Yk,{value:C,children:l.jsx(xo,{onExitComplete:j,children:k.isOpen&&l.jsx($a,{...n,children:r})})})})};mo.displayName="Modal";var Vl="right-scroll-bar-position",Ul="width-before-scroll-bar",Xk="with-scroll-bars-hidden",Qk="--removed-body-scroll-bar-size",Wy=R2(),Ed=function(){},Ic=g.forwardRef(function(e,t){var n=g.useRef(null),r=g.useState({onScrollCapture:Ed,onWheelCapture:Ed,onTouchMoveCapture:Ed}),o=r[0],s=r[1],c=e.forwardProps,u=e.children,f=e.className,p=e.removeScrollBar,h=e.enabled,y=e.shards,x=e.sideCar,S=e.noIsolation,j=e.inert,C=e.allowPinchZoom,w=e.as,k=w===void 0?"div":w,I=A2(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),P=x,M=D2([n,t]),T=xr(xr({},I),o);return g.createElement(g.Fragment,null,h&&g.createElement(P,{sideCar:Wy,removeScrollBar:p,shards:y,noIsolation:S,inert:j,setCallbacks:s,allowPinchZoom:!!C,lockRef:n}),c?g.cloneElement(g.Children.only(u),xr(xr({},T),{ref:M})):g.createElement(k,xr({},T,{className:f,ref:M}),u))});Ic.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ic.classNames={fullWidth:Ul,zeroRight:Vl};var Eg,Zk=function(){if(Eg)return Eg;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Jk(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Zk();return t&&e.setAttribute("nonce",t),e}function e7(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function t7(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var n7=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Jk())&&(e7(t,n),t7(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},r7=function(){var e=n7();return function(t,n){g.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Vy=function(){var e=r7(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},o7={left:0,top:0,right:0,gap:0},Pd=function(e){return parseInt(e||"",10)||0},i7=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Pd(n),Pd(r),Pd(o)]},a7=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return o7;var t=i7(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},s7=Vy(),l7=function(e,t,n,r){var o=e.left,s=e.top,c=e.right,u=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Xk,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(u,"px ").concat(r,`; - } - body { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(o,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(c,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Vl,` { - right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(Ul,` { - margin-right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(Vl," .").concat(Vl,` { - right: 0 `).concat(r,`; - } - - .`).concat(Ul," .").concat(Ul,` { - margin-right: 0 `).concat(r,`; - } - - body { - `).concat(Qk,": ").concat(u,`px; - } -`)},c7=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r,s=g.useMemo(function(){return a7(o)},[o]);return g.createElement(s7,{styles:l7(s,!t,o,n?"":"!important")})},Mf=!1;if(typeof window<"u")try{var jl=Object.defineProperty({},"passive",{get:function(){return Mf=!0,!0}});window.addEventListener("test",jl,jl),window.removeEventListener("test",jl,jl)}catch{Mf=!1}var Ei=Mf?{passive:!1}:!1,u7=function(e){return e.tagName==="TEXTAREA"},Uy=function(e,t){var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!u7(e)&&n[t]==="visible")},d7=function(e){return Uy(e,"overflowY")},f7=function(e){return Uy(e,"overflowX")},Pg=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=$y(e,n);if(r){var o=Gy(e,n),s=o[1],c=o[2];if(s>c)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},h7=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},p7=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},$y=function(e,t){return e==="v"?d7(t):f7(t)},Gy=function(e,t){return e==="v"?h7(t):p7(t)},m7=function(e,t){return e==="h"&&t==="rtl"?-1:1},v7=function(e,t,n,r,o){var s=m7(e,window.getComputedStyle(t).direction),c=s*r,u=n.target,f=t.contains(u),p=!1,h=c>0,y=0,x=0;do{var S=Gy(e,u),j=S[0],C=S[1],w=S[2],k=C-w-s*j;(j||k)&&$y(e,u)&&(y+=k,x+=j),u=u.parentNode}while(!f&&u!==document.body||f&&(t.contains(u)||t===u));return(h&&(o&&y===0||!o&&c>y)||!h&&(o&&x===0||!o&&-c>x))&&(p=!0),p},kl=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Ig=function(e){return[e.deltaX,e.deltaY]},Mg=function(e){return e&&"current"in e?e.current:e},g7=function(e,t){return e[0]===t[0]&&e[1]===t[1]},y7=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},x7=0,Pi=[];function b7(e){var t=g.useRef([]),n=g.useRef([0,0]),r=g.useRef(),o=g.useState(x7++)[0],s=g.useState(function(){return Vy()})[0],c=g.useRef(e);g.useEffect(function(){c.current=e},[e]),g.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var C=Sf([e.lockRef.current],(e.shards||[]).map(Mg),!0).filter(Boolean);return C.forEach(function(w){return w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),C.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var u=g.useCallback(function(C,w){if("touches"in C&&C.touches.length===2)return!c.current.allowPinchZoom;var k=kl(C),I=n.current,P="deltaX"in C?C.deltaX:I[0]-k[0],M="deltaY"in C?C.deltaY:I[1]-k[1],T,D=C.target,_=Math.abs(P)>Math.abs(M)?"h":"v";if("touches"in C&&_==="h"&&D.type==="range")return!1;var R=Pg(_,D);if(!R)return!0;if(R?T=_:(T=_==="v"?"h":"v",R=Pg(_,D)),!R)return!1;if(!r.current&&"changedTouches"in C&&(P||M)&&(r.current=T),!T)return!0;var V=r.current||T;return v7(V,w,C,V==="h"?P:M,!0)},[]),f=g.useCallback(function(C){var w=C;if(!(!Pi.length||Pi[Pi.length-1]!==s)){var k="deltaY"in w?Ig(w):kl(w),I=t.current.filter(function(T){return T.name===w.type&&T.target===w.target&&g7(T.delta,k)})[0];if(I&&I.should){w.cancelable&&w.preventDefault();return}if(!I){var P=(c.current.shards||[]).map(Mg).filter(Boolean).filter(function(T){return T.contains(w.target)}),M=P.length>0?u(w,P[0]):!c.current.noIsolation;M&&w.cancelable&&w.preventDefault()}}},[]),p=g.useCallback(function(C,w,k,I){var P={name:C,delta:w,target:k,should:I};t.current.push(P),setTimeout(function(){t.current=t.current.filter(function(M){return M!==P})},1)},[]),h=g.useCallback(function(C){n.current=kl(C),r.current=void 0},[]),y=g.useCallback(function(C){p(C.type,Ig(C),C.target,u(C,e.lockRef.current))},[]),x=g.useCallback(function(C){p(C.type,kl(C),C.target,u(C,e.lockRef.current))},[]);g.useEffect(function(){return Pi.push(s),e.setCallbacks({onScrollCapture:y,onWheelCapture:y,onTouchMoveCapture:x}),document.addEventListener("wheel",f,Ei),document.addEventListener("touchmove",f,Ei),document.addEventListener("touchstart",h,Ei),function(){Pi=Pi.filter(function(C){return C!==s}),document.removeEventListener("wheel",f,Ei),document.removeEventListener("touchmove",f,Ei),document.removeEventListener("touchstart",h,Ei)}},[]);var S=e.removeScrollBar,j=e.inert;return g.createElement(g.Fragment,null,j?g.createElement(s,{styles:y7(o)}):null,S?g.createElement(c7,{gapMode:"margin"}):null)}const S7=S5(Wy,b7);var qy=g.forwardRef(function(e,t){return g.createElement(Ic,xr({},e,{ref:t,sideCar:S7}))});qy.classNames=Ic.classNames;const C7=qy;function w7(e){const{autoFocus:t,trapFocus:n,dialogRef:r,initialFocusRef:o,blockScrollOnMount:s,allowPinchZoom:c,finalFocusRef:u,returnFocusOnClose:f,preserveScrollBarGap:p,lockFocusAcrossFrames:h,isOpen:y}=Zo(),[x,S]=PC();g.useEffect(()=>{!x&&S&&setTimeout(S)},[x,S]);const j=By(r,y);return l.jsx(py,{autoFocus:t,isDisabled:!n,initialFocusRef:o,finalFocusRef:u,restoreFocus:f,contentRef:r,lockFocusAcrossFrames:h,children:l.jsx(C7,{removeScrollBar:!p,allowPinchZoom:c,enabled:j===1&&s,forwardProps:!0,children:e.children})})}var vo=ue((e,t)=>{const{className:n,children:r,containerProps:o,motionProps:s,...c}=e,{getDialogProps:u,getDialogContainerProps:f}=Zo(),p=u(c,t),h=f(o),y=ze("chakra-modal__content",n),x=ia(),S={display:"flex",flexDirection:"column",position:"relative",width:"100%",outline:0,...x.dialog},j={display:"flex",width:"100vw",height:"$100vh",position:"fixed",left:0,top:0,...x.dialogContainer},{motionPreset:C}=Zo();return l.jsx(w7,{children:l.jsx(ne.div,{...h,className:"chakra-modal__content-container",tabIndex:-1,__css:j,children:l.jsx(Ly,{preset:C,motionProps:s,className:y,...p,__css:S,children:r})})})});vo.displayName="ModalContent";function Yy(e){const{leastDestructiveRef:t,...n}=e;return l.jsx(mo,{...n,initialFocusRef:t})}var Ky=ue((e,t)=>l.jsx(vo,{ref:t,role:"alertdialog",...e})),Lr=ue((e,t)=>{const{className:n,...r}=e,o=ze("chakra-modal__footer",n),c={display:"flex",alignItems:"center",justifyContent:"flex-end",...ia().footer};return l.jsx(ne.footer,{ref:t,...r,__css:c,className:o})});Lr.displayName="ModalFooter";var Br=ue((e,t)=>{const{className:n,...r}=e,{headerId:o,setHeaderMounted:s}=Zo();g.useEffect(()=>(s(!0),()=>s(!1)),[s]);const c=ze("chakra-modal__header",n),f={flex:0,...ia().header};return l.jsx(ne.header,{ref:t,className:c,id:o,...r,__css:f})});Br.displayName="ModalHeader";var j7=ne(ar.div),Hr=ue((e,t)=>{const{className:n,transition:r,motionProps:o,...s}=e,c=ze("chakra-modal__overlay",n),f={pos:"fixed",left:"0",top:"0",w:"100vw",h:"100vh",...ia().overlay},{motionPreset:p}=Zo(),y=o||(p==="none"?{}:y2);return l.jsx(j7,{...y,__css:f,ref:t,className:c,...s})});Hr.displayName="ModalOverlay";var Wr=ue((e,t)=>{const{className:n,...r}=e,{bodyId:o,setBodyMounted:s}=Zo();g.useEffect(()=>(s(!0),()=>s(!1)),[s]);const c=ze("chakra-modal__body",n),u=ia();return l.jsx(ne.div,{ref:t,className:c,id:o,...r,__css:u.body})});Wr.displayName="ModalBody";var aa=ue((e,t)=>{const{onClick:n,className:r,...o}=e,{onClose:s}=Zo(),c=ze("chakra-modal__close-btn",r),u=ia();return l.jsx(IC,{ref:t,__css:u.closeButton,className:c,onClick:Ee(n,f=>{f.stopPropagation(),s()}),...o})});aa.displayName="ModalCloseButton";var k7=e=>l.jsx(tn,{viewBox:"0 0 24 24",...e,children:l.jsx("path",{fill:"currentColor",d:"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z"})}),E7=e=>l.jsx(tn,{viewBox:"0 0 24 24",...e,children:l.jsx("path",{fill:"currentColor",d:"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z"})});function Tg(e,t,n,r){g.useEffect(()=>{var o;if(!e.current||!r)return;const s=(o=e.current.ownerDocument.defaultView)!=null?o:window,c=Array.isArray(t)?t:[t],u=new s.MutationObserver(f=>{for(const p of f)p.type==="attributes"&&p.attributeName&&c.includes(p.attributeName)&&n(p)});return u.observe(e.current,{attributes:!0,attributeFilter:c}),()=>u.disconnect()})}function P7(e,t){const n=Wt(e);g.useEffect(()=>{let r=null;const o=()=>n();return t!==null&&(r=window.setInterval(o,t)),()=>{r&&window.clearInterval(r)}},[t,n])}var I7=50,_g=300;function M7(e,t){const[n,r]=g.useState(!1),[o,s]=g.useState(null),[c,u]=g.useState(!0),f=g.useRef(null),p=()=>clearTimeout(f.current);P7(()=>{o==="increment"&&e(),o==="decrement"&&t()},n?I7:null);const h=g.useCallback(()=>{c&&e(),f.current=setTimeout(()=>{u(!1),r(!0),s("increment")},_g)},[e,c]),y=g.useCallback(()=>{c&&t(),f.current=setTimeout(()=>{u(!1),r(!0),s("decrement")},_g)},[t,c]),x=g.useCallback(()=>{u(!0),r(!1),p()},[]);return g.useEffect(()=>()=>p(),[]),{up:h,down:y,stop:x,isSpinning:n}}var T7=/^[Ee0-9+\-.]$/;function _7(e){return T7.test(e)}function D7(e,t){if(e.key==null)return!0;const n=e.ctrlKey||e.altKey||e.metaKey;return!(e.key.length===1)||n?!0:t(e.key)}function A7(e={}){const{focusInputOnChange:t=!0,clampValueOnBlur:n=!0,keepWithinRange:r=!0,min:o=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER,step:c=1,isReadOnly:u,isDisabled:f,isRequired:p,isInvalid:h,pattern:y="[0-9]*(.[0-9]+)?",inputMode:x="decimal",allowMouseWheel:S,id:j,onChange:C,precision:w,name:k,"aria-describedby":I,"aria-label":P,"aria-labelledby":M,onFocus:T,onBlur:D,onInvalid:_,getAriaValueText:R,isValidCharacter:V,format:F,parse:B,...Q}=e,U=Wt(T),X=Wt(D),te=Wt(_),re=Wt(V??_7),$=Wt(R),Z=r5(e),{update:fe,increment:Se,decrement:Me}=Z,[Ie,Pe]=g.useState(!1),he=!(u||f),se=g.useRef(null),Ne=g.useRef(null),Ve=g.useRef(null),Ue=g.useRef(null),$e=g.useCallback(J=>J.split("").filter(re).join(""),[re]),Qe=g.useCallback(J=>{var Le;return(Le=B==null?void 0:B(J))!=null?Le:J},[B]),me=g.useCallback(J=>{var Le;return((Le=F==null?void 0:F(J))!=null?Le:J).toString()},[F]);ti(()=>{(Z.valueAsNumber>s||Z.valueAsNumber{if(!se.current)return;if(se.current.value!=Z.value){const Le=Qe(se.current.value);Z.setValue($e(Le))}},[Qe,$e]);const De=g.useCallback((J=c)=>{he&&Se(J)},[Se,he,c]),Ge=g.useCallback((J=c)=>{he&&Me(J)},[Me,he,c]),ge=M7(De,Ge);Tg(Ve,"disabled",ge.stop,ge.isSpinning),Tg(Ue,"disabled",ge.stop,ge.isSpinning);const Te=g.useCallback(J=>{if(J.nativeEvent.isComposing)return;const nt=Qe(J.currentTarget.value);fe($e(nt)),Ne.current={start:J.currentTarget.selectionStart,end:J.currentTarget.selectionEnd}},[fe,$e,Qe]),et=g.useCallback(J=>{var Le,nt,Nt;U==null||U(J),Ne.current&&(J.target.selectionStart=(nt=Ne.current.start)!=null?nt:(Le=J.currentTarget.value)==null?void 0:Le.length,J.currentTarget.selectionEnd=(Nt=Ne.current.end)!=null?Nt:J.currentTarget.selectionStart)},[U]),Be=g.useCallback(J=>{if(J.nativeEvent.isComposing)return;D7(J,re)||J.preventDefault();const Le=vt(J)*c,nt=J.key,de={ArrowUp:()=>De(Le),ArrowDown:()=>Ge(Le),Home:()=>fe(o),End:()=>fe(s)}[nt];de&&(J.preventDefault(),de(J))},[re,c,De,Ge,fe,o,s]),vt=J=>{let Le=1;return(J.metaKey||J.ctrlKey)&&(Le=.1),J.shiftKey&&(Le=10),Le},Rt=g.useMemo(()=>{const J=$==null?void 0:$(Z.value);if(J!=null)return J;const Le=Z.value.toString();return Le||void 0},[Z.value,$]),N=g.useCallback(()=>{let J=Z.value;if(Z.value==="")return;/^[eE]/.test(Z.value.toString())?Z.setValue(""):(Z.valueAsNumbers&&(J=s),Z.cast(J))},[Z,s,o]),le=g.useCallback(()=>{Pe(!1),n&&N()},[n,Pe,N]),ye=g.useCallback(()=>{t&&requestAnimationFrame(()=>{var J;(J=se.current)==null||J.focus()})},[t]),je=g.useCallback(J=>{J.preventDefault(),ge.up(),ye()},[ye,ge]),q=g.useCallback(J=>{J.preventDefault(),ge.down(),ye()},[ye,ge]);Go(()=>se.current,"wheel",J=>{var Le,nt;const de=((nt=(Le=se.current)==null?void 0:Le.ownerDocument)!=null?nt:document).activeElement===se.current;if(!S||!de)return;J.preventDefault();const Ae=vt(J)*c,dn=Math.sign(J.deltaY);dn===-1?De(Ae):dn===1&&Ge(Ae)},{passive:!1});const ie=g.useCallback((J={},Le=null)=>{const nt=f||r&&Z.isAtMax;return{...J,ref:ct(Le,Ve),role:"button",tabIndex:-1,onPointerDown:Ee(J.onPointerDown,Nt=>{Nt.button!==0||nt||je(Nt)}),onPointerLeave:Ee(J.onPointerLeave,ge.stop),onPointerUp:Ee(J.onPointerUp,ge.stop),disabled:nt,"aria-disabled":Nr(nt)}},[Z.isAtMax,r,je,ge.stop,f]),Re=g.useCallback((J={},Le=null)=>{const nt=f||r&&Z.isAtMin;return{...J,ref:ct(Le,Ue),role:"button",tabIndex:-1,onPointerDown:Ee(J.onPointerDown,Nt=>{Nt.button!==0||nt||q(Nt)}),onPointerLeave:Ee(J.onPointerLeave,ge.stop),onPointerUp:Ee(J.onPointerUp,ge.stop),disabled:nt,"aria-disabled":Nr(nt)}},[Z.isAtMin,r,q,ge.stop,f]),Ze=g.useCallback((J={},Le=null)=>{var nt,Nt,de,Ae;return{name:k,inputMode:x,type:"text",pattern:y,"aria-labelledby":M,"aria-label":P,"aria-describedby":I,id:j,disabled:f,...J,readOnly:(nt=J.readOnly)!=null?nt:u,"aria-readonly":(Nt=J.readOnly)!=null?Nt:u,"aria-required":(de=J.required)!=null?de:p,required:(Ae=J.required)!=null?Ae:p,ref:ct(se,Le),value:me(Z.value),role:"spinbutton","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":Number.isNaN(Z.valueAsNumber)?void 0:Z.valueAsNumber,"aria-invalid":Nr(h??Z.isOutOfRange),"aria-valuetext":Rt,autoComplete:"off",autoCorrect:"off",onChange:Ee(J.onChange,Te),onKeyDown:Ee(J.onKeyDown,Be),onFocus:Ee(J.onFocus,et,()=>Pe(!0)),onBlur:Ee(J.onBlur,X,le)}},[k,x,y,M,P,me,I,j,f,p,u,h,Z.value,Z.valueAsNumber,Z.isOutOfRange,o,s,Rt,Te,Be,et,X,le]);return{value:me(Z.value),valueAsNumber:Z.valueAsNumber,isFocused:Ie,isDisabled:f,isReadOnly:u,getIncrementButtonProps:ie,getDecrementButtonProps:Re,getInputProps:Ze,htmlProps:Q}}var[O7,Mc]=kt({name:"NumberInputStylesContext",errorMessage:`useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[z7,Rh]=kt({name:"NumberInputContext",errorMessage:"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within "}),Nh=ue(function(t,n){const r=un("NumberInput",t),o=At(t),s=lh(o),{htmlProps:c,...u}=A7(s),f=g.useMemo(()=>u,[u]);return l.jsx(z7,{value:f,children:l.jsx(O7,{value:r,children:l.jsx(ne.div,{...c,ref:n,className:ze("chakra-numberinput",t.className),__css:{position:"relative",zIndex:0,...r.root}})})})});Nh.displayName="NumberInput";var Fh=ue(function(t,n){const r=Mc();return l.jsx(ne.div,{"aria-hidden":!0,ref:n,...t,__css:{display:"flex",flexDirection:"column",position:"absolute",top:"0",insetEnd:"0px",margin:"1px",height:"calc(100% - 2px)",zIndex:1,...r.stepperGroup}})});Fh.displayName="NumberInputStepper";var Lh=ue(function(t,n){const{getInputProps:r}=Rh(),o=r(t,n),s=Mc();return l.jsx(ne.input,{...o,className:ze("chakra-numberinput__field",t.className),__css:{width:"100%",...s.field}})});Lh.displayName="NumberInputField";var Xy=ne("div",{baseStyle:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,transitionProperty:"common",transitionDuration:"normal",userSelect:"none",cursor:"pointer",lineHeight:"normal"}}),Bh=ue(function(t,n){var r;const o=Mc(),{getDecrementButtonProps:s}=Rh(),c=s(t,n);return l.jsx(Xy,{...c,__css:o.stepper,children:(r=t.children)!=null?r:l.jsx(k7,{})})});Bh.displayName="NumberDecrementStepper";var Hh=ue(function(t,n){var r;const{getIncrementButtonProps:o}=Rh(),s=o(t,n),c=Mc();return l.jsx(Xy,{...s,__css:c.stepper,children:(r=t.children)!=null?r:l.jsx(E7,{})})});Hh.displayName="NumberIncrementStepper";var[R7,ps]=kt({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[N7,Wh]=kt({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function Vh(e){const t=g.Children.only(e.children),{getTriggerProps:n}=ps();return g.cloneElement(t,n(t.props,t.ref))}Vh.displayName="PopoverTrigger";var Ii={click:"click",hover:"hover"};function F7(e={}){const{closeOnBlur:t=!0,closeOnEsc:n=!0,initialFocusRef:r,id:o,returnFocusOnClose:s=!0,autoFocus:c=!0,arrowSize:u,arrowShadowColor:f,trigger:p=Ii.click,openDelay:h=200,closeDelay:y=200,isLazy:x,lazyBehavior:S="unmount",computePositionOnMount:j,...C}=e,{isOpen:w,onClose:k,onOpen:I,onToggle:P}=_h(e),M=g.useRef(null),T=g.useRef(null),D=g.useRef(null),_=g.useRef(!1),R=g.useRef(!1);w&&(R.current=!0);const[V,F]=g.useState(!1),[B,Q]=g.useState(!1),U=g.useId(),X=o??U,[te,re,$,Z]=["popover-trigger","popover-content","popover-header","popover-body"].map(Te=>`${Te}-${X}`),{referenceRef:fe,getArrowProps:Se,getPopperProps:Me,getArrowInnerProps:Ie,forceUpdate:Pe}=Th({...C,enabled:w||!!j}),he=zy({isOpen:w,ref:D});u5({enabled:w,ref:T}),jy(D,{focusRef:T,visible:w,shouldFocus:s&&p===Ii.click}),G6(D,{focusRef:r,visible:w,shouldFocus:c&&p===Ii.click});const se=Dh({wasSelected:R.current,enabled:x,mode:S,isSelected:he.present}),Ne=g.useCallback((Te={},et=null)=>{const Be={...Te,style:{...Te.style,transformOrigin:Ht.transformOrigin.varRef,[Ht.arrowSize.var]:u?`${u}px`:void 0,[Ht.arrowShadowColor.var]:f},ref:ct(D,et),children:se?Te.children:null,id:re,tabIndex:-1,role:"dialog",onKeyDown:Ee(Te.onKeyDown,vt=>{n&&vt.key==="Escape"&&k()}),onBlur:Ee(Te.onBlur,vt=>{const Rt=Dg(vt),N=Id(D.current,Rt),le=Id(T.current,Rt);w&&t&&(!N&&!le)&&k()}),"aria-labelledby":V?$:void 0,"aria-describedby":B?Z:void 0};return p===Ii.hover&&(Be.role="tooltip",Be.onMouseEnter=Ee(Te.onMouseEnter,()=>{_.current=!0}),Be.onMouseLeave=Ee(Te.onMouseLeave,vt=>{vt.nativeEvent.relatedTarget!==null&&(_.current=!1,setTimeout(()=>k(),y))})),Be},[se,re,V,$,B,Z,p,n,k,w,t,y,f,u]),Ve=g.useCallback((Te={},et=null)=>Me({...Te,style:{visibility:w?"visible":"hidden",...Te.style}},et),[w,Me]),Ue=g.useCallback((Te,et=null)=>({...Te,ref:ct(et,M,fe)}),[M,fe]),$e=g.useRef(),Qe=g.useRef(),me=g.useCallback(Te=>{M.current==null&&fe(Te)},[fe]),De=g.useCallback((Te={},et=null)=>{const Be={...Te,ref:ct(T,et,me),id:te,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":re};return p===Ii.click&&(Be.onClick=Ee(Te.onClick,P)),p===Ii.hover&&(Be.onFocus=Ee(Te.onFocus,()=>{$e.current===void 0&&I()}),Be.onBlur=Ee(Te.onBlur,vt=>{const Rt=Dg(vt),N=!Id(D.current,Rt);w&&t&&N&&k()}),Be.onKeyDown=Ee(Te.onKeyDown,vt=>{vt.key==="Escape"&&k()}),Be.onMouseEnter=Ee(Te.onMouseEnter,()=>{_.current=!0,$e.current=window.setTimeout(()=>I(),h)}),Be.onMouseLeave=Ee(Te.onMouseLeave,()=>{_.current=!1,$e.current&&(clearTimeout($e.current),$e.current=void 0),Qe.current=window.setTimeout(()=>{_.current===!1&&k()},y)})),Be},[te,w,re,p,me,P,I,t,k,h,y]);g.useEffect(()=>()=>{$e.current&&clearTimeout($e.current),Qe.current&&clearTimeout(Qe.current)},[]);const Ge=g.useCallback((Te={},et=null)=>({...Te,id:$,ref:ct(et,Be=>{F(!!Be)})}),[$]),ge=g.useCallback((Te={},et=null)=>({...Te,id:Z,ref:ct(et,Be=>{Q(!!Be)})}),[Z]);return{forceUpdate:Pe,isOpen:w,onAnimationComplete:he.onComplete,onClose:k,getAnchorProps:Ue,getArrowProps:Se,getArrowInnerProps:Ie,getPopoverPositionerProps:Ve,getPopoverProps:Ne,getTriggerProps:De,getHeaderProps:Ge,getBodyProps:ge}}function Id(e,t){return e===t||(e==null?void 0:e.contains(t))}function Dg(e){var t;const n=e.currentTarget.ownerDocument.activeElement;return(t=e.relatedTarget)!=null?t:n}function Uh(e){const t=un("Popover",e),{children:n,...r}=At(e),o=ta(),s=F7({...r,direction:o.direction});return l.jsx(R7,{value:s,children:l.jsx(N7,{value:t,children:b1(n,{isOpen:s.isOpen,onClose:s.onClose,forceUpdate:s.forceUpdate})})})}Uh.displayName="Popover";function $h(e){var t;const{bg:n,bgColor:r,backgroundColor:o,shadow:s,boxShadow:c}=e,{getArrowProps:u,getArrowInnerProps:f}=ps(),p=Wh(),h=(t=n??r)!=null?t:o,y=s??c;return l.jsx(ne.div,{...u(),className:"chakra-popover__arrow-positioner",children:l.jsx(ne.div,{className:ze("chakra-popover__arrow",e.className),...f(e),__css:{"--popper-arrow-bg":h?`colors.${h}, ${h}`:void 0,"--popper-arrow-shadow":y?`shadows.${y}, ${y}`:void 0,...p.arrow}})})}$h.displayName="PopoverArrow";var Qy=ue(function(t,n){const{getBodyProps:r}=ps(),o=Wh();return l.jsx(ne.div,{...r(t,n),className:ze("chakra-popover__body",t.className),__css:o.body})});Qy.displayName="PopoverBody";function L7(e){if(e)return{enter:{...e.enter,visibility:"visible"},exit:{...e.exit,transitionEnd:{visibility:"hidden"}}}}var B7={exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}},H7=ne(ar.section),Zy=ue(function(t,n){const{variants:r=B7,...o}=t,{isOpen:s}=ps();return l.jsx(H7,{ref:n,variants:L7(r),initial:!1,animate:s?"enter":"exit",...o})});Zy.displayName="PopoverTransition";var Gh=ue(function(t,n){const{rootProps:r,motionProps:o,...s}=t,{getPopoverProps:c,getPopoverPositionerProps:u,onAnimationComplete:f}=ps(),p=Wh(),h={position:"relative",display:"flex",flexDirection:"column",...p.content};return l.jsx(ne.div,{...u(r),__css:p.popper,className:"chakra-popover__popper",children:l.jsx(Zy,{...o,...c(s,n),onAnimationComplete:xc(f,s.onAnimationComplete),className:ze("chakra-popover__content",t.className),__css:h})})});Gh.displayName="PopoverContent";function W7(e,t,n){return(e-t)*100/(n-t)}ei({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});ei({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var V7=ei({"0%":{left:"-40%"},"100%":{left:"100%"}}),U7=ei({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function $7(e){const{value:t=0,min:n,max:r,valueText:o,getValueText:s,isIndeterminate:c,role:u="progressbar"}=e,f=W7(t,n,r);return{bind:{"data-indeterminate":c?"":void 0,"aria-valuemax":r,"aria-valuemin":n,"aria-valuenow":c?void 0:t,"aria-valuetext":(()=>{if(t!=null)return typeof s=="function"?s(t,f):o})(),role:u},percent:f,value:t}}var[G7,q7]=kt({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Y7=ue((e,t)=>{const{min:n,max:r,value:o,isIndeterminate:s,role:c,...u}=e,f=$7({value:o,min:n,max:r,isIndeterminate:s,role:c}),h={height:"100%",...q7().filledTrack};return l.jsx(ne.div,{ref:t,style:{width:`${f.percent}%`,...u.style},...f.bind,...u,__css:h})}),Jy=ue((e,t)=>{var n;const{value:r,min:o=0,max:s=100,hasStripe:c,isAnimated:u,children:f,borderRadius:p,isIndeterminate:h,"aria-label":y,"aria-labelledby":x,"aria-valuetext":S,title:j,role:C,...w}=At(e),k=un("Progress",e),I=p??((n=k.track)==null?void 0:n.borderRadius),P={animation:`${U7} 1s linear infinite`},D={...!h&&c&&u&&P,...h&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${V7} 1s ease infinite normal none running`}},_={overflow:"hidden",position:"relative",...k.track};return l.jsx(ne.div,{ref:t,borderRadius:I,__css:_,...w,children:l.jsxs(G7,{value:k,children:[l.jsx(Y7,{"aria-label":y,"aria-labelledby":x,"aria-valuetext":S,min:o,max:s,value:r,isIndeterminate:h,css:D,borderRadius:I,title:j,role:C}),f]})})});Jy.displayName="Progress";function K7(e){return e&&Qd(e)&&Qd(e.target)}function X7(e={}){const{onChange:t,value:n,defaultValue:r,name:o,isDisabled:s,isFocusable:c,isNative:u,...f}=e,[p,h]=g.useState(r||""),y=typeof n<"u",x=y?n:p,S=g.useRef(null),j=g.useCallback(()=>{const T=S.current;if(!T)return;let D="input:not(:disabled):checked";const _=T.querySelector(D);if(_){_.focus();return}D="input:not(:disabled)";const R=T.querySelector(D);R==null||R.focus()},[]),w=`radio-${g.useId()}`,k=o||w,I=g.useCallback(T=>{const D=K7(T)?T.target.value:T;y||h(D),t==null||t(String(D))},[t,y]),P=g.useCallback((T={},D=null)=>({...T,ref:ct(D,S),role:"radiogroup"}),[]),M=g.useCallback((T={},D=null)=>({...T,ref:D,name:k,[u?"checked":"isChecked"]:x!=null?T.value===x:void 0,onChange(R){I(R)},"data-radiogroup":!0}),[u,k,I,x]);return{getRootProps:P,getRadioProps:M,name:k,ref:S,focus:j,setValue:h,value:x,onChange:I,isDisabled:s,isFocusable:c,htmlProps:f}}var[Q7,ex]=kt({name:"RadioGroupContext",strict:!1}),Qa=ue((e,t)=>{const{colorScheme:n,size:r,variant:o,children:s,className:c,isDisabled:u,isFocusable:f,...p}=e,{value:h,onChange:y,getRootProps:x,name:S,htmlProps:j}=X7(p),C=g.useMemo(()=>({name:S,size:r,onChange:y,colorScheme:n,value:h,variant:o,isDisabled:u,isFocusable:f}),[S,r,y,n,h,o,u,f]);return l.jsx(Q7,{value:C,children:l.jsx(ne.div,{...x(j,t),className:ze("chakra-radio-group",c),children:s})})});Qa.displayName="RadioGroup";var Z7={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"};function J7(e={}){const{defaultChecked:t,isChecked:n,isFocusable:r,isDisabled:o,isReadOnly:s,isRequired:c,onChange:u,isInvalid:f,name:p,value:h,id:y,"data-radiogroup":x,"aria-describedby":S,...j}=e,C=`radio-${g.useId()}`,w=ri(),I=!!ex()||!!x;let M=!!w&&!I?w.id:C;M=y??M;const T=o??(w==null?void 0:w.isDisabled),D=s??(w==null?void 0:w.isReadOnly),_=c??(w==null?void 0:w.isRequired),R=f??(w==null?void 0:w.isInvalid),[V,F]=g.useState(!1),[B,Q]=g.useState(!1),[U,X]=g.useState(!1),[te,re]=g.useState(!1),[$,Z]=g.useState(Boolean(t)),fe=typeof n<"u",Se=fe?n:$;g.useEffect(()=>j2(F),[]);const Me=g.useCallback(me=>{if(D||T){me.preventDefault();return}fe||Z(me.target.checked),u==null||u(me)},[fe,T,D,u]),Ie=g.useCallback(me=>{me.key===" "&&re(!0)},[re]),Pe=g.useCallback(me=>{me.key===" "&&re(!1)},[re]),he=g.useCallback((me={},De=null)=>({...me,ref:De,"data-active":qe(te),"data-hover":qe(U),"data-disabled":qe(T),"data-invalid":qe(R),"data-checked":qe(Se),"data-focus":qe(B),"data-focus-visible":qe(B&&V),"data-readonly":qe(D),"aria-hidden":!0,onMouseDown:Ee(me.onMouseDown,()=>re(!0)),onMouseUp:Ee(me.onMouseUp,()=>re(!1)),onMouseEnter:Ee(me.onMouseEnter,()=>X(!0)),onMouseLeave:Ee(me.onMouseLeave,()=>X(!1))}),[te,U,T,R,Se,B,D,V]),{onFocus:se,onBlur:Ne}=w??{},Ve=g.useCallback((me={},De=null)=>{const Ge=T&&!r;return{...me,id:M,ref:De,type:"radio",name:p,value:h,onChange:Ee(me.onChange,Me),onBlur:Ee(Ne,me.onBlur,()=>Q(!1)),onFocus:Ee(se,me.onFocus,()=>Q(!0)),onKeyDown:Ee(me.onKeyDown,Ie),onKeyUp:Ee(me.onKeyUp,Pe),checked:Se,disabled:Ge,readOnly:D,required:_,"aria-invalid":Nr(R),"aria-disabled":Nr(Ge),"aria-required":Nr(_),"data-readonly":qe(D),"aria-describedby":S,style:Z7}},[T,r,M,p,h,Me,Ne,se,Ie,Pe,Se,D,_,R,S]);return{state:{isInvalid:R,isFocused:B,isChecked:Se,isActive:te,isHovered:U,isDisabled:T,isReadOnly:D,isRequired:_},getCheckboxProps:he,getInputProps:Ve,getLabelProps:(me={},De=null)=>({...me,ref:De,onMouseDown:Ee(me.onMouseDown,Ag),onTouchStart:Ee(me.onTouchStart,Ag),"data-disabled":qe(T),"data-checked":qe(Se),"data-invalid":qe(R)}),getRootProps:(me,De=null)=>({...me,ref:De,"data-disabled":qe(T),"data-checked":qe(Se),"data-invalid":qe(R)}),htmlProps:j}}function Ag(e){e.preventDefault(),e.stopPropagation()}function e8(e,t){const n={},r={};for(const[o,s]of Object.entries(e))t.includes(o)?n[o]=s:r[o]=s;return[n,r]}var vn=ue((e,t)=>{var n;const r=ex(),{onChange:o,value:s}=e,c=un("Radio",{...r,...e}),u=At(e),{spacing:f="0.5rem",children:p,isDisabled:h=r==null?void 0:r.isDisabled,isFocusable:y=r==null?void 0:r.isFocusable,inputProps:x,...S}=u;let j=e.isChecked;(r==null?void 0:r.value)!=null&&s!=null&&(j=r.value===s);let C=o;r!=null&&r.onChange&&s!=null&&(C=xc(r.onChange,o));const w=(n=e==null?void 0:e.name)!=null?n:r==null?void 0:r.name,{getInputProps:k,getCheckboxProps:I,getLabelProps:P,getRootProps:M,htmlProps:T}=J7({...S,isChecked:j,isFocusable:y,isDisabled:h,onChange:C,name:w}),[D,_]=e8(T,S1),R=I(_),V=k(x,t),F=P(),B=Object.assign({},D,M()),Q={display:"inline-flex",alignItems:"center",verticalAlign:"top",cursor:"pointer",position:"relative",...c.container},U={display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,...c.control},X={userSelect:"none",marginStart:f,...c.label};return l.jsxs(ne.label,{className:"chakra-radio",...B,__css:Q,children:[l.jsx("input",{className:"chakra-radio__input",...V}),l.jsx(ne.span,{className:"chakra-radio__control",...R,__css:U}),p&&l.jsx(ne.span,{className:"chakra-radio__label",...F,__css:X,children:p})]})});vn.displayName="Radio";var tx=ue(function(t,n){const{children:r,placeholder:o,className:s,...c}=t;return l.jsxs(ne.select,{...c,ref:n,className:ze("chakra-select",s),children:[o&&l.jsx("option",{value:"",children:o}),r]})});tx.displayName="SelectField";function t8(e,t){const n={},r={};for(const[o,s]of Object.entries(e))t.includes(o)?n[o]=s:r[o]=s;return[n,r]}var nx=ue((e,t)=>{var n;const r=un("Select",e),{rootProps:o,placeholder:s,icon:c,color:u,height:f,h:p,minH:h,minHeight:y,iconColor:x,iconSize:S,...j}=At(e),[C,w]=t8(j,S1),k=sh(w),I={width:"100%",height:"fit-content",position:"relative",color:u},P={paddingEnd:"2rem",...r.field,_focus:{zIndex:"unset",...(n=r.field)==null?void 0:n._focus}};return l.jsxs(ne.div,{className:"chakra-select__wrapper",__css:I,...C,...o,children:[l.jsx(tx,{ref:t,height:p??f,minH:h??y,placeholder:s,...k,__css:P,children:e.children}),l.jsx(rx,{"data-disabled":qe(k.disabled),...(x||u)&&{color:x||u},__css:r.icon,...S&&{fontSize:S},children:c})]})});nx.displayName="Select";var n8=e=>l.jsx("svg",{viewBox:"0 0 24 24",...e,children:l.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),r8=ne("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),rx=e=>{const{children:t=l.jsx(n8,{}),...n}=e,r=g.cloneElement(t,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return l.jsx(r8,{...n,className:"chakra-select__icon-wrapper",children:g.isValidElement(t)?r:null})};rx.displayName="SelectIcon";var Mi=e=>e?"":void 0,Md=e=>e?!0:void 0,ms=(...e)=>e.filter(Boolean).join(" ");function Td(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function El(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}var $l={width:0,height:0},Pl=e=>e||$l;function o8(e){const{orientation:t,thumbPercents:n,thumbRects:r,isReversed:o}=e,s=C=>{var w;const k=(w=r[C])!=null?w:$l;return{position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none",...El({orientation:t,vertical:{bottom:`calc(${n[C]}% - ${k.height/2}px)`},horizontal:{left:`calc(${n[C]}% - ${k.width/2}px)`}})}},c=t==="vertical"?r.reduce((C,w)=>Pl(C).height>Pl(w).height?C:w,$l):r.reduce((C,w)=>Pl(C).width>Pl(w).width?C:w,$l),u={position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0,...El({orientation:t,vertical:c?{paddingLeft:c.width/2,paddingRight:c.width/2}:{},horizontal:c?{paddingTop:c.height/2,paddingBottom:c.height/2}:{}})},f={position:"absolute",...El({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}})},p=n.length===1,h=[0,o?100-n[0]:n[0]],y=p?h:n;let x=y[0];!p&&o&&(x=100-x);const S=Math.abs(y[y.length-1]-y[0]),j={...f,...El({orientation:t,vertical:o?{height:`${S}%`,top:`${x}%`}:{height:`${S}%`,bottom:`${x}%`},horizontal:o?{width:`${S}%`,right:`${x}%`}:{width:`${S}%`,left:`${x}%`}})};return{trackStyle:f,innerTrackStyle:j,rootStyle:u,getThumbStyle:s}}function i8(e){const{isReversed:t,direction:n,orientation:r}=e;return n==="ltr"||r==="vertical"?t:!t}function a8(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function s8(e){const t=c8(e);return typeof t.PointerEvent<"u"&&e instanceof t.PointerEvent?e.pointerType==="mouse":e instanceof t.MouseEvent}function ox(e){return!!e.touches}function l8(e){return ox(e)&&e.touches.length>1}function c8(e){var t;return(t=e.view)!=null?t:window}function u8(e,t="page"){const n=e.touches[0]||e.changedTouches[0];return{x:n[`${t}X`],y:n[`${t}Y`]}}function d8(e,t="page"){return{x:e[`${t}X`],y:e[`${t}Y`]}}function ix(e,t="page"){return ox(e)?u8(e,t):d8(e,t)}function f8(e){return t=>{const n=s8(t);(!n||n&&t.button===0)&&e(t)}}function h8(e,t=!1){function n(o){e(o,{point:ix(o)})}return t?f8(n):n}function Gl(e,t,n,r){return a8(e,t,h8(n,t==="pointerdown"),r)}var p8=Object.defineProperty,m8=(e,t,n)=>t in e?p8(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jn=(e,t,n)=>(m8(e,typeof t!="symbol"?t+"":t,n),n),v8=class{constructor(e,t,n){Jn(this,"history",[]),Jn(this,"startEvent",null),Jn(this,"lastEvent",null),Jn(this,"lastEventInfo",null),Jn(this,"handlers",{}),Jn(this,"removeListeners",()=>{}),Jn(this,"threshold",3),Jn(this,"win"),Jn(this,"updatePoint",()=>{if(!(this.lastEvent&&this.lastEventInfo))return;const u=_d(this.lastEventInfo,this.history),f=this.startEvent!==null,p=b8(u.offset,{x:0,y:0})>=this.threshold;if(!f&&!p)return;const{timestamp:h}=Gv();this.history.push({...u.point,timestamp:h});const{onStart:y,onMove:x}=this.handlers;f||(y==null||y(this.lastEvent,u),this.startEvent=this.lastEvent),x==null||x(this.lastEvent,u)}),Jn(this,"onPointerMove",(u,f)=>{this.lastEvent=u,this.lastEventInfo=f,VC.update(this.updatePoint,!0)}),Jn(this,"onPointerUp",(u,f)=>{const p=_d(f,this.history),{onEnd:h,onSessionEnd:y}=this.handlers;y==null||y(u,p),this.end(),!(!h||!this.startEvent)&&(h==null||h(u,p))});var r;if(this.win=(r=e.view)!=null?r:window,l8(e))return;this.handlers=t,n&&(this.threshold=n),e.stopPropagation(),e.preventDefault();const o={point:ix(e)},{timestamp:s}=Gv();this.history=[{...o.point,timestamp:s}];const{onSessionStart:c}=t;c==null||c(e,_d(o,this.history)),this.removeListeners=x8(Gl(this.win,"pointermove",this.onPointerMove),Gl(this.win,"pointerup",this.onPointerUp),Gl(this.win,"pointercancel",this.onPointerUp))}updateHandlers(e){this.handlers=e}end(){var e;(e=this.removeListeners)==null||e.call(this),UC.update(this.updatePoint)}};function Og(e,t){return{x:e.x-t.x,y:e.y-t.y}}function _d(e,t){return{point:e.point,delta:Og(e.point,t[t.length-1]),offset:Og(e.point,t[0]),velocity:y8(t,.1)}}var g8=e=>e*1e3;function y8(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const o=e[e.length-1];for(;n>=0&&(r=e[n],!(o.timestamp-r.timestamp>g8(t)));)n--;if(!r)return{x:0,y:0};const s=(o.timestamp-r.timestamp)/1e3;if(s===0)return{x:0,y:0};const c={x:(o.x-r.x)/s,y:(o.y-r.y)/s};return c.x===1/0&&(c.x=0),c.y===1/0&&(c.y=0),c}function x8(...e){return t=>e.reduce((n,r)=>r(n),t)}function Dd(e,t){return Math.abs(e-t)}function zg(e){return"x"in e&&"y"in e}function b8(e,t){if(typeof e=="number"&&typeof t=="number")return Dd(e,t);if(zg(e)&&zg(t)){const n=Dd(e.x,t.x),r=Dd(e.y,t.y);return Math.sqrt(n**2+r**2)}return 0}function ax(e){const t=g.useRef(null);return t.current=e,t}function S8(e,t){const{onPan:n,onPanStart:r,onPanEnd:o,onPanSessionStart:s,onPanSessionEnd:c,threshold:u}=t,f=Boolean(n||r||o||s||c),p=g.useRef(null),h=ax({onSessionStart:s,onSessionEnd:c,onStart:r,onMove:n,onEnd(y,x){p.current=null,o==null||o(y,x)}});g.useEffect(()=>{var y;(y=p.current)==null||y.updateHandlers(h.current)}),g.useEffect(()=>{const y=e.current;if(!y||!f)return;function x(S){p.current=new v8(S,h.current,u)}return Gl(y,"pointerdown",x)},[e,f,h,u]),g.useEffect(()=>()=>{var y;(y=p.current)==null||y.end(),p.current=null},[])}function C8(e,t){var n;if(!e){t(void 0);return}t({width:e.offsetWidth,height:e.offsetHeight});const r=(n=e.ownerDocument.defaultView)!=null?n:window,o=new r.ResizeObserver(s=>{if(!Array.isArray(s)||!s.length)return;const[c]=s;let u,f;if("borderBoxSize"in c){const p=c.borderBoxSize,h=Array.isArray(p)?p[0]:p;u=h.inlineSize,f=h.blockSize}else u=e.offsetWidth,f=e.offsetHeight;t({width:u,height:f})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}var w8=Boolean(globalThis==null?void 0:globalThis.document)?g.useLayoutEffect:g.useEffect;function j8(e,t){var n,r;if(!e||!e.parentElement)return;const o=(r=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?r:window,s=new o.MutationObserver(()=>{t()});return s.observe(e.parentElement,{childList:!0}),()=>{s.disconnect()}}function k8({getNodes:e,observeMutation:t=!0}){const[n,r]=g.useState([]),[o,s]=g.useState(0);return w8(()=>{const c=e(),u=c.map((f,p)=>C8(f,h=>{r(y=>[...y.slice(0,p),h,...y.slice(p+1)])}));if(t){const f=c[0];u.push(j8(f,()=>{s(p=>p+1)}))}return()=>{u.forEach(f=>{f==null||f()})}},[o]),n}function E8(e){return typeof e=="object"&&e!==null&&"current"in e}function P8(e){const[t]=k8({observeMutation:!1,getNodes(){return[E8(e)?e.current:e]}});return t}function I8(e){var t;const{min:n=0,max:r=100,onChange:o,value:s,defaultValue:c,isReversed:u,direction:f="ltr",orientation:p="horizontal",id:h,isDisabled:y,isReadOnly:x,onChangeStart:S,onChangeEnd:j,step:C=1,getAriaValueText:w,"aria-valuetext":k,"aria-label":I,"aria-labelledby":P,name:M,focusThumbOnChange:T=!0,...D}=e,_=Wt(S),R=Wt(j),V=Wt(w),F=i8({isReversed:u,direction:f,orientation:p}),[B,Q]=rh({value:s,defaultValue:c??T8(n,r),onChange:o}),[U,X]=g.useState(!1),[te,re]=g.useState(!1),$=!(y||x),Z=(r-n)/10,fe=C||(r-n)/100,Se=Hl(B,n,r),Me=r-Se+n,Pe=rg(F?Me:Se,n,r),he=p==="vertical",se=ax({min:n,max:r,step:C,isDisabled:y,value:Se,isInteractive:$,isReversed:F,isVertical:he,eventSource:null,focusThumbOnChange:T,orientation:p}),Ne=g.useRef(null),Ve=g.useRef(null),Ue=g.useRef(null),$e=g.useId(),Qe=h??$e,[me,De]=[`slider-thumb-${Qe}`,`slider-track-${Qe}`],Ge=g.useCallback(de=>{var Ae,dn;if(!Ne.current)return;const Vt=se.current;Vt.eventSource="pointer";const fn=Ne.current.getBoundingClientRect(),{clientX:sr,clientY:ko}=(dn=(Ae=de.touches)==null?void 0:Ae[0])!=null?dn:de,la=he?fn.bottom-ko:sr-fn.left,Xc=he?fn.height:fn.width;let ca=la/Xc;F&&(ca=1-ca);let Eo=n5(ca,Vt.min,Vt.max);return Vt.step&&(Eo=parseFloat(og(Eo,Vt.min,Vt.step))),Eo=Hl(Eo,Vt.min,Vt.max),Eo},[he,F,se]),ge=g.useCallback(de=>{const Ae=se.current;Ae.isInteractive&&(de=parseFloat(og(de,Ae.min,fe)),de=Hl(de,Ae.min,Ae.max),Q(de))},[fe,Q,se]),Te=g.useMemo(()=>({stepUp(de=fe){const Ae=F?Se-de:Se+de;ge(Ae)},stepDown(de=fe){const Ae=F?Se+de:Se-de;ge(Ae)},reset(){ge(c||0)},stepTo(de){ge(de)}}),[ge,F,Se,fe,c]),et=g.useCallback(de=>{const Ae=se.current,Vt={ArrowRight:()=>Te.stepUp(),ArrowUp:()=>Te.stepUp(),ArrowLeft:()=>Te.stepDown(),ArrowDown:()=>Te.stepDown(),PageUp:()=>Te.stepUp(Z),PageDown:()=>Te.stepDown(Z),Home:()=>ge(Ae.min),End:()=>ge(Ae.max)}[de.key];Vt&&(de.preventDefault(),de.stopPropagation(),Vt(de),Ae.eventSource="keyboard")},[Te,ge,Z,se]),Be=(t=V==null?void 0:V(Se))!=null?t:k,vt=P8(Ve),{getThumbStyle:Rt,rootStyle:N,trackStyle:le,innerTrackStyle:ye}=g.useMemo(()=>{const de=se.current,Ae=vt??{width:0,height:0};return o8({isReversed:F,orientation:de.orientation,thumbRects:[Ae],thumbPercents:[Pe]})},[F,vt,Pe,se]),je=g.useCallback(()=>{se.current.focusThumbOnChange&&setTimeout(()=>{var Ae;return(Ae=Ve.current)==null?void 0:Ae.focus()})},[se]);ti(()=>{const de=se.current;je(),de.eventSource==="keyboard"&&(R==null||R(de.value))},[Se,R]);function q(de){const Ae=Ge(de);Ae!=null&&Ae!==se.current.value&&Q(Ae)}S8(Ue,{onPanSessionStart(de){const Ae=se.current;Ae.isInteractive&&(X(!0),je(),q(de),_==null||_(Ae.value))},onPanSessionEnd(){const de=se.current;de.isInteractive&&(X(!1),R==null||R(de.value))},onPan(de){se.current.isInteractive&&q(de)}});const ie=g.useCallback((de={},Ae=null)=>({...de,...D,ref:ct(Ae,Ue),tabIndex:-1,"aria-disabled":Md(y),"data-focused":Mi(te),style:{...de.style,...N}}),[D,y,te,N]),Re=g.useCallback((de={},Ae=null)=>({...de,ref:ct(Ae,Ne),id:De,"data-disabled":Mi(y),style:{...de.style,...le}}),[y,De,le]),Ze=g.useCallback((de={},Ae=null)=>({...de,ref:Ae,style:{...de.style,...ye}}),[ye]),J=g.useCallback((de={},Ae=null)=>({...de,ref:ct(Ae,Ve),role:"slider",tabIndex:$?0:void 0,id:me,"data-active":Mi(U),"aria-valuetext":Be,"aria-valuemin":n,"aria-valuemax":r,"aria-valuenow":Se,"aria-orientation":p,"aria-disabled":Md(y),"aria-readonly":Md(x),"aria-label":I,"aria-labelledby":I?void 0:P,style:{...de.style,...Rt(0)},onKeyDown:Td(de.onKeyDown,et),onFocus:Td(de.onFocus,()=>re(!0)),onBlur:Td(de.onBlur,()=>re(!1))}),[$,me,U,Be,n,r,Se,p,y,x,I,P,Rt,et]),Le=g.useCallback((de,Ae=null)=>{const dn=!(de.valuer),Vt=Se>=de.value,fn=rg(de.value,n,r),sr={position:"absolute",pointerEvents:"none",...M8({orientation:p,vertical:{bottom:F?`${100-fn}%`:`${fn}%`},horizontal:{left:F?`${100-fn}%`:`${fn}%`}})};return{...de,ref:Ae,role:"presentation","aria-hidden":!0,"data-disabled":Mi(y),"data-invalid":Mi(!dn),"data-highlighted":Mi(Vt),style:{...de.style,...sr}}},[y,F,r,n,p,Se]),nt=g.useCallback((de={},Ae=null)=>({...de,ref:Ae,type:"hidden",value:Se,name:M}),[M,Se]);return{state:{value:Se,isFocused:te,isDragging:U},actions:Te,getRootProps:ie,getTrackProps:Re,getInnerTrackProps:Ze,getThumbProps:J,getMarkerProps:Le,getInputProps:nt}}function M8(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}function T8(e,t){return t"}),[D8,_c]=kt({name:"SliderStylesContext",hookName:"useSliderStyles",providerName:""}),sx=ue((e,t)=>{const n={orientation:"horizontal",...e},r=un("Slider",n),o=At(n),{direction:s}=ta();o.direction=s;const{getInputProps:c,getRootProps:u,...f}=I8(o),p=u(),h=c({},t);return l.jsx(_8,{value:f,children:l.jsx(D8,{value:r,children:l.jsxs(ne.div,{...p,className:ms("chakra-slider",n.className),__css:r.container,children:[n.children,l.jsx("input",{...h})]})})})});sx.displayName="Slider";var lx=ue((e,t)=>{const{getThumbProps:n}=Tc(),r=_c(),o=n(e,t);return l.jsx(ne.div,{...o,className:ms("chakra-slider__thumb",e.className),__css:r.thumb})});lx.displayName="SliderThumb";var cx=ue((e,t)=>{const{getTrackProps:n}=Tc(),r=_c(),o=n(e,t);return l.jsx(ne.div,{...o,className:ms("chakra-slider__track",e.className),__css:r.track})});cx.displayName="SliderTrack";var ux=ue((e,t)=>{const{getInnerTrackProps:n}=Tc(),r=_c(),o=n(e,t);return l.jsx(ne.div,{...o,className:ms("chakra-slider__filled-track",e.className),__css:r.filledTrack})});ux.displayName="SliderFilledTrack";var Tf=ue((e,t)=>{const{getMarkerProps:n}=Tc(),r=_c(),o=n(e,t);return l.jsx(ne.div,{...o,className:ms("chakra-slider__marker",e.className),__css:r.mark})});Tf.displayName="SliderMark";var dx=ue(function(t,n){const r=un("Switch",t),{spacing:o="0.5rem",children:s,...c}=At(t),{state:u,getInputProps:f,getCheckboxProps:p,getRootProps:h,getLabelProps:y}=k2(c),x=g.useMemo(()=>({display:"inline-block",position:"relative",verticalAlign:"middle",lineHeight:0,...r.container}),[r.container]),S=g.useMemo(()=>({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer",...r.track}),[r.track]),j=g.useMemo(()=>({userSelect:"none",marginStart:o,...r.label}),[o,r.label]);return l.jsxs(ne.label,{...h(),className:ze("chakra-switch",t.className),__css:x,children:[l.jsx("input",{className:"chakra-switch__input",...f({},n)}),l.jsx(ne.span,{...p(),className:"chakra-switch__track",__css:S,children:l.jsx(ne.span,{__css:r.thumb,className:"chakra-switch__thumb","data-checked":qe(u.isChecked),"data-hover":qe(u.isHovered)})}),s&&l.jsx(ne.span,{className:"chakra-switch__label",...y(),__css:j,children:s})]})});dx.displayName="Switch";var[A8,O8,z8,R8]=th();function N8(e){var t;const{defaultIndex:n,onChange:r,index:o,isManual:s,isLazy:c,lazyBehavior:u="unmount",orientation:f="horizontal",direction:p="ltr",...h}=e,[y,x]=g.useState(n??0),[S,j]=rh({defaultValue:n??0,value:o,onChange:r});g.useEffect(()=>{o!=null&&x(o)},[o]);const C=z8(),w=g.useId();return{id:`tabs-${(t=e.id)!=null?t:w}`,selectedIndex:S,focusedIndex:y,setSelectedIndex:j,setFocusedIndex:x,isManual:s,isLazy:c,lazyBehavior:u,orientation:f,descendants:C,direction:p,htmlProps:h}}var[F8,Dc]=kt({name:"TabsContext",errorMessage:"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within "});function L8(e){const{focusedIndex:t,orientation:n,direction:r}=Dc(),o=O8(),s=g.useCallback(c=>{const u=()=>{var I;const P=o.nextEnabled(t);P&&((I=P.node)==null||I.focus())},f=()=>{var I;const P=o.prevEnabled(t);P&&((I=P.node)==null||I.focus())},p=()=>{var I;const P=o.firstEnabled();P&&((I=P.node)==null||I.focus())},h=()=>{var I;const P=o.lastEnabled();P&&((I=P.node)==null||I.focus())},y=n==="horizontal",x=n==="vertical",S=c.key,j=r==="ltr"?"ArrowLeft":"ArrowRight",C=r==="ltr"?"ArrowRight":"ArrowLeft",k={[j]:()=>y&&f(),[C]:()=>y&&u(),ArrowDown:()=>x&&u(),ArrowUp:()=>x&&f(),Home:p,End:h}[S];k&&(c.preventDefault(),k(c))},[o,t,n,r]);return{...e,role:"tablist","aria-orientation":n,onKeyDown:Ee(e.onKeyDown,s)}}function B8(e){const{isDisabled:t,isFocusable:n,...r}=e,{setSelectedIndex:o,isManual:s,id:c,setFocusedIndex:u,selectedIndex:f}=Dc(),{index:p,register:h}=R8({disabled:t&&!n}),y=p===f,x=()=>{o(p)},S=()=>{u(p),!s&&!(t&&n)&&o(p)},j=wy({...r,ref:ct(h,e.ref),isDisabled:t,isFocusable:n,onClick:Ee(e.onClick,x)}),C="button";return{...j,id:fx(c,p),role:"tab",tabIndex:y?0:-1,type:C,"aria-selected":y,"aria-controls":hx(c,p),onFocus:t?void 0:Ee(e.onFocus,S)}}var[H8,W8]=kt({});function V8(e){const t=Dc(),{id:n,selectedIndex:r}=t,s=ah(e.children).map((c,u)=>g.createElement(H8,{key:u,value:{isSelected:u===r,id:hx(n,u),tabId:fx(n,u),selectedIndex:r}},c));return{...e,children:s}}function U8(e){const{children:t,...n}=e,{isLazy:r,lazyBehavior:o}=Dc(),{isSelected:s,id:c,tabId:u}=W8(),f=g.useRef(!1);s&&(f.current=!0);const p=Dh({wasSelected:f.current,isSelected:s,enabled:r,mode:o});return{tabIndex:0,...n,children:p?t:null,role:"tabpanel","aria-labelledby":u,hidden:!s,id:c}}function fx(e,t){return`${e}--tab-${t}`}function hx(e,t){return`${e}--tabpanel-${t}`}var[$8,Ac]=kt({name:"TabsStylesContext",errorMessage:`useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),px=ue(function(t,n){const r=un("Tabs",t),{children:o,className:s,...c}=At(t),{htmlProps:u,descendants:f,...p}=N8(c),h=g.useMemo(()=>p,[p]),{isFitted:y,...x}=u;return l.jsx(A8,{value:f,children:l.jsx(F8,{value:h,children:l.jsx($8,{value:r,children:l.jsx(ne.div,{className:ze("chakra-tabs",s),ref:n,...x,__css:r.root,children:o})})})})});px.displayName="Tabs";var mx=ue(function(t,n){const r=L8({...t,ref:n}),s={display:"flex",...Ac().tablist};return l.jsx(ne.div,{...r,className:ze("chakra-tabs__tablist",t.className),__css:s})});mx.displayName="TabList";var vx=ue(function(t,n){const r=U8({...t,ref:n}),o=Ac();return l.jsx(ne.div,{outline:"0",...r,className:ze("chakra-tabs__tab-panel",t.className),__css:o.tabpanel})});vx.displayName="TabPanel";var gx=ue(function(t,n){const r=V8(t),o=Ac();return l.jsx(ne.div,{...r,width:"100%",ref:n,className:ze("chakra-tabs__tab-panels",t.className),__css:o.tabpanels})});gx.displayName="TabPanels";var yx=ue(function(t,n){const r=Ac(),o=B8({...t,ref:n}),s={outline:"0",display:"flex",alignItems:"center",justifyContent:"center",...r.tab};return l.jsx(ne.button,{...o,className:ze("chakra-tabs__tab",t.className),__css:s})});yx.displayName="Tab";function G8(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var q8=["h","minH","height","minHeight"],qh=ue((e,t)=>{const n=yo("Textarea",e),{className:r,rows:o,...s}=At(e),c=sh(s),u=o?G8(n,q8):n;return l.jsx(ne.textarea,{ref:t,rows:o,...c,className:ze("chakra-textarea",r),__css:u})});qh.displayName="Textarea";var Y8={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},sc=e=>{var t;return((t=e.current)==null?void 0:t.ownerDocument)||document},_f=e=>{var t,n;return((n=(t=e.current)==null?void 0:t.ownerDocument)==null?void 0:n.defaultView)||window};function K8(e={}){const{openDelay:t=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:o,closeOnScroll:s,closeOnPointerDown:c=o,closeOnEsc:u=!0,onOpen:f,onClose:p,placement:h,id:y,isOpen:x,defaultIsOpen:S,arrowSize:j=10,arrowShadowColor:C,arrowPadding:w,modifiers:k,isDisabled:I,gutter:P,offset:M,direction:T,...D}=e,{isOpen:_,onOpen:R,onClose:V}=_h({isOpen:x,defaultIsOpen:S,onOpen:f,onClose:p}),{referenceRef:F,getPopperProps:B,getArrowInnerProps:Q,getArrowProps:U}=Th({enabled:_,placement:h,arrowPadding:w,modifiers:k,gutter:P,offset:M,direction:T}),X=g.useId(),re=`tooltip-${y??X}`,$=g.useRef(null),Z=g.useRef(),fe=g.useCallback(()=>{Z.current&&(clearTimeout(Z.current),Z.current=void 0)},[]),Se=g.useRef(),Me=g.useCallback(()=>{Se.current&&(clearTimeout(Se.current),Se.current=void 0)},[]),Ie=g.useCallback(()=>{Me(),V()},[V,Me]),Pe=X8($,Ie),he=g.useCallback(()=>{if(!I&&!Z.current){Pe();const De=_f($);Z.current=De.setTimeout(R,t)}},[Pe,I,R,t]),se=g.useCallback(()=>{fe();const De=_f($);Se.current=De.setTimeout(Ie,n)},[n,Ie,fe]),Ne=g.useCallback(()=>{_&&r&&se()},[r,se,_]),Ve=g.useCallback(()=>{_&&c&&se()},[c,se,_]),Ue=g.useCallback(De=>{_&&De.key==="Escape"&&se()},[_,se]);Go(()=>sc($),"keydown",u?Ue:void 0),Go(()=>sc($),"scroll",()=>{_&&s&&Ie()}),g.useEffect(()=>{I&&(fe(),_&&V())},[I,_,V,fe]),g.useEffect(()=>()=>{fe(),Me()},[fe,Me]),Go(()=>$.current,"pointerleave",se);const $e=g.useCallback((De={},Ge=null)=>({...De,ref:ct($,Ge,F),onPointerEnter:Ee(De.onPointerEnter,Te=>{Te.pointerType!=="touch"&&he()}),onClick:Ee(De.onClick,Ne),onPointerDown:Ee(De.onPointerDown,Ve),onFocus:Ee(De.onFocus,he),onBlur:Ee(De.onBlur,se),"aria-describedby":_?re:void 0}),[he,se,Ve,_,re,Ne,F]),Qe=g.useCallback((De={},Ge=null)=>B({...De,style:{...De.style,[Ht.arrowSize.var]:j?`${j}px`:void 0,[Ht.arrowShadowColor.var]:C}},Ge),[B,j,C]),me=g.useCallback((De={},Ge=null)=>{const ge={...De.style,position:"relative",transformOrigin:Ht.transformOrigin.varRef};return{ref:Ge,...D,...De,id:re,role:"tooltip",style:ge}},[D,re]);return{isOpen:_,show:he,hide:se,getTriggerProps:$e,getTooltipProps:me,getTooltipPositionerProps:Qe,getArrowProps:U,getArrowInnerProps:Q}}var Ad="chakra-ui:close-tooltip";function X8(e,t){return g.useEffect(()=>{const n=sc(e);return n.addEventListener(Ad,t),()=>n.removeEventListener(Ad,t)},[t,e]),()=>{const n=sc(e),r=_f(e);n.dispatchEvent(new r.CustomEvent(Ad))}}function Q8(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function Z8(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}var J8=ne(ar.div),Gt=ue((e,t)=>{var n,r;const o=yo("Tooltip",e),s=At(e),c=ta(),{children:u,label:f,shouldWrapChildren:p,"aria-label":h,hasArrow:y,bg:x,portalProps:S,background:j,backgroundColor:C,bgColor:w,motionProps:k,...I}=s,P=(r=(n=j??C)!=null?n:x)!=null?r:w;if(P){o.bg=P;const B=US(c,"colors",P);o[Ht.arrowBg.var]=B}const M=K8({...I,direction:c.direction}),T=typeof u=="string"||p;let D;if(T)D=l.jsx(ne.span,{display:"inline-block",tabIndex:0,...M.getTriggerProps(),children:u});else{const B=g.Children.only(u);D=g.cloneElement(B,M.getTriggerProps(B.props,B.ref))}const _=!!h,R=M.getTooltipProps({},t),V=_?Q8(R,["role","id"]):R,F=Z8(R,["role","id"]);return f?l.jsxs(l.Fragment,{children:[D,l.jsx(xo,{children:M.isOpen&&l.jsx($a,{...S,children:l.jsx(ne.div,{...M.getTooltipPositionerProps(),__css:{zIndex:o.zIndex,pointerEvents:"none"},children:l.jsxs(J8,{variants:Y8,initial:"exit",animate:"enter",exit:"exit",...k,...V,__css:o,children:[f,_&&l.jsx(ne.span,{srOnly:!0,...F,children:h}),y&&l.jsx(ne.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:l.jsx(ne.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:o.bg}})})]})})})})]}):l.jsx(l.Fragment,{children:u})});Gt.displayName="Tooltip";const Yh=g.createContext(null);let Rg;const Kh=()=>({setOpenUploader:e=>{e&&(Rg=e)},openUploader:Rg}),bt=pe(e=>e.ui,e=>$S[e.activeTab],{memoizeOptions:{equalityCheck:ee.isEqual}}),eE=pe(e=>e.ui,e=>e.activeTab,{memoizeOptions:{equalityCheck:ee.isEqual}}),Pr=pe(e=>e.ui,e=>e,{memoizeOptions:{equalityCheck:ee.isEqual}}),Ng=e=>async(t,n)=>{const{imageFile:r}=e,o=n(),s=bt(o),c=new FormData;c.append("file",r,r.name),c.append("data",JSON.stringify({kind:"init"}));const f=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:c})).json(),p={uuid:C1(),category:"user",...f};t(w1({image:p,category:"user"})),s==="unifiedCanvas"?t(bc(p)):s==="img2img"&&t(rs(p))};var tE=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["heic","image/heic"],["heif","image/heif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function vs(e,t){var n=nE(e);if(typeof n.path!="string"){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:typeof t=="string"?t:typeof r=="string"&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}function nE(e){var t=e.name,n=t&&t.lastIndexOf(".")!==-1;if(n&&!e.type){var r=t.split(".").pop().toLowerCase(),o=tE.get(r);o&&Object.defineProperty(e,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return e}var rE=[".DS_Store","Thumbs.db"];function oE(e){return na(this,void 0,void 0,function(){return ra(this,function(t){return lc(e)&&iE(e.dataTransfer)?[2,cE(e.dataTransfer,e.type)]:aE(e)?[2,sE(e)]:Array.isArray(e)&&e.every(function(n){return"getFile"in n&&typeof n.getFile=="function"})?[2,lE(e)]:[2,[]]})})}function iE(e){return lc(e)}function aE(e){return lc(e)&&lc(e.target)}function lc(e){return typeof e=="object"&&e!==null}function sE(e){return Df(e.target.files).map(function(t){return vs(t)})}function lE(e){return na(this,void 0,void 0,function(){var t;return ra(this,function(n){switch(n.label){case 0:return[4,Promise.all(e.map(function(r){return r.getFile()}))];case 1:return t=n.sent(),[2,t.map(function(r){return vs(r)})]}})})}function cE(e,t){return na(this,void 0,void 0,function(){var n,r;return ra(this,function(o){switch(o.label){case 0:return e.items?(n=Df(e.items).filter(function(s){return s.kind==="file"}),t!=="drop"?[2,n]:[4,Promise.all(n.map(uE))]):[3,2];case 1:return r=o.sent(),[2,Fg(xx(r))];case 2:return[2,Fg(Df(e.files).map(function(s){return vs(s)}))]}})})}function Fg(e){return e.filter(function(t){return rE.indexOf(t.name)===-1})}function Df(e){if(e===null)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,Vg(n)];if(e.sizen)return[!1,Vg(n)]}return[!0,null]}function Ho(e){return e!=null}function EE(e){var t=e.files,n=e.accept,r=e.minSize,o=e.maxSize,s=e.multiple,c=e.maxFiles,u=e.validator;return!s&&t.length>1||s&&c>=1&&t.length>c?!1:t.every(function(f){var p=wx(f,n),h=Za(p,1),y=h[0],x=jx(f,r,o),S=Za(x,1),j=S[0],C=u?u(f):null;return y&&j&&!C})}function cc(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function Il(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function $g(e){e.preventDefault()}function PE(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function IE(e){return e.indexOf("Edge/")!==-1}function ME(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return PE(e)||IE(e)}function vr(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),c=1;ce.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function GE(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,s;for(s=0;s=0)&&(n[o]=e[o]);return n}var Xh=g.forwardRef(function(e,t){var n=e.children,r=uc(e,zE),o=Mx(r),s=o.open,c=uc(o,RE);return g.useImperativeHandle(t,function(){return{open:s}},[s]),_e.createElement(g.Fragment,null,n(Dt(Dt({},c),{},{open:s})))});Xh.displayName="Dropzone";var Ix={disabled:!1,getFilesFromEvent:oE,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};Xh.defaultProps=Ix;Xh.propTypes={children:lt.func,accept:lt.objectOf(lt.arrayOf(lt.string)),multiple:lt.bool,preventDropOnDocument:lt.bool,noClick:lt.bool,noKeyboard:lt.bool,noDrag:lt.bool,noDragEventsBubbling:lt.bool,minSize:lt.number,maxSize:lt.number,maxFiles:lt.number,disabled:lt.bool,getFilesFromEvent:lt.func,onFileDialogCancel:lt.func,onFileDialogOpen:lt.func,useFsAccessApi:lt.bool,autoFocus:lt.bool,onDragEnter:lt.func,onDragLeave:lt.func,onDragOver:lt.func,onDrop:lt.func,onDropAccepted:lt.func,onDropRejected:lt.func,onError:lt.func,validator:lt.func};var Rf={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function Mx(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=Dt(Dt({},Ix),e),n=t.accept,r=t.disabled,o=t.getFilesFromEvent,s=t.maxSize,c=t.minSize,u=t.multiple,f=t.maxFiles,p=t.onDragEnter,h=t.onDragLeave,y=t.onDragOver,x=t.onDrop,S=t.onDropAccepted,j=t.onDropRejected,C=t.onFileDialogCancel,w=t.onFileDialogOpen,k=t.useFsAccessApi,I=t.autoFocus,P=t.preventDropOnDocument,M=t.noClick,T=t.noKeyboard,D=t.noDrag,_=t.noDragEventsBubbling,R=t.onError,V=t.validator,F=g.useMemo(function(){return DE(n)},[n]),B=g.useMemo(function(){return _E(n)},[n]),Q=g.useMemo(function(){return typeof w=="function"?w:qg},[w]),U=g.useMemo(function(){return typeof C=="function"?C:qg},[C]),X=g.useRef(null),te=g.useRef(null),re=g.useReducer(qE,Rf),$=Od(re,2),Z=$[0],fe=$[1],Se=Z.isFocused,Me=Z.isFileDialogActive,Ie=g.useRef(typeof window<"u"&&window.isSecureContext&&k&&TE()),Pe=function(){!Ie.current&&Me&&setTimeout(function(){if(te.current){var ie=te.current.files;ie.length||(fe({type:"closeDialog"}),U())}},300)};g.useEffect(function(){return window.addEventListener("focus",Pe,!1),function(){window.removeEventListener("focus",Pe,!1)}},[te,Me,U,Ie]);var he=g.useRef([]),se=function(ie){X.current&&X.current.contains(ie.target)||(ie.preventDefault(),he.current=[])};g.useEffect(function(){return P&&(document.addEventListener("dragover",$g,!1),document.addEventListener("drop",se,!1)),function(){P&&(document.removeEventListener("dragover",$g),document.removeEventListener("drop",se))}},[X,P]),g.useEffect(function(){return!r&&I&&X.current&&X.current.focus(),function(){}},[X,I,r]);var Ne=g.useCallback(function(q){R?R(q):console.error(q)},[R]),Ve=g.useCallback(function(q){q.preventDefault(),q.persist(),N(q),he.current=[].concat(LE(he.current),[q.target]),Il(q)&&Promise.resolve(o(q)).then(function(ie){if(!(cc(q)&&!_)){var Re=ie.length,Ze=Re>0&&EE({files:ie,accept:F,minSize:c,maxSize:s,multiple:u,maxFiles:f,validator:V}),J=Re>0&&!Ze;fe({isDragAccept:Ze,isDragReject:J,isDragActive:!0,type:"setDraggedFiles"}),p&&p(q)}}).catch(function(ie){return Ne(ie)})},[o,p,Ne,_,F,c,s,u,f,V]),Ue=g.useCallback(function(q){q.preventDefault(),q.persist(),N(q);var ie=Il(q);if(ie&&q.dataTransfer)try{q.dataTransfer.dropEffect="copy"}catch{}return ie&&y&&y(q),!1},[y,_]),$e=g.useCallback(function(q){q.preventDefault(),q.persist(),N(q);var ie=he.current.filter(function(Ze){return X.current&&X.current.contains(Ze)}),Re=ie.indexOf(q.target);Re!==-1&&ie.splice(Re,1),he.current=ie,!(ie.length>0)&&(fe({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),Il(q)&&h&&h(q))},[X,h,_]),Qe=g.useCallback(function(q,ie){var Re=[],Ze=[];q.forEach(function(J){var Le=wx(J,F),nt=Od(Le,2),Nt=nt[0],de=nt[1],Ae=jx(J,c,s),dn=Od(Ae,2),Vt=dn[0],fn=dn[1],sr=V?V(J):null;if(Nt&&Vt&&!sr)Re.push(J);else{var ko=[de,fn];sr&&(ko=ko.concat(sr)),Ze.push({file:J,errors:ko.filter(function(la){return la})})}}),(!u&&Re.length>1||u&&f>=1&&Re.length>f)&&(Re.forEach(function(J){Ze.push({file:J,errors:[kE]})}),Re.splice(0)),fe({acceptedFiles:Re,fileRejections:Ze,type:"setFiles"}),x&&x(Re,Ze,ie),Ze.length>0&&j&&j(Ze,ie),Re.length>0&&S&&S(Re,ie)},[fe,u,F,c,s,f,x,S,j,V]),me=g.useCallback(function(q){q.preventDefault(),q.persist(),N(q),he.current=[],Il(q)&&Promise.resolve(o(q)).then(function(ie){cc(q)&&!_||Qe(ie,q)}).catch(function(ie){return Ne(ie)}),fe({type:"reset"})},[o,Qe,Ne,_]),De=g.useCallback(function(){if(Ie.current){fe({type:"openDialog"}),Q();var q={multiple:u,types:B};window.showOpenFilePicker(q).then(function(ie){return o(ie)}).then(function(ie){Qe(ie,null),fe({type:"closeDialog"})}).catch(function(ie){AE(ie)?(U(ie),fe({type:"closeDialog"})):OE(ie)?(Ie.current=!1,te.current?(te.current.value=null,te.current.click()):Ne(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):Ne(ie)});return}te.current&&(fe({type:"openDialog"}),Q(),te.current.value=null,te.current.click())},[fe,Q,U,k,Qe,Ne,B,u]),Ge=g.useCallback(function(q){!X.current||!X.current.isEqualNode(q.target)||(q.key===" "||q.key==="Enter"||q.keyCode===32||q.keyCode===13)&&(q.preventDefault(),De())},[X,De]),ge=g.useCallback(function(){fe({type:"focus"})},[]),Te=g.useCallback(function(){fe({type:"blur"})},[]),et=g.useCallback(function(){M||(ME()?setTimeout(De,0):De())},[M,De]),Be=function(ie){return r?null:ie},vt=function(ie){return T?null:Be(ie)},Rt=function(ie){return D?null:Be(ie)},N=function(ie){_&&ie.stopPropagation()},le=g.useMemo(function(){return function(){var q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ie=q.refKey,Re=ie===void 0?"ref":ie,Ze=q.role,J=q.onKeyDown,Le=q.onFocus,nt=q.onBlur,Nt=q.onClick,de=q.onDragEnter,Ae=q.onDragOver,dn=q.onDragLeave,Vt=q.onDrop,fn=uc(q,NE);return Dt(Dt(zf({onKeyDown:vt(vr(J,Ge)),onFocus:vt(vr(Le,ge)),onBlur:vt(vr(nt,Te)),onClick:Be(vr(Nt,et)),onDragEnter:Rt(vr(de,Ve)),onDragOver:Rt(vr(Ae,Ue)),onDragLeave:Rt(vr(dn,$e)),onDrop:Rt(vr(Vt,me)),role:typeof Ze=="string"&&Ze!==""?Ze:"presentation"},Re,X),!r&&!T?{tabIndex:0}:{}),fn)}},[X,Ge,ge,Te,et,Ve,Ue,$e,me,T,D,r]),ye=g.useCallback(function(q){q.stopPropagation()},[]),je=g.useMemo(function(){return function(){var q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ie=q.refKey,Re=ie===void 0?"ref":ie,Ze=q.onChange,J=q.onClick,Le=uc(q,FE),nt=zf({accept:F,multiple:u,type:"file",style:{display:"none"},onChange:Be(vr(Ze,me)),onClick:Be(vr(J,ye)),tabIndex:-1},Re,te);return Dt(Dt({},nt),Le)}},[te,n,u,me,r]);return Dt(Dt({},Z),{},{isFocused:Se&&!r,getRootProps:le,getInputProps:je,rootRef:X,inputRef:te,open:Be(De)})}function qE(e,t){switch(t.type){case"focus":return Dt(Dt({},e),{},{isFocused:!0});case"blur":return Dt(Dt({},e),{},{isFocused:!1});case"openDialog":return Dt(Dt({},Rf),{},{isFileDialogActive:!0});case"closeDialog":return Dt(Dt({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return Dt(Dt({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return Dt(Dt({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return Dt({},Rf);default:return e}}function qg(){}function Nf(){return Nf=Object.assign?Object.assign.bind():function(e){for(var t=1;t'),!0):t?e.some(function(n){return t.includes(n)})||e.includes("*"):!0}var t9=function(t,n,r){r===void 0&&(r=!1);var o=n.alt,s=n.meta,c=n.mod,u=n.shift,f=n.ctrl,p=n.keys,h=t.key,y=t.code,x=t.ctrlKey,S=t.metaKey,j=t.shiftKey,C=t.altKey,w=so(y),k=h.toLowerCase();if(!r){if(o===!C&&k!=="alt"||u===!j&&k!=="shift")return!1;if(c){if(!S&&!x)return!1}else if(s===!S&&k!=="meta"||f===!x&&k!=="ctrl")return!1}return p&&p.length===1&&(p.includes(k)||p.includes(w))?!0:p?XE(p):!p},n9=g.createContext(void 0),r9=function(){return g.useContext(n9)};function Ox(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce(function(n,r){return n&&Ox(e[r],t[r])},!0):e===t}var o9=g.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),i9=function(){return g.useContext(o9)};function a9(e){var t=g.useRef(void 0);return Ox(t.current,e)||(t.current=e),t.current}var Yg=function(t){t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},s9=typeof window<"u"?g.useLayoutEffect:g.useEffect;function ce(e,t,n,r){var o=g.useRef(null),s=g.useRef(!1),c=n instanceof Array?r instanceof Array?void 0:r:n,u=n instanceof Array?n:r instanceof Array?r:void 0,f=g.useCallback(t,u??[]),p=g.useRef(f);u?p.current=f:p.current=t;var h=a9(c),y=i9(),x=y.enabledScopes,S=r9();return s9(function(){if(!((h==null?void 0:h.enabled)===!1||!e9(x,h==null?void 0:h.scopes))){var j=function(I,P){var M;if(P===void 0&&(P=!1),!(JE(I)&&!Ax(I,h==null?void 0:h.enableOnFormTags))){if(o.current!==null&&document.activeElement!==o.current&&!o.current.contains(document.activeElement)){Yg(I);return}(M=I.target)!=null&&M.isContentEditable&&!(h!=null&&h.enableOnContentEditable)||zd(e,h==null?void 0:h.splitKey).forEach(function(T){var D,_=Rd(T,h==null?void 0:h.combinationKey);if(t9(I,_,h==null?void 0:h.ignoreModifiers)||(D=_.keys)!=null&&D.includes("*")){if(P&&s.current)return;if(QE(I,_,h==null?void 0:h.preventDefault),!ZE(I,_,h==null?void 0:h.enabled)){Yg(I);return}p.current(I,_),P||(s.current=!0)}})}},C=function(I){I.key!==void 0&&(_x(so(I.code)),((h==null?void 0:h.keydown)===void 0&&(h==null?void 0:h.keyup)!==!0||h!=null&&h.keydown)&&j(I))},w=function(I){I.key!==void 0&&(Dx(so(I.code)),s.current=!1,h!=null&&h.keyup&&j(I,!0))};return(o.current||(c==null?void 0:c.document)||document).addEventListener("keyup",w),(o.current||(c==null?void 0:c.document)||document).addEventListener("keydown",C),S&&zd(e,h==null?void 0:h.splitKey).forEach(function(k){return S.addHotkey(Rd(k,h==null?void 0:h.combinationKey))}),function(){(o.current||(c==null?void 0:c.document)||document).removeEventListener("keyup",w),(o.current||(c==null?void 0:c.document)||document).removeEventListener("keydown",C),S&&zd(e,h==null?void 0:h.splitKey).forEach(function(k){return S.removeHotkey(Rd(k,h==null?void 0:h.combinationKey))})}}},[e,h,x]),o}const l9=e=>{const{isDragAccept:t,isDragReject:n,overlaySecondaryText:r,setIsHandlingUpload:o}=e;return ce("esc",()=>{o(!1)}),l.jsx(Ye,{sx:{position:"absolute",top:0,insetInlineStart:0,width:"100vw",height:"100vh",zIndex:999,backdropFilter:"blur(20px)"},children:l.jsx(L,{sx:{opacity:.4,width:"100%",height:"100%",flexDirection:"column",rowGap:4,alignItems:"center",justifyContent:"center",bg:"base.900",boxShadow:`inset 0 0 20rem 1rem var(--invokeai-colors-${t?"accent":"error"}-500)`},children:t?l.jsxs(Wn,{size:"lg",children:["Upload Image",r]}):l.jsxs(l.Fragment,{children:[l.jsx(Wn,{size:"lg",children:"Invalid Upload"}),l.jsx(Wn,{size:"md",children:"Must be single JPEG or PNG image"})]})})})},c9=e=>{const{children:t}=e,n=Y(),r=A(bt),o=ls({}),{t:s}=K(),[c,u]=g.useState(!1),{setOpenUploader:f}=Kh(),p=g.useCallback(P=>{u(!0);const M=P.errors.reduce((T,D)=>`${T} -${D.message}`,"");o({title:s("toast.uploadFailed"),description:M,status:"error",isClosable:!0})},[s,o]),h=g.useCallback(async P=>{n(Ng({imageFile:P}))},[n]),y=g.useCallback((P,M)=>{M.forEach(T=>{p(T)}),P.forEach(T=>{h(T)})},[h,p]),{getRootProps:x,getInputProps:S,isDragAccept:j,isDragReject:C,isDragActive:w,open:k}=Mx({accept:{"image/png":[".png"],"image/jpeg":[".jpg",".jpeg",".png"]},noClick:!0,onDrop:y,onDragOver:()=>u(!0),maxFiles:1});f(k),g.useEffect(()=>{const P=M=>{var R;const T=(R=M.clipboardData)==null?void 0:R.items;if(!T)return;const D=[];for(const V of T)V.kind==="file"&&["image/png","image/jpg"].includes(V.type)&&D.push(V);if(!D.length)return;if(M.stopImmediatePropagation(),D.length>1){o({description:s("toast.uploadFailedMultipleImagesDesc"),status:"error",isClosable:!0});return}const _=D[0].getAsFile();if(!_){o({description:s("toast.uploadFailedUnableToLoadDesc"),status:"error",isClosable:!0});return}n(Ng({imageFile:_}))};return document.addEventListener("paste",P),()=>{document.removeEventListener("paste",P)}},[s,n,o,r]);const I=["img2img","unifiedCanvas"].includes(r)?` to ${String(s(`common.${r}`))}`:"";return l.jsx(Yh.Provider,{value:k,children:l.jsxs(Ye,{...x({style:{}}),onKeyDown:P=>{P.key},children:[l.jsx("input",{...S()}),t,w&&c&&l.jsx(l9,{isDragAccept:j,isDragReject:C,overlaySecondaryText:I,setIsHandlingUpload:u})]})})},u9=g.memo(c9),zx=ue((e,t)=>{const{role:n,tooltip:r="",tooltipProps:o,isChecked:s,...c}=e;return l.jsx(Gt,{label:r,hasArrow:!0,...o,...o!=null&&o.placement?{placement:o.placement}:{placement:"top"},children:l.jsx(ho,{ref:t,role:n,"aria-checked":s!==void 0?s:void 0,...c})})});zx.displayName="IAIIconButton";const ae=g.memo(zx);var d9=globalThis&&globalThis.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(r[s]=o[s])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Bt=globalThis&&globalThis.__assign||function(){return Bt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u"?void 0:Number(r),maxHeight:typeof o>"u"?void 0:Number(o),minWidth:typeof s>"u"?void 0:Number(s),minHeight:typeof c>"u"?void 0:Number(c)}},y9=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],Jg="__resizable_base__",Rx=function(e){p9(t,e);function t(n){var r=e.call(this,n)||this;return r.ratio=1,r.resizable=null,r.parentLeft=0,r.parentTop=0,r.resizableLeft=0,r.resizableRight=0,r.resizableTop=0,r.resizableBottom=0,r.targetLeft=0,r.targetTop=0,r.appendBase=function(){if(!r.resizable||!r.window)return null;var o=r.parentNode;if(!o)return null;var s=r.window.document.createElement("div");return s.style.width="100%",s.style.height="100%",s.style.position="absolute",s.style.transform="scale(0, 0)",s.style.left="0",s.style.flex="0 0 100%",s.classList?s.classList.add(Jg):s.className+=Jg,o.appendChild(s),s},r.removeBase=function(o){var s=r.parentNode;s&&s.removeChild(o)},r.ref=function(o){o&&(r.resizable=o)},r.state={isResizing:!1,width:typeof(r.propsSize&&r.propsSize.width)>"u"?"auto":r.propsSize&&r.propsSize.width,height:typeof(r.propsSize&&r.propsSize.height)>"u"?"auto":r.propsSize&&r.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},r.onResizeStart=r.onResizeStart.bind(r),r.onMouseMove=r.onMouseMove.bind(r),r.onMouseUp=r.onMouseUp.bind(r),r}return Object.defineProperty(t.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||m9},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){var n=0,r=0;if(this.resizable&&this.window){var o=this.resizable.offsetWidth,s=this.resizable.offsetHeight,c=this.resizable.style.position;c!=="relative"&&(this.resizable.style.position="relative"),n=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:o,r=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:s,this.resizable.style.position=c}return{width:n,height:r}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sizeStyle",{get:function(){var n=this,r=this.props.size,o=function(u){if(typeof n.state[u]>"u"||n.state[u]==="auto")return"auto";if(n.propsSize&&n.propsSize[u]&&n.propsSize[u].toString().endsWith("%")){if(n.state[u].toString().endsWith("%"))return n.state[u].toString();var f=n.getParentSize(),p=Number(n.state[u].toString().replace("px","")),h=p/f[u]*100;return h+"%"}return Nd(n.state[u])},s=r&&typeof r.width<"u"&&!this.state.isResizing?Nd(r.width):o("width"),c=r&&typeof r.height<"u"&&!this.state.isResizing?Nd(r.height):o("height");return{width:s,height:c}},enumerable:!1,configurable:!0}),t.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var n=this.appendBase();if(!n)return{width:0,height:0};var r=!1,o=this.parentNode.style.flexWrap;o!=="wrap"&&(r=!0,this.parentNode.style.flexWrap="wrap"),n.style.position="relative",n.style.minWidth="100%",n.style.minHeight="100%";var s={width:n.offsetWidth,height:n.offsetHeight};return r&&(this.parentNode.style.flexWrap=o),this.removeBase(n),s},t.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},t.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},t.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var n=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:n.flexBasis!=="auto"?n.flexBasis:void 0})}},t.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},t.prototype.createSizeForCssProperty=function(n,r){var o=this.propsSize&&this.propsSize[r];return this.state[r]==="auto"&&this.state.original[r]===n&&(typeof o>"u"||o==="auto")?"auto":n},t.prototype.calculateNewMaxFromBoundary=function(n,r){var o=this.props.boundsByDirection,s=this.state.direction,c=o&&Ti("left",s),u=o&&Ti("top",s),f,p;if(this.props.bounds==="parent"){var h=this.parentNode;h&&(f=c?this.resizableRight-this.parentLeft:h.offsetWidth+(this.parentLeft-this.resizableLeft),p=u?this.resizableBottom-this.parentTop:h.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(f=c?this.resizableRight:this.window.innerWidth-this.resizableLeft,p=u?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(f=c?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),p=u?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return f&&Number.isFinite(f)&&(n=n&&n"u"?10:s.width,y=typeof o.width>"u"||o.width<0?n:o.width,x=typeof s.height>"u"?10:s.height,S=typeof o.height>"u"||o.height<0?r:o.height,j=f||0,C=p||0;if(u){var w=(x-j)*this.ratio+C,k=(S-j)*this.ratio+C,I=(h-C)/this.ratio+j,P=(y-C)/this.ratio+j,M=Math.max(h,w),T=Math.min(y,k),D=Math.max(x,I),_=Math.min(S,P);n=Tl(n,M,T),r=Tl(r,D,_)}else n=Tl(n,h,y),r=Tl(r,x,S);return{newWidth:n,newHeight:r}},t.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var n=this.parentNode;if(n){var r=n.getBoundingClientRect();this.parentLeft=r.left,this.parentTop=r.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var o=this.props.bounds.getBoundingClientRect();this.targetLeft=o.left,this.targetTop=o.top}if(this.resizable){var s=this.resizable.getBoundingClientRect(),c=s.left,u=s.top,f=s.right,p=s.bottom;this.resizableLeft=c,this.resizableRight=f,this.resizableTop=u,this.resizableBottom=p}},t.prototype.onResizeStart=function(n,r){if(!(!this.resizable||!this.window)){var o=0,s=0;if(n.nativeEvent&&v9(n.nativeEvent)?(o=n.nativeEvent.clientX,s=n.nativeEvent.clientY):n.nativeEvent&&_l(n.nativeEvent)&&(o=n.nativeEvent.touches[0].clientX,s=n.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var c=this.props.onResizeStart(n,r,this.resizable);if(c===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var u,f=this.window.getComputedStyle(this.resizable);if(f.flexBasis!=="auto"){var p=this.parentNode;if(p){var h=this.window.getComputedStyle(p).flexDirection;this.flexDir=h.startsWith("row")?"row":"column",u=f.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var y={original:{x:o,y:s,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:yr(yr({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(n.target).cursor||"auto"}),direction:r,flexBasis:u};this.setState(y)}},t.prototype.onMouseMove=function(n){var r=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&_l(n))try{n.preventDefault(),n.stopPropagation()}catch{}var o=this.props,s=o.maxWidth,c=o.maxHeight,u=o.minWidth,f=o.minHeight,p=_l(n)?n.touches[0].clientX:n.clientX,h=_l(n)?n.touches[0].clientY:n.clientY,y=this.state,x=y.direction,S=y.original,j=y.width,C=y.height,w=this.getParentSize(),k=g9(w,this.window.innerWidth,this.window.innerHeight,s,c,u,f);s=k.maxWidth,c=k.maxHeight,u=k.minWidth,f=k.minHeight;var I=this.calculateNewSizeFromDirection(p,h),P=I.newHeight,M=I.newWidth,T=this.calculateNewMaxFromBoundary(s,c);this.props.snap&&this.props.snap.x&&(M=Zg(M,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(P=Zg(P,this.props.snap.y,this.props.snapGap));var D=this.calculateNewSizeFromAspectRatio(M,P,{width:T.maxWidth,height:T.maxHeight},{width:u,height:f});if(M=D.newWidth,P=D.newHeight,this.props.grid){var _=Qg(M,this.props.grid[0]),R=Qg(P,this.props.grid[1]),V=this.props.snapGap||0;M=V===0||Math.abs(_-M)<=V?_:M,P=V===0||Math.abs(R-P)<=V?R:P}var F={width:M-S.width,height:P-S.height};if(j&&typeof j=="string"){if(j.endsWith("%")){var B=M/w.width*100;M=B+"%"}else if(j.endsWith("vw")){var Q=M/this.window.innerWidth*100;M=Q+"vw"}else if(j.endsWith("vh")){var U=M/this.window.innerHeight*100;M=U+"vh"}}if(C&&typeof C=="string"){if(C.endsWith("%")){var B=P/w.height*100;P=B+"%"}else if(C.endsWith("vw")){var Q=P/this.window.innerWidth*100;P=Q+"vw"}else if(C.endsWith("vh")){var U=P/this.window.innerHeight*100;P=U+"vh"}}var X={width:this.createSizeForCssProperty(M,"width"),height:this.createSizeForCssProperty(P,"height")};this.flexDir==="row"?X.flexBasis=X.width:this.flexDir==="column"&&(X.flexBasis=X.height),GS.flushSync(function(){r.setState(X)}),this.props.onResize&&this.props.onResize(n,x,this.resizable,F)}},t.prototype.onMouseUp=function(n){var r=this.state,o=r.isResizing,s=r.direction,c=r.original;if(!(!o||!this.resizable)){var u={width:this.size.width-c.width,height:this.size.height-c.height};this.props.onResizeStop&&this.props.onResizeStop(n,s,this.resizable,u),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:yr(yr({},this.state.backgroundStyle),{cursor:"auto"})})}},t.prototype.updateSize=function(n){this.setState({width:n.width,height:n.height})},t.prototype.renderResizer=function(){var n=this,r=this.props,o=r.enable,s=r.handleStyles,c=r.handleClasses,u=r.handleWrapperStyle,f=r.handleWrapperClass,p=r.handleComponent;if(!o)return null;var h=Object.keys(o).map(function(y){return o[y]!==!1?g.createElement(h9,{key:y,direction:y,onResizeStart:n.onResizeStart,replaceStyles:s&&s[y],className:c&&c[y]},p&&p[y]?p[y]:null):null});return g.createElement("div",{className:f,style:u},h)},t.prototype.render=function(){var n=this,r=Object.keys(this.props).reduce(function(c,u){return y9.indexOf(u)!==-1||(c[u]=n.props[u]),c},{}),o=yr(yr(yr({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(o.flexBasis=this.state.flexBasis);var s=this.props.as||"div";return g.createElement(s,yr({ref:this.ref,style:o,className:this.props.className},r),this.state.isResizing&&g.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},t.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},t}(g.PureComponent),Nx={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},e0=_e.createContext&&_e.createContext(Nx),uo=globalThis&&globalThis.__assign||function(){return uo=Object.assign||function(e){for(var t,n=1,r=arguments.length;ne.system,Y9=e=>e.system.toastQueue,Kx=pe(Et,e=>{const{model_list:t}=e,n=ee.reduce(t,(r,o,s)=>(o.status==="active"&&(r=s),r),"");return{...t[n],name:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),K9=pe(Et,e=>{const{model_list:t}=e;return ee.pickBy(t,(r,o)=>{if(r.format==="diffusers")return{name:o,...r}})},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),X9=pe(Et,e=>e.log,{memoizeOptions:{resultEqualityCheck:(e,t)=>e.length===t.length}}),Q9=pe(Et,e=>({shouldShowLogViewer:e.shouldShowLogViewer,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Z9=()=>{const e=Y(),{t}=K(),n=A(X9),{shouldShowLogViewer:r,hasError:o,wasErrorSeen:s}=A(Q9),[c,u]=g.useState(!0),f=g.useRef(null);g.useLayoutEffect(()=>{f.current!==null&&c&&(f.current.scrollTop=f.current.scrollHeight)},[c,n,r]);const p=()=>{e(j1()),e(dd(!r))};ce("`",()=>{e(dd(!r))},[r]),ce("esc",()=>{e(dd(!1))});const h=()=>{f.current&&c&&f.current.scrollTop{const{timestamp:S,message:j,level:C}=y,w=C==="info"?"base":C;return l.jsxs(L,{sx:{gap:2,color:`${w}.300`},children:[l.jsxs(Ce,{fontWeight:"600",children:[S,":"]}),l.jsx(Ce,{wordBreak:"break-all",children:j})]},x)})})}),r&&l.jsx(Gt,{hasArrow:!0,label:c?"Autoscroll On":"Autoscroll Off",children:l.jsx(ae,{size:"sm","aria-label":t("accessibility.toggleAutoscroll"),icon:l.jsx(w9,{}),onClick:()=>u(!c),isChecked:c,sx:{position:"fixed",insetInlineStart:2,bottom:12,zIndex:"10000"}})}),l.jsx(Gt,{hasArrow:!0,label:r?"Hide Console":"Show Console",children:l.jsx(ae,{size:"sm","aria-label":t("accessibility.toggleLogViewer"),icon:r?l.jsx(N9,{}):l.jsx(Hx,{}),onClick:p,sx:{position:"fixed",insetInlineStart:2,bottom:2,zIndex:"10000"},colorScheme:o||!s?"error":"base"})})]})},J9="0px",Xx="calc(70px + 1rem)",dc=1.5,eP=`calc(100vw - ${J9})`,tP=`calc(100vh - ${dc*4}px)`,nP=`calc(100vh - ${Xx})`,rP=`calc(100vh - (${Xx} + 4.4rem))`,r0=384,oP=pe(Et,e=>({isProcessing:e.isProcessing,currentStep:e.currentStep,totalSteps:e.totalSteps,currentStatusHasSteps:e.currentStatusHasSteps}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),iP=()=>{const{t:e}=K(),{isProcessing:t,currentStep:n,totalSteps:r,currentStatusHasSteps:o}=A(oP),s=n?Math.round(n*100/r):0;return l.jsx(Jy,{value:s,"aria-label":e("accessibility.invokeProgressBar"),isIndeterminate:t&&!o,height:dc,zIndex:99})};function aP(e){const{title:t,hotkey:n,description:r}=e;return l.jsxs(ir,{sx:{gridTemplateColumns:"auto max-content",justifyContent:"space-between",alignItems:"center"},children:[l.jsxs(ir,{children:[l.jsx(Ce,{fontWeight:600,children:t}),r&&l.jsx(Ce,{sx:{fontSize:"sm"},variant:"subtext",children:r})]}),l.jsx(Ye,{sx:{fontSize:"sm",fontWeight:600,px:2,py:1},children:n})]})}function sP({children:e}){const{isOpen:t,onOpen:n,onClose:r}=po(),{t:o}=K(),s=[{title:o("hotkeys.invoke.title"),desc:o("hotkeys.invoke.desc"),hotkey:"Ctrl+Enter"},{title:o("hotkeys.cancel.title"),desc:o("hotkeys.cancel.desc"),hotkey:"Shift+X"},{title:o("hotkeys.focusPrompt.title"),desc:o("hotkeys.focusPrompt.desc"),hotkey:"Alt+A"},{title:o("hotkeys.toggleOptions.title"),desc:o("hotkeys.toggleOptions.desc"),hotkey:"O"},{title:o("hotkeys.pinOptions.title"),desc:o("hotkeys.pinOptions.desc"),hotkey:"Shift+O"},{title:o("hotkeys.toggleViewer.title"),desc:o("hotkeys.toggleViewer.desc"),hotkey:"Z"},{title:o("hotkeys.toggleGallery.title"),desc:o("hotkeys.toggleGallery.desc"),hotkey:"G"},{title:o("hotkeys.maximizeWorkSpace.title"),desc:o("hotkeys.maximizeWorkSpace.desc"),hotkey:"F"},{title:o("hotkeys.changeTabs.title"),desc:o("hotkeys.changeTabs.desc"),hotkey:"1-5"},{title:o("hotkeys.consoleToggle.title"),desc:o("hotkeys.consoleToggle.desc"),hotkey:"`"}],c=[{title:o("hotkeys.setPrompt.title"),desc:o("hotkeys.setPrompt.desc"),hotkey:"P"},{title:o("hotkeys.setSeed.title"),desc:o("hotkeys.setSeed.desc"),hotkey:"S"},{title:o("hotkeys.setParameters.title"),desc:o("hotkeys.setParameters.desc"),hotkey:"A"},{title:o("hotkeys.restoreFaces.title"),desc:o("hotkeys.restoreFaces.desc"),hotkey:"Shift+R"},{title:o("hotkeys.upscale.title"),desc:o("hotkeys.upscale.desc"),hotkey:"Shift+U"},{title:o("hotkeys.showInfo.title"),desc:o("hotkeys.showInfo.desc"),hotkey:"I"},{title:o("hotkeys.sendToImageToImage.title"),desc:o("hotkeys.sendToImageToImage.desc"),hotkey:"Shift+I"},{title:o("hotkeys.deleteImage.title"),desc:o("hotkeys.deleteImage.desc"),hotkey:"Del"},{title:o("hotkeys.closePanels.title"),desc:o("hotkeys.closePanels.desc"),hotkey:"Esc"}],u=[{title:o("hotkeys.previousImage.title"),desc:o("hotkeys.previousImage.desc"),hotkey:"Arrow Left"},{title:o("hotkeys.nextImage.title"),desc:o("hotkeys.nextImage.desc"),hotkey:"Arrow Right"},{title:o("hotkeys.toggleGalleryPin.title"),desc:o("hotkeys.toggleGalleryPin.desc"),hotkey:"Shift+G"},{title:o("hotkeys.increaseGalleryThumbSize.title"),desc:o("hotkeys.increaseGalleryThumbSize.desc"),hotkey:"Shift+Up"},{title:o("hotkeys.decreaseGalleryThumbSize.title"),desc:o("hotkeys.decreaseGalleryThumbSize.desc"),hotkey:"Shift+Down"}],f=[{title:o("hotkeys.selectBrush.title"),desc:o("hotkeys.selectBrush.desc"),hotkey:"B"},{title:o("hotkeys.selectEraser.title"),desc:o("hotkeys.selectEraser.desc"),hotkey:"E"},{title:o("hotkeys.decreaseBrushSize.title"),desc:o("hotkeys.decreaseBrushSize.desc"),hotkey:"["},{title:o("hotkeys.increaseBrushSize.title"),desc:o("hotkeys.increaseBrushSize.desc"),hotkey:"]"},{title:o("hotkeys.decreaseBrushOpacity.title"),desc:o("hotkeys.decreaseBrushOpacity.desc"),hotkey:"Shift + ["},{title:o("hotkeys.increaseBrushOpacity.title"),desc:o("hotkeys.increaseBrushOpacity.desc"),hotkey:"Shift + ]"},{title:o("hotkeys.moveTool.title"),desc:o("hotkeys.moveTool.desc"),hotkey:"V"},{title:o("hotkeys.fillBoundingBox.title"),desc:o("hotkeys.fillBoundingBox.desc"),hotkey:"Shift + F"},{title:o("hotkeys.eraseBoundingBox.title"),desc:o("hotkeys.eraseBoundingBox.desc"),hotkey:"Delete / Backspace"},{title:o("hotkeys.colorPicker.title"),desc:o("hotkeys.colorPicker.desc"),hotkey:"C"},{title:o("hotkeys.toggleSnap.title"),desc:o("hotkeys.toggleSnap.desc"),hotkey:"N"},{title:o("hotkeys.quickToggleMove.title"),desc:o("hotkeys.quickToggleMove.desc"),hotkey:"Hold Space"},{title:o("hotkeys.toggleLayer.title"),desc:o("hotkeys.toggleLayer.desc"),hotkey:"Q"},{title:o("hotkeys.clearMask.title"),desc:o("hotkeys.clearMask.desc"),hotkey:"Shift+C"},{title:o("hotkeys.hideMask.title"),desc:o("hotkeys.hideMask.desc"),hotkey:"H"},{title:o("hotkeys.showHideBoundingBox.title"),desc:o("hotkeys.showHideBoundingBox.desc"),hotkey:"Shift+H"},{title:o("hotkeys.mergeVisible.title"),desc:o("hotkeys.mergeVisible.desc"),hotkey:"Shift+M"},{title:o("hotkeys.saveToGallery.title"),desc:o("hotkeys.saveToGallery.desc"),hotkey:"Shift+S"},{title:o("hotkeys.copyToClipboard.title"),desc:o("hotkeys.copyToClipboard.desc"),hotkey:"Ctrl+C"},{title:o("hotkeys.downloadImage.title"),desc:o("hotkeys.downloadImage.desc"),hotkey:"Shift+D"},{title:o("hotkeys.undoStroke.title"),desc:o("hotkeys.undoStroke.desc"),hotkey:"Ctrl+Z"},{title:o("hotkeys.redoStroke.title"),desc:o("hotkeys.redoStroke.desc"),hotkey:"Ctrl+Shift+Z, Ctrl+Y"},{title:o("hotkeys.resetView.title"),desc:o("hotkeys.resetView.desc"),hotkey:"R"},{title:o("hotkeys.previousStagingImage.title"),desc:o("hotkeys.previousStagingImage.desc"),hotkey:"Arrow Left"},{title:o("hotkeys.nextStagingImage.title"),desc:o("hotkeys.nextStagingImage.desc"),hotkey:"Arrow Right"},{title:o("hotkeys.acceptStagingImage.title"),desc:o("hotkeys.acceptStagingImage.desc"),hotkey:"Enter"}],p=h=>l.jsx(L,{flexDir:"column",gap:4,children:h.map((y,x)=>l.jsxs(L,{flexDir:"column",px:2,gap:4,children:[l.jsx(aP,{title:y.title,description:y.desc,hotkey:y.hotkey}),x{const{children:n,tooltip:r="",tooltipProps:o,isChecked:s,...c}=e;return l.jsx(Gt,{label:r,...o,children:l.jsx(ni,{ref:t,"aria-checked":s,...c,children:n})})}),Je=g.memo(lP),cP=e=>{const{label:t="",isDisabled:n=!1,isInvalid:r,formControlProps:o,...s}=e;return l.jsxs(rt,{isInvalid:r,isDisabled:n,...o,children:[t!==""&&l.jsx(st,{children:t}),l.jsx(bh,{...s})]})},mt=g.memo(cP),o0=/^-?(0\.)?\.?$/,uP=e=>{const{label:t,isDisabled:n=!1,showStepper:r=!0,isInvalid:o,value:s,onChange:c,min:u,max:f,isInteger:p=!0,formControlProps:h,formLabelProps:y,numberInputFieldProps:x,numberInputStepperProps:S,tooltipProps:j,...C}=e,[w,k]=g.useState(String(s));g.useEffect(()=>{!w.match(o0)&&s!==Number(w)&&k(String(s))},[s,w]);const I=M=>{k(M),M.match(o0)||c(p?Math.floor(Number(M)):Number(M))},P=M=>{const T=ee.clamp(p?Math.floor(Number(M.target.value)):Number(M.target.value),u,f);k(String(T)),c(T)};return l.jsx(Gt,{...j,children:l.jsxs(rt,{isDisabled:n,isInvalid:o,...h,children:[t&&l.jsx(st,{...y,children:t}),l.jsxs(Nh,{value:w,min:u,max:f,keepWithinRange:!0,clampValueOnBlur:!1,onChange:I,onBlur:P,...C,children:[l.jsx(Lh,{...x}),r&&l.jsxs(Fh,{children:[l.jsx(Hh,{...S}),l.jsx(Bh,{...S})]})]})]})})},Vr=g.memo(uP);var i0=Array.isArray,a0=Object.keys,dP=Object.prototype.hasOwnProperty,fP=typeof Element<"u";function Ff(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=i0(e),r=i0(t),o,s,c;if(n&&r){if(s=e.length,s!=t.length)return!1;for(o=s;o--!==0;)if(!Ff(e[o],t[o]))return!1;return!0}if(n!=r)return!1;var u=e instanceof Date,f=t instanceof Date;if(u!=f)return!1;if(u&&f)return e.getTime()==t.getTime();var p=e instanceof RegExp,h=t instanceof RegExp;if(p!=h)return!1;if(p&&h)return e.toString()==t.toString();var y=a0(e);if(s=y.length,s!==a0(t).length)return!1;for(o=s;o--!==0;)if(!dP.call(t,y[o]))return!1;if(fP&&e instanceof Element&&t instanceof Element)return e===t;for(o=s;o--!==0;)if(c=y[o],!(c==="_owner"&&e.$$typeof)&&!Ff(e[c],t[c]))return!1;return!0}return e!==e&&t!==t}var ao=function(t,n){try{return Ff(t,n)}catch(r){if(r.message&&r.message.match(/stack|recursion/i)||r.number===-2146828260)return console.warn("Warning: react-fast-compare does not handle circular references.",r.name,r.message),!1;throw r}},hP=function(t){return pP(t)&&!mP(t)};function pP(e){return!!e&&typeof e=="object"}function mP(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||yP(e)}var vP=typeof Symbol=="function"&&Symbol.for,gP=vP?Symbol.for("react.element"):60103;function yP(e){return e.$$typeof===gP}function xP(e){return Array.isArray(e)?[]:{}}function fc(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Ja(xP(e),e,t):e}function bP(e,t,n){return e.concat(t).map(function(r){return fc(r,n)})}function SP(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach(function(o){r[o]=fc(e[o],n)}),Object.keys(t).forEach(function(o){!n.isMergeableObject(t[o])||!e[o]?r[o]=fc(t[o],n):r[o]=Ja(e[o],t[o],n)}),r}function Ja(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||bP,n.isMergeableObject=n.isMergeableObject||hP;var r=Array.isArray(t),o=Array.isArray(e),s=r===o;return s?r?n.arrayMerge(e,t,n):SP(e,t,n):fc(t,n)}Ja.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,o){return Ja(r,o,n)},{})};var Lf=Ja,CP=typeof global=="object"&&global&&global.Object===Object&&global;const Qx=CP;var wP=typeof self=="object"&&self&&self.Object===Object&&self,jP=Qx||wP||Function("return this")();const Ir=jP;var kP=Ir.Symbol;const go=kP;var Zx=Object.prototype,EP=Zx.hasOwnProperty,PP=Zx.toString,Da=go?go.toStringTag:void 0;function IP(e){var t=EP.call(e,Da),n=e[Da];try{e[Da]=void 0;var r=!0}catch{}var o=PP.call(e);return r&&(t?e[Da]=n:delete e[Da]),o}var MP=Object.prototype,TP=MP.toString;function _P(e){return TP.call(e)}var DP="[object Null]",AP="[object Undefined]",s0=go?go.toStringTag:void 0;function oi(e){return e==null?e===void 0?AP:DP:s0&&s0 in Object(e)?IP(e):_P(e)}function Jx(e,t){return function(n){return e(t(n))}}var OP=Jx(Object.getPrototypeOf,Object);const np=OP;function ii(e){return e!=null&&typeof e=="object"}var zP="[object Object]",RP=Function.prototype,NP=Object.prototype,eb=RP.toString,FP=NP.hasOwnProperty,LP=eb.call(Object);function l0(e){if(!ii(e)||oi(e)!=zP)return!1;var t=np(e);if(t===null)return!0;var n=FP.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&eb.call(n)==LP}function BP(){this.__data__=[],this.size=0}function tb(e,t){return e===t||e!==e&&t!==t}function Nc(e,t){for(var n=e.length;n--;)if(tb(e[n][0],t))return n;return-1}var HP=Array.prototype,WP=HP.splice;function VP(e){var t=this.__data__,n=Nc(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():WP.call(t,n,1),--this.size,!0}function UP(e){var t=this.__data__,n=Nc(t,e);return n<0?void 0:t[n][1]}function $P(e){return Nc(this.__data__,e)>-1}function GP(e,t){var n=this.__data__,r=Nc(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Gr(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=JI}var eM="[object Arguments]",tM="[object Array]",nM="[object Boolean]",rM="[object Date]",oM="[object Error]",iM="[object Function]",aM="[object Map]",sM="[object Number]",lM="[object Object]",cM="[object RegExp]",uM="[object Set]",dM="[object String]",fM="[object WeakMap]",hM="[object ArrayBuffer]",pM="[object DataView]",mM="[object Float32Array]",vM="[object Float64Array]",gM="[object Int8Array]",yM="[object Int16Array]",xM="[object Int32Array]",bM="[object Uint8Array]",SM="[object Uint8ClampedArray]",CM="[object Uint16Array]",wM="[object Uint32Array]",wt={};wt[mM]=wt[vM]=wt[gM]=wt[yM]=wt[xM]=wt[bM]=wt[SM]=wt[CM]=wt[wM]=!0;wt[eM]=wt[tM]=wt[hM]=wt[nM]=wt[pM]=wt[rM]=wt[oM]=wt[iM]=wt[aM]=wt[sM]=wt[lM]=wt[cM]=wt[uM]=wt[dM]=wt[fM]=!1;function jM(e){return ii(e)&&lb(e.length)&&!!wt[oi(e)]}function rp(e){return function(t){return e(t)}}var cb=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ba=cb&&typeof module=="object"&&module&&!module.nodeType&&module,kM=Ba&&Ba.exports===cb,Ld=kM&&Qx.process,EM=function(){try{var e=Ba&&Ba.require&&Ba.require("util").types;return e||Ld&&Ld.binding&&Ld.binding("util")}catch{}}();const Qi=EM;var p0=Qi&&Qi.isTypedArray,PM=p0?rp(p0):jM;const IM=PM;var MM=Object.prototype,TM=MM.hasOwnProperty;function ub(e,t){var n=ys(e),r=!n&&UI(e),o=!n&&!r&&sb(e),s=!n&&!r&&!o&&IM(e),c=n||r||o||s,u=c?LI(e.length,String):[],f=u.length;for(var p in e)(t||TM.call(e,p))&&!(c&&(p=="length"||o&&(p=="offset"||p=="parent")||s&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||ZI(p,f)))&&u.push(p);return u}var _M=Object.prototype;function op(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||_M;return e===n}var DM=Jx(Object.keys,Object);const AM=DM;var OM=Object.prototype,zM=OM.hasOwnProperty;function RM(e){if(!op(e))return AM(e);var t=[];for(var n in Object(e))zM.call(e,n)&&n!="constructor"&&t.push(n);return t}function db(e){return e!=null&&lb(e.length)&&!nb(e)}function ip(e){return db(e)?ub(e):RM(e)}function NM(e,t){return e&&Lc(t,ip(t),e)}function FM(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var LM=Object.prototype,BM=LM.hasOwnProperty;function HM(e){if(!gs(e))return FM(e);var t=op(e),n=[];for(var r in e)r=="constructor"&&(t||!BM.call(e,r))||n.push(r);return n}function ap(e){return db(e)?ub(e,!0):HM(e)}function WM(e,t){return e&&Lc(t,ap(t),e)}var fb=typeof exports=="object"&&exports&&!exports.nodeType&&exports,m0=fb&&typeof module=="object"&&module&&!module.nodeType&&module,VM=m0&&m0.exports===fb,v0=VM?Ir.Buffer:void 0,g0=v0?v0.allocUnsafe:void 0;function UM(e,t){if(t)return e.slice();var n=e.length,r=g0?g0(n):new e.constructor(n);return e.copy(r),r}function hb(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0)&&(n[o]=e[o]);return n}function A0(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var O0=function(t){return Array.isArray(t)&&t.length===0},jn=function(t){return typeof t=="function"},Bc=function(t){return t!==null&&typeof t=="object"},W_=function(t){return String(Math.floor(Number(t)))===t},Bd=function(t){return Object.prototype.toString.call(t)==="[object String]"},jb=function(t){return g.Children.count(t)===0},Hd=function(t){return Bc(t)&&jn(t.then)};function en(e,t,n,r){r===void 0&&(r=0);for(var o=wb(t);e&&r=0?[]:{}}}return(s===0?e:o)[c[s]]===n?e:(n===void 0?delete o[c[s]]:o[c[s]]=n,s===0&&n===void 0&&delete r[c[s]],r)}function kb(e,t,n,r){n===void 0&&(n=new WeakMap),r===void 0&&(r={});for(var o=0,s=Object.keys(e);o0?le.map(function(je){return R(je,en(N,je))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(ye).then(function(je){return je.reduce(function(q,ie,Re){return ie==="DO_NOT_DELETE_YOU_WILL_BE_FIRED"||ie&&(q=wr(q,le[Re],ie)),q},{})})},[R]),F=g.useCallback(function(N){return Promise.all([V(N),x.validationSchema?_(N):{},x.validate?D(N):{}]).then(function(le){var ye=le[0],je=le[1],q=le[2],ie=Lf.all([ye,je,q],{arrayMerge:Y_});return ie})},[x.validate,x.validationSchema,V,D,_]),B=Bn(function(N){return N===void 0&&(N=M.values),T({type:"SET_ISVALIDATING",payload:!0}),F(N).then(function(le){return k.current&&(T({type:"SET_ISVALIDATING",payload:!1}),T({type:"SET_ERRORS",payload:le})),le})});g.useEffect(function(){c&&k.current===!0&&ao(S.current,x.initialValues)&&B(S.current)},[c,B]);var Q=g.useCallback(function(N){var le=N&&N.values?N.values:S.current,ye=N&&N.errors?N.errors:j.current?j.current:x.initialErrors||{},je=N&&N.touched?N.touched:C.current?C.current:x.initialTouched||{},q=N&&N.status?N.status:w.current?w.current:x.initialStatus;S.current=le,j.current=ye,C.current=je,w.current=q;var ie=function(){T({type:"RESET_FORM",payload:{isSubmitting:!!N&&!!N.isSubmitting,errors:ye,touched:je,status:q,values:le,isValidating:!!N&&!!N.isValidating,submitCount:N&&N.submitCount&&typeof N.submitCount=="number"?N.submitCount:0}})};if(x.onReset){var Re=x.onReset(M.values,me);Hd(Re)?Re.then(ie):ie()}else ie()},[x.initialErrors,x.initialStatus,x.initialTouched]);g.useEffect(function(){k.current===!0&&!ao(S.current,x.initialValues)&&(p&&(S.current=x.initialValues,Q()),c&&B(S.current))},[p,x.initialValues,Q,c,B]),g.useEffect(function(){p&&k.current===!0&&!ao(j.current,x.initialErrors)&&(j.current=x.initialErrors||No,T({type:"SET_ERRORS",payload:x.initialErrors||No}))},[p,x.initialErrors]),g.useEffect(function(){p&&k.current===!0&&!ao(C.current,x.initialTouched)&&(C.current=x.initialTouched||Al,T({type:"SET_TOUCHED",payload:x.initialTouched||Al}))},[p,x.initialTouched]),g.useEffect(function(){p&&k.current===!0&&!ao(w.current,x.initialStatus)&&(w.current=x.initialStatus,T({type:"SET_STATUS",payload:x.initialStatus}))},[p,x.initialStatus,x.initialTouched]);var U=Bn(function(N){if(I.current[N]&&jn(I.current[N].validate)){var le=en(M.values,N),ye=I.current[N].validate(le);return Hd(ye)?(T({type:"SET_ISVALIDATING",payload:!0}),ye.then(function(je){return je}).then(function(je){T({type:"SET_FIELD_ERROR",payload:{field:N,value:je}}),T({type:"SET_ISVALIDATING",payload:!1})})):(T({type:"SET_FIELD_ERROR",payload:{field:N,value:ye}}),Promise.resolve(ye))}else if(x.validationSchema)return T({type:"SET_ISVALIDATING",payload:!0}),_(M.values,N).then(function(je){return je}).then(function(je){T({type:"SET_FIELD_ERROR",payload:{field:N,value:je[N]}}),T({type:"SET_ISVALIDATING",payload:!1})});return Promise.resolve()}),X=g.useCallback(function(N,le){var ye=le.validate;I.current[N]={validate:ye}},[]),te=g.useCallback(function(N){delete I.current[N]},[]),re=Bn(function(N,le){T({type:"SET_TOUCHED",payload:N});var ye=le===void 0?o:le;return ye?B(M.values):Promise.resolve()}),$=g.useCallback(function(N){T({type:"SET_ERRORS",payload:N})},[]),Z=Bn(function(N,le){var ye=jn(N)?N(M.values):N;T({type:"SET_VALUES",payload:ye});var je=le===void 0?n:le;return je?B(ye):Promise.resolve()}),fe=g.useCallback(function(N,le){T({type:"SET_FIELD_ERROR",payload:{field:N,value:le}})},[]),Se=Bn(function(N,le,ye){T({type:"SET_FIELD_VALUE",payload:{field:N,value:le}});var je=ye===void 0?n:ye;return je?B(wr(M.values,N,le)):Promise.resolve()}),Me=g.useCallback(function(N,le){var ye=le,je=N,q;if(!Bd(N)){N.persist&&N.persist();var ie=N.target?N.target:N.currentTarget,Re=ie.type,Ze=ie.name,J=ie.id,Le=ie.value,nt=ie.checked,Nt=ie.outerHTML,de=ie.options,Ae=ie.multiple;ye=le||Ze||J,je=/number|range/.test(Re)?(q=parseFloat(Le),isNaN(q)?"":q):/checkbox/.test(Re)?X_(en(M.values,ye),nt,Le):de&&Ae?K_(de):Le}ye&&Se(ye,je)},[Se,M.values]),Ie=Bn(function(N){if(Bd(N))return function(le){return Me(le,N)};Me(N)}),Pe=Bn(function(N,le,ye){le===void 0&&(le=!0),T({type:"SET_FIELD_TOUCHED",payload:{field:N,value:le}});var je=ye===void 0?o:ye;return je?B(M.values):Promise.resolve()}),he=g.useCallback(function(N,le){N.persist&&N.persist();var ye=N.target,je=ye.name,q=ye.id,ie=ye.outerHTML,Re=le||je||q;Pe(Re,!0)},[Pe]),se=Bn(function(N){if(Bd(N))return function(le){return he(le,N)};he(N)}),Ne=g.useCallback(function(N){jn(N)?T({type:"SET_FORMIK_STATE",payload:N}):T({type:"SET_FORMIK_STATE",payload:function(){return N}})},[]),Ve=g.useCallback(function(N){T({type:"SET_STATUS",payload:N})},[]),Ue=g.useCallback(function(N){T({type:"SET_ISSUBMITTING",payload:N})},[]),$e=Bn(function(){return T({type:"SUBMIT_ATTEMPT"}),B().then(function(N){var le=N instanceof Error,ye=!le&&Object.keys(N).length===0;if(ye){var je;try{if(je=De(),je===void 0)return}catch(q){throw q}return Promise.resolve(je).then(function(q){return k.current&&T({type:"SUBMIT_SUCCESS"}),q}).catch(function(q){if(k.current)throw T({type:"SUBMIT_FAILURE"}),q})}else if(k.current&&(T({type:"SUBMIT_FAILURE"}),le))throw N})}),Qe=Bn(function(N){N&&N.preventDefault&&jn(N.preventDefault)&&N.preventDefault(),N&&N.stopPropagation&&jn(N.stopPropagation)&&N.stopPropagation(),$e().catch(function(le){console.warn("Warning: An unhandled error was caught from submitForm()",le)})}),me={resetForm:Q,validateForm:B,validateField:U,setErrors:$,setFieldError:fe,setFieldTouched:Pe,setFieldValue:Se,setStatus:Ve,setSubmitting:Ue,setTouched:re,setValues:Z,setFormikState:Ne,submitForm:$e},De=Bn(function(){return h(M.values,me)}),Ge=Bn(function(N){N&&N.preventDefault&&jn(N.preventDefault)&&N.preventDefault(),N&&N.stopPropagation&&jn(N.stopPropagation)&&N.stopPropagation(),Q()}),ge=g.useCallback(function(N){return{value:en(M.values,N),error:en(M.errors,N),touched:!!en(M.touched,N),initialValue:en(S.current,N),initialTouched:!!en(C.current,N),initialError:en(j.current,N)}},[M.errors,M.touched,M.values]),Te=g.useCallback(function(N){return{setValue:function(ye,je){return Se(N,ye,je)},setTouched:function(ye,je){return Pe(N,ye,je)},setError:function(ye){return fe(N,ye)}}},[Se,Pe,fe]),et=g.useCallback(function(N){var le=Bc(N),ye=le?N.name:N,je=en(M.values,ye),q={name:ye,value:je,onChange:Ie,onBlur:se};if(le){var ie=N.type,Re=N.value,Ze=N.as,J=N.multiple;ie==="checkbox"?Re===void 0?q.checked=!!je:(q.checked=!!(Array.isArray(je)&&~je.indexOf(Re)),q.value=Re):ie==="radio"?(q.checked=je===Re,q.value=Re):Ze==="select"&&J&&(q.value=q.value||[],q.multiple=!0)}return q},[se,Ie,M.values]),Be=g.useMemo(function(){return!ao(S.current,M.values)},[S.current,M.values]),vt=g.useMemo(function(){return typeof u<"u"?Be?M.errors&&Object.keys(M.errors).length===0:u!==!1&&jn(u)?u(x):u:M.errors&&Object.keys(M.errors).length===0},[u,Be,M.errors,x]),Rt=pt({},M,{initialValues:S.current,initialErrors:j.current,initialTouched:C.current,initialStatus:w.current,handleBlur:se,handleChange:Ie,handleReset:Ge,handleSubmit:Qe,resetForm:Q,setErrors:$,setFormikState:Ne,setFieldTouched:Pe,setFieldValue:Se,setFieldError:fe,setStatus:Ve,setSubmitting:Ue,setTouched:re,setValues:Z,submitForm:$e,validateForm:B,validateField:U,isValid:vt,dirty:Be,unregisterField:te,registerField:X,getFieldProps:et,getFieldMeta:ge,getFieldHelpers:Te,validateOnBlur:o,validateOnChange:n,validateOnMount:c});return Rt}function xs(e){var t=$_(e),n=e.component,r=e.children,o=e.render,s=e.innerRef;return g.useImperativeHandle(s,function(){return t}),g.createElement(V_,{value:t},n?g.createElement(n,t):o?o(t):r?jn(r)?r(t):jb(r)?null:g.Children.only(r):null)}function G_(e){var t={};if(e.inner){if(e.inner.length===0)return wr(t,e.path,e.message);for(var o=e.inner,n=Array.isArray(o),r=0,o=n?o:o[Symbol.iterator]();;){var s;if(n){if(r>=o.length)break;s=o[r++]}else{if(r=o.next(),r.done)break;s=r.value}var c=s;en(t,c.path)||(t=wr(t,c.path,c.message))}}return t}function q_(e,t,n,r){n===void 0&&(n=!1),r===void 0&&(r={});var o=Uf(e);return t[n?"validateSync":"validate"](o,{abortEarly:!1,context:r})}function Uf(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);Array.isArray(e[r])===!0?t[r]=e[r].map(function(o){return Array.isArray(o)===!0||l0(o)?Uf(o):o!==""?o:void 0}):l0(e[r])?t[r]=Uf(e[r]):t[r]=e[r]!==""?e[r]:void 0}return t}function Y_(e,t,n){var r=e.slice();return t.forEach(function(s,c){if(typeof r[c]>"u"){var u=n.clone!==!1,f=u&&n.isMergeableObject(s);r[c]=f?Lf(Array.isArray(s)?[]:{},s,n):s}else n.isMergeableObject(s)?r[c]=Lf(e[c],s,n):e.indexOf(s)===-1&&r.push(s)}),r}function K_(e){return Array.from(e).filter(function(t){return t.selected}).map(function(t){return t.value})}function X_(e,t,n){if(typeof e=="boolean")return Boolean(t);var r=[],o=!1,s=-1;if(Array.isArray(e))r=e,s=e.indexOf(n),o=s>=0;else if(!n||n=="true"||n=="false")return Boolean(t);return t&&n&&!o?r.concat(n):o?r.slice(0,s).concat(r.slice(s+1)):r}var Q_=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?g.useLayoutEffect:g.useEffect;function Bn(e){var t=g.useRef(e);return Q_(function(){t.current=e}),g.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;or?o:r},0);return Array.from(pt({},t,{length:n+1}))}else return[]},nD=function(e){H_(t,e);function t(r){var o;return o=e.call(this,r)||this,o.updateArrayField=function(s,c,u){var f=o.props,p=f.name,h=f.formik.setFormikState;h(function(y){var x=typeof u=="function"?u:s,S=typeof c=="function"?c:s,j=wr(y.values,p,s(en(y.values,p))),C=u?x(en(y.errors,p)):void 0,w=c?S(en(y.touched,p)):void 0;return O0(C)&&(C=void 0),O0(w)&&(w=void 0),pt({},y,{values:j,errors:u?wr(y.errors,p,C):y.errors,touched:c?wr(y.touched,p,w):y.touched})})},o.push=function(s){return o.updateArrayField(function(c){return[].concat(Zi(c),[B_(s)])},!1,!1)},o.handlePush=function(s){return function(){return o.push(s)}},o.swap=function(s,c){return o.updateArrayField(function(u){return eD(u,s,c)},!0,!0)},o.handleSwap=function(s,c){return function(){return o.swap(s,c)}},o.move=function(s,c){return o.updateArrayField(function(u){return J_(u,s,c)},!0,!0)},o.handleMove=function(s,c){return function(){return o.move(s,c)}},o.insert=function(s,c){return o.updateArrayField(function(u){return Wd(u,s,c)},function(u){return Wd(u,s,null)},function(u){return Wd(u,s,null)})},o.handleInsert=function(s,c){return function(){return o.insert(s,c)}},o.replace=function(s,c){return o.updateArrayField(function(u){return tD(u,s,c)},!1,!1)},o.handleReplace=function(s,c){return function(){return o.replace(s,c)}},o.unshift=function(s){var c=-1;return o.updateArrayField(function(u){var f=u?[s].concat(u):[s];return c<0&&(c=f.length),f},function(u){var f=u?[null].concat(u):[null];return c<0&&(c=f.length),f},function(u){var f=u?[null].concat(u):[null];return c<0&&(c=f.length),f}),c},o.handleUnshift=function(s){return function(){return o.unshift(s)}},o.handleRemove=function(s){return function(){return o.remove(s)}},o.handlePop=function(){return function(){return o.pop()}},o.remove=o.remove.bind(A0(o)),o.pop=o.pop.bind(A0(o)),o}var n=t.prototype;return n.componentDidUpdate=function(o){this.props.validateOnChange&&this.props.formik.validateOnChange&&!ao(en(o.formik.values,o.name),en(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(o){var s;return this.updateArrayField(function(c){var u=c?Zi(c):[];return s||(s=u[o]),jn(u.splice)&&u.splice(o,1),u},!0,!0),s},n.pop=function(){var o;return this.updateArrayField(function(s){var c=s;return o||(o=c&&c.pop&&c.pop()),c},!0,!0),o},n.render=function(){var o={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},s=this.props,c=s.component,u=s.render,f=s.children,p=s.name,h=s.formik,y=Vo(h,["validate","validationSchema"]),x=pt({},o,{form:y,name:p});return c?g.createElement(c,x):u?u(x):f?typeof f=="function"?f(x):jb(f)?null:g.Children.only(f):null},t}(g.Component);nD.defaultProps={validateOnChange:!0};const rD=ue((e,t)=>{const{t:n}=K(),{acceptButtonText:r=n("common.accept"),acceptCallback:o,cancelButtonText:s=n("common.cancel"),cancelCallback:c,children:u,title:f,triggerComponent:p}=e,{isOpen:h,onOpen:y,onClose:x}=po(),S=g.useRef(null),j=()=>{o(),x()},C=()=>{c&&c(),x()};return l.jsxs(l.Fragment,{children:[g.cloneElement(p,{onClick:y,ref:t}),l.jsx(Yy,{isOpen:h,leastDestructiveRef:S,onClose:x,isCentered:!0,children:l.jsx(Hr,{children:l.jsxs(Ky,{children:[l.jsx(Br,{fontSize:"lg",fontWeight:"bold",children:f}),l.jsx(Wr,{children:u}),l.jsxs(Lr,{children:[l.jsx(Je,{ref:S,onClick:C,children:s}),l.jsx(Je,{colorScheme:"error",onClick:j,ml:3,children:r})]})]})})})]})}),Wc=g.memo(rD);function oD(e){const{model:t}=e,r=A(j=>j.system.model_list)[t],o=Y(),{t:s}=K(),c=A(j=>j.system.isProcessing),u=A(j=>j.system.isConnected),[f,p]=g.useState("same"),[h,y]=g.useState("");g.useEffect(()=>{p("same")},[t]);const x=()=>{p("same")},S=()=>{o(qS({model_name:t,save_location:f,custom_location:f==="custom"&&h!==""?h:null}))};return l.jsxs(Wc,{title:`${s("modelManager.convert")} ${t}`,acceptCallback:S,cancelCallback:x,acceptButtonText:`${s("modelManager.convert")}`,triggerComponent:l.jsxs(Je,{size:"sm","aria-label":s("modelManager.convertToDiffusers"),isDisabled:r.status==="active"||c||!u,className:" modal-close-btn",marginInlineEnd:8,children:["🧨 ",s("modelManager.convertToDiffusers")]}),motionPreset:"slideInBottom",children:[l.jsxs(L,{flexDirection:"column",rowGap:4,children:[l.jsx(Ce,{children:s("modelManager.convertToDiffusersHelpText1")}),l.jsxs(vy,{children:[l.jsx(Ra,{children:s("modelManager.convertToDiffusersHelpText2")}),l.jsx(Ra,{children:s("modelManager.convertToDiffusersHelpText3")}),l.jsx(Ra,{children:s("modelManager.convertToDiffusersHelpText4")}),l.jsx(Ra,{children:s("modelManager.convertToDiffusersHelpText5")})]}),l.jsx(Ce,{children:s("modelManager.convertToDiffusersHelpText6")})]}),l.jsxs(L,{flexDir:"column",gap:4,children:[l.jsxs(L,{marginTop:4,flexDir:"column",gap:2,children:[l.jsx(Ce,{fontWeight:"600",children:s("modelManager.convertToDiffusersSaveLocation")}),l.jsx(Qa,{value:f,onChange:j=>p(j),children:l.jsxs(L,{gap:4,children:[l.jsx(vn,{value:"same",children:l.jsx(Gt,{label:"Save converted model in the same folder",children:s("modelManager.sameFolder")})}),l.jsx(vn,{value:"root",children:l.jsx(Gt,{label:"Save converted model in the InvokeAI root folder",children:s("modelManager.invokeRoot")})}),l.jsx(vn,{value:"custom",children:l.jsx(Gt,{label:"Save converted model in a custom folder",children:s("modelManager.custom")})})]})})]}),f==="custom"&&l.jsxs(L,{flexDirection:"column",rowGap:2,children:[l.jsx(Ce,{fontWeight:"500",fontSize:"sm",variant:"subtext",children:s("modelManager.customSaveLocation")}),l.jsx(mt,{value:h,onChange:j=>{j.target.value!==""&&y(j.target.value)},width:"full"})]})]})]})}function tr(e){const{children:t,...n}=e;return l.jsx(pn,{margin:0,color:"base.400",...n,children:t})}function nr(e){const{children:t,...n}=e;return l.jsx(mn,{color:"error.400",...n,children:t})}const bs=ne.form,iD=pe([Et],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),z0=64,R0=2048;function aD(){const{openModel:e,model_list:t}=A(iD),n=A(f=>f.system.isProcessing),r=Y(),{t:o}=K(),[s,c]=g.useState({name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,default:!1,format:"ckpt"});g.useEffect(()=>{var f,p,h,y,x,S,j;if(e){const C=ee.pickBy(t,(w,k)=>ee.isEqual(k,e));c({name:e,description:(f=C[e])==null?void 0:f.description,config:(p=C[e])==null?void 0:p.config,weights:(h=C[e])==null?void 0:h.weights,vae:(y=C[e])==null?void 0:y.vae,width:(x=C[e])==null?void 0:x.width,height:(S=C[e])==null?void 0:S.height,default:(j=C[e])==null?void 0:j.default,format:"ckpt"})}},[t,e]);const u=f=>{r(os({...f,width:Number(f.width),height:Number(f.height)}))};return e?l.jsxs(L,{flexDirection:"column",rowGap:4,width:"100%",children:[l.jsxs(L,{alignItems:"center",gap:4,justifyContent:"space-between",children:[l.jsx(Ce,{fontSize:"lg",fontWeight:"bold",children:e}),l.jsx(oD,{model:e})]}),l.jsx(L,{flexDirection:"column",maxHeight:window.innerHeight-270,overflowY:"scroll",paddingInlineEnd:8,children:l.jsx(xs,{enableReinitialize:!0,initialValues:s,onSubmit:u,children:({handleSubmit:f,errors:p,touched:h})=>l.jsx(bs,{onSubmit:f,children:l.jsxs(Fe,{rowGap:2,alignItems:"start",children:[l.jsxs(rt,{isInvalid:!!p.description&&h.description,isRequired:!0,children:[l.jsx(st,{htmlFor:"description",fontSize:"sm",children:o("modelManager.description")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"description",name:"description",type:"text",width:"full"}),p.description&&h.description?l.jsx(nr,{children:p.description}):l.jsx(tr,{children:o("modelManager.descriptionValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.config&&h.config,isRequired:!0,children:[l.jsx(st,{htmlFor:"config",fontSize:"sm",children:o("modelManager.config")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"config",name:"config",type:"text",width:"full"}),p.config&&h.config?l.jsx(nr,{children:p.config}):l.jsx(tr,{children:o("modelManager.configValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.weights&&h.weights,isRequired:!0,children:[l.jsx(st,{htmlFor:"config",fontSize:"sm",children:o("modelManager.modelLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"weights",name:"weights",type:"text",width:"full"}),p.weights&&h.weights?l.jsx(nr,{children:p.weights}):l.jsx(tr,{children:o("modelManager.modelLocationValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.vae&&h.vae,children:[l.jsx(st,{htmlFor:"vae",fontSize:"sm",children:o("modelManager.vaeLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae",name:"vae",type:"text",width:"full"}),p.vae&&h.vae?l.jsx(nr,{children:p.vae}):l.jsx(tr,{children:o("modelManager.vaeLocationValidationMsg")})]})]}),l.jsxs(oa,{width:"100%",children:[l.jsxs(rt,{isInvalid:!!p.width&&h.width,children:[l.jsx(st,{htmlFor:"width",fontSize:"sm",children:o("modelManager.width")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{id:"width",name:"width",children:({field:y,form:x})=>l.jsx(Vr,{id:"width",name:"width",min:z0,max:R0,step:64,value:x.values.width,onChange:S=>x.setFieldValue(y.name,Number(S))})}),p.width&&h.width?l.jsx(nr,{children:p.width}):l.jsx(tr,{children:o("modelManager.widthValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.height&&h.height,children:[l.jsx(st,{htmlFor:"height",fontSize:"sm",children:o("modelManager.height")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{id:"height",name:"height",children:({field:y,form:x})=>l.jsx(Vr,{id:"height",name:"height",min:z0,max:R0,step:64,value:x.values.height,onChange:S=>x.setFieldValue(y.name,Number(S))})}),p.height&&h.height?l.jsx(nr,{children:p.height}):l.jsx(tr,{children:o("modelManager.heightValidationMsg")})]})]})]}),l.jsx(Je,{type:"submit",className:"modal-close-btn",isLoading:n,children:o("modelManager.updateModel")})]})})})})]}):l.jsx(L,{sx:{width:"100%",justifyContent:"center",alignItems:"center",borderRadius:"base",bg:"base.900"},children:l.jsx(Ce,{fontWeight:500,children:"Pick A Model To Edit"})})}const sD=pe([Et],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function lD(){const{openModel:e,model_list:t}=A(sD),n=A(f=>f.system.isProcessing),r=Y(),{t:o}=K(),[s,c]=g.useState({name:"",description:"",repo_id:"",path:"",vae:{repo_id:"",path:""},default:!1,format:"diffusers"});g.useEffect(()=>{var f,p,h,y,x,S,j,C,w,k,I,P,M,T,D,_;if(e){const R=ee.pickBy(t,(V,F)=>ee.isEqual(F,e));c({name:e,description:(f=R[e])==null?void 0:f.description,path:(p=R[e])!=null&&p.path&&((h=R[e])==null?void 0:h.path)!=="None"?(y=R[e])==null?void 0:y.path:"",repo_id:(x=R[e])!=null&&x.repo_id&&((S=R[e])==null?void 0:S.repo_id)!=="None"?(j=R[e])==null?void 0:j.repo_id:"",vae:{repo_id:(w=(C=R[e])==null?void 0:C.vae)!=null&&w.repo_id?(I=(k=R[e])==null?void 0:k.vae)==null?void 0:I.repo_id:"",path:(M=(P=R[e])==null?void 0:P.vae)!=null&&M.path?(D=(T=R[e])==null?void 0:T.vae)==null?void 0:D.path:""},default:(_=R[e])==null?void 0:_.default,format:"diffusers"})}},[t,e]);const u=f=>{const p=f;f.path===""&&delete p.path,f.repo_id===""&&delete p.repo_id,f.vae.path===""&&delete p.vae.path,f.vae.repo_id===""&&delete p.vae.repo_id,r(os(f))};return e?l.jsxs(L,{flexDirection:"column",rowGap:4,width:"100%",children:[l.jsx(L,{alignItems:"center",children:l.jsx(Ce,{fontSize:"lg",fontWeight:"bold",children:e})}),l.jsx(L,{flexDirection:"column",overflowY:"scroll",paddingInlineEnd:8,children:l.jsx(xs,{enableReinitialize:!0,initialValues:s,onSubmit:u,children:({handleSubmit:f,errors:p,touched:h})=>{var y,x,S,j,C,w,k,I,P,M;return l.jsx(bs,{onSubmit:f,children:l.jsxs(Fe,{rowGap:2,alignItems:"start",children:[l.jsxs(rt,{isInvalid:!!p.description&&h.description,isRequired:!0,children:[l.jsx(st,{htmlFor:"description",fontSize:"sm",children:o("modelManager.description")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"description",name:"description",type:"text",width:"full"}),p.description&&h.description?l.jsx(nr,{children:p.description}):l.jsx(tr,{children:o("modelManager.descriptionValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.path&&h.path,isRequired:!0,children:[l.jsx(st,{htmlFor:"path",fontSize:"sm",children:o("modelManager.modelLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"path",name:"path",type:"text",width:"full"}),p.path&&h.path?l.jsx(nr,{children:p.path}):l.jsx(tr,{children:o("modelManager.modelLocationValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!p.repo_id&&h.repo_id,children:[l.jsx(st,{htmlFor:"repo_id",fontSize:"sm",children:o("modelManager.repo_id")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"repo_id",name:"repo_id",type:"text",width:"full"}),p.repo_id&&h.repo_id?l.jsx(nr,{children:p.repo_id}):l.jsx(tr,{children:o("modelManager.repoIDValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!((y=p.vae)!=null&&y.path)&&((x=h.vae)==null?void 0:x.path),children:[l.jsx(st,{htmlFor:"vae.path",fontSize:"sm",children:o("modelManager.vaeLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae.path",name:"vae.path",type:"text",width:"full"}),(S=p.vae)!=null&&S.path&&((j=h.vae)!=null&&j.path)?l.jsx(nr,{children:(C=p.vae)==null?void 0:C.path}):l.jsx(tr,{children:o("modelManager.vaeLocationValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!((w=p.vae)!=null&&w.repo_id)&&((k=h.vae)==null?void 0:k.repo_id),children:[l.jsx(st,{htmlFor:"vae.repo_id",fontSize:"sm",children:o("modelManager.vaeRepoID")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"full"}),(I=p.vae)!=null&&I.repo_id&&((P=h.vae)!=null&&P.repo_id)?l.jsx(nr,{children:(M=p.vae)==null?void 0:M.repo_id}):l.jsx(tr,{children:o("modelManager.vaeRepoIDValidationMsg")})]})]}),l.jsx(Je,{type:"submit",className:"modal-close-btn",isLoading:n,children:o("modelManager.updateModel")})]})})}})})]}):l.jsx(L,{sx:{width:"100%",justifyContent:"center",alignItems:"center",borderRadius:"base",bg:"base.900"},children:l.jsx(Ce,{fontWeight:"500",children:"Pick A Model To Edit"})})}const cD=e=>{const{label:t,...n}=e;return l.jsx(E2,{colorScheme:"accent",...n,children:t})},ft=g.memo(cD),Pb=pe([Et],e=>{const{model_list:t}=e,n=[];return ee.forEach(t,r=>{n.push(r.weights)}),n});function N0({model:e,modelsToAdd:t,setModelsToAdd:n}){const{t:r}=K(),o=A(Pb),s=c=>{t.includes(c.target.value)?n(ee.remove(t,u=>u!==c.target.value)):n([...t,c.target.value])};return l.jsxs(L,{flexDirection:"column",gap:2,backgroundColor:t.includes(e.name)?"accent.650":"base.800",paddingX:4,paddingY:2,borderRadius:4,children:[l.jsxs(L,{gap:4,alignItems:"center",justifyContent:"space-between",children:[l.jsx(ft,{value:e.name,label:l.jsx(Ce,{fontWeight:500,children:e.name}),isChecked:t.includes(e.name),isDisabled:o.includes(e.location),onChange:s}),o.includes(e.location)&&l.jsx(by,{colorScheme:"accent",children:r("modelManager.modelExists")})]}),l.jsx(Ce,{fontStyle:"italic",variant:"subtext",children:e.location})]})}function uD(){const e=Y(),{t}=K(),n=A(P=>P.system.searchFolder),r=A(P=>P.system.foundModels),o=A(Pb),s=A(P=>P.ui.shouldShowExistingModelsInSearch),c=A(P=>P.system.isProcessing),[u,f]=_e.useState([]),[p,h]=_e.useState("v1"),[y,x]=_e.useState(""),S=()=>{e(KS(null)),e(XS(null)),f([])},j=P=>{e(Iv(P.checkpointFolder))},C=()=>{f([]),r&&r.forEach(P=>{o.includes(P.location)||f(M=>[...M,P.name])})},w=()=>{f([])},k=()=>{const P=r==null?void 0:r.filter(T=>u.includes(T.name)),M={v1:"configs/stable-diffusion/v1-inference.yaml",v2_base:"configs/stable-diffusion/v2-inference-v.yaml",v2_768:"configs/stable-diffusion/v2-inference-v.yaml",inpainting:"configs/stable-diffusion/v1-inpainting-inference.yaml",custom:y};P==null||P.forEach(T=>{const D={name:T.name,description:"",config:M[p],weights:T.location,vae:"",width:512,height:512,default:!1,format:"ckpt"};e(os(D))}),f([])},I=()=>{const P=[],M=[];return r&&r.forEach((T,D)=>{o.includes(T.location)?M.push(l.jsx(N0,{model:T,modelsToAdd:u,setModelsToAdd:f},D)):P.push(l.jsx(N0,{model:T,modelsToAdd:u,setModelsToAdd:f},D))}),l.jsxs(L,{flexDirection:"column",rowGap:4,children:[P,s&&M]})};return l.jsxs(l.Fragment,{children:[n?l.jsxs(L,{sx:{padding:4,gap:2,position:"relative",borderRadius:"base",alignItems:"center",w:"full",bg:"base.900"},children:[l.jsxs(L,{sx:{flexDir:"column",gap:2},children:[l.jsx(Ce,{sx:{fontWeight:500},variant:"subtext",children:t("modelManager.checkpointFolder")}),l.jsx(Ce,{sx:{fontWeight:500},children:n})]}),l.jsx(kc,{}),l.jsx(ae,{"aria-label":t("modelManager.scanAgain"),tooltip:t("modelManager.scanAgain"),icon:l.jsx(t0,{}),fontSize:18,disabled:c,onClick:()=>e(Iv(n))}),l.jsx(ae,{"aria-label":t("modelManager.clearCheckpointFolder"),tooltip:t("modelManager.clearCheckpointFolder"),icon:l.jsx(So,{}),onClick:S})]}):l.jsx(xs,{initialValues:{checkpointFolder:""},onSubmit:P=>{j(P)},children:({handleSubmit:P})=>l.jsx(bs,{onSubmit:P,width:"100%",children:l.jsxs(oa,{columnGap:2,alignItems:"flex-end",children:[l.jsx(rt,{flexGrow:1,children:l.jsx(jt,{as:mt,id:"checkpointFolder",name:"checkpointFolder",type:"text",size:"md",label:t("modelManager.checkpointFolder")})}),l.jsx(Je,{leftIcon:l.jsx(t0,{}),"aria-label":t("modelManager.findModels"),tooltip:t("modelManager.findModels"),type:"submit",disabled:c,px:8,children:t("modelManager.findModels")})]})})}),r&&l.jsxs(L,{flexDirection:"column",rowGap:4,width:"full",children:[l.jsxs(L,{justifyContent:"space-between",alignItems:"center",children:[l.jsxs("p",{children:[t("modelManager.modelsFound"),": ",r.length]}),l.jsxs("p",{children:[t("modelManager.selected"),": ",u.length]})]}),l.jsxs(L,{columnGap:2,justifyContent:"space-between",children:[l.jsxs(L,{columnGap:2,children:[l.jsx(Je,{isDisabled:u.length===r.length,onClick:C,children:t("modelManager.selectAll")}),l.jsx(Je,{isDisabled:u.length===0,onClick:w,children:t("modelManager.deselectAll")}),l.jsx(ft,{label:t("modelManager.showExisting"),isChecked:s,onChange:()=>e(YS(!s))})]}),l.jsx(Je,{isDisabled:u.length===0,onClick:k,colorScheme:"accent",children:t("modelManager.addSelected")})]}),l.jsxs(L,{sx:{flexDirection:"column",padding:4,rowGap:4,borderRadius:"base",width:"full",bg:"base.900"},children:[l.jsxs(L,{gap:4,children:[l.jsx(Ce,{fontWeight:500,variant:"subtext",children:t("modelManager.pickModelType")}),l.jsx(Qa,{value:p,onChange:P=>h(P),defaultValue:"v1",name:"model_type",children:l.jsxs(L,{gap:4,children:[l.jsx(vn,{value:"v1",children:l.jsx(Ce,{fontSize:"sm",children:t("modelManager.v1")})}),l.jsx(vn,{value:"v2_base",children:l.jsx(Ce,{fontSize:"sm",children:t("modelManager.v2_base")})}),l.jsx(vn,{value:"v2_768",children:l.jsx(Ce,{fontSize:"sm",children:t("modelManager.v2_768")})}),l.jsx(vn,{value:"inpainting",children:l.jsx(Ce,{fontSize:"sm",children:t("modelManager.inpainting")})}),l.jsx(vn,{value:"custom",children:l.jsx(Ce,{fontSize:"sm",children:t("modelManager.customConfig")})})]})})]}),p==="custom"&&l.jsxs(L,{flexDirection:"column",rowGap:2,children:[l.jsx(Ce,{fontWeight:"500",fontSize:"sm",variant:"subtext",children:t("modelManager.pathToCustomConfig")}),l.jsx(mt,{value:y,onChange:P=>{P.target.value!==""&&x(P.target.value)},width:"full"})]})]}),l.jsx(L,{flexDirection:"column",maxHeight:72,overflowY:"scroll",borderRadius:"sm",gap:2,children:r.length>0?I():l.jsx(Ce,{fontWeight:"500",padding:2,borderRadius:"sm",textAlign:"center",variant:"subtext",children:t("modelManager.noModelsFound")})})]})]})}function er({children:e}){return l.jsx(L,{sx:{flexDirection:"column",padding:4,rowGap:4,borderRadius:"base",width:"full",bg:"base.900"},children:e})}const F0=64,L0=2048;function dD(){const e=Y(),{t}=K(),n=A(p=>p.system.isProcessing);function r(p){return/\s/.test(p)}function o(p){let h;return r(p)&&(h=t("modelManager.cannotUseSpaces")),h}const s={name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,format:"ckpt",default:!1},c=p=>{e(os(p)),e(Di(null))},[u,f]=_e.useState(!1);return l.jsxs(Fe,{gap:2,alignItems:"flex-start",children:[l.jsxs(L,{columnGap:4,children:[l.jsx(ft,{isChecked:!u,label:t("modelManager.scanForModels"),onChange:()=>f(!u)}),l.jsx(ft,{label:t("modelManager.addManually"),isChecked:u,onChange:()=>f(!u)})]}),u?l.jsx(xs,{initialValues:s,onSubmit:c,children:({handleSubmit:p,errors:h,touched:y})=>l.jsx(bs,{onSubmit:p,sx:{w:"full"},children:l.jsxs(Fe,{rowGap:2,children:[l.jsx(Ce,{fontSize:20,fontWeight:"bold",alignSelf:"start",children:t("modelManager.manual")}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.name&&y.name,isRequired:!0,children:[l.jsx(st,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"name",name:"name",type:"text",validate:o,width:"full"}),h.name&&y.name?l.jsx(mn,{children:h.name}):l.jsx(pn,{margin:0,children:t("modelManager.nameValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.description&&y.description,isRequired:!0,children:[l.jsx(st,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"description",name:"description",type:"text",width:"full"}),h.description&&y.description?l.jsx(mn,{children:h.description}):l.jsx(pn,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.config&&y.config,isRequired:!0,children:[l.jsx(st,{htmlFor:"config",fontSize:"sm",children:t("modelManager.config")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"config",name:"config",type:"text",width:"full"}),h.config&&y.config?l.jsx(mn,{children:h.config}):l.jsx(pn,{margin:0,children:t("modelManager.configValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.weights&&y.weights,isRequired:!0,children:[l.jsx(st,{htmlFor:"config",fontSize:"sm",children:t("modelManager.modelLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"weights",name:"weights",type:"text",width:"full"}),h.weights&&y.weights?l.jsx(mn,{children:h.weights}):l.jsx(pn,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.vae&&y.vae,children:[l.jsx(st,{htmlFor:"vae",fontSize:"sm",children:t("modelManager.vaeLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae",name:"vae",type:"text",width:"full"}),h.vae&&y.vae?l.jsx(mn,{children:h.vae}):l.jsx(pn,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]})}),l.jsxs(oa,{width:"100%",children:[l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.width&&y.width,children:[l.jsx(st,{htmlFor:"width",fontSize:"sm",children:t("modelManager.width")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{id:"width",name:"width",children:({field:x,form:S})=>l.jsx(Vr,{id:"width",name:"width",min:F0,max:L0,step:64,value:S.values.width,onChange:j=>S.setFieldValue(x.name,Number(j))})}),h.width&&y.width?l.jsx(mn,{children:h.width}):l.jsx(pn,{margin:0,children:t("modelManager.widthValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!h.height&&y.height,children:[l.jsx(st,{htmlFor:"height",fontSize:"sm",children:t("modelManager.height")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{id:"height",name:"height",children:({field:x,form:S})=>l.jsx(Vr,{id:"height",name:"height",min:F0,max:L0,step:64,value:S.values.height,onChange:j=>S.setFieldValue(x.name,Number(j))})}),h.height&&y.height?l.jsx(mn,{children:h.height}):l.jsx(pn,{margin:0,children:t("modelManager.heightValidationMsg")})]})]})})]}),l.jsx(Je,{type:"submit",className:"modal-close-btn",isLoading:n,children:t("modelManager.addModel")})]})})}):l.jsx(uD,{})]})}function fD(){const e=Y(),{t}=K(),n=A(u=>u.system.isProcessing);function r(u){return/\s/.test(u)}function o(u){let f;return r(u)&&(f=t("modelManager.cannotUseSpaces")),f}const s={name:"",description:"",repo_id:"",path:"",format:"diffusers",default:!1,vae:{repo_id:"",path:""}},c=u=>{const f=u;u.path===""&&delete f.path,u.repo_id===""&&delete f.repo_id,u.vae.path===""&&delete f.vae.path,u.vae.repo_id===""&&delete f.vae.repo_id,e(os(f)),e(Di(null))};return l.jsx(L,{children:l.jsx(xs,{initialValues:s,onSubmit:c,children:({handleSubmit:u,errors:f,touched:p})=>{var h,y,x,S,j,C,w,k,I,P;return l.jsx(bs,{onSubmit:u,children:l.jsxs(Fe,{rowGap:2,children:[l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!f.name&&p.name,isRequired:!0,children:[l.jsx(st,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"name",name:"name",type:"text",validate:o,width:"2xl",isRequired:!0}),f.name&&p.name?l.jsx(mn,{children:f.name}):l.jsx(pn,{margin:0,children:t("modelManager.nameValidationMsg")})]})]})}),l.jsx(er,{children:l.jsxs(rt,{isInvalid:!!f.description&&p.description,isRequired:!0,children:[l.jsx(st,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"description",name:"description",type:"text",width:"2xl",isRequired:!0}),f.description&&p.description?l.jsx(mn,{children:f.description}):l.jsx(pn,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]})}),l.jsxs(er,{children:[l.jsx(Ce,{fontWeight:"bold",fontSize:"sm",children:t("modelManager.formMessageDiffusersModelLocation")}),l.jsx(Ce,{sx:{fontSize:"sm",fontStyle:"italic"},variant:"subtext",children:t("modelManager.formMessageDiffusersModelLocationDesc")}),l.jsxs(rt,{isInvalid:!!f.path&&p.path,children:[l.jsx(st,{htmlFor:"path",fontSize:"sm",children:t("modelManager.modelLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"path",name:"path",type:"text",width:"2xl"}),f.path&&p.path?l.jsx(mn,{children:f.path}):l.jsx(pn,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!f.repo_id&&p.repo_id,children:[l.jsx(st,{htmlFor:"repo_id",fontSize:"sm",children:t("modelManager.repo_id")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"repo_id",name:"repo_id",type:"text",width:"2xl"}),f.repo_id&&p.repo_id?l.jsx(mn,{children:f.repo_id}):l.jsx(pn,{margin:0,children:t("modelManager.repoIDValidationMsg")})]})]})]}),l.jsxs(er,{children:[l.jsx(Ce,{fontWeight:"bold",children:t("modelManager.formMessageDiffusersVAELocation")}),l.jsx(Ce,{sx:{fontSize:"sm",fontStyle:"italic"},variant:"subtext",children:t("modelManager.formMessageDiffusersVAELocationDesc")}),l.jsxs(rt,{isInvalid:!!((h=f.vae)!=null&&h.path)&&((y=p.vae)==null?void 0:y.path),children:[l.jsx(st,{htmlFor:"vae.path",fontSize:"sm",children:t("modelManager.vaeLocation")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae.path",name:"vae.path",type:"text",width:"2xl"}),(x=f.vae)!=null&&x.path&&((S=p.vae)!=null&&S.path)?l.jsx(mn,{children:(j=f.vae)==null?void 0:j.path}):l.jsx(pn,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]}),l.jsxs(rt,{isInvalid:!!((C=f.vae)!=null&&C.repo_id)&&((w=p.vae)==null?void 0:w.repo_id),children:[l.jsx(st,{htmlFor:"vae.repo_id",fontSize:"sm",children:t("modelManager.vaeRepoID")}),l.jsxs(Fe,{alignItems:"start",children:[l.jsx(jt,{as:mt,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"2xl"}),(k=f.vae)!=null&&k.repo_id&&((I=p.vae)!=null&&I.repo_id)?l.jsx(mn,{children:(P=f.vae)==null?void 0:P.repo_id}):l.jsx(pn,{margin:0,children:t("modelManager.vaeRepoIDValidationMsg")})]})]})]}),l.jsx(Je,{type:"submit",isLoading:n,children:t("modelManager.addModel")})]})})}})})}function B0({text:e,onClick:t}){return l.jsx(L,{position:"relative",width:"50%",height:40,justifyContent:"center",alignItems:"center",onClick:t,as:ni,children:l.jsx(Ce,{fontWeight:"bold",children:e})})}function hD(){const{isOpen:e,onOpen:t,onClose:n}=po(),r=A(u=>u.ui.addNewModelUIOption),o=Y(),{t:s}=K(),c=()=>{n(),o(Di(null))};return l.jsxs(l.Fragment,{children:[l.jsx(Je,{"aria-label":s("modelManager.addNewModel"),tooltip:s("modelManager.addNewModel"),onClick:t,size:"sm",children:l.jsxs(L,{columnGap:2,alignItems:"center",children:[l.jsx(zc,{}),s("modelManager.addNew")]})}),l.jsxs(mo,{isOpen:e,onClose:c,size:"3xl",closeOnOverlayClick:!1,children:[l.jsx(Hr,{}),l.jsxs(vo,{margin:"auto",children:[l.jsxs(Br,{children:[s("modelManager.addNewModel")," "]}),r!==null&&l.jsx(ae,{"aria-label":s("common.back"),tooltip:s("common.back"),onClick:()=>o(Di(null)),position:"absolute",variant:"ghost",zIndex:1,size:"sm",insetInlineEnd:12,top:2,icon:l.jsx(Lx,{})}),l.jsx(aa,{}),l.jsxs(Wr,{children:[r==null&&l.jsxs(L,{columnGap:4,children:[l.jsx(B0,{text:s("modelManager.addCheckpointModel"),onClick:()=>o(Di("ckpt"))}),l.jsx(B0,{text:s("modelManager.addDiffuserModel"),onClick:()=>o(Di("diffusers"))})]}),r=="ckpt"&&l.jsx(dD,{}),r=="diffusers"&&l.jsx(fD,{})]}),l.jsx(Lr,{})]})]})]})}var pD=eh({displayName:"EditIcon",path:l.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[l.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),l.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),Ib=eh({displayName:"ExternalLinkIcon",path:l.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[l.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),l.jsx("path",{d:"M15 3h6v6"}),l.jsx("path",{d:"M10 14L21 3"})]})}),mD=eh({displayName:"DeleteIcon",path:l.jsx("g",{fill:"currentColor",children:l.jsx("path",{d:"M19.452 7.5H4.547a.5.5 0 00-.5.545l1.287 14.136A2 2 0 007.326 24h9.347a2 2 0 001.992-1.819L19.95 8.045a.5.5 0 00-.129-.382.5.5 0 00-.369-.163zm-9.2 13a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zm5 0a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zM22 4h-4.75a.25.25 0 01-.25-.25V2.5A2.5 2.5 0 0014.5 0h-5A2.5 2.5 0 007 2.5v1.25a.25.25 0 01-.25.25H2a1 1 0 000 2h20a1 1 0 000-2zM9 3.75V2.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v1.25a.25.25 0 01-.25.25h-5.5A.25.25 0 019 3.75z"})})});function Ol(e){const{isProcessing:t,isConnected:n}=A(S=>S.system),r=A(S=>S.system.openModel),{t:o}=K(),s=Y(),{name:c,status:u,description:f}=e,p=()=>{s(k1(c))},h=()=>{s(Mv(c))},y=()=>{s(QS(c)),s(Mv(null))},x=()=>{switch(u){case"active":return"ok.500";case"cached":return"warning.500";case"not loaded":return"inherit"}};return l.jsxs(L,{alignItems:"center",p:2,borderRadius:"base",sx:c===r?{bg:"accent.750",_hover:{bg:"accent.750"}}:{_hover:{bg:"base.750"}},children:[l.jsx(Ye,{onClick:h,cursor:"pointer",children:l.jsx(Gt,{label:f,hasArrow:!0,placement:"bottom",children:l.jsx(Ce,{fontWeight:"600",children:c})})}),l.jsx(kc,{onClick:h,cursor:"pointer"}),l.jsxs(L,{gap:2,alignItems:"center",children:[l.jsx(Ce,{color:x(),children:u}),l.jsx(ni,{size:"sm",onClick:p,isDisabled:u==="active"||t||!n,children:o("modelManager.load")}),l.jsx(ae,{icon:l.jsx(pD,{}),size:"sm",onClick:h,"aria-label":o("accessibility.modifyConfig"),isDisabled:u==="active"||t||!n}),l.jsx(Wc,{title:o("modelManager.deleteModel"),acceptCallback:y,acceptButtonText:o("modelManager.delete"),triggerComponent:l.jsx(ae,{icon:l.jsx(mD,{}),size:"sm","aria-label":o("modelManager.deleteConfig"),isDisabled:u==="active"||t||!n,colorScheme:"error"}),children:l.jsxs(L,{rowGap:4,flexDirection:"column",children:[l.jsx("p",{style:{fontWeight:"bold"},children:o("modelManager.deleteMsg1")}),l.jsx("p",{children:o("modelManager.deleteMsg2")})]})})]})]})}function H0(e){const{children:t,value:n}=e,[r,o]=E1("colors",["base.800","base.200"]);return l.jsx("option",{value:n,style:{background:r,color:o},children:t})}const vD=e=>{const{label:t,isDisabled:n,validValues:r,tooltip:o,tooltipProps:s,...c}=e;return l.jsxs(rt,{isDisabled:n,onClick:u=>{u.stopPropagation(),u.nativeEvent.stopImmediatePropagation(),u.nativeEvent.stopPropagation(),u.nativeEvent.cancelBubble=!0},children:[t&&l.jsx(st,{children:t}),l.jsx(Gt,{label:o,...s,children:l.jsx(nx,{...c,children:r.map(u=>typeof u=="string"||typeof u=="number"?l.jsx(H0,{value:u,children:u},u):l.jsx(H0,{value:u.value,children:u.key},u.value))})})]})},Mn=g.memo(vD);function gD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M19.002 3h-14c-1.103 0-2 .897-2 2v4h2V5h14v14h-14v-4h-2v4c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.898-2-2-2z"}},{tag:"path",attr:{d:"m11 16 5-4-5-4v3.001H3v2h8z"}}]})(e)}function Mb(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 16c1.671 0 3-1.331 3-3s-1.329-3-3-3-3 1.331-3 3 1.329 3 3 3z"}},{tag:"path",attr:{d:"M20.817 11.186a8.94 8.94 0 0 0-1.355-3.219 9.053 9.053 0 0 0-2.43-2.43 8.95 8.95 0 0 0-3.219-1.355 9.028 9.028 0 0 0-1.838-.18V2L8 5l3.975 3V6.002c.484-.002.968.044 1.435.14a6.961 6.961 0 0 1 2.502 1.053 7.005 7.005 0 0 1 1.892 1.892A6.967 6.967 0 0 1 19 13a7.032 7.032 0 0 1-.55 2.725 7.11 7.11 0 0 1-.644 1.188 7.2 7.2 0 0 1-.858 1.039 7.028 7.028 0 0 1-3.536 1.907 7.13 7.13 0 0 1-2.822 0 6.961 6.961 0 0 1-2.503-1.054 7.002 7.002 0 0 1-1.89-1.89A6.996 6.996 0 0 1 5 13H3a9.02 9.02 0 0 0 1.539 5.034 9.096 9.096 0 0 0 2.428 2.428A8.95 8.95 0 0 0 12 22a9.09 9.09 0 0 0 1.814-.183 9.014 9.014 0 0 0 3.218-1.355 8.886 8.886 0 0 0 1.331-1.099 9.228 9.228 0 0 0 1.1-1.332A8.952 8.952 0 0 0 21 13a9.09 9.09 0 0 0-.183-1.814z"}}]})(e)}function yD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M6.758 8.758 5.344 7.344a8.048 8.048 0 0 0-1.841 2.859l1.873.701a6.048 6.048 0 0 1 1.382-2.146zM19 12.999a7.935 7.935 0 0 0-2.344-5.655A7.917 7.917 0 0 0 12 5.069V2L7 6l5 4V7.089a5.944 5.944 0 0 1 3.242 1.669A5.956 5.956 0 0 1 17 13v.002c0 .33-.033.655-.086.977-.007.043-.011.088-.019.131a6.053 6.053 0 0 1-1.138 2.536c-.16.209-.331.412-.516.597a5.954 5.954 0 0 1-.728.613 5.906 5.906 0 0 1-2.277 1.015c-.142.03-.285.05-.43.069-.062.009-.122.021-.184.027a6.104 6.104 0 0 1-1.898-.103L9.3 20.819a8.087 8.087 0 0 0 2.534.136c.069-.007.138-.021.207-.03.205-.026.409-.056.61-.098l.053-.009-.001-.005a7.877 7.877 0 0 0 2.136-.795l.001.001.028-.019a7.906 7.906 0 0 0 1.01-.67c.27-.209.532-.43.777-.675.248-.247.47-.513.681-.785.021-.028.049-.053.07-.081l-.006-.004a7.899 7.899 0 0 0 1.093-1.997l.008.003c.029-.078.05-.158.076-.237.037-.11.075-.221.107-.333.04-.14.073-.281.105-.423.022-.099.048-.195.066-.295.032-.171.056-.344.076-.516.01-.076.023-.15.03-.227.023-.249.037-.5.037-.753.002-.002.002-.004.002-.008zM6.197 16.597l-1.6 1.201a8.045 8.045 0 0 0 2.569 2.225l.961-1.754a6.018 6.018 0 0 1-1.93-1.672zM5 13c0-.145.005-.287.015-.429l-1.994-.143a7.977 7.977 0 0 0 .483 3.372l1.873-.701A5.975 5.975 0 0 1 5 13z"}}]})(e)}function xD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16.242 17.242a6.04 6.04 0 0 1-1.37 1.027l.961 1.754a8.068 8.068 0 0 0 2.569-2.225l-1.6-1.201a5.938 5.938 0 0 1-.56.645zm1.743-4.671a5.975 5.975 0 0 1-.362 2.528l1.873.701a7.977 7.977 0 0 0 .483-3.371l-1.994.142zm1.512-2.368a8.048 8.048 0 0 0-1.841-2.859l-1.414 1.414a6.071 6.071 0 0 1 1.382 2.146l1.873-.701zm-8.128 8.763c-.047-.005-.094-.015-.141-.021a6.701 6.701 0 0 1-.468-.075 5.923 5.923 0 0 1-2.421-1.122 5.954 5.954 0 0 1-.583-.506 6.138 6.138 0 0 1-.516-.597 5.91 5.91 0 0 1-.891-1.634 6.086 6.086 0 0 1-.247-.902c-.008-.043-.012-.088-.019-.131A6.332 6.332 0 0 1 6 13.002V13c0-1.603.624-3.109 1.758-4.242A5.944 5.944 0 0 1 11 7.089V10l5-4-5-4v3.069a7.917 7.917 0 0 0-4.656 2.275A7.936 7.936 0 0 0 4 12.999v.009c0 .253.014.504.037.753.007.076.021.15.03.227.021.172.044.345.076.516.019.1.044.196.066.295.032.142.065.283.105.423.032.112.07.223.107.333.026.079.047.159.076.237l.008-.003A7.948 7.948 0 0 0 5.6 17.785l-.007.005c.021.028.049.053.07.081.211.272.433.538.681.785a8.236 8.236 0 0 0 .966.816c.265.192.537.372.821.529l.028.019.001-.001a7.877 7.877 0 0 0 2.136.795l-.001.005.053.009c.201.042.405.071.61.098.069.009.138.023.207.03a8.038 8.038 0 0 0 2.532-.137l-.424-1.955a6.11 6.11 0 0 1-1.904.102z"}}]})(e)}function bD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11 6H9v3H6v2h3v3h2v-3h3V9h-3z"}},{tag:"path",attr:{d:"M10 2c-4.411 0-8 3.589-8 8s3.589 8 8 8a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8zm0 14c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6z"}}]})(e)}function SD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M6 9h8v2H6z"}},{tag:"path",attr:{d:"M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z"}}]})(e)}const CD=e=>{const[t,n]=g.useState(!1),{label:r,value:o,min:s=1,max:c=100,step:u=1,onChange:f,tooltipSuffix:p="",withSliderMarks:h=!1,withInput:y=!1,isInteger:x=!1,inputWidth:S=16,inputReadOnly:j=!1,withReset:C=!1,hideTooltip:w=!1,isCompact:k=!1,handleReset:I,isResetDisabled:P,isSliderDisabled:M,isInputDisabled:T,sliderFormControlProps:D,sliderFormLabelProps:_,sliderMarkProps:R,sliderTrackProps:V,sliderThumbProps:F,sliderNumberInputProps:B,sliderNumberInputFieldProps:Q,sliderNumberInputStepperProps:U,sliderTooltipProps:X,sliderIAIIconButtonProps:te,...re}=e,{t:$}=K(),[Z,fe]=g.useState(String(o));g.useEffect(()=>{fe(o)},[o]);const Se=g.useMemo(()=>B!=null&&B.max?B.max:c,[c,B==null?void 0:B.max]),Me=se=>{f(se)},Ie=se=>{se.target.value===""&&(se.target.value=String(s));const Ne=ee.clamp(x?Math.floor(Number(se.target.value)):Number(Z),s,Se);f(Ne)},Pe=se=>{fe(se)},he=()=>{I&&I()};return l.jsxs(rt,{sx:k?{display:"flex",flexDirection:"row",alignItems:"center",columnGap:4,margin:0,padding:0}:{},...D,children:[l.jsx(st,{..._,mb:-1,children:r}),l.jsxs(oa,{w:"100%",gap:2,alignItems:"center",children:[l.jsxs(sx,{"aria-label":r,value:o,min:s,max:c,step:u,onChange:Me,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),focusThumbOnChange:!1,isDisabled:M,...re,children:[h&&l.jsxs(l.Fragment,{children:[l.jsx(Tf,{value:s,sx:{insetInlineStart:"0 !important",insetInlineEnd:"unset !important"},...R,children:s}),l.jsx(Tf,{value:c,sx:{insetInlineStart:"unset !important",insetInlineEnd:"0 !important"},...R,children:c})]}),l.jsx(cx,{...V,children:l.jsx(ux,{})}),l.jsx(Gt,{hasArrow:!0,placement:"top",isOpen:t,label:`${o}${p}`,hidden:w,...X,children:l.jsx(lx,{...F})})]}),y&&l.jsxs(Nh,{min:s,max:Se,step:u,value:Z,onChange:Pe,onBlur:Ie,isDisabled:T,...B,children:[l.jsx(Lh,{readOnly:j,minWidth:S,...Q}),l.jsxs(Fh,{...U,children:[l.jsx(Hh,{onClick:()=>f(Number(Z))}),l.jsx(Bh,{onClick:()=>f(Number(Z))})]})]}),C&&l.jsx(ae,{size:"sm","aria-label":$("accessibility.reset"),tooltip:"Reset",icon:l.jsx(Mb,{}),onClick:he,isDisabled:P,...te})]})]})},ut=g.memo(CD);function wD(){const e=Y(),{isOpen:t,onOpen:n,onClose:r}=po(),o=A(K9),{t:s}=K(),[c,u]=g.useState(Object.keys(o)[0]),[f,p]=g.useState(Object.keys(o)[1]),[h,y]=g.useState("none"),[x,S]=g.useState(""),[j,C]=g.useState(.5),[w,k]=g.useState("weighted_sum"),[I,P]=g.useState("root"),[M,T]=g.useState(""),[D,_]=g.useState(!1),R=Object.keys(o).filter(U=>U!==f&&U!==h),V=Object.keys(o).filter(U=>U!==c&&U!==h),F=[{key:s("modelManager.none"),value:"none"},...Object.keys(o).filter(U=>U!==c&&U!==f).map(U=>({key:U,value:U}))],B=A(U=>U.system.isProcessing),Q=()=>{let U=[c,f,h];U=U.filter(te=>te!=="none");const X={models_to_merge:U,merged_model_name:x!==""?x:U.join("-"),alpha:j,interp:w,model_merge_save_path:I==="root"?null:M,force:D};e(ZS(X))};return l.jsxs(l.Fragment,{children:[l.jsx(Je,{onClick:n,size:"sm",children:l.jsx(L,{columnGap:2,alignItems:"center",children:s("modelManager.mergeModels")})}),l.jsxs(mo,{isOpen:t,onClose:r,size:"4xl",closeOnOverlayClick:!1,children:[l.jsx(Hr,{}),l.jsxs(vo,{fontFamily:"Inter",margin:"auto",paddingInlineEnd:4,children:[l.jsx(Br,{children:s("modelManager.mergeModels")}),l.jsx(aa,{}),l.jsx(Wr,{children:l.jsxs(L,{flexDirection:"column",rowGap:4,children:[l.jsxs(L,{sx:{flexDirection:"column",marginBottom:4,padding:4,borderRadius:"base",rowGap:1,bg:"base.900"},children:[l.jsx(Ce,{children:s("modelManager.modelMergeHeaderHelp1")}),l.jsx(Ce,{fontSize:"sm",variant:"subtext",children:s("modelManager.modelMergeHeaderHelp2")})]}),l.jsxs(L,{columnGap:4,children:[l.jsx(Mn,{label:s("modelManager.modelOne"),validValues:R,onChange:U=>u(U.target.value)}),l.jsx(Mn,{label:s("modelManager.modelTwo"),validValues:V,onChange:U=>p(U.target.value)}),l.jsx(Mn,{label:s("modelManager.modelThree"),validValues:F,onChange:U=>{U.target.value!=="none"?(y(U.target.value),k("add_difference")):(y("none"),k("weighted_sum"))}})]}),l.jsx(mt,{label:s("modelManager.mergedModelName"),value:x,onChange:U=>S(U.target.value)}),l.jsxs(L,{sx:{flexDirection:"column",padding:4,borderRadius:"base",gap:4,bg:"base.900"},children:[l.jsx(ut,{label:s("modelManager.alpha"),min:.01,max:.99,step:.01,value:j,onChange:U=>C(U),withInput:!0,withReset:!0,handleReset:()=>C(.5),withSliderMarks:!0}),l.jsx(Ce,{variant:"subtext",fontSize:"sm",children:s("modelManager.modelMergeAlphaHelp")})]}),l.jsxs(L,{sx:{padding:4,borderRadius:"base",gap:4,bg:"base.900"},children:[l.jsx(Ce,{fontWeight:500,fontSize:"sm",variant:"subtext",children:s("modelManager.interpolationType")}),l.jsx(Qa,{value:w,onChange:U=>k(U),children:l.jsx(L,{columnGap:4,children:h==="none"?l.jsxs(l.Fragment,{children:[l.jsx(vn,{value:"weighted_sum",children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.weightedSum")})}),l.jsx(vn,{value:"sigmoid",children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.sigmoid")})}),l.jsx(vn,{value:"inv_sigmoid",children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.inverseSigmoid")})})]}):l.jsx(vn,{value:"add_difference",children:l.jsx(Gt,{label:s("modelManager.modelMergeInterpAddDifferenceHelp"),children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.addDifference")})})})})})]}),l.jsxs(L,{sx:{flexDirection:"column",padding:4,borderRadius:"base",gap:4,bg:"base.900"},children:[l.jsxs(L,{columnGap:4,children:[l.jsx(Ce,{fontWeight:"500",fontSize:"sm",variant:"subtext",children:s("modelManager.mergedModelSaveLocation")}),l.jsx(Qa,{value:I,onChange:U=>P(U),children:l.jsxs(L,{columnGap:4,children:[l.jsx(vn,{value:"root",children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.invokeAIFolder")})}),l.jsx(vn,{value:"custom",children:l.jsx(Ce,{fontSize:"sm",children:s("modelManager.custom")})})]})})]}),I==="custom"&&l.jsx(mt,{label:s("modelManager.mergedModelCustomSaveLocation"),value:M,onChange:U=>T(U.target.value)})]}),l.jsx(ft,{label:s("modelManager.ignoreMismatch"),isChecked:D,onChange:U=>_(U.target.checked),fontWeight:"500"}),l.jsx(Je,{onClick:Q,isLoading:B,isDisabled:I==="custom"&&M==="",children:s("modelManager.merge")})]})}),l.jsx(Lr,{})]})]})]})}const jD=pe(Et,e=>ee.map(e.model_list,(n,r)=>({name:r,...n})),{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function Vd({label:e,isActive:t,onClick:n}){return l.jsx(Je,{onClick:n,isActive:t,sx:{_active:{bg:"accent.750"}},size:"sm",children:e})}const kD=()=>{const e=A(jD),[t,n]=_e.useState(!1);_e.useEffect(()=>{const x=setTimeout(()=>{n(!0)},200);return()=>clearTimeout(x)},[]);const[r,o]=g.useState(""),[s,c]=g.useState("all"),[u,f]=g.useTransition(),{t:p}=K(),h=x=>{f(()=>{o(x.target.value)})},y=g.useMemo(()=>{const x=[],S=[],j=[],C=[];return e.forEach((w,k)=>{w.name.toLowerCase().includes(r.toLowerCase())&&(j.push(l.jsx(Ol,{name:w.name,status:w.status,description:w.description},k)),w.format===s&&C.push(l.jsx(Ol,{name:w.name,status:w.status,description:w.description},k))),w.format!=="diffusers"?x.push(l.jsx(Ol,{name:w.name,status:w.status,description:w.description},k)):S.push(l.jsx(Ol,{name:w.name,status:w.status,description:w.description},k))}),r!==""?s==="all"?l.jsx(Ye,{marginTop:4,children:j}):l.jsx(Ye,{marginTop:4,children:C}):l.jsxs(L,{flexDirection:"column",rowGap:6,children:[s==="all"&&l.jsxs(l.Fragment,{children:[l.jsxs(Ye,{children:[l.jsx(Ce,{sx:{fontWeight:"500",py:2,px:4,my:4,mx:0,borderRadius:"base",width:"max-content",fontSize:"sm",bg:"base.750"},children:p("modelManager.checkpointModels")}),x]}),l.jsxs(Ye,{children:[l.jsx(Ce,{sx:{fontWeight:"500",py:2,px:4,mb:4,borderRadius:"base",width:"max-content",fontSize:"sm",bg:"base.750"},children:p("modelManager.diffusersModels")}),S]})]}),s==="ckpt"&&l.jsx(L,{flexDirection:"column",marginTop:4,children:x}),s==="diffusers"&&l.jsx(L,{flexDirection:"column",marginTop:4,children:S})]})},[e,r,p,s]);return l.jsxs(L,{flexDirection:"column",rowGap:4,width:"50%",minWidth:"50%",children:[l.jsxs(L,{justifyContent:"space-between",alignItems:"center",gap:2,children:[l.jsx(Wn,{size:"md",children:p("modelManager.availableModels")}),l.jsx(kc,{}),l.jsx(hD,{}),l.jsx(wD,{})]}),l.jsx(mt,{onChange:h,label:p("modelManager.search")}),l.jsxs(L,{flexDirection:"column",gap:1,maxHeight:window.innerHeight-240,overflow:"scroll",paddingInlineEnd:4,children:[l.jsxs(L,{columnGap:2,children:[l.jsx(Vd,{label:p("modelManager.allModels"),onClick:()=>c("all"),isActive:s==="all"}),l.jsx(Vd,{label:p("modelManager.checkpointModels"),onClick:()=>c("ckpt"),isActive:s==="ckpt"}),l.jsx(Vd,{label:p("modelManager.diffusersModels"),onClick:()=>c("diffusers"),isActive:s==="diffusers"})]}),t?y:l.jsx(L,{width:"100%",minHeight:96,justifyContent:"center",alignItems:"center",children:l.jsx(yc,{})})]})]})};function ED({children:e}){const{isOpen:t,onOpen:n,onClose:r}=po(),o=A(u=>u.system.model_list),s=A(u=>u.system.openModel),{t:c}=K();return l.jsxs(l.Fragment,{children:[g.cloneElement(e,{onClick:n}),l.jsxs(mo,{isOpen:t,onClose:r,size:"full",children:[l.jsx(Hr,{}),l.jsxs(vo,{children:[l.jsx(aa,{}),l.jsx(Br,{children:c("modelManager.modelManager")}),l.jsx(Wr,{children:l.jsxs(L,{width:"100%",columnGap:8,children:[l.jsx(kD,{}),s&&o[s].format==="diffusers"?l.jsx(lD,{}):l.jsx(aD,{})]})}),l.jsx(Lr,{})]})]})]})}const PD=pe([Et],e=>{const{isProcessing:t,model_list:n}=e;return{models:ee.map(n,(o,s)=>s),isProcessing:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),ID=()=>{const e=Y(),{t}=K(),{models:n,isProcessing:r}=A(PD),o=A(Kx),s=c=>{e(k1(c.target.value))};return l.jsx(L,{style:{paddingInlineStart:1.5},children:l.jsx(Mn,{style:{fontSize:"sm"},"aria-label":t("accessibility.modelSelect"),tooltip:o.description,isDisabled:r,value:o.name,validValues:n,onChange:s})})},MD=e=>{const{label:t,isDisabled:n=!1,width:r="auto",formControlProps:o,formLabelProps:s,...c}=e;return l.jsxs(rt,{isDisabled:n,width:r,display:"flex",gap:4,alignItems:"center",justifyContent:"space-between",...o,children:[l.jsx(st,{my:1,...s,children:t}),l.jsx(dx,{...c})]})},En=g.memo(MD),TD=pe([Et,Pr],(e,t)=>{const{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:o,model_list:s,saveIntermediatesInterval:c,enableImageDebugging:u}=e,{shouldUseCanvasBetaLayout:f,shouldUseSliders:p}=t;return{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:o,models:ee.map(s,(h,y)=>y),saveIntermediatesInterval:c,enableImageDebugging:u,shouldUseCanvasBetaLayout:f,shouldUseSliders:p}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Ud={flexDirection:"column",gap:2,p:4,bg:"base.900"},_D=({children:e})=>{const t=Y(),{t:n}=K(),r=A(P=>P.generation.steps),{isOpen:o,onOpen:s,onClose:c}=po(),{isOpen:u,onOpen:f,onClose:p}=po(),{shouldDisplayInProgressType:h,shouldConfirmOnDelete:y,shouldDisplayGuides:x,saveIntermediatesInterval:S,enableImageDebugging:j,shouldUseCanvasBetaLayout:C,shouldUseSliders:w}=A(TD),k=()=>{i3.purge().then(()=>{c(),f()})},I=P=>{P>r&&(P=r),P<1&&(P=1),t(a3(P))};return l.jsxs(l.Fragment,{children:[g.cloneElement(e,{onClick:s}),l.jsxs(mo,{isOpen:o,onClose:c,size:"xl",children:[l.jsx(Hr,{}),l.jsxs(vo,{paddingInlineEnd:4,children:[l.jsx(Br,{children:n("common.settingsLabel")}),l.jsx(aa,{}),l.jsx(Wr,{children:l.jsxs(ir,{gap:4,children:[l.jsxs(L,{sx:Ud,children:[l.jsx(Mn,{label:n("settings.displayInProgress"),validValues:JS,value:h,onChange:P=>t(e3(P.target.value))}),h==="full-res"&&l.jsx(Vr,{label:n("settings.saveSteps"),min:1,max:r,step:1,onChange:I,value:S,width:"auto",textAlign:"center"}),l.jsx(En,{label:n("settings.confirmOnDelete"),isChecked:y,onChange:P=>t(P1(P.target.checked))}),l.jsx(En,{label:n("settings.displayHelpIcons"),isChecked:x,onChange:P=>t(t3(P.target.checked))}),l.jsx(En,{label:n("settings.useCanvasBeta"),isChecked:C,onChange:P=>t(n3(P.target.checked))}),l.jsx(En,{label:n("settings.useSlidersForAll"),isChecked:w,onChange:P=>t(r3(P.target.checked))})]}),l.jsxs(L,{sx:Ud,children:[l.jsx(Wn,{size:"sm",style:{fontWeight:"bold"},children:"Developer"}),l.jsx(En,{label:n("settings.enableImageDebugging"),isChecked:j,onChange:P=>t(o3(P.target.checked))})]}),l.jsxs(L,{sx:Ud,children:[l.jsx(Wn,{size:"sm",children:n("settings.resetWebUI")}),l.jsx(Je,{colorScheme:"error",onClick:k,children:n("settings.resetWebUI")}),l.jsx(Ce,{children:n("settings.resetWebUIDesc1")}),l.jsx(Ce,{children:n("settings.resetWebUIDesc2")})]})]})}),l.jsx(Lr,{children:l.jsx(Je,{onClick:c,children:n("common.close")})})]})]}),l.jsxs(mo,{closeOnOverlayClick:!1,isOpen:u,onClose:p,isCentered:!0,children:[l.jsx(Hr,{backdropFilter:"blur(40px)"}),l.jsxs(vo,{children:[l.jsx(Br,{}),l.jsx(Wr,{children:l.jsx(L,{justifyContent:"center",children:l.jsx(Ce,{fontSize:"lg",children:l.jsx(Ce,{children:n("settings.resetComplete")})})})}),l.jsx(Lr,{})]})]})]})},DD=pe(Et,e=>({isConnected:e.isConnected,isProcessing:e.isProcessing,currentIteration:e.currentIteration,totalIterations:e.totalIterations,currentStatus:e.currentStatus,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),AD=()=>{const{isConnected:e,isProcessing:t,currentIteration:n,totalIterations:r,currentStatus:o,hasError:s,wasErrorSeen:c}=A(DD),u=Y(),{t:f}=K();let p;e&&!s?p="ok":p="error";let h=o;t&&(p="working"),h&&t&&r>1&&(h=`${f(h)} (${n}/${r})`);const y=s&&!c?"Click to clear, check logs for details":void 0,x=s&&!c?"pointer":"initial",S=()=>{(s||!c)&&u(j1())};return l.jsx(Gt,{label:y,children:l.jsx(Ce,{cursor:x,onClick:S,sx:{fontSize:"xs",fontWeight:"600",color:`${p}.400`},children:f(h)})})},OD=e=>{const{triggerComponent:t,children:n,hasArrow:r=!0,isLazy:o=!0,...s}=e;return l.jsxs(Uh,{isLazy:o,...s,children:[l.jsx(Vh,{children:t}),l.jsxs(Gh,{children:[r&&l.jsx($h,{}),n]})]})},or=g.memo(OD);function zD(){const{t:e}=K(),t=Y(),n=A(c=>c.ui.currentTheme),r={dark:e("common.darkTheme"),light:e("common.lightTheme"),green:e("common.greenTheme"),ocean:e("common.oceanTheme")},o=c=>{t(s3(c))},s=()=>{const c=[];return Object.keys(r).forEach(u=>{c.push(l.jsx(Je,{isChecked:n===u,leftIcon:n===u?l.jsx(Oc,{}):void 0,size:"sm",onClick:()=>o(u),children:r[u]},u))}),c};return l.jsx(or,{triggerComponent:l.jsx(ae,{"aria-label":e("common.themeLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:l.jsx(F9,{})}),children:l.jsx(Fe,{align:"stretch",children:s()})})}function RD(){const{t:e,i18n:t}=K(),n={ar:e("common.langArabic",{lng:"ar"}),nl:e("common.langDutch",{lng:"nl"}),en:e("common.langEnglish",{lng:"en"}),fr:e("common.langFrench",{lng:"fr"}),de:e("common.langGerman",{lng:"de"}),he:e("common.langHebrew",{lng:"he"}),it:e("common.langItalian",{lng:"it"}),ja:e("common.langJapanese",{lng:"ja"}),ko:e("common.langKorean",{lng:"ko"}),pl:e("common.langPolish",{lng:"pl"}),pt_BR:e("common.langBrPortuguese",{lng:"pt_BR"}),pt:e("common.langPortuguese",{lng:"pt"}),ru:e("common.langRussian",{lng:"ru"}),zh_CN:e("common.langSimplifiedChinese",{lng:"zh_CN"}),es:e("common.langSpanish",{lng:"es"}),uk:e("common.langUkranian",{lng:"ua"})},r=()=>{const o=[];return Object.keys(n).forEach(s=>{o.push(l.jsx(Je,{isChecked:localStorage.getItem("i18nextLng")===s,leftIcon:localStorage.getItem("i18nextLng")===s?l.jsx(Oc,{}):void 0,onClick:()=>t.changeLanguage(s),"aria-label":n[s],size:"sm",minWidth:"200px",children:n[s]},s))}),o};return l.jsx(or,{triggerComponent:l.jsx(ae,{"aria-label":e("common.languagePickerLabel"),tooltip:e("common.languagePickerLabel"),icon:l.jsx(z9,{}),size:"sm",variant:"link","data-variant":"link",fontSize:26}),children:l.jsx(Fe,{children:r()})})}function ND(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l9 2-9 2 .01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zm0 13c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z"}},{tag:"path",attr:{d:"M18.27 14.03l-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z"}}]})(e)}function FD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}}]})(e)}function LD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 00.12-.61l-1.92-3.32a.488.488 0 00-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 00-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 00-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}}]})(e)}function BD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"}}]})(e)}function HD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"}}]})(e)}function WD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 2v11h3v9l7-12h-4l4-8z"}}]})(e)}function W0(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"}}]})(e)}function VD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"}}]})(e)}function UD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z"}}]})(e)}function fp(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"}}]})(e)}function $D(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"}}]})(e)}function GD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 10l5 5 5-5z"}}]})(e)}function qD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 14l5-5 5 5z"}}]})(e)}function YD(e){return ve({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}}]})(e)}const KD=""+new URL("logo-13003d72.png",import.meta.url).href,Tb=()=>{const e=A(t=>t.system.app_version);return l.jsxs(L,{alignItems:"center",gap:3,ps:1,children:[l.jsx(cs,{src:KD,alt:"invoke-ai-logo",w:"32px",h:"32px"}),l.jsxs(Ce,{fontSize:"xl",children:["invoke ",l.jsx("strong",{children:"ai"})]}),l.jsx(Ce,{sx:{fontWeight:300,marginTop:1},variant:"subtext",children:e})]})},_b=()=>{const{t:e}=K();return l.jsxs(ir,{gridTemplateColumns:"auto max-content",children:[l.jsx(Tb,{}),l.jsxs(L,{alignItems:"center",gap:2,children:[l.jsx(AD,{}),l.jsx(ID,{}),l.jsx(ED,{children:l.jsx(ae,{"aria-label":e("modelManager.modelManager"),tooltip:e("modelManager.modelManager"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:l.jsx(M9,{})})}),l.jsx(sP,{children:l.jsx(ae,{"aria-label":e("common.hotkeysLabel"),tooltip:e("common.hotkeysLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:l.jsx(O9,{})})}),l.jsx(zD,{}),l.jsx(RD,{}),l.jsx(qo,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI/issues",marginBottom:"-0.25rem",children:l.jsx(ae,{"aria-label":e("common.reportBugLabel"),tooltip:e("common.reportBugLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:l.jsx(I9,{})})}),l.jsx(qo,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI",marginBottom:"-0.25rem",children:l.jsx(ae,{"aria-label":e("common.githubLabel"),tooltip:e("common.githubLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:l.jsx(C9,{})})}),l.jsx(qo,{isExternal:!0,href:"https://discord.gg/ZmtBAhwWhy",marginBottom:"-0.25rem",children:l.jsx(ae,{"aria-label":e("common.discordLabel"),tooltip:e("common.discordLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:l.jsx(S9,{})})}),l.jsx(_D,{children:l.jsx(ae,{"aria-label":e("common.settingsLabel"),tooltip:e("common.settingsLabel"),variant:"link","data-variant":"link",fontSize:22,size:"sm",icon:l.jsx(LD,{})})})]})]})};_b.displayName="SiteHeader";const hp=e=>{const{children:t}=e;return l.jsx(L,{sx:{width:"100%",height:"100%",bg:"base.850"},children:t})};function XD(){const{t:e}=K();return l.jsx(hp,{children:l.jsxs(L,{sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",w:"100%",h:"100%",gap:4,textAlign:"center"},children:[l.jsx(Wn,{children:e("common.nodes")}),l.jsx(Fe,{maxW:"50rem",gap:4,children:l.jsx(Ce,{children:e("common.nodesDesc")})})]})})}const QD=()=>{const{t:e}=K();return l.jsx(hp,{children:l.jsxs(L,{sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",w:"100%",h:"100%",gap:4,textAlign:"center"},children:[l.jsx(Wn,{children:e("common.postProcessing")}),l.jsxs(Fe,{maxW:"50rem",gap:4,children:[l.jsx(Ce,{children:e("common.postProcessDesc1")}),l.jsx(Ce,{children:e("common.postProcessDesc2")}),l.jsx(Ce,{children:e("common.postProcessDesc3")})]})]})})};function ZD(){const{t:e}=K();return l.jsx(hp,{children:l.jsxs(L,{sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",w:"100%",h:"100%",gap:4,textAlign:"center"},children:[l.jsx(Wn,{children:e("common.training")}),l.jsxs(Fe,{maxW:"50rem",gap:4,children:[l.jsx(Ce,{children:e("common.trainingDesc1")}),l.jsx(Ce,{children:e("common.trainingDesc2")})]})]})})}const Ss=pe(e=>e.lightbox,e=>e,{memoizeOptions:{equalityCheck:ee.isEqual}}),qr=e=>e.gallery,JD=pe([qr,Pr,Ss,bt],(e,t,n,r)=>{const{categories:o,currentCategory:s,currentImageUuid:c,galleryImageMinimumWidth:u,galleryImageObjectFit:f,shouldAutoSwitchToNewImages:p,galleryWidth:h,shouldUseSingleGalleryColumn:y}=e,{shouldPinGallery:x}=t,{isLightboxOpen:S}=n;return{currentImageUuid:c,shouldPinGallery:x,galleryImageMinimumWidth:u,galleryImageObjectFit:f,galleryGridTemplateColumns:y?"auto":`repeat(auto-fill, minmax(${u}px, auto))`,shouldAutoSwitchToNewImages:p,currentCategory:s,images:o[s].images,areMoreImagesAvailable:o[s].areMoreImagesAvailable,galleryWidth:h,shouldEnableResize:!(S||r==="unifiedCanvas"&&x),shouldUseSingleGalleryColumn:y}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),eA=pe([qr,Et,Ss,bt],(e,t,n,r)=>({mayDeleteImage:t.isConnected&&!t.isProcessing,galleryImageObjectFit:e.galleryImageObjectFit,galleryImageMinimumWidth:e.galleryImageMinimumWidth,shouldUseSingleGalleryColumn:e.shouldUseSingleGalleryColumn,activeTabName:r,isLightboxOpen:n.isLightboxOpen}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),tA=pe(qr,e=>({resultImages:e.categories.result.images,userImages:e.categories.user.images})),nA=()=>{const{resultImages:e,userImages:t}=A(tA);return n=>{const r=e.find(s=>s.uuid===n);if(r)return r;const o=t.find(s=>s.uuid===n);if(o)return o}},rA=({direction:e,langDirection:t})=>({top:e==="bottom",right:t!=="rtl"&&e==="left"||t==="rtl"&&e==="right",bottom:e==="top",left:t!=="rtl"&&e==="right"||t==="rtl"&&e==="left"}),oA=({direction:e,minWidth:t,maxWidth:n,minHeight:r,maxHeight:o})=>{const s=t??(["left","right"].includes(e)?10:void 0),c=n??(["left","right"].includes(e)?"95vw":void 0),u=r??(["top","bottom"].includes(e)?10:void 0),f=o??(["top","bottom"].includes(e)?"95vh":void 0);return{...s?{minWidth:s}:{},...c?{maxWidth:c}:{},...u?{minHeight:u}:{},...f?{maxHeight:f}:{}}},Rr="0.75rem",zl="1rem",iA="2px",aA="5px",sA=({isPinned:e,isResizable:t,direction:n})=>{if(!t)return{containerStyles:{},handleStyles:{}};const r=e?iA:aA,o=`calc((2 * ${Rr} + ${r}) / -2)`;return n==="top"?{containerStyles:{borderBottomWidth:r,paddingBottom:zl},handleStyles:{top:{paddingTop:Rr,paddingBottom:Rr,bottom:o}}}:n==="left"?{containerStyles:{borderInlineEndWidth:r,paddingInlineEnd:zl},handleStyles:{right:{paddingInlineStart:Rr,paddingInlineEnd:Rr,insetInlineEnd:o}}}:n==="bottom"?{containerStyles:{borderTopWidth:r,paddingTop:zl},handleStyles:{bottom:{paddingTop:Rr,paddingBottom:Rr,top:o}}}:n==="right"?{containerStyles:{borderInlineStartWidth:r,paddingInlineStart:zl},handleStyles:{left:{paddingInlineStart:Rr,paddingInlineEnd:Rr,insetInlineStart:o}}}:{containerStyles:{},handleStyles:{}}},lA=(e,t)=>["top","bottom"].includes(e)?e:e==="left"?t==="rtl"?"right":"left":e==="right"?t==="rtl"?"left":"right":"left",oo=(e,t)=>{if(e)return t?e+t:e},cA=ne(Rx,{shouldForwardProp:e=>!["sx"].includes(e)}),Db=({direction:e="left",isResizable:t,isPinned:n,isOpen:r,onClose:o,children:s,initialWidth:c,minWidth:u,maxWidth:f,initialHeight:p,minHeight:h,maxHeight:y,onResizeStart:x,onResizeStop:S,onResize:j,sx:C={}})=>{const w=ta().direction,k=g.useRef(null),I=g.useMemo(()=>c??u??(["left","right"].includes(e)?500:"100%"),[c,u,e]),P=g.useMemo(()=>p??h??(["top","bottom"].includes(e)?500:"100%"),[p,h,e]),[M,T]=g.useState(I),[D,_]=g.useState(P);T6({ref:k,handler:()=>{o()},enabled:r&&!n});const R=g.useMemo(()=>t?rA({direction:e,langDirection:w}):{},[t,w,e]),V=g.useMemo(()=>oA({direction:e,minWidth:t?oo(u,18):oo(u),maxWidth:t?oo(f,18):oo(f),minHeight:t?oo(h,18):oo(h),maxHeight:t?oo(y,18):oo(y)}),[u,f,h,y,e,t]),{containerStyles:F,handleStyles:B}=g.useMemo(()=>sA({isPinned:n,isResizable:t,direction:e}),[n,t,e]),Q=g.useMemo(()=>lA(e,w),[e,w]);return g.useEffect(()=>{["left","right"].includes(e)&&_(n?"100%":"100vh"),["top","bottom"].includes(e)&&T(n?"100%":"100vw")},[n,e]),l.jsx(b2,{direction:Q,in:r,unmountOnExit:n,motionProps:{initial:n},...n?{style:{position:void 0,left:void 0,right:void 0,top:void 0,bottom:void 0,width:void 0}}:{style:{zIndex:99,width:"full"}},children:l.jsx(Ye,{ref:k,sx:{width:"full",height:"full"},children:l.jsx(cA,{size:{width:t?M:I,height:t?D:P},enable:R,handleStyles:B,...V,sx:{borderColor:"base.800",p:n?0:4,bg:"base.900",height:"full",boxShadow:n?"":"0 0 4rem 0 rgba(0, 0, 0, 0.8)",...F,...C},onResizeStart:(U,X,te)=>{x&&x(U,X,te)},onResize:(U,X,te,re)=>{j&&j(U,X,te,re)},onResizeStop:(U,X,te,re)=>{["left","right"].includes(X)&&T(Number(M)+re.width),["top","bottom"].includes(X)&&_(Number(D)+re.height),S&&S(U,X,te,re)},children:s})})})},V0={position:"absolute",width:"full",height:24,left:0,pointerEvents:"none",transition:"opacity 0.2s ease-in-out"},Ab=({children:e})=>{const t=g.useRef(null),n=g.useRef(null),r=g.useRef(null),o=ee.throttle(()=>{if(!t.current||!n.current||!r.current)return;const{scrollTop:s,scrollHeight:c,offsetHeight:u}=t.current;s>0?n.current.style.opacity="1":n.current.style.opacity="0",s>=c-u?r.current.style.opacity="0":r.current.style.opacity="1"},33,{leading:!0});return g.useEffect(()=>{o()},[o]),l.jsxs(Ye,{position:"relative",w:"full",h:"full",children:[l.jsx(Ye,{ref:t,position:"absolute",w:"full",h:"full",overflowY:"scroll",onScroll:o,children:e}),l.jsx(Ye,{ref:r,sx:{...V0,bottom:0,boxShadow:"inset 0 -3.5rem 2rem -2rem var(--invokeai-colors-base-900)"}}),l.jsx(Ye,{ref:n,sx:{...V0,top:0,boxShadow:"inset 0 3.5rem 2rem -2rem var(--invokeai-colors-base-900)"}})]})},uA=ee.debounce(e=>{e(I1(!0))},300),cn=()=>(e,t)=>{bt(t())==="unifiedCanvas"&&uA(e)};function Ob(e){return ve({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146z"}}]})(e)}function zb(e){return ve({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146zm.122 2.112v-.002.002zm0-.002v.002a.5.5 0 0 1-.122.51L6.293 6.878a.5.5 0 0 1-.511.12H5.78l-.014-.004a4.507 4.507 0 0 0-.288-.076 4.922 4.922 0 0 0-.765-.116c-.422-.028-.836.008-1.175.15l5.51 5.509c.141-.34.177-.753.149-1.175a4.924 4.924 0 0 0-.192-1.054l-.004-.013v-.001a.5.5 0 0 1 .12-.512l3.536-3.535a.5.5 0 0 1 .532-.115l.096.022c.087.017.208.034.344.034.114 0 .23-.011.343-.04L9.927 2.028c-.029.113-.04.23-.04.343a1.779 1.779 0 0 0 .062.46z"}}]})(e)}const U0=e=>{const{sx:t}=e,n=Y(),r=A(c=>c.ui.shouldPinParametersPanel),{t:o}=K(),s=()=>{n(l3(!r)),n(cn())};return l.jsx(Gt,{label:o("common.pinOptionsPanel"),children:l.jsx(ae,{...e,"aria-label":o("common.pinOptionsPanel"),onClick:s,icon:r?l.jsx(Ob,{}):l.jsx(zb,{}),variant:"ghost",size:"sm",sx:{color:"base.700",_hover:{color:"base.550"},_active:{color:"base.500"},...t}})})},dA=pe([Pr,bt,Ss],(e,t,n)=>{const{shouldPinParametersPanel:r,shouldShowParametersPanel:o}=e,{isLightboxOpen:s}=n;return{shouldPinParametersPanel:r,shouldShowParametersPanel:o,isResizable:t!=="unifiedCanvas",isLightboxOpen:s}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),fA=({children:e})=>{const t=Y(),{shouldPinParametersPanel:n,shouldShowParametersPanel:r,isResizable:o,isLightboxOpen:s}=A(dA),c=()=>{t(ql(!1))};return ce("o",()=>{t(c3()),n&&t(cn())},{enabled:()=>!s},[n,s]),ce("esc",()=>{t(ql(!1))},{enabled:()=>!n,preventDefault:!0},[n]),ce("shift+o",()=>{t(u3()),t(cn())},[]),l.jsx(Db,{direction:"left",isResizable:o||!n,isOpen:r,onClose:c,isPinned:n||s,sx:{borderColor:"base.700",p:n?0:4,bg:"base.900"},initialWidth:r0,minWidth:r0,children:l.jsxs(L,{flexDir:"column",position:"relative",h:"full",w:"full",children:[!n&&l.jsxs(L,{paddingTop:1.5,paddingBottom:4,justifyContent:"space-between",alignItems:"center",children:[l.jsx(Tb,{}),l.jsx(U0,{})]}),l.jsx(Ab,{children:e}),n&&l.jsx(U0,{sx:{position:"absolute",top:0,insetInlineEnd:0}})]})})},hA=g.memo(fA),pA=pe([Pr,bt],(e,t)=>{const{shouldPinParametersPanel:n}=e;return{shouldPinParametersPanel:n,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),pp=e=>{const{parametersPanelContent:t,children:n,...r}=e,o=Y(),{activeTabName:s}=A(pA),c=nA(),u=f=>{const p=f.dataTransfer.getData("invokeai/imageUuid"),h=c(p);h&&(s==="img2img"?o(rs(h)):s==="unifiedCanvas"&&o(bc(h)))};return l.jsxs(L,{...r,pos:"relative",w:"full",h:nP,gap:4,children:[l.jsx(hA,{children:t}),l.jsx(Ye,{pos:"relative",w:"100%",h:"100%",onDrop:u,children:n})]})},mA=e=>{const{styleClass:t}=e,n=g.useContext(Yh),r=()=>{n&&n()};return l.jsx(L,{sx:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},className:t,children:l.jsxs(L,{onClick:r,sx:{display:"flex",flexDirection:"column",rowGap:8,p:8,borderRadius:"base",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:"pointer",color:"base.600",bg:"base.800",_hover:{bg:"base.700"}},children:[l.jsx(tn,{as:Rc,boxSize:24}),l.jsx(Wn,{size:"md",children:"Click or Drag and Drop"})]})})};function vA(){const e=A(o=>o.postprocessing.facetoolType),t=Y(),{t:n}=K(),r=o=>t(Nl(o.target.value));return l.jsx(Mn,{label:n("parameters.type"),validValues:d3.concat(),value:e,onChange:r})}function gA(){const e=A(o=>o.system.isGFPGANAvailable),t=A(o=>o.postprocessing.facetoolStrength),{t:n}=K(),r=Y();return l.jsx(ut,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.strength"),step:.05,min:0,max:1,onChange:o=>r(Yl(o)),handleReset:()=>r(Yl(.75)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}function yA(){const e=A(o=>o.system.isGFPGANAvailable),t=A(o=>o.postprocessing.codeformerFidelity),{t:n}=K(),r=Y();return l.jsx(ut,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.codeformerFidelity"),step:.05,min:0,max:1,onChange:o=>r(Zd(o)),handleReset:()=>r(Zd(1)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}const mp=()=>{const e=A(t=>t.postprocessing.facetoolType);return l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(vA,{}),l.jsx(gA,{}),e==="codeformer"&&l.jsx(yA,{})]})};function xA(){const e=A(o=>o.system.isESRGANAvailable),t=A(o=>o.postprocessing.upscalingDenoising),{t:n}=K(),r=Y();return l.jsx(ut,{label:n("parameters.denoisingStrength"),value:t,min:0,max:1,step:.01,onChange:o=>{r(Jd(o))},handleReset:()=>r(Jd(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function bA(){const e=A(o=>o.system.isESRGANAvailable),t=A(o=>o.postprocessing.upscalingStrength),{t:n}=K(),r=Y();return l.jsx(ut,{label:`${n("parameters.upscale")} ${n("parameters.strength")}`,value:t,min:0,max:1,step:.05,onChange:o=>r(ef(o)),handleReset:()=>r(ef(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function SA(){const e=A(s=>s.system.isESRGANAvailable),t=A(s=>s.postprocessing.upscalingLevel),{t:n}=K(),r=Y(),o=s=>r(M1(Number(s.target.value)));return l.jsx(Mn,{isDisabled:!e,label:n("parameters.scale"),value:t,onChange:o,validValues:f3})}const vp=()=>l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(SA,{}),l.jsx(xA,{}),l.jsx(bA,{})]}),gp=e=>e.postprocessing,CA=pe(Et,e=>{const{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}=e;return{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),hc=ue(({image:e,children:t},n)=>{const{isOpen:r,onOpen:o,onClose:s}=po(),c=Y(),{shouldConfirmOnDelete:u,isConnected:f,isProcessing:p}=A(CA),h=g.useRef(null),y=j=>{j.stopPropagation(),u?o():x()},x=()=>{f&&!p&&e&&c(h3(e)),s()};ce("delete",()=>{u?o():x()},[e,u,f,p]);const S=j=>c(P1(!j.target.checked));return l.jsxs(l.Fragment,{children:[g.cloneElement(t,{onClick:e?y:void 0,ref:n}),l.jsx(Yy,{isOpen:r,leastDestructiveRef:h,onClose:s,children:l.jsx(Hr,{children:l.jsxs(Ky,{children:[l.jsx(Br,{fontSize:"lg",fontWeight:"bold",children:"Delete image"}),l.jsx(Wr,{children:l.jsxs(L,{direction:"column",gap:5,children:[l.jsx(Ce,{children:"Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to."}),l.jsx(En,{label:"Don't ask me again",isChecked:!u,onChange:S})]})}),l.jsxs(Lr,{children:[l.jsx(Je,{ref:h,onClick:s,children:"Cancel"}),l.jsx(Je,{colorScheme:"error",onClick:x,ml:3,children:"Delete"})]})]})})})]})});hc.displayName="DeleteImageModal";const yp=()=>{const e=Y();return t=>{const n=typeof t=="string"?t:T1(t),[r,o]=p3(n);e(_1(r)),e(D1(o))}},wA=pe([Et,qr,gp,Pr,Ss,bt],(e,t,n,r,o,s)=>{const{isProcessing:c,isConnected:u,isGFPGANAvailable:f,isESRGANAvailable:p}=e,{upscalingLevel:h,facetoolStrength:y}=n,{isLightboxOpen:x}=o,{shouldShowImageDetails:S,shouldHidePreview:j}=r,{intermediateImage:C,currentImage:w}=t;return{isProcessing:c,isConnected:u,isGFPGANAvailable:f,isESRGANAvailable:p,upscalingLevel:h,facetoolStrength:y,shouldDisableToolbarButtons:Boolean(C)||!w,currentImage:w,shouldShowImageDetails:S,activeTabName:s,isLightboxOpen:x,shouldHidePreview:j}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Rb=e=>{var U,X,te,re,$,Z,fe,Se;const t=Y(),{isProcessing:n,isConnected:r,isGFPGANAvailable:o,isESRGANAvailable:s,upscalingLevel:c,facetoolStrength:u,shouldDisableToolbarButtons:f,shouldShowImageDetails:p,currentImage:h,isLightboxOpen:y,activeTabName:x,shouldHidePreview:S}=A(wA),j=ls(),{t:C}=K(),w=yp(),k=()=>{h&&(y&&t(Uo(!1)),t(rs(h)),t(kn("img2img")))},I=async()=>{if(!h)return;const Me=await fetch(h.url).then(Pe=>Pe.blob()),Ie=[new ClipboardItem({[Me.type]:Me})];await navigator.clipboard.write(Ie),j({title:C("toast.imageCopied"),status:"success",duration:2500,isClosable:!0})},P=()=>{navigator.clipboard.writeText(h?window.location.toString()+h.url:"").then(()=>{j({title:C("toast.imageLinkCopied"),status:"success",duration:2500,isClosable:!0})})};ce("shift+i",()=>{h?(k(),j({title:C("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})):j({title:C("toast.imageNotLoaded"),description:C("toast.imageNotLoadedDesc"),status:"error",duration:2500,isClosable:!0})},[h]);const M=()=>{t(m3(!S))},T=()=>{var Me,Ie;h&&(h.metadata&&t(A1(h.metadata)),((Me=h.metadata)==null?void 0:Me.image.type)==="img2img"?t(kn("img2img")):((Ie=h.metadata)==null?void 0:Ie.image.type)==="txt2img"&&t(kn("txt2img")))};ce("a",()=>{var Me,Ie;["txt2img","img2img"].includes((Ie=(Me=h==null?void 0:h.metadata)==null?void 0:Me.image)==null?void 0:Ie.type)?(T(),j({title:C("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})):j({title:C("toast.parametersNotSet"),description:C("toast.parametersNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[h]);const D=()=>{h!=null&&h.metadata&&t(is(h.metadata.image.seed))};ce("s",()=>{var Me,Ie;(Ie=(Me=h==null?void 0:h.metadata)==null?void 0:Me.image)!=null&&Ie.seed?(D(),j({title:C("toast.seedSet"),status:"success",duration:2500,isClosable:!0})):j({title:C("toast.seedNotSet"),description:C("toast.seedNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[h]);const _=g.useCallback(()=>{var Me,Ie,Pe,he;(Ie=(Me=h==null?void 0:h.metadata)==null?void 0:Me.image)!=null&&Ie.prompt&&w((he=(Pe=h==null?void 0:h.metadata)==null?void 0:Pe.image)==null?void 0:he.prompt)},[(X=(U=h==null?void 0:h.metadata)==null?void 0:U.image)==null?void 0:X.prompt,w]);ce("p",()=>{var Me,Ie;(Ie=(Me=h==null?void 0:h.metadata)==null?void 0:Me.image)!=null&&Ie.prompt?(_(),j({title:C("toast.promptSet"),status:"success",duration:2500,isClosable:!0})):j({title:C("toast.promptNotSet"),description:C("toast.promptNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[h]);const R=()=>{h&&t(v3(h))};ce("Shift+U",()=>{s&&!f&&r&&!n&&c?R():j({title:C("toast.upscalingFailed"),status:"error",duration:2500,isClosable:!0})},[h,s,f,r,n,c]);const V=()=>{h&&t(g3(h))};ce("Shift+R",()=>{o&&!f&&r&&!n&&u?V():j({title:C("toast.faceRestoreFailed"),status:"error",duration:2500,isClosable:!0})},[h,o,f,r,n,u]);const F=()=>t(O1(!p)),B=()=>{h&&(y&&t(Uo(!1)),t(bc(h)),t(cn()),x!=="unifiedCanvas"&&t(kn("unifiedCanvas")),j({title:C("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0}))};ce("i",()=>{h?F():j({title:C("toast.metadataLoadFailed"),status:"error",duration:2500,isClosable:!0})},[h,p]);const Q=()=>{t(Uo(!y))};return l.jsxs(L,{sx:{justifyContent:"center",alignItems:"center",columnGap:"0.5em"},...e,children:[l.jsxs(Qt,{isAttached:!0,children:[l.jsx(or,{triggerComponent:l.jsx(ae,{"aria-label":`${C("parameters.sendTo")}...`,icon:l.jsx(U9,{})}),children:l.jsxs(L,{sx:{flexDirection:"column",rowGap:2},children:[l.jsx(Je,{size:"sm",onClick:k,leftIcon:l.jsx(n0,{}),children:C("parameters.sendToImg2Img")}),l.jsx(Je,{size:"sm",onClick:B,leftIcon:l.jsx(n0,{}),children:C("parameters.sendToUnifiedCanvas")}),l.jsx(Je,{size:"sm",onClick:I,leftIcon:l.jsx(Xi,{}),children:C("parameters.copyImage")}),l.jsx(Je,{size:"sm",onClick:P,leftIcon:l.jsx(Xi,{}),children:C("parameters.copyImageToLink")}),l.jsx(qo,{download:!0,href:h==null?void 0:h.url,children:l.jsx(Je,{leftIcon:l.jsx(Qh,{}),size:"sm",w:"100%",children:C("parameters.downloadImage")})})]})}),l.jsx(ae,{icon:S?l.jsx(Zh,{}):l.jsx($x,{}),tooltip:C(S?"parameters.showPreview":"parameters.hidePreview"),"aria-label":C(S?"parameters.showPreview":"parameters.hidePreview"),isChecked:S,onClick:M}),l.jsx(ae,{icon:l.jsx(_9,{}),tooltip:y?`${C("parameters.closeViewer")} (Z)`:`${C("parameters.openInViewer")} (Z)`,"aria-label":y?`${C("parameters.closeViewer")} (Z)`:`${C("parameters.openInViewer")} (Z)`,isChecked:y,onClick:Q})]}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{icon:l.jsx(B9,{}),tooltip:`${C("parameters.usePrompt")} (P)`,"aria-label":`${C("parameters.usePrompt")} (P)`,isDisabled:!((re=(te=h==null?void 0:h.metadata)==null?void 0:te.image)!=null&&re.prompt),onClick:_}),l.jsx(ae,{icon:l.jsx(V9,{}),tooltip:`${C("parameters.useSeed")} (S)`,"aria-label":`${C("parameters.useSeed")} (S)`,isDisabled:!((Z=($=h==null?void 0:h.metadata)==null?void 0:$.image)!=null&&Z.seed),onClick:D}),l.jsx(ae,{icon:l.jsx(P9,{}),tooltip:`${C("parameters.useAll")} (A)`,"aria-label":`${C("parameters.useAll")} (A)`,isDisabled:!["txt2img","img2img"].includes((Se=(fe=h==null?void 0:h.metadata)==null?void 0:fe.image)==null?void 0:Se.type),onClick:T})]}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(or,{triggerComponent:l.jsx(ae,{icon:l.jsx(D9,{}),"aria-label":C("parameters.restoreFaces")}),children:l.jsxs(L,{sx:{flexDirection:"column",rowGap:4},children:[l.jsx(mp,{}),l.jsx(Je,{isDisabled:!o||!h||!(r&&!n)||!u,onClick:V,children:C("parameters.restoreFaces")})]})}),l.jsx(or,{triggerComponent:l.jsx(ae,{icon:l.jsx(T9,{}),"aria-label":C("parameters.upscale")}),children:l.jsxs(L,{sx:{flexDirection:"column",gap:4},children:[l.jsx(vp,{}),l.jsx(Je,{isDisabled:!s||!h||!(r&&!n)||!c,onClick:R,children:C("parameters.upscaleImage")})]})})]}),l.jsx(Qt,{isAttached:!0,children:l.jsx(ae,{icon:l.jsx(Hx,{}),tooltip:`${C("parameters.info")} (I)`,"aria-label":`${C("parameters.info")} (I)`,isChecked:p,onClick:F})}),l.jsx(hc,{image:h,children:l.jsx(ae,{icon:l.jsx(So,{}),tooltip:`${C("parameters.deleteImage")} (Del)`,"aria-label":`${C("parameters.deleteImage")} (Del)`,isDisabled:!h||!r||n,colorScheme:"error"})})]})},jA=e=>{const{size:t="xl",...n}=e;return l.jsx(L,{sx:{w:"full",h:"full",alignItems:"center",justifyContent:"center",position:"absolute",color:"base.400"},children:l.jsx(yc,{size:t,...n})})};function kA(e){return ve({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z"}},{tag:"path",attr:{fill:"none",strokeMiterlimit:"10",strokeWidth:"32",d:"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z"}}]})(e)}const yt=({label:e,value:t,onClick:n,isLink:r,labelPosition:o,withCopy:s=!1})=>{const{t:c}=K();return l.jsxs(L,{gap:2,children:[n&&l.jsx(Gt,{label:`Recall ${e}`,children:l.jsx(ho,{"aria-label":c("accessibility.useThisParameter"),icon:l.jsx(kA,{}),size:"xs",variant:"ghost",fontSize:20,onClick:n})}),s&&l.jsx(Gt,{label:`Copy ${e}`,children:l.jsx(ho,{"aria-label":`Copy ${e}`,icon:l.jsx(Xi,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(t.toString())})}),l.jsxs(L,{direction:o?"column":"row",children:[l.jsxs(Ce,{fontWeight:"semibold",whiteSpace:"pre-wrap",pr:2,children:[e,":"]}),r?l.jsxs(qo,{href:t.toString(),isExternal:!0,wordBreak:"break-all",children:[t.toString()," ",l.jsx(Ib,{mx:"2px"})]}):l.jsx(Ce,{overflowY:"scroll",wordBreak:"break-all",children:t.toString()})]})]})},EA=(e,t)=>e.image.uuid===t.image.uuid,xp=g.memo(({image:e})=>{var F,B;const t=Y(),n=yp();ce("esc",()=>{t(O1(!1))});const r=((F=e==null?void 0:e.metadata)==null?void 0:F.image)||{},o=e==null?void 0:e.dreamPrompt,{cfg_scale:s,fit:c,height:u,hires_fix:f,init_image_path:p,mask_image_path:h,orig_path:y,perlin:x,postprocessing:S,prompt:j,sampler:C,seamless:w,seed:k,steps:I,strength:P,threshold:M,type:T,variations:D,width:_}=r,{t:R}=K(),V=JSON.stringify(e.metadata,null,2);return l.jsxs(L,{sx:{padding:4,gap:1,flexDirection:"column",width:"full",height:"full",backdropFilter:"blur(20px)",bg:"whiteAlpha.600",_dark:{bg:"blackAlpha.600"}},children:[l.jsxs(L,{gap:2,children:[l.jsx(Ce,{fontWeight:"semibold",children:"File:"}),l.jsxs(qo,{href:e.url,isExternal:!0,maxW:"calc(100% - 3rem)",children:[e.url.length>64?e.url.substring(0,64).concat("..."):e.url,l.jsx(Ib,{mx:"2px"})]})]}),Object.keys(r).length>0?l.jsxs(l.Fragment,{children:[T&&l.jsx(yt,{label:"Generation type",value:T}),((B=e.metadata)==null?void 0:B.model_weights)&&l.jsx(yt,{label:"Model",value:e.metadata.model_weights}),["esrgan","gfpgan"].includes(T)&&l.jsx(yt,{label:"Original image",value:y}),j&&l.jsx(yt,{label:"Prompt",labelPosition:"top",value:typeof j=="string"?j:T1(j),onClick:()=>n(j)}),k!==void 0&&l.jsx(yt,{label:"Seed",value:k,onClick:()=>t(is(k))}),M!==void 0&&l.jsx(yt,{label:"Noise Threshold",value:M,onClick:()=>t(tf(M))}),x!==void 0&&l.jsx(yt,{label:"Perlin Noise",value:x,onClick:()=>t(nf(x))}),C&&l.jsx(yt,{label:"Sampler",value:C,onClick:()=>t(z1(C))}),I&&l.jsx(yt,{label:"Steps",value:I,onClick:()=>t(rf(I))}),s!==void 0&&l.jsx(yt,{label:"CFG scale",value:s,onClick:()=>t(of(s))}),D&&D.length>0&&l.jsx(yt,{label:"Seed-weight pairs",value:Tv(D),onClick:()=>t(R1(Tv(D)))}),w&&l.jsx(yt,{label:"Seamless",value:w,onClick:()=>t(N1(w))}),f&&l.jsx(yt,{label:"High Resolution Optimization",value:f,onClick:()=>t(F1(f))}),_&&l.jsx(yt,{label:"Width",value:_,onClick:()=>t(Fl(_))}),u&&l.jsx(yt,{label:"Height",value:u,onClick:()=>t(Ll(u))}),p&&l.jsx(yt,{label:"Initial image",value:p,isLink:!0,onClick:()=>t(rs(p))}),h&&l.jsx(yt,{label:"Mask image",value:h,isLink:!0,onClick:()=>t(y3(h))}),T==="img2img"&&P&&l.jsx(yt,{label:"Image to image strength",value:P,onClick:()=>t(af(P))}),c&&l.jsx(yt,{label:"Image to image fit",value:c,onClick:()=>t(L1(c))}),S&&S.length>0&&l.jsxs(l.Fragment,{children:[l.jsx(Wn,{size:"sm",children:"Postprocessing"}),S.map((Q,U)=>{if(Q.type==="esrgan"){const{scale:X,strength:te,denoise_str:re}=Q;return l.jsxs(L,{pl:8,gap:1,direction:"column",children:[l.jsx(Ce,{size:"md",children:`${U+1}: Upscale (ESRGAN)`}),l.jsx(yt,{label:"Scale",value:X,onClick:()=>t(M1(X))}),l.jsx(yt,{label:"Strength",value:te,onClick:()=>t(ef(te))}),re!==void 0&&l.jsx(yt,{label:"Denoising strength",value:re,onClick:()=>t(Jd(re))})]},U)}else if(Q.type==="gfpgan"){const{strength:X}=Q;return l.jsxs(L,{pl:8,gap:1,direction:"column",children:[l.jsx(Ce,{size:"md",children:`${U+1}: Face restoration (GFPGAN)`}),l.jsx(yt,{label:"Strength",value:X,onClick:()=>{t(Yl(X)),t(Nl("gfpgan"))}})]},U)}else if(Q.type==="codeformer"){const{strength:X,fidelity:te}=Q;return l.jsxs(L,{pl:8,gap:1,direction:"column",children:[l.jsx(Ce,{size:"md",children:`${U+1}: Face restoration (Codeformer)`}),l.jsx(yt,{label:"Strength",value:X,onClick:()=>{t(Yl(X)),t(Nl("codeformer"))}}),te&&l.jsx(yt,{label:"Fidelity",value:te,onClick:()=>{t(Zd(te)),t(Nl("codeformer"))}})]},U)}})]}),o&&l.jsx(yt,{withCopy:!0,label:"Dream Prompt",value:o}),l.jsxs(L,{gap:2,direction:"column",children:[l.jsxs(L,{gap:2,children:[l.jsx(Gt,{label:"Copy metadata JSON",children:l.jsx(ho,{"aria-label":R("accessibility.copyMetadataJson"),icon:l.jsx(Xi,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(V)})}),l.jsx(Ce,{fontWeight:"semibold",children:"Metadata JSON:"})]}),l.jsx(Ye,{sx:{mt:0,mr:2,mb:4,ml:2,padding:4,borderRadius:"base",overflowX:"scroll",wordBreak:"break-all",bg:"whiteAlpha.500",_dark:{bg:"blackAlpha.500"}},children:l.jsx("pre",{children:V})})]})]}):l.jsx(Sy,{width:"100%",pt:10,children:l.jsx(Ce,{fontSize:"lg",fontWeight:"semibold",children:"No metadata available"})})]})},EA);xp.displayName="ImageMetadataViewer";const $0={height:"100%",width:"15%",alignItems:"center",pointerEvents:"auto"},G0={color:"base.100"},PA=pe(qr,e=>{const{currentImage:t}=e,n=e.categories[t?t.category:"result"].images,r=n.findIndex(s=>{var c;return s.uuid===((c=e==null?void 0:e.currentImage)==null?void 0:c.uuid)}),o=n.length;return{isOnFirstImage:r===0,isOnLastImage:!isNaN(r)&&r===o-1}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Nb=()=>{const e=Y(),{t}=K(),{isOnFirstImage:n,isOnLastImage:r}=A(PA),[o,s]=g.useState(!1),c=()=>{s(!0)},u=()=>{s(!1)},f=()=>{e(B1())},p=()=>{e(H1())};return l.jsxs(L,{sx:{justifyContent:"space-between",zIndex:1,height:"100%",width:"100%",pointerEvents:"none"},children:[l.jsx(ir,{sx:{...$0,justifyContent:"flex-start"},onMouseOver:c,onMouseOut:u,children:o&&!n&&l.jsx(ho,{"aria-label":t("accessibility.previousImage"),icon:l.jsx(j9,{size:64}),variant:"unstyled",onClick:f,boxSize:16,sx:G0})}),l.jsx(ir,{sx:{...$0,justifyContent:"flex-end"},onMouseOver:c,onMouseOut:u,children:o&&!r&&l.jsx(ho,{"aria-label":t("accessibility.nextImage"),icon:l.jsx(k9,{size:64}),variant:"unstyled",onClick:p,boxSize:16,sx:G0})})]})},Fb=()=>l.jsx(L,{sx:{w:"full",h:"full",alignItems:"center",justifyContent:"center",position:"absolute",color:"base.400"},children:l.jsx(Zh,{size:"30vh"})}),IA=pe([qr,Pr],(e,t)=>{const{currentImage:n,intermediateImage:r}=e,{shouldShowImageDetails:o,shouldHidePreview:s}=t;return{imageToDisplay:r||n,isIntermediate:Boolean(r),shouldShowImageDetails:o,shouldHidePreview:s}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function MA(){const{shouldShowImageDetails:e,imageToDisplay:t,isIntermediate:n,shouldHidePreview:r}=A(IA);return l.jsxs(L,{sx:{position:"relative",justifyContent:"center",alignItems:"center",width:"100%",height:"100%"},children:[t&&l.jsx(cs,{src:r?void 0:t.url,width:t.width,height:t.height,fallback:r?l.jsx(Fb,{}):n?void 0:l.jsx(jA,{}),sx:{objectFit:"contain",maxWidth:"100%",maxHeight:"100%",height:"auto",position:"absolute",imageRendering:n?"pixelated":"initial",borderRadius:"base"}}),!e&&l.jsx(Nb,{}),e&&t&&l.jsx(Ye,{sx:{position:"absolute",top:"0",width:"100%",height:"100%",borderRadius:"base",overflow:"scroll",maxHeight:rP},children:l.jsx(xp,{image:t})})]})}const TA=pe([qr],e=>{const{currentImage:t,intermediateImage:n}=e;return{hasAnImageToDisplay:t||n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Lb=()=>{const{hasAnImageToDisplay:e}=A(TA);return l.jsx(L,{sx:{flexDirection:"column",height:"100%",width:"100%",rowGap:4,borderRadius:"base"},children:e?l.jsxs(l.Fragment,{children:[l.jsx(Rb,{}),l.jsx(MA,{})]}):l.jsx(L,{sx:{alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:l.jsx(tn,{as:$D,sx:{boxSize:24,color:"base.500"}})})})},_A=()=>{const{t:e}=K(),t=g.useContext(Yh);return l.jsx(ae,{"aria-label":e("accessibility.uploadImage"),tooltip:"Upload Image",icon:l.jsx(Rc,{}),onClick:t||void 0})};function DA(){const e=A(c=>c.generation.initialImage),{shouldHidePreview:t}=A(c=>c.ui),{t:n}=K(),r=Y(),o=ls(),s=()=>{o({title:n("toast.parametersFailed"),description:n("toast.parametersFailedDesc"),status:"error",isClosable:!0}),r(x3())};return l.jsxs(l.Fragment,{children:[l.jsxs(L,{sx:{alignItems:"center",justifyContent:"center",w:"100%",gap:4},children:[l.jsx(Ce,{sx:{fontSize:"lg"},variant:"subtext",children:n("parameters.initialImage")}),l.jsx(_A,{})]}),e&&l.jsx(L,{sx:{position:"relative",height:"100%",width:"100%",alignItems:"center",justifyContent:"center"},children:l.jsx(cs,{sx:{fit:"contain",maxWidth:"100%",maxHeight:"100%",borderRadius:"base",objectFit:"contain",position:"absolute"},src:t?void 0:typeof e=="string"?e:e.url,fallback:l.jsx(Fb,{}),onError:s})})]})}const q0={flexDirection:"column",height:"100%",width:"100%",gap:4,padding:4},AA=()=>{const t=A(n=>n.generation.initialImage)?l.jsx(L,{flexDirection:"column",gap:4,w:"100%",h:"100%",children:l.jsx(DA,{})}):l.jsx(mA,{});return l.jsxs(ir,{sx:{w:"100%",h:"100%",gridTemplateColumns:"1fr 1fr",borderRadius:"base",bg:"base.850"},children:[l.jsx(L,{sx:{...q0,paddingInlineEnd:2},children:t}),l.jsx(L,{sx:{...q0,paddingInlineStart:2},children:l.jsx(Lb,{})})]})};var ln=(e=>(e[e.PROMPT=0]="PROMPT",e[e.GALLERY=1]="GALLERY",e[e.OTHER=2]="OTHER",e[e.SEED=3]="SEED",e[e.VARIATIONS=4]="VARIATIONS",e[e.UPSCALE=5]="UPSCALE",e[e.FACE_CORRECTION=6]="FACE_CORRECTION",e[e.IMAGE_TO_IMAGE=7]="IMAGE_TO_IMAGE",e[e.BOUNDING_BOX=8]="BOUNDING_BOX",e[e.SEAM_CORRECTION=9]="SEAM_CORRECTION",e[e.INFILL_AND_SCALING=10]="INFILL_AND_SCALING",e))(ln||{});const OA=()=>{const{t:e}=K();return g.useMemo(()=>({[0]:{text:e("tooltip.feature.prompt"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[1]:{text:e("tooltip.feature.gallery"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[2]:{text:e("tooltip.feature.other"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[3]:{text:e("tooltip.feature.seed"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[4]:{text:e("tooltip.feature.variations"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[5]:{text:e("tooltip.feature.upscale"),href:"link/to/docs/feature1.html",guideImage:"asset/path.gif"},[6]:{text:e("tooltip.feature.faceCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[7]:{text:e("tooltip.feature.imageToImage"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[8]:{text:e("tooltip.feature.boundingBox"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[9]:{text:e("tooltip.feature.seamCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[10]:{text:e("tooltip.feature.infillAndScaling"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"}}),[e])},zA=e=>OA()[e];function Bb(){const e=A(o=>o.system.isGFPGANAvailable),t=A(o=>o.postprocessing.shouldRunFacetool),n=Y(),r=o=>n(b3(o.target.checked));return l.jsx(En,{isDisabled:!e,isChecked:t,onChange:r})}const Hb=()=>{const e=Y(),t=A(o=>o.generation.seamless),n=o=>e(N1(o.target.checked)),{t:r}=K();return l.jsx(En,{label:r("parameters.seamlessTiling"),fontSize:"md",isChecked:t,onChange:n})},RA=()=>l.jsx(Fe,{gap:2,alignItems:"stretch",children:l.jsx(Hb,{})});function bp(){const e=A(s=>s.generation.horizontalSymmetrySteps),t=A(s=>s.generation.verticalSymmetrySteps),n=A(s=>s.generation.steps),r=Y(),{t:o}=K();return l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(ut,{label:o("parameters.hSymmetryStep"),value:e,onChange:s=>r(_v(s)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(_v(0))}),l.jsx(ut,{label:o("parameters.vSymmetryStep"),value:t,onChange:s=>r(Dv(s)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(Dv(0))})]})}function Sp(){const e=A(n=>n.generation.shouldUseSymmetry),t=Y();return l.jsx(En,{isChecked:e,onChange:n=>t(S3(n.target.checked))})}function NA(){const e=Y(),t=A(r=>r.generation.perlin),{t:n}=K();return l.jsx(ut,{label:n("parameters.perlinNoise"),min:0,max:1,step:.05,onChange:r=>e(nf(r)),handleReset:()=>e(nf(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0})}function FA(){const e=Y(),{t}=K(),n=A(o=>o.generation.shouldRandomizeSeed),r=o=>e(C3(o.target.checked));return l.jsx(En,{label:t("parameters.randomizeSeed"),isChecked:n,onChange:r})}function LA(){const e=Y(),t=A(o=>o.generation.shouldRandomizeSeed),{t:n}=K(),r=()=>e(is(w3(V1,W1)));return l.jsx(ni,{size:"sm",isDisabled:t,onClick:r,padding:"0 1.5rem",children:l.jsx("p",{children:n("parameters.shuffle")})})}function BA(){const e=A(c=>c.generation.seed),t=A(c=>c.generation.shouldRandomizeSeed),n=A(c=>c.generation.shouldGenerateVariations),{t:r}=K(),o=Y(),s=c=>o(is(c));return l.jsxs(oa,{gap:2,children:[l.jsx(Vr,{label:r("parameters.seed"),step:1,precision:0,flexGrow:1,min:V1,max:W1,isDisabled:t,isInvalid:e<0&&n,onChange:s,value:e,formControlProps:{display:"flex",alignItems:"center",gap:3}}),l.jsx(LA,{})]})}function HA(){const e=Y(),t=A(r=>r.generation.threshold),{t:n}=K();return l.jsx(ut,{label:n("parameters.noiseThreshold"),min:0,max:20,step:.1,onChange:r=>e(tf(r)),handleReset:()=>e(tf(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0})}const Cp=()=>l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(FA,{}),l.jsx(BA,{}),l.jsx(HA,{}),l.jsx(NA,{})]});function Wb(){const e=A(o=>o.system.isESRGANAvailable),t=A(o=>o.postprocessing.shouldRunESRGAN),n=Y(),r=o=>n(j3(o.target.checked));return l.jsx(En,{isDisabled:!e,isChecked:t,onChange:r})}function wp(){const e=A(r=>r.generation.shouldGenerateVariations),t=Y(),n=r=>t(k3(r.target.checked));return l.jsx(En,{isChecked:e,width:"auto",onChange:n})}function WA(){const e=A(s=>s.generation.seedWeights),t=A(s=>s.generation.shouldGenerateVariations),{t:n}=K(),r=Y(),o=s=>r(R1(s.target.value));return l.jsx(mt,{label:n("parameters.seedWeights"),value:e,isInvalid:t&&!(U1(e)||e===""),isDisabled:!t,onChange:o})}function VA(){const e=A(o=>o.generation.variationAmount),t=A(o=>o.generation.shouldGenerateVariations),{t:n}=K(),r=Y();return l.jsx(ut,{label:n("parameters.variationAmount"),value:e,step:.01,min:0,max:1,isSliderDisabled:!t,isInputDisabled:!t,isResetDisabled:!t,onChange:o=>r(Av(o)),handleReset:()=>r(Av(.1)),withInput:!0,withReset:!0,withSliderMarks:!0})}const jp=()=>l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(VA,{}),l.jsx(WA,{})]});function Y0(){const e=Y(),t=A(s=>s.generation.cfgScale),n=A(s=>s.ui.shouldUseSliders),{t:r}=K(),o=s=>e(of(s));return n?l.jsx(ut,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:30,onChange:o,handleReset:()=>e(of(7.5)),value:t,sliderNumberInputProps:{max:200},withInput:!0,withReset:!0,withSliderMarks:!0}):l.jsx(Vr,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:200,onChange:o,value:t,isInteger:!1,numberInputFieldProps:{textAlign:"center"}})}function K0(){const e=A(s=>s.generation.height),t=A(s=>s.ui.shouldUseSliders),n=A(bt),r=Y(),{t:o}=K();return t?l.jsx(ut,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:o("parameters.height"),value:e,min:64,step:64,max:2048,onChange:s=>r(Ll(s)),handleReset:()=>r(Ll(512)),withInput:!0,withReset:!0,withSliderMarks:!0,sliderNumberInputProps:{max:15360}}):l.jsx(Mn,{isDisabled:n==="unifiedCanvas",label:o("parameters.height"),value:e,flexGrow:1,onChange:s=>r(Ll(Number(s.target.value))),validValues:E3})}function X0(){const e=A(s=>s.generation.iterations),t=A(s=>s.ui.shouldUseSliders),n=Y(),{t:r}=K(),o=s=>n(Ov(s));return t?l.jsx(ut,{label:r("parameters.images"),step:1,min:1,max:16,onChange:o,handleReset:()=>n(Ov(1)),value:e,withInput:!0,withReset:!0,withSliderMarks:!0,sliderNumberInputProps:{max:9999}}):l.jsx(Vr,{label:r("parameters.images"),step:1,min:1,max:9999,onChange:o,value:e,numberInputFieldProps:{textAlign:"center"}})}function Q0(){const e=A(s=>s.generation.sampler),t=A(Kx),n=Y(),{t:r}=K(),o=s=>n(z1(s.target.value));return l.jsx(Mn,{label:r("parameters.sampler"),value:e,onChange:o,validValues:t.format==="diffusers"?P3:I3,minWidth:36})}function Z0(){const e=Y(),t=A(c=>c.generation.steps),n=A(c=>c.ui.shouldUseSliders),{t:r}=K(),o=c=>{e(rf(c))},s=()=>{e($1())};return n?l.jsx(ut,{label:r("parameters.steps"),min:1,step:1,onChange:o,handleReset:()=>e(rf(20)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0,sliderNumberInputProps:{max:9999}}):l.jsx(Vr,{label:r("parameters.steps"),min:1,max:9999,step:1,onChange:o,value:t,numberInputFieldProps:{textAlign:"center"},onBlur:s})}function J0(){const e=A(s=>s.generation.width),t=A(s=>s.ui.shouldUseSliders),n=A(bt),{t:r}=K(),o=Y();return t?l.jsx(ut,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,min:64,step:64,max:2048,onChange:s=>o(Fl(s)),handleReset:()=>o(Fl(512)),withInput:!0,withReset:!0,withSliderMarks:!0,inputReadOnly:!0,sliderNumberInputProps:{max:15360}}):l.jsx(Mn,{isDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,flexGrow:1,onChange:s=>o(Fl(Number(s.target.value))),validValues:M3})}function kp(){return A(t=>t.ui.shouldUseSliders)?l.jsxs(Fe,{gap:2,children:[l.jsx(X0,{}),l.jsx(Z0,{}),l.jsx(Y0,{}),l.jsx(J0,{}),l.jsx(K0,{}),l.jsx(Q0,{})]}):l.jsxs(L,{rowGap:2,flexDirection:"column",children:[l.jsxs(L,{columnGap:1,children:[l.jsx(X0,{}),l.jsx(Z0,{}),l.jsx(Y0,{})]}),l.jsxs(L,{columnGap:1,children:[l.jsx(J0,{}),l.jsx(K0,{}),l.jsx(Q0,{})]})]})}const UA=pe(Et,e=>e.shouldDisplayGuides),$A=({children:e,feature:t})=>{const n=A(UA),{text:r}=zA(t);return n?l.jsxs(Uh,{trigger:"hover",isLazy:!0,children:[l.jsx(Vh,{children:l.jsx(Ye,{children:e})}),l.jsxs(Gh,{maxWidth:"400px",onClick:o=>o.preventDefault(),cursor:"initial",children:[l.jsx($h,{}),l.jsx(Qy,{children:r})]})]}):null},GA=g.memo($A),qA=ue(({feature:e,icon:t=FD},n)=>l.jsx(GA,{feature:e,children:l.jsx(Ye,{ref:n,children:l.jsx(tn,{marginBottom:"-.15rem",as:t})})})),YA=g.memo(qA);function KA(e){const{header:t,feature:n,content:r,additionalHeaderComponents:o}=e;return l.jsxs(zi,{children:[l.jsx(Ai,{children:l.jsxs(L,{width:"100%",gap:2,align:"center",children:[l.jsx(Ye,{flexGrow:1,textAlign:"start",children:t}),o,n&&l.jsx(YA,{feature:n}),l.jsx(Oi,{})]})}),l.jsx(Ri,{children:r})]})}const Ep=e=>{const{accordionInfo:t}=e,n=A(c=>c.system.openAccordions),r=Y(),o=c=>r(T3(c)),s=()=>{const c=[];return t&&Object.keys(t).forEach(u=>{const{header:f,feature:p,content:h,additionalHeaderComponents:y}=t[u];c.push(l.jsx(KA,{header:f,feature:p,content:h,additionalHeaderComponents:y},u))}),c};return l.jsx(ih,{defaultIndex:n,allowMultiple:!0,reduceMotion:!0,onChange:o,sx:{display:"flex",flexDirection:"column",gap:2},children:s()})},XA=e=>{const{menuType:t="icon",iconTooltip:n,buttonText:r,isLazy:o=!0,menuItems:s,menuProps:c,menuButtonProps:u,menuListProps:f,menuItemProps:p}=e,h=()=>{const y=[];return s.forEach((x,S)=>{y.push(l.jsx(gr,{onClick:x.onClick,fontSize:"sm",...p,children:x.item},S))}),y};return l.jsx(Ah,{...c,isLazy:o,children:({isOpen:y})=>l.jsxs(l.Fragment,{children:[l.jsx(zh,{as:t==="icon"?ho:ni,tooltip:n,"aria-label":n,icon:y?l.jsx(qD,{}):l.jsx(GD,{}),paddingX:0,paddingY:t==="regular"?2:0,...u,children:t==="regular"&&r}),l.jsx(Oh,{zIndex:15,padding:0,...f,children:h()})]})})},QA=g.memo(XA),ZA=pe(Et,e=>({isProcessing:e.isProcessing,isConnected:e.isConnected,isCancelable:e.isCancelable,currentIteration:e.currentIteration,totalIterations:e.totalIterations,cancelType:e.cancelOptions.cancelType,cancelAfter:e.cancelOptions.cancelAfter}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),JA=e=>{const t=Y(),{btnGroupWidth:n="auto",...r}=e,{isProcessing:o,isConnected:s,isCancelable:c,currentIteration:u,totalIterations:f,cancelType:p,cancelAfter:h}=A(ZA),y=g.useCallback(()=>{t(_3()),t(fd(null))},[t]),{t:x}=K(),S=h!==null;ce("shift+x",()=>{(s||o)&&c&&y()},[s,o,c]),g.useEffect(()=>{h!==null&&ht(zv("immediate"))},{item:x("parameters.cancel.schedule"),onClick:()=>t(zv("scheduled"))}];return l.jsxs(Qt,{isAttached:!0,width:n,children:[p==="immediate"?l.jsx(ae,{icon:l.jsx(YD,{}),tooltip:x("parameters.cancel.immediate"),"aria-label":x("parameters.cancel.immediate"),isDisabled:!s||!o||!c,onClick:y,colorScheme:"error",...r}):l.jsx(ae,{icon:S?l.jsx(tc,{}):l.jsx(ND,{}),tooltip:x(S?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),"aria-label":x(S?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),isDisabled:!s||!o||!c||u===f,onClick:()=>{t(S?fd(null):fd(u))},colorScheme:"error",...r}),l.jsx(QA,{menuItems:j,iconTooltip:x("parameters.cancel.setType"),menuButtonProps:{colorScheme:"error",minWidth:5}})]})},Pp=g.memo(JA),tt=e=>e.canvas,Ot=pe([tt,bt,Et],(e,t,n)=>e.layerState.stagingArea.images.length>0||t==="unifiedCanvas"&&n.isProcessing),Vb=e=>e.canvas.layerState.objects.find(G1),Ip=e=>e.generation;pe(Ip,({shouldRandomizeSeed:e,shouldGenerateVariations:t})=>e||t,{memoizeOptions:{resultEqualityCheck:ee.isEqual}});const Ub=pe([Ip,Et,Vb,bt],(e,t,n,r)=>{const{prompt:o,shouldGenerateVariations:s,seedWeights:c,initialImage:u,seed:f}=e,{isProcessing:p,isConnected:h}=t;let y=!0;const x=[];return(!o||Boolean(o.match(/^[\s\r\n]+$/)))&&(y=!1,x.push("Missing prompt")),r==="img2img"&&!u&&(y=!1,x.push("No initial image selected")),p&&(y=!1,x.push("System Busy")),h||(y=!1,x.push("System Disconnected")),s&&(!(U1(c)||c==="")||f===-1)&&(y=!1,x.push("Seed-Weights badly formatted.")),{isReady:y,reasonsWhyNotReady:x}},{memoizeOptions:{equalityCheck:ee.isEqual,resultEqualityCheck:ee.isEqual}});function Mp(e){const{iconButton:t=!1,...n}=e,r=Y(),{isReady:o}=A(Ub),s=A(bt),c=()=>{r(sf(s))},{t:u}=K();return ce(["ctrl+enter","meta+enter"],()=>{r($1()),r(sf(s))},{enabled:()=>o,preventDefault:!0,enableOnFormTags:["input","textarea","select"]},[o,s]),l.jsx(Ye,{style:{flexGrow:4},children:t?l.jsx(ae,{"aria-label":u("parameters.invoke"),type:"submit",icon:l.jsx(L9,{}),isDisabled:!o,onClick:c,flexGrow:1,w:"100%",tooltip:u("parameters.invoke"),tooltipProps:{placement:"bottom"},colorScheme:"accent",...n}):l.jsx(Je,{"aria-label":u("parameters.invoke"),type:"submit",isDisabled:!o,onClick:c,flexGrow:1,w:"100%",colorScheme:"accent",fontWeight:700,...n,children:"Invoke"})})}const eO=pe(gp,({shouldLoopback:e})=>e),tO=()=>{const e=Y(),t=A(eO),{t:n}=K();return l.jsx(ae,{"aria-label":n("parameters.toggleLoopback"),tooltip:n("parameters.toggleLoopback"),isChecked:t,icon:l.jsx(H9,{}),onClick:()=>{e(D3(!t))}})},Tp=()=>{const e=A(bt);return l.jsxs(L,{gap:2,children:[l.jsx(Mp,{}),e==="img2img"&&l.jsx(tO,{}),l.jsx(Pp,{})]})},_p=()=>{const e=A(r=>r.generation.negativePrompt),t=Y(),{t:n}=K();return l.jsx(rt,{children:l.jsx(qh,{id:"negativePrompt",name:"negativePrompt",value:e,onChange:r=>t(D1(r.target.value)),placeholder:n("parameters.negativePrompts"),_focusVisible:{borderColor:"error.600"},fontSize:"sm"})})},nO=pe([e=>e.generation,bt],(e,t)=>({prompt:e.prompt,activeTabName:t}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Dp=()=>{const e=Y(),{prompt:t,activeTabName:n}=A(nO),{isReady:r}=A(Ub),o=g.useRef(null),{t:s}=K(),c=f=>{e(_1(f.target.value))};ce("alt+a",()=>{var f;(f=o.current)==null||f.focus()},[]);const u=f=>{f.key==="Enter"&&f.shiftKey===!1&&r&&(f.preventDefault(),e(sf(n)))};return l.jsx(Ye,{children:l.jsx(rt,{isInvalid:t.length===0||Boolean(t.match(/^[\s\r\n]+$/)),children:l.jsx(qh,{id:"prompt",name:"prompt",placeholder:s("parameters.promptPlaceholder"),value:t,onChange:c,onKeyDown:u,resize:"vertical",ref:o,minH:40})})})};function rO(){const e=Y(),t=A(o=>o.generation.shouldFitToWidthHeight),n=o=>e(L1(o.target.checked)),{t:r}=K();return l.jsx(En,{label:r("parameters.imageFit"),isChecked:t,onChange:n})}function $b(e){const{t}=K(),{label:n=`${t("parameters.strength")}`}=e,r=A(u=>u.generation.img2imgStrength),o=Y(),s=u=>o(af(u)),c=()=>{o(af(.75))};return l.jsx(ut,{label:n,step:.01,min:.01,max:1,onChange:s,value:r,isInteger:!1,withInput:!0,withSliderMarks:!0,inputWidth:22,withReset:!0,handleReset:c})}function oO(){const{t:e}=K();return l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx($b,{label:e("parameters.img2imgStrength")}),l.jsx(rO,{})]})}const iO=()=>{const{t:e}=K(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:l.jsx(kp,{})},imageToImage:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:l.jsx(oO,{})},seed:{header:`${e("parameters.seed")}`,feature:ln.SEED,content:l.jsx(Cp,{})},variations:{header:`${e("parameters.variations")}`,feature:ln.VARIATIONS,content:l.jsx(jp,{}),additionalHeaderComponents:l.jsx(wp,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:ln.FACE_CORRECTION,content:l.jsx(mp,{}),additionalHeaderComponents:l.jsx(Bb,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:ln.UPSCALE,content:l.jsx(vp,{}),additionalHeaderComponents:l.jsx(Wb,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:l.jsx(bp,{}),additionalHeaderComponents:l.jsx(Sp,{})},other:{header:`${e("parameters.otherOptions")}`,feature:ln.OTHER,content:l.jsx(RA,{})}};return l.jsxs(L,{flexDir:"column",gap:2,position:"relative",children:[l.jsx(Dp,{}),l.jsx(_p,{}),l.jsx(Tp,{}),l.jsx(Ep,{accordionInfo:t})]})},aO=g.memo(iO);function sO(){return l.jsx(pp,{parametersPanelContent:l.jsx(aO,{}),children:l.jsx(AA,{})})}const lO=()=>l.jsx(Ye,{sx:{width:"100%",height:"100%",borderRadius:"base",bg:"base.850"},children:l.jsx(L,{sx:{p:4,width:"100%",height:"100%"},children:l.jsx(Lb,{})})}),cO=pe([gp],({hiresFix:e,hiresStrength:t})=>({hiresFix:e,hiresStrength:t}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),uO=()=>{const{hiresFix:e,hiresStrength:t}=A(cO),n=Y(),{t:r}=K(),o=c=>{n(Rv(c))},s=()=>{n(Rv(.75))};return l.jsx(ut,{label:r("parameters.hiresStrength"),step:.01,min:.01,max:.99,onChange:o,value:t,isInteger:!1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:s,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})},dO=()=>{const e=Y(),t=A(o=>o.postprocessing.hiresFix),{t:n}=K(),r=o=>e(F1(o.target.checked));return l.jsx(En,{label:n("parameters.hiresOptim"),fontSize:"md",isChecked:t,onChange:r})},fO=()=>l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(Hb,{}),l.jsx(dO,{}),l.jsx(uO,{})]}),hO=()=>{const{t:e}=K(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:l.jsx(kp,{})},seed:{header:`${e("parameters.seed")}`,feature:ln.SEED,content:l.jsx(Cp,{})},variations:{header:`${e("parameters.variations")}`,feature:ln.VARIATIONS,content:l.jsx(jp,{}),additionalHeaderComponents:l.jsx(wp,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:ln.FACE_CORRECTION,content:l.jsx(mp,{}),additionalHeaderComponents:l.jsx(Bb,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:ln.UPSCALE,content:l.jsx(vp,{}),additionalHeaderComponents:l.jsx(Wb,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:l.jsx(bp,{}),additionalHeaderComponents:l.jsx(Sp,{})},other:{header:`${e("parameters.otherOptions")}`,feature:ln.OTHER,content:l.jsx(fO,{})}};return l.jsxs(L,{flexDir:"column",gap:2,children:[l.jsx(Dp,{}),l.jsx(_p,{}),l.jsx(Tp,{}),l.jsx(Ep,{accordionInfo:t})]})},pO=g.memo(hO);function mO(){return l.jsx(pp,{parametersPanelContent:l.jsx(pO,{}),children:l.jsx(lO,{})})}var $f={},vO={get exports(){return $f},set exports(e){$f=e}};/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var gO=function(t){var n={},r=g,o=Bl,s=Object.assign;function c(i){for(var a="https://reactjs.org/docs/error-decoder.html?invariant="+i,d=1;dO||v[E]!==b[O]){var W=` -`+v[E].replace(" at new "," at ");return i.displayName&&W.includes("")&&(W=W.replace("",i.displayName)),W}while(1<=E&&0<=O);break}}}finally{eu=!1,Error.prepareStackTrace=d}return(i=i?i.displayName||i.name:"")?ua(i):""}var Y4=Object.prototype.hasOwnProperty,nu=[],ci=-1;function Yr(i){return{current:i}}function St(i){0>ci||(i.current=nu[ci],nu[ci]=null,ci--)}function gt(i,a){ci++,nu[ci]=i.current,i.current=a}var Kr={},nn=Yr(Kr),yn=Yr(!1),Po=Kr;function ui(i,a){var d=i.type.contextTypes;if(!d)return Kr;var m=i.stateNode;if(m&&m.__reactInternalMemoizedUnmaskedChildContext===a)return m.__reactInternalMemoizedMaskedChildContext;var v={},b;for(b in d)v[b]=a[b];return m&&(i=i.stateNode,i.__reactInternalMemoizedUnmaskedChildContext=a,i.__reactInternalMemoizedMaskedChildContext=v),v}function xn(i){return i=i.childContextTypes,i!=null}function js(){St(yn),St(nn)}function $p(i,a,d){if(nn.current!==Kr)throw Error(c(168));gt(nn,a),gt(yn,d)}function Gp(i,a,d){var m=i.stateNode;if(a=a.childContextTypes,typeof m.getChildContext!="function")return d;m=m.getChildContext();for(var v in m)if(!(v in a))throw Error(c(108,R(i)||"Unknown",v));return s({},d,m)}function ks(i){return i=(i=i.stateNode)&&i.__reactInternalMemoizedMergedChildContext||Kr,Po=nn.current,gt(nn,i),gt(yn,yn.current),!0}function qp(i,a,d){var m=i.stateNode;if(!m)throw Error(c(169));d?(i=Gp(i,a,Po),m.__reactInternalMemoizedMergedChildContext=i,St(yn),St(nn),gt(nn,i)):St(yn),gt(yn,d)}var qn=Math.clz32?Math.clz32:Q4,K4=Math.log,X4=Math.LN2;function Q4(i){return i>>>=0,i===0?32:31-(K4(i)/X4|0)|0}var Es=64,Ps=4194304;function da(i){switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return i&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return i}}function Is(i,a){var d=i.pendingLanes;if(d===0)return 0;var m=0,v=i.suspendedLanes,b=i.pingedLanes,E=d&268435455;if(E!==0){var O=E&~v;O!==0?m=da(O):(b&=E,b!==0&&(m=da(b)))}else E=d&~v,E!==0?m=da(E):b!==0&&(m=da(b));if(m===0)return 0;if(a!==0&&a!==m&&!(a&v)&&(v=m&-m,b=a&-a,v>=b||v===16&&(b&4194240)!==0))return a;if(m&4&&(m|=d&16),a=i.entangledLanes,a!==0)for(i=i.entanglements,a&=m;0d;d++)a.push(i);return a}function fa(i,a,d){i.pendingLanes|=a,a!==536870912&&(i.suspendedLanes=0,i.pingedLanes=0),i=i.eventTimes,a=31-qn(a),i[a]=d}function eS(i,a){var d=i.pendingLanes&~a;i.pendingLanes=a,i.suspendedLanes=0,i.pingedLanes=0,i.expiredLanes&=a,i.mutableReadLanes&=a,i.entangledLanes&=a,a=i.entanglements;var m=i.eventTimes;for(i=i.expirationTimes;0>=E,v-=E,Tr=1<<32-qn(a)+v|d<it?(Xt=We,We=null):Xt=We.sibling;var at=xe(H,We,G[it],be);if(at===null){We===null&&(We=Xt);break}i&&We&&at.alternate===null&&a(H,We),z=b(at,z,it),Ke===null?Oe=at:Ke.sibling=at,Ke=at,We=Xt}if(it===G.length)return d(H,We),Pt&&Mo(H,it),Oe;if(We===null){for(;itit?(Xt=We,We=null):Xt=We.sibling;var ro=xe(H,We,at.value,be);if(ro===null){We===null&&(We=Xt);break}i&&We&&ro.alternate===null&&a(H,We),z=b(ro,z,it),Ke===null?Oe=ro:Ke.sibling=ro,Ke=ro,We=Xt}if(at.done)return d(H,We),Pt&&Mo(H,it),Oe;if(We===null){for(;!at.done;it++,at=G.next())at=He(H,at.value,be),at!==null&&(z=b(at,z,it),Ke===null?Oe=at:Ke.sibling=at,Ke=at);return Pt&&Mo(H,it),Oe}for(We=m(H,We);!at.done;it++,at=G.next())at=Ct(We,H,it,at.value,be),at!==null&&(i&&at.alternate!==null&&We.delete(at.key===null?it:at.key),z=b(at,z,it),Ke===null?Oe=at:Ke.sibling=at,Ke=at);return i&&We.forEach(function(LS){return a(H,LS)}),Pt&&Mo(H,it),Oe}function zr(H,z,G,be){if(typeof G=="object"&&G!==null&&G.type===h&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case f:e:{for(var Oe=G.key,Ke=z;Ke!==null;){if(Ke.key===Oe){if(Oe=G.type,Oe===h){if(Ke.tag===7){d(H,Ke.sibling),z=v(Ke,G.props.children),z.return=H,H=z;break e}}else if(Ke.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===P&&fm(Oe)===Ke.type){d(H,Ke.sibling),z=v(Ke,G.props),z.ref=pa(H,Ke,G),z.return=H,H=z;break e}d(H,Ke);break}else a(H,Ke);Ke=Ke.sibling}G.type===h?(z=Ro(G.props.children,H.mode,be,G.key),z.return=H,H=z):(be=fl(G.type,G.key,G.props,null,H.mode,be),be.ref=pa(H,z,G),be.return=H,H=be)}return E(H);case p:e:{for(Ke=G.key;z!==null;){if(z.key===Ke)if(z.tag===4&&z.stateNode.containerInfo===G.containerInfo&&z.stateNode.implementation===G.implementation){d(H,z.sibling),z=v(z,G.children||[]),z.return=H,H=z;break e}else{d(H,z);break}else a(H,z);z=z.sibling}z=ud(G,H.mode,be),z.return=H,H=z}return E(H);case P:return Ke=G._init,zr(H,z,Ke(G._payload),be)}if(te(G))return ht(H,z,G,be);if(D(G))return wn(H,z,G,be);Bs(H,G)}return typeof G=="string"&&G!==""||typeof G=="number"?(G=""+G,z!==null&&z.tag===6?(d(H,z.sibling),z=v(z,G),z.return=H,H=z):(d(H,z),z=cd(G,H.mode,be),z.return=H,H=z),E(H)):d(H,z)}return zr}var vi=hm(!0),pm=hm(!1),ma={},Rn=Yr(ma),va=Yr(ma),gi=Yr(ma);function dr(i){if(i===ma)throw Error(c(174));return i}function wu(i,a){gt(gi,a),gt(va,i),gt(Rn,ma),i=$(a),St(Rn),gt(Rn,i)}function yi(){St(Rn),St(va),St(gi)}function mm(i){var a=dr(gi.current),d=dr(Rn.current);a=Z(d,i.type,a),d!==a&&(gt(va,i),gt(Rn,a))}function ju(i){va.current===i&&(St(Rn),St(va))}var Tt=Yr(0);function Hs(i){for(var a=i;a!==null;){if(a.tag===13){var d=a.memoizedState;if(d!==null&&(d=d.dehydrated,d===null||Up(d)||Zc(d)))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if(a.flags&128)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===i)break;for(;a.sibling===null;){if(a.return===null||a.return===i)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var ku=[];function Eu(){for(var i=0;id?d:4,i(!0);var m=Pu.transition;Pu.transition={};try{i(!1),a()}finally{ot=d,Pu.transition=m}}function Am(){return Nn().memoizedState}function fS(i,a,d){var m=eo(i);if(d={lane:m,action:d,hasEagerState:!1,eagerState:null,next:null},Om(i))zm(a,d);else if(d=om(i,a,d,m),d!==null){var v=sn();Fn(d,i,m,v),Rm(d,a,m)}}function hS(i,a,d){var m=eo(i),v={lane:m,action:d,hasEagerState:!1,eagerState:null,next:null};if(Om(i))zm(a,v);else{var b=i.alternate;if(i.lanes===0&&(b===null||b.lanes===0)&&(b=a.lastRenderedReducer,b!==null))try{var E=a.lastRenderedState,O=b(E,d);if(v.hasEagerState=!0,v.eagerState=O,Yn(O,E)){var W=a.interleaved;W===null?(v.next=v,xu(a)):(v.next=W.next,W.next=v),a.interleaved=v;return}}catch{}finally{}d=om(i,a,v,m),d!==null&&(v=sn(),Fn(d,i,m,v),Rm(d,a,m))}}function Om(i){var a=i.alternate;return i===_t||a!==null&&a===_t}function zm(i,a){ga=Vs=!0;var d=i.pending;d===null?a.next=a:(a.next=d.next,d.next=a),i.pending=a}function Rm(i,a,d){if(d&4194240){var m=a.lanes;m&=i.pendingLanes,d|=m,a.lanes=d,iu(i,d)}}var Gs={readContext:zn,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useInsertionEffect:rn,useLayoutEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useMutableSource:rn,useSyncExternalStore:rn,useId:rn,unstable_isNewReconciler:!1},pS={readContext:zn,useCallback:function(i,a){return fr().memoizedState=[i,a===void 0?null:a],i},useContext:zn,useEffect:km,useImperativeHandle:function(i,a,d){return d=d!=null?d.concat([i]):null,Us(4194308,4,Im.bind(null,a,i),d)},useLayoutEffect:function(i,a){return Us(4194308,4,i,a)},useInsertionEffect:function(i,a){return Us(4,2,i,a)},useMemo:function(i,a){var d=fr();return a=a===void 0?null:a,i=i(),d.memoizedState=[i,a],i},useReducer:function(i,a,d){var m=fr();return a=d!==void 0?d(a):a,m.memoizedState=m.baseState=a,i={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:a},m.queue=i,i=i.dispatch=fS.bind(null,_t,i),[m.memoizedState,i]},useRef:function(i){var a=fr();return i={current:i},a.memoizedState=i},useState:wm,useDebugValue:Ou,useDeferredValue:function(i){return fr().memoizedState=i},useTransition:function(){var i=wm(!1),a=i[0];return i=dS.bind(null,i[1]),fr().memoizedState=i,[a,i]},useMutableSource:function(){},useSyncExternalStore:function(i,a,d){var m=_t,v=fr();if(Pt){if(d===void 0)throw Error(c(407));d=d()}else{if(d=a(),Kt===null)throw Error(c(349));_o&30||ym(m,a,d)}v.memoizedState=d;var b={value:d,getSnapshot:a};return v.queue=b,km(bm.bind(null,m,b,i),[i]),m.flags|=2048,ba(9,xm.bind(null,m,b,d,a),void 0,null),d},useId:function(){var i=fr(),a=Kt.identifierPrefix;if(Pt){var d=_r,m=Tr;d=(m&~(1<<32-qn(m)-1)).toString(32)+d,a=":"+a+"R"+d,d=ya++,0td&&(a.flags|=128,m=!0,wa(v,!1),a.lanes=4194304)}else{if(!m)if(i=Hs(b),i!==null){if(a.flags|=128,m=!0,i=i.updateQueue,i!==null&&(a.updateQueue=i,a.flags|=4),wa(v,!0),v.tail===null&&v.tailMode==="hidden"&&!b.alternate&&!Pt)return on(a),null}else 2*qt()-v.renderingStartTime>td&&d!==1073741824&&(a.flags|=128,m=!0,wa(v,!1),a.lanes=4194304);v.isBackwards?(b.sibling=a.child,a.child=b):(i=v.last,i!==null?i.sibling=b:a.child=b,v.last=b)}return v.tail!==null?(a=v.tail,v.rendering=a,v.tail=a.sibling,v.renderingStartTime=qt(),a.sibling=null,i=Tt.current,gt(Tt,m?i&1|2:i&1),a):(on(a),null);case 22:case 23:return ad(),d=a.memoizedState!==null,i!==null&&i.memoizedState!==null!==d&&(a.flags|=8192),d&&a.mode&1?_n&1073741824&&(on(a),me&&a.subtreeFlags&6&&(a.flags|=8192)):on(a),null;case 24:return null;case 25:return null}throw Error(c(156,a.tag))}function CS(i,a){switch(du(a),a.tag){case 1:return xn(a.type)&&js(),i=a.flags,i&65536?(a.flags=i&-65537|128,a):null;case 3:return yi(),St(yn),St(nn),Eu(),i=a.flags,i&65536&&!(i&128)?(a.flags=i&-65537|128,a):null;case 5:return ju(a),null;case 13:if(St(Tt),i=a.memoizedState,i!==null&&i.dehydrated!==null){if(a.alternate===null)throw Error(c(340));hi()}return i=a.flags,i&65536?(a.flags=i&-65537|128,a):null;case 19:return St(Tt),null;case 4:return yi(),null;case 10:return gu(a.type._context),null;case 22:case 23:return ad(),null;case 24:return null;default:return null}}var Qs=!1,an=!1,wS=typeof WeakSet=="function"?WeakSet:Set,we=null;function bi(i,a){var d=i.ref;if(d!==null)if(typeof d=="function")try{d(null)}catch(m){It(i,a,m)}else d.current=null}function Vu(i,a,d){try{d()}catch(m){It(i,a,m)}}var tv=!1;function jS(i,a){for(fe(i.containerInfo),we=a;we!==null;)if(i=we,a=i.child,(i.subtreeFlags&1028)!==0&&a!==null)a.return=i,we=a;else for(;we!==null;){i=we;try{var d=i.alternate;if(i.flags&1024)switch(i.tag){case 0:case 11:case 15:break;case 1:if(d!==null){var m=d.memoizedProps,v=d.memoizedState,b=i.stateNode,E=b.getSnapshotBeforeUpdate(i.elementType===i.type?m:Xn(i.type,m),v);b.__reactInternalSnapshotBeforeUpdate=E}break;case 3:me&&Eo(i.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(c(163))}}catch(O){It(i,i.return,O)}if(a=i.sibling,a!==null){a.return=i.return,we=a;break}we=i.return}return d=tv,tv=!1,d}function ja(i,a,d){var m=a.updateQueue;if(m=m!==null?m.lastEffect:null,m!==null){var v=m=m.next;do{if((v.tag&i)===i){var b=v.destroy;v.destroy=void 0,b!==void 0&&Vu(a,d,b)}v=v.next}while(v!==m)}}function Zs(i,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var d=a=a.next;do{if((d.tag&i)===i){var m=d.create;d.destroy=m()}d=d.next}while(d!==a)}}function Uu(i){var a=i.ref;if(a!==null){var d=i.stateNode;switch(i.tag){case 5:i=re(d);break;default:i=d}typeof a=="function"?a(i):a.current=i}}function nv(i){var a=i.alternate;a!==null&&(i.alternate=null,nv(a)),i.child=null,i.deletions=null,i.sibling=null,i.tag===5&&(a=i.stateNode,a!==null&&Be(a)),i.stateNode=null,i.return=null,i.dependencies=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.stateNode=null,i.updateQueue=null}function rv(i){return i.tag===5||i.tag===3||i.tag===4}function ov(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||rv(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function $u(i,a,d){var m=i.tag;if(m===5||m===6)i=i.stateNode,a?dn(d,i,a):Le(d,i);else if(m!==4&&(i=i.child,i!==null))for($u(i,a,d),i=i.sibling;i!==null;)$u(i,a,d),i=i.sibling}function Gu(i,a,d){var m=i.tag;if(m===5||m===6)i=i.stateNode,a?Ae(d,i,a):J(d,i);else if(m!==4&&(i=i.child,i!==null))for(Gu(i,a,d),i=i.sibling;i!==null;)Gu(i,a,d),i=i.sibling}var Zt=null,Qn=!1;function pr(i,a,d){for(d=d.child;d!==null;)qu(i,a,d),d=d.sibling}function qu(i,a,d){if(lr&&typeof lr.onCommitFiberUnmount=="function")try{lr.onCommitFiberUnmount(Ms,d)}catch{}switch(d.tag){case 5:an||bi(d,a);case 6:if(me){var m=Zt,v=Qn;Zt=null,pr(i,a,d),Zt=m,Qn=v,Zt!==null&&(Qn?fn(Zt,d.stateNode):Vt(Zt,d.stateNode))}else pr(i,a,d);break;case 18:me&&Zt!==null&&(Qn?U4(Zt,d.stateNode):V4(Zt,d.stateNode));break;case 4:me?(m=Zt,v=Qn,Zt=d.stateNode.containerInfo,Qn=!0,pr(i,a,d),Zt=m,Qn=v):(De&&(m=d.stateNode.containerInfo,v=Bp(m),Qc(m,v)),pr(i,a,d));break;case 0:case 11:case 14:case 15:if(!an&&(m=d.updateQueue,m!==null&&(m=m.lastEffect,m!==null))){v=m=m.next;do{var b=v,E=b.destroy;b=b.tag,E!==void 0&&(b&2||b&4)&&Vu(d,a,E),v=v.next}while(v!==m)}pr(i,a,d);break;case 1:if(!an&&(bi(d,a),m=d.stateNode,typeof m.componentWillUnmount=="function"))try{m.props=d.memoizedProps,m.state=d.memoizedState,m.componentWillUnmount()}catch(O){It(d,a,O)}pr(i,a,d);break;case 21:pr(i,a,d);break;case 22:d.mode&1?(an=(m=an)||d.memoizedState!==null,pr(i,a,d),an=m):pr(i,a,d);break;default:pr(i,a,d)}}function iv(i){var a=i.updateQueue;if(a!==null){i.updateQueue=null;var d=i.stateNode;d===null&&(d=i.stateNode=new wS),a.forEach(function(m){var v=AS.bind(null,i,m);d.has(m)||(d.add(m),m.then(v,v))})}}function Zn(i,a){var d=a.deletions;if(d!==null)for(var m=0;m";case el:return":has("+(Xu(i)||"")+")";case tl:return'[role="'+i.value+'"]';case rl:return'"'+i.value+'"';case nl:return'[data-testname="'+i.value+'"]';default:throw Error(c(365))}}function dv(i,a){var d=[];i=[i,0];for(var m=0;mv&&(v=E),m&=~b}if(m=v,m=qt()-m,m=(120>m?120:480>m?480:1080>m?1080:1920>m?1920:3e3>m?3e3:4320>m?4320:1960*ES(m/1960))-m,10i?16:i,Jr===null)var m=!1;else{if(i=Jr,Jr=null,ll=0,Xe&6)throw Error(c(331));var v=Xe;for(Xe|=4,we=i.current;we!==null;){var b=we,E=b.child;if(we.flags&16){var O=b.deletions;if(O!==null){for(var W=0;Wqt()-ed?Ao(i,0):Ju|=d),Cn(i,a)}function bv(i,a){a===0&&(i.mode&1?(a=Ps,Ps<<=1,!(Ps&130023424)&&(Ps=4194304)):a=1);var d=sn();i=ur(i,a),i!==null&&(fa(i,a,d),Cn(i,d))}function DS(i){var a=i.memoizedState,d=0;a!==null&&(d=a.retryLane),bv(i,d)}function AS(i,a){var d=0;switch(i.tag){case 13:var m=i.stateNode,v=i.memoizedState;v!==null&&(d=v.retryLane);break;case 19:m=i.stateNode;break;default:throw Error(c(314))}m!==null&&m.delete(a),bv(i,d)}var Sv;Sv=function(i,a,d){if(i!==null)if(i.memoizedProps!==a.pendingProps||yn.current)bn=!0;else{if(!(i.lanes&d)&&!(a.flags&128))return bn=!1,bS(i,a,d);bn=!!(i.flags&131072)}else bn=!1,Pt&&a.flags&1048576&&Zp(a,Ds,a.index);switch(a.lanes=0,a.tag){case 2:var m=a.type;Ys(i,a),i=a.pendingProps;var v=ui(a,nn.current);mi(a,d),v=Mu(null,a,m,i,v,d);var b=Tu();return a.flags|=1,typeof v=="object"&&v!==null&&typeof v.render=="function"&&v.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,xn(m)?(b=!0,ks(a)):b=!1,a.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,bu(a),v.updater=Ls,a.stateNode=v,v._reactInternals=a,Cu(a,m,i,d),a=Fu(null,a,m,!0,b,d)):(a.tag=0,Pt&&b&&uu(a),hn(null,a,v,d),a=a.child),a;case 16:m=a.elementType;e:{switch(Ys(i,a),i=a.pendingProps,v=m._init,m=v(m._payload),a.type=m,v=a.tag=zS(m),i=Xn(m,i),v){case 0:a=Nu(null,a,m,i,d);break e;case 1:a=qm(null,a,m,i,d);break e;case 11:a=Wm(null,a,m,i,d);break e;case 14:a=Vm(null,a,m,Xn(m.type,i),d);break e}throw Error(c(306,m,""))}return a;case 0:return m=a.type,v=a.pendingProps,v=a.elementType===m?v:Xn(m,v),Nu(i,a,m,v,d);case 1:return m=a.type,v=a.pendingProps,v=a.elementType===m?v:Xn(m,v),qm(i,a,m,v,d);case 3:e:{if(Ym(a),i===null)throw Error(c(387));m=a.pendingProps,b=a.memoizedState,v=b.element,im(i,a),Fs(a,m,null,d);var E=a.memoizedState;if(m=E.element,Ge&&b.isDehydrated)if(b={element:m,isDehydrated:!1,cache:E.cache,pendingSuspenseBoundaries:E.pendingSuspenseBoundaries,transitions:E.transitions},a.updateQueue.baseState=b,a.memoizedState=b,a.flags&256){v=xi(Error(c(423)),a),a=Km(i,a,m,d,v);break e}else if(m!==v){v=xi(Error(c(424)),a),a=Km(i,a,m,d,v);break e}else for(Ge&&(On=z4(a.stateNode.containerInfo),Tn=a,Pt=!0,Kn=null,ha=!1),d=pm(a,null,m,d),a.child=d;d;)d.flags=d.flags&-3|4096,d=d.sibling;else{if(hi(),m===v){a=Ar(i,a,d);break e}hn(i,a,m,d)}a=a.child}return a;case 5:return mm(a),i===null&&hu(a),m=a.type,v=a.pendingProps,b=i!==null?i.memoizedProps:null,E=v.children,se(m,v)?E=null:b!==null&&se(m,b)&&(a.flags|=32),Gm(i,a),hn(i,a,E,d),a.child;case 6:return i===null&&hu(a),null;case 13:return Xm(i,a,d);case 4:return wu(a,a.stateNode.containerInfo),m=a.pendingProps,i===null?a.child=vi(a,null,m,d):hn(i,a,m,d),a.child;case 11:return m=a.type,v=a.pendingProps,v=a.elementType===m?v:Xn(m,v),Wm(i,a,m,v,d);case 7:return hn(i,a,a.pendingProps,d),a.child;case 8:return hn(i,a,a.pendingProps.children,d),a.child;case 12:return hn(i,a,a.pendingProps.children,d),a.child;case 10:e:{if(m=a.type._context,v=a.pendingProps,b=a.memoizedProps,E=v.value,rm(a,m,E),b!==null)if(Yn(b.value,E)){if(b.children===v.children&&!yn.current){a=Ar(i,a,d);break e}}else for(b=a.child,b!==null&&(b.return=a);b!==null;){var O=b.dependencies;if(O!==null){E=b.child;for(var W=O.firstContext;W!==null;){if(W.context===m){if(b.tag===1){W=Dr(-1,d&-d),W.tag=2;var oe=b.updateQueue;if(oe!==null){oe=oe.shared;var ke=oe.pending;ke===null?W.next=W:(W.next=ke.next,ke.next=W),oe.pending=W}}b.lanes|=d,W=b.alternate,W!==null&&(W.lanes|=d),yu(b.return,d,a),O.lanes|=d;break}W=W.next}}else if(b.tag===10)E=b.type===a.type?null:b.child;else if(b.tag===18){if(E=b.return,E===null)throw Error(c(341));E.lanes|=d,O=E.alternate,O!==null&&(O.lanes|=d),yu(E,d,a),E=b.sibling}else E=b.child;if(E!==null)E.return=b;else for(E=b;E!==null;){if(E===a){E=null;break}if(b=E.sibling,b!==null){b.return=E.return,E=b;break}E=E.return}b=E}hn(i,a,v.children,d),a=a.child}return a;case 9:return v=a.type,m=a.pendingProps.children,mi(a,d),v=zn(v),m=m(v),a.flags|=1,hn(i,a,m,d),a.child;case 14:return m=a.type,v=Xn(m,a.pendingProps),v=Xn(m.type,v),Vm(i,a,m,v,d);case 15:return Um(i,a,a.type,a.pendingProps,d);case 17:return m=a.type,v=a.pendingProps,v=a.elementType===m?v:Xn(m,v),Ys(i,a),a.tag=1,xn(m)?(i=!0,ks(a)):i=!1,mi(a,d),um(a,m,v),Cu(a,m,v,d),Fu(null,a,m,!0,i,d);case 19:return Zm(i,a,d);case 22:return $m(i,a,d)}throw Error(c(156,a.tag))};function Cv(i,a){return au(i,a)}function OS(i,a,d,m){this.tag=i,this.key=d,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=m,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ln(i,a,d,m){return new OS(i,a,d,m)}function ld(i){return i=i.prototype,!(!i||!i.isReactComponent)}function zS(i){if(typeof i=="function")return ld(i)?1:0;if(i!=null){if(i=i.$$typeof,i===C)return 11;if(i===I)return 14}return 2}function no(i,a){var d=i.alternate;return d===null?(d=Ln(i.tag,a,i.key,i.mode),d.elementType=i.elementType,d.type=i.type,d.stateNode=i.stateNode,d.alternate=i,i.alternate=d):(d.pendingProps=a,d.type=i.type,d.flags=0,d.subtreeFlags=0,d.deletions=null),d.flags=i.flags&14680064,d.childLanes=i.childLanes,d.lanes=i.lanes,d.child=i.child,d.memoizedProps=i.memoizedProps,d.memoizedState=i.memoizedState,d.updateQueue=i.updateQueue,a=i.dependencies,d.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},d.sibling=i.sibling,d.index=i.index,d.ref=i.ref,d}function fl(i,a,d,m,v,b){var E=2;if(m=i,typeof i=="function")ld(i)&&(E=1);else if(typeof i=="string")E=5;else e:switch(i){case h:return Ro(d.children,v,b,a);case y:E=8,v|=8;break;case x:return i=Ln(12,d,a,v|2),i.elementType=x,i.lanes=b,i;case w:return i=Ln(13,d,a,v),i.elementType=w,i.lanes=b,i;case k:return i=Ln(19,d,a,v),i.elementType=k,i.lanes=b,i;case M:return hl(d,v,b,a);default:if(typeof i=="object"&&i!==null)switch(i.$$typeof){case S:E=10;break e;case j:E=9;break e;case C:E=11;break e;case I:E=14;break e;case P:E=16,m=null;break e}throw Error(c(130,i==null?i:typeof i,""))}return a=Ln(E,d,a,v),a.elementType=i,a.type=m,a.lanes=b,a}function Ro(i,a,d,m){return i=Ln(7,i,m,a),i.lanes=d,i}function hl(i,a,d,m){return i=Ln(22,i,m,a),i.elementType=M,i.lanes=d,i.stateNode={isHidden:!1},i}function cd(i,a,d){return i=Ln(6,i,null,a),i.lanes=d,i}function ud(i,a,d){return a=Ln(4,i.children!==null?i.children:[],i.key,a),a.lanes=d,a.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},a}function RS(i,a,d,m,v){this.tag=a,this.containerInfo=i,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=$e,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ou(0),this.expirationTimes=ou(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ou(0),this.identifierPrefix=m,this.onRecoverableError=v,Ge&&(this.mutableSourceEagerHydrationData=null)}function wv(i,a,d,m,v,b,E,O,W){return i=new RS(i,a,d,O,W),a===1?(a=1,b===!0&&(a|=8)):a=0,b=Ln(3,null,null,a),i.current=b,b.stateNode=i,b.memoizedState={element:m,isDehydrated:d,cache:null,transitions:null,pendingSuspenseBoundaries:null},bu(b),i}function jv(i){if(!i)return Kr;i=i._reactInternals;e:{if(V(i)!==i||i.tag!==1)throw Error(c(170));var a=i;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(xn(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(a!==null);throw Error(c(171))}if(i.tag===1){var d=i.type;if(xn(d))return Gp(i,d,a)}return a}function kv(i){var a=i._reactInternals;if(a===void 0)throw typeof i.render=="function"?Error(c(188)):(i=Object.keys(i).join(","),Error(c(268,i)));return i=Q(a),i===null?null:i.stateNode}function Ev(i,a){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var d=i.retryLane;i.retryLane=d!==0&&d=oe&&b>=He&&v<=ke&&E<=xe){i.splice(a,1);break}else if(m!==oe||d.width!==W.width||xeE){if(!(b!==He||d.height!==W.height||kev)){oe>m&&(W.width+=oe-m,W.x=m),keb&&(W.height+=He-b,W.y=b),xed&&(d=E)),E ")+` - -No matching component was found for: - `)+i.join(" > ")}return null},n.getPublicRootInstance=function(i){if(i=i.current,!i.child)return null;switch(i.child.tag){case 5:return re(i.child.stateNode);default:return i.child.stateNode}},n.injectIntoDevTools=function(i){if(i={bundleType:i.bundleType,version:i.version,rendererPackageName:i.rendererPackageName,rendererConfig:i.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:u.ReactCurrentDispatcher,findHostInstanceByFiber:NS,findFiberByHostInstance:i.findFiberByHostInstance||FS,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")i=!1;else{var a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(a.isDisabled||!a.supportsFiber)i=!0;else{try{Ms=a.inject(i),lr=a}catch{}i=!!a.checkDCE}}return i},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(i,a,d,m){if(!N)throw Error(c(363));i=Qu(i,a);var v=Ze(i,d,m).disconnect;return{disconnect:function(){v()}}},n.registerMutableSourceForHydration=function(i,a){var d=a._getVersion;d=d(a._source),i.mutableSourceEagerHydrationData==null?i.mutableSourceEagerHydrationData=[a,d]:i.mutableSourceEagerHydrationData.push(a,d)},n.runWithPriority=function(i,a){var d=ot;try{return ot=i,a()}finally{ot=d}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(i,a,d,m){var v=a.current,b=sn(),E=eo(v);return d=jv(d),a.context===null?a.context=d:a.pendingContext=d,a=Dr(b,E),a.payload={element:i},m=m===void 0?null:m,m!==null&&(a.callback=m),i=Qr(v,a,E),i!==null&&(Fn(i,v,E,b),Ns(i,v,E)),E},n};(function(e){e.exports=gO})(vO);const yO=A3($f);var pc={},xO={get exports(){return pc},set exports(e){pc=e}},li={};/** - * @license React - * react-reconciler-constants.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */li.ConcurrentRoot=1;li.ContinuousEventPriority=4;li.DefaultEventPriority=16;li.DiscreteEventPriority=1;li.IdleEventPriority=536870912;li.LegacyRoot=0;(function(e){e.exports=li})(xO);const e1={children:!0,ref:!0,key:!0,style:!0,forwardedRef:!0,unstable_applyCache:!0,unstable_applyDrawHitFromCache:!0};let t1=!1,n1=!1;const Ap=".react-konva-event",bO=`ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled. -Position of a node will be changed during drag&drop, so you should update state of the react app as well. -Consider to add onDragMove or onDragEnd events. -For more info see: https://github.com/konvajs/react-konva/issues/256 -`,SO=`ReactKonva: You are using "zIndex" attribute for a Konva node. -react-konva may get confused with ordering. Just define correct order of elements in your render function of a component. -For more info see: https://github.com/konvajs/react-konva/issues/194 -`,CO={};function Vc(e,t,n=CO){if(!t1&&"zIndex"in t&&(console.warn(SO),t1=!0),!n1&&t.draggable){var r=t.x!==void 0||t.y!==void 0,o=t.onDragEnd||t.onDragMove;r&&!o&&(console.warn(bO),n1=!0)}for(var s in n)if(!e1[s]){var c=s.slice(0,2)==="on",u=n[s]!==t[s];if(c&&u){var f=s.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),e.off(f,n[s])}var p=!t.hasOwnProperty(s);p&&e.setAttr(s,void 0)}var h=t._useStrictMode,y={},x=!1;const S={};for(var s in t)if(!e1[s]){var c=s.slice(0,2)==="on",j=n[s]!==t[s];if(c&&j){var f=s.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),t[s]&&(S[f]=t[s])}!c&&(t[s]!==n[s]||h&&t[s]!==e.getAttr(s))&&(x=!0,y[s]=t[s])}x&&(e.setAttrs(y),wo(e));for(var f in S)e.on(f+Ap,S[f])}function wo(e){if(!O3.autoDrawEnabled){var t=e.getLayer()||e.getStage();t&&t.batchDraw()}}const Gb={},wO={};Ua.Node.prototype._applyProps=Vc;function jO(e,t){if(typeof t=="string"){console.error(`Do not use plain text as child of Konva.Node. You are using text: ${t}`);return}e.add(t),wo(e)}function kO(e,t,n){let r=Ua[e];r||(console.error(`Konva has no node with the type ${e}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${e}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),r=Ua.Group);const o={},s={};for(var c in t){var u=c.slice(0,2)==="on";u?s[c]=t[c]:o[c]=t[c]}const f=new r(o);return Vc(f,s),f}function EO(e,t,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${e}"`)}function PO(e,t,n){return!1}function IO(e){return e}function MO(){return null}function TO(){return null}function _O(e,t,n,r){return wO}function DO(){}function AO(e){}function OO(e,t){return!1}function zO(){return Gb}function RO(){return Gb}const NO=setTimeout,FO=clearTimeout,LO=-1;function BO(e,t){return!1}const HO=!1,WO=!0,VO=!0;function UO(e,t){t.parent===e?t.moveToTop():e.add(t),wo(e)}function $O(e,t){t.parent===e?t.moveToTop():e.add(t),wo(e)}function qb(e,t,n){t._remove(),e.add(t),t.setZIndex(n.getZIndex()),wo(e)}function GO(e,t,n){qb(e,t,n)}function qO(e,t){t.destroy(),t.off(Ap),wo(e)}function YO(e,t){t.destroy(),t.off(Ap),wo(e)}function KO(e,t,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function XO(e,t,n){}function QO(e,t,n,r,o){Vc(e,o,r)}function ZO(e){e.hide(),wo(e)}function JO(e){}function ez(e,t){(t.visible==null||t.visible)&&e.show()}function tz(e,t){}function nz(e){}function rz(){}const oz=()=>pc.DefaultEventPriority,iz=Object.freeze(Object.defineProperty({__proto__:null,appendChild:UO,appendChildToContainer:$O,appendInitialChild:jO,cancelTimeout:FO,clearContainer:nz,commitMount:XO,commitTextUpdate:KO,commitUpdate:QO,createInstance:kO,createTextInstance:EO,detachDeletedInstance:rz,finalizeInitialChildren:PO,getChildHostContext:RO,getCurrentEventPriority:oz,getPublicInstance:IO,getRootHostContext:zO,hideInstance:ZO,hideTextInstance:JO,idlePriority:Bl.unstable_IdlePriority,insertBefore:qb,insertInContainerBefore:GO,isPrimaryRenderer:HO,noTimeout:LO,now:Bl.unstable_now,prepareForCommit:MO,preparePortalMount:TO,prepareUpdate:_O,removeChild:qO,removeChildFromContainer:YO,resetAfterCommit:DO,resetTextContent:AO,run:Bl.unstable_runWithPriority,scheduleTimeout:NO,shouldDeprioritizeSubtree:OO,shouldSetTextContent:BO,supportsMutation:VO,unhideInstance:ez,unhideTextInstance:tz,warnsIfNotActing:WO},Symbol.toStringTag,{value:"Module"}));var az=Object.defineProperty,sz=Object.defineProperties,lz=Object.getOwnPropertyDescriptors,r1=Object.getOwnPropertySymbols,cz=Object.prototype.hasOwnProperty,uz=Object.prototype.propertyIsEnumerable,o1=(e,t,n)=>t in e?az(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,i1=(e,t)=>{for(var n in t||(t={}))cz.call(t,n)&&o1(e,n,t[n]);if(r1)for(var n of r1(t))uz.call(t,n)&&o1(e,n,t[n]);return e},dz=(e,t)=>sz(e,lz(t));function Yb(e,t,n){if(!e)return;if(n(e)===!0)return e;let r=t?e.return:e.child;for(;r;){const o=Yb(r,t,n);if(o)return o;r=t?null:r.sibling}}function Kb(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}const Op=Kb(g.createContext(null));class Xb extends g.Component{render(){return g.createElement(Op.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:fz,ReactCurrentDispatcher:hz}=g.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function pz(){const e=g.useContext(Op);if(!e)throw new Error("its-fine: useFiber must be called within a !");const t=g.useId();return g.useMemo(()=>{var r;return(r=fz.current)!=null?r:Yb(e,!1,o=>{let s=o.memoizedState;for(;s;){if(s.memoizedState===t)return!0;s=s.next}})},[e,t])}function mz(){var e,t;const n=pz(),[r]=g.useState(()=>new Map);r.clear();let o=n;for(;o;){const s=(e=o.type)==null?void 0:e._context;s&&s!==Op&&!r.has(s)&&r.set(s,(t=hz.current)==null?void 0:t.readContext(Kb(s))),o=o.return}return g.useMemo(()=>Array.from(r.keys()).reduce((s,c)=>u=>g.createElement(s,null,g.createElement(c.Provider,dz(i1({},u),{value:r.get(c)}))),s=>g.createElement(Xb,i1({},s))),[r])}function vz(e){const t=_e.useRef();return _e.useLayoutEffect(()=>{t.current=e}),t.current}const gz=e=>{const t=_e.useRef(),n=_e.useRef(),r=_e.useRef(),o=vz(e),s=mz(),c=u=>{const{forwardedRef:f}=e;f&&(typeof f=="function"?f(u):f.current=u)};return _e.useLayoutEffect(()=>(n.current=new Ua.Stage({width:e.width,height:e.height,container:t.current}),c(n.current),r.current=Na.createContainer(n.current,pc.LegacyRoot,!1,null),Na.updateContainer(_e.createElement(s,{},e.children),r.current),()=>{Ua.isBrowser&&(c(null),Na.updateContainer(null,r.current,null),n.current.destroy())}),[]),_e.useLayoutEffect(()=>{c(n.current),Vc(n.current,e,o),Na.updateContainer(_e.createElement(s,{},e.children),r.current,null)}),_e.createElement("div",{ref:t,accessKey:e.accessKey,className:e.className,role:e.role,style:e.style,tabIndex:e.tabIndex,title:e.title})},Aa="Layer",Ur="Group",$r="Rect",Fo="Circle",mc="Line",Qb="Image",yz="Transformer",Na=yO(iz);Na.injectIntoDevTools({findHostInstanceByFiber:()=>null,bundleType:0,version:_e.version,rendererPackageName:"react-konva"});const xz=_e.forwardRef((e,t)=>_e.createElement(Xb,{},_e.createElement(gz,{...e,forwardedRef:t}))),bz=pe([tt,Ot],(e,t)=>{const{tool:n,isMovingBoundingBox:r}=e;return{tool:n,isStaging:t,isMovingBoundingBox:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Sz=()=>{const e=Y(),{tool:t,isStaging:n,isMovingBoundingBox:r}=A(bz);return{handleDragStart:g.useCallback(()=>{(t==="move"||n)&&!r&&e(Kl(!0))},[e,r,n,t]),handleDragMove:g.useCallback(o=>{if(!((t==="move"||n)&&!r))return;const s={x:o.target.x(),y:o.target.y()};e(q1(s))},[e,r,n,t]),handleDragEnd:g.useCallback(()=>{(t==="move"||n)&&!r&&e(Kl(!1))},[e,r,n,t])}},Cz=pe([tt,bt,Ot],(e,t,n)=>{const{cursorPosition:r,shouldLockBoundingBox:o,shouldShowBoundingBox:s,tool:c,isMaskEnabled:u,shouldSnapToGrid:f}=e;return{activeTabName:t,isCursorOnCanvas:Boolean(r),shouldLockBoundingBox:o,shouldShowBoundingBox:s,tool:c,isStaging:n,isMaskEnabled:u,shouldSnapToGrid:f}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),wz=()=>{const e=Y(),{activeTabName:t,shouldShowBoundingBox:n,tool:r,isStaging:o,isMaskEnabled:s,shouldSnapToGrid:c}=A(Cz),u=g.useRef(null),f=Y1(),p=()=>e(Zf());ce(["shift+c"],()=>{p()},{enabled:()=>!o,preventDefault:!0},[]);const h=()=>e(as(!s));ce(["h"],()=>{h()},{enabled:()=>!o,preventDefault:!0},[s]),ce(["n"],()=>{e(Xl(!c))},{enabled:!0,preventDefault:!0},[c]),ce("esc",()=>{e(z3())},{enabled:()=>!0,preventDefault:!0}),ce("shift+h",()=>{e(R3(!n))},{enabled:()=>!o,preventDefault:!0},[t,n]),ce(["space"],y=>{y.repeat||(f==null||f.container().focus(),r!=="move"&&(u.current=r,e(Sr("move"))),r==="move"&&u.current&&u.current!=="move"&&(e(Sr(u.current)),u.current="move"))},{keyup:!0,keydown:!0,preventDefault:!0},[r,u])},zp=e=>{const t=e.getPointerPosition(),n=e.getAbsoluteTransform().copy();if(!t||!n)return;const r=n.invert().point(t);return{x:r.x,y:r.y}},Zb=()=>{const e=Y(),t=jr(),n=Y1();return{updateColorUnderCursor:()=>{if(!n||!t)return;const r=n.getPointerPosition();if(!r)return;const o=N3.pixelRatio,[s,c,u,f]=t.getContext().getImageData(r.x*o,r.y*o,1,1).data;e(F3({r:s,g:c,b:u,a:f}))},commitColorUnderCursor:()=>{e(L3())}}},jz=pe([bt,tt,Ot],(e,t,n)=>{const{tool:r}=t;return{tool:r,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),kz=e=>{const t=Y(),{tool:n,isStaging:r}=A(jz),{commitColorUnderCursor:o}=Zb();return g.useCallback(s=>{if(!e.current)return;if(e.current.container().focus(),n==="move"||r){t(Kl(!0));return}if(n==="colorPicker"){o();return}const c=zp(e.current);c&&(s.evt.preventDefault(),t(K1(!0)),t(B3([c.x,c.y])))},[e,n,r,t,o])},Ez=pe([bt,tt,Ot],(e,t,n)=>{const{tool:r,isDrawing:o}=t;return{tool:r,isDrawing:o,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Pz=(e,t,n)=>{const r=Y(),{isDrawing:o,tool:s,isStaging:c}=A(Ez),{updateColorUnderCursor:u}=Zb();return g.useCallback(()=>{if(!e.current)return;const f=zp(e.current);if(f){if(r(H3(f)),n.current=f,s==="colorPicker"){u();return}!o||s==="move"||c||(t.current=!0,r(X1([f.x,f.y])))}},[t,r,o,c,n,e,s,u])},Iz=()=>{const e=Y();return g.useCallback(()=>{e(W3())},[e])},Mz=pe([bt,tt,Ot],(e,t,n)=>{const{tool:r,isDrawing:o}=t;return{tool:r,isDrawing:o,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Tz=(e,t)=>{const n=Y(),{tool:r,isDrawing:o,isStaging:s}=A(Mz);return g.useCallback(()=>{if(r==="move"||s){n(Kl(!1));return}if(!t.current&&o&&e.current){const c=zp(e.current);if(!c)return;n(X1([c.x,c.y]))}else t.current=!1;n(K1(!1))},[t,n,o,s,e,r])},_z=pe([tt],e=>{const{isMoveStageKeyHeld:t,stageScale:n}=e;return{isMoveStageKeyHeld:t,stageScale:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Dz=e=>{const t=Y(),{isMoveStageKeyHeld:n,stageScale:r}=A(_z);return g.useCallback(o=>{if(!e.current||n)return;o.evt.preventDefault();const s=e.current.getPointerPosition();if(!s)return;const c={x:(s.x-e.current.x())/r,y:(s.y-e.current.y())/r};let u=o.evt.deltaY;o.evt.ctrlKey&&(u=-u);const f=ee.clamp(r*V3**u,U3,$3),p={x:s.x-c.x*f,y:s.y-c.y*f};t(G3(f)),t(q1(p))},[e,n,r,t])},Az=pe(tt,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageDimensions:r,stageScale:o,shouldDarkenOutsideBoundingBox:s,stageCoordinates:c}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,shouldDarkenOutsideBoundingBox:s,stageCoordinates:c,stageDimensions:r,stageScale:o}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Oz=()=>{const{boundingBoxCoordinates:e,boundingBoxDimensions:t,shouldDarkenOutsideBoundingBox:n,stageCoordinates:r,stageDimensions:o,stageScale:s}=A(Az);return l.jsxs(Ur,{children:[l.jsx($r,{offsetX:r.x/s,offsetY:r.y/s,height:o.height/s,width:o.width/s,fill:"rgba(0,0,0,0.4)",listening:!1,visible:n}),l.jsx($r,{x:e.x,y:e.y,width:t.width,height:t.height,fill:"rgb(255,255,255)",listening:!1,visible:n,globalCompositeOperation:"destination-out"})]})},zz=pe([tt],e=>{const{stageScale:t,stageCoordinates:n,stageDimensions:r}=e;return{stageScale:t,stageCoordinates:n,stageDimensions:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Rz=()=>{const e=A(f=>f.ui.currentTheme),{stageScale:t,stageCoordinates:n,stageDimensions:r}=A(zz),[o,s]=g.useState([]),[c]=E1("colors",["gridLineColor"]),u=g.useCallback(f=>f/t,[t]);return g.useLayoutEffect(()=>{const{width:f,height:p}=r,{x:h,y}=n,x={x1:0,y1:0,x2:f,y2:p,offset:{x:u(h),y:u(y)}},S={x:Math.ceil(u(h)/64)*64,y:Math.ceil(u(y)/64)*64},j={x1:-S.x,y1:-S.y,x2:u(f)-S.x+64,y2:u(p)-S.y+64},w={x1:Math.min(x.x1,j.x1),y1:Math.min(x.y1,j.y1),x2:Math.max(x.x2,j.x2),y2:Math.max(x.y2,j.y2)},k=w.x2-w.x1,I=w.y2-w.y1,P=Math.round(k/64)+1,M=Math.round(I/64)+1,T=ee.range(0,P).map(_=>l.jsx(mc,{x:w.x1+_*64,y:w.y1,points:[0,0,0,I],stroke:c,strokeWidth:1},`x_${_}`)),D=ee.range(0,M).map(_=>l.jsx(mc,{x:w.x1,y:w.y1+_*64,points:[0,0,k,0],stroke:c,strokeWidth:1},`y_${_}`));s(T.concat(D))},[t,n,r,e,u,c]),l.jsx(Ur,{children:o})},Nz=pe([e=>e.gallery],e=>e.intermediateImage?e.intermediateImage:null,{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Fz=e=>{const{...t}=e,n=A(Nz),[r,o]=g.useState(null);if(g.useEffect(()=>{if(!n)return;const p=new Image;p.onload=()=>{o(p)},p.src=n.url},[n]),!(n!=null&&n.boundingBox))return null;const{boundingBox:{x:s,y:c,width:u,height:f}}=n;return r?l.jsx(Qb,{x:s,y:c,width:u,height:f,image:r,listening:!1,...t}):null},Ko=e=>{const{r:t,g:n,b:r,a:o}=e;return`rgba(${t}, ${n}, ${r}, ${o})`},Lz=pe(tt,e=>{const{maskColor:t,stageCoordinates:n,stageDimensions:r,stageScale:o}=e;return{stageCoordinates:n,stageDimensions:r,stageScale:o,maskColorString:Ko(t)}}),a1=e=>`data:image/svg+xml;utf8, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`.replaceAll("black",e),Bz=e=>{const{...t}=e,{maskColorString:n,stageCoordinates:r,stageDimensions:o,stageScale:s}=A(Lz),[c,u]=g.useState(null),[f,p]=g.useState(0),h=g.useRef(null),y=g.useCallback(()=>{p(f+1),setTimeout(y,500)},[f]);return g.useEffect(()=>{if(c)return;const x=new Image;x.onload=()=>{u(x)},x.src=a1(n)},[c,n]),g.useEffect(()=>{c&&(c.src=a1(n))},[c,n]),g.useEffect(()=>{const x=setInterval(()=>p(S=>(S+1)%5),50);return()=>clearInterval(x)},[]),!c||!ee.isNumber(r.x)||!ee.isNumber(r.y)||!ee.isNumber(s)||!ee.isNumber(o.width)||!ee.isNumber(o.height)?null:l.jsx($r,{ref:h,offsetX:r.x/s,offsetY:r.y/s,height:o.height/s,width:o.width/s,fillPatternImage:c,fillPatternOffsetY:ee.isNumber(f)?f:0,fillPatternRepeat:"repeat",fillPatternScale:{x:1/s,y:1/s},listening:!0,globalCompositeOperation:"source-in",...t})},Hz=pe([tt],e=>({objects:e.layerState.objects}),{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Wz=e=>{const{...t}=e,{objects:n}=A(Hz);return l.jsx(Ur,{listening:!1,...t,children:n.filter(q3).map((r,o)=>l.jsx(mc,{points:r.points,stroke:"rgb(0,0,0)",strokeWidth:r.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:r.tool==="brush"?"source-over":"destination-out"},o))})};var Lo=g,Vz=function(t,n,r){const o=Lo.useRef("loading"),s=Lo.useRef(),[c,u]=Lo.useState(0),f=Lo.useRef(),p=Lo.useRef(),h=Lo.useRef();return(f.current!==t||p.current!==n||h.current!==r)&&(o.current="loading",s.current=void 0,f.current=t,p.current=n,h.current=r),Lo.useLayoutEffect(function(){if(!t)return;var y=document.createElement("img");function x(){o.current="loaded",s.current=y,u(Math.random())}function S(){o.current="failed",s.current=void 0,u(Math.random())}return y.addEventListener("load",x),y.addEventListener("error",S),n&&(y.crossOrigin=n),r&&(y.referrerpolicy=r),y.src=t,function(){y.removeEventListener("load",x),y.removeEventListener("error",S)}},[t,n,r]),[s.current,o.current]};const Jb=e=>{const{url:t,x:n,y:r}=e,[o]=Vz(t);return l.jsx(Qb,{x:n,y:r,image:o,listening:!1})},Uz=pe([tt],e=>{const{layerState:{objects:t}}=e;return{objects:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),$z=()=>{const{objects:e}=A(Uz);return e?l.jsx(Ur,{name:"outpainting-objects",listening:!1,children:e.map((t,n)=>{if(G1(t))return l.jsx(Jb,{x:t.x,y:t.y,url:t.image.url},n);if(Y3(t)){const r=l.jsx(mc,{points:t.points,stroke:t.color?Ko(t.color):"rgb(0,0,0)",strokeWidth:t.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:t.tool==="brush"?"source-over":"destination-out"},n);return t.clip?l.jsx(Ur,{clipX:t.clip.x,clipY:t.clip.y,clipWidth:t.clip.width,clipHeight:t.clip.height,children:r},n):r}else{if(K3(t))return l.jsx($r,{x:t.x,y:t.y,width:t.width,height:t.height,fill:Ko(t.color)},n);if(X3(t))return l.jsx($r,{x:t.x,y:t.y,width:t.width,height:t.height,fill:"rgb(255, 255, 255)",globalCompositeOperation:"destination-out"},n)}})}):null},Gz=pe([tt],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingImage:r,shouldShowStagingOutline:o,boundingBoxCoordinates:{x:s,y:c},boundingBoxDimensions:{width:u,height:f}}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:r,shouldShowStagingOutline:o,x:s,y:c,width:u,height:f}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),qz=e=>{const{...t}=e,{currentStagingAreaImage:n,shouldShowStagingImage:r,shouldShowStagingOutline:o,x:s,y:c,width:u,height:f}=A(Gz);return l.jsxs(Ur,{...t,children:[r&&n&&l.jsx(Jb,{url:n.image.url,x:s,y:c}),o&&l.jsxs(Ur,{children:[l.jsx($r,{x:s,y:c,width:u,height:f,strokeWidth:1,stroke:"white",strokeScaleEnabled:!1}),l.jsx($r,{x:s,y:c,width:u,height:f,dash:[4,4],strokeWidth:1,stroke:"black",strokeScaleEnabled:!1})]})]})},Yz=pe([tt],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingOutline:r,shouldShowStagingImage:o}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:o,shouldShowStagingOutline:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Kz=()=>{const e=Y(),{isOnFirstImage:t,isOnLastImage:n,currentStagingAreaImage:r,shouldShowStagingImage:o}=A(Yz),{t:s}=K(),c=g.useCallback(()=>{e(Nv(!0))},[e]),u=g.useCallback(()=>{e(Nv(!1))},[e]);ce(["left"],()=>{f()},{enabled:()=>!0,preventDefault:!0}),ce(["right"],()=>{p()},{enabled:()=>!0,preventDefault:!0}),ce(["enter"],()=>{h()},{enabled:()=>!0,preventDefault:!0});const f=()=>e(Q3()),p=()=>e(Z3()),h=()=>e(J3());return r?l.jsx(L,{pos:"absolute",bottom:4,w:"100%",align:"center",justify:"center",filter:"drop-shadow(0 0.5rem 1rem rgba(0,0,0))",onMouseOver:c,onMouseOut:u,children:l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{tooltip:`${s("unifiedCanvas.previous")} (Left)`,"aria-label":`${s("unifiedCanvas.previous")} (Left)`,icon:l.jsx(Lx,{}),onClick:f,colorScheme:"accent",isDisabled:t}),l.jsx(ae,{tooltip:`${s("unifiedCanvas.next")} (Right)`,"aria-label":`${s("unifiedCanvas.next")} (Right)`,icon:l.jsx(E9,{}),onClick:p,colorScheme:"accent",isDisabled:n}),l.jsx(ae,{tooltip:`${s("unifiedCanvas.accept")} (Enter)`,"aria-label":`${s("unifiedCanvas.accept")} (Enter)`,icon:l.jsx(Oc,{}),onClick:h,colorScheme:"accent"}),l.jsx(ae,{tooltip:s("unifiedCanvas.showHide"),"aria-label":s("unifiedCanvas.showHide"),"data-alert":!o,icon:o?l.jsx($x,{}):l.jsx(Zh,{}),onClick:()=>e(eC(!o)),colorScheme:"accent"}),l.jsx(ae,{tooltip:s("unifiedCanvas.saveToGallery"),"aria-label":s("unifiedCanvas.saveToGallery"),icon:l.jsx(Jh,{}),onClick:()=>e(tC(r.image.url)),colorScheme:"accent"}),l.jsx(ae,{tooltip:s("unifiedCanvas.discardAll"),"aria-label":s("unifiedCanvas.discardAll"),icon:l.jsx(zc,{style:{transform:"rotate(45deg)"}}),onClick:()=>e(nC()),colorScheme:"error",fontSize:20})]})}):null},Fi=e=>Math.round(e*100)/100,Xz=pe([tt],e=>{const{cursorPosition:t}=e,{cursorX:n,cursorY:r}=t?{cursorX:t.x,cursorY:t.y}:{cursorX:-1,cursorY:-1};return{cursorCoordinatesString:`(${Fi(n)}, ${Fi(r)})`}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function Qz(){const{cursorCoordinatesString:e}=A(Xz),{t}=K();return l.jsx(Ye,{children:`${t("unifiedCanvas.cursorPosition")}: ${e}`})}const Gf="var(--invokeai-colors-warning-500)",Zz=pe([tt],e=>{const{stageDimensions:{width:t,height:n},stageCoordinates:{x:r,y:o},boundingBoxDimensions:{width:s,height:c},scaledBoundingBoxDimensions:{width:u,height:f},boundingBoxCoordinates:{x:p,y:h},stageScale:y,shouldShowCanvasDebugInfo:x,layer:S,boundingBoxScaleMethod:j,shouldPreserveMaskedArea:C}=e;let w="inherit";return(j==="none"&&(s<512||c<512)||j==="manual"&&u*f<512*512)&&(w=Gf),{activeLayerColor:S==="mask"?Gf:"inherit",activeLayerString:S.charAt(0).toUpperCase()+S.slice(1),boundingBoxColor:w,boundingBoxCoordinatesString:`(${Fi(p)}, ${Fi(h)})`,boundingBoxDimensionsString:`${s}×${c}`,scaledBoundingBoxDimensionsString:`${u}×${f}`,canvasCoordinatesString:`${Fi(r)}×${Fi(o)}`,canvasDimensionsString:`${t}×${n}`,canvasScaleString:Math.round(y*100),shouldShowCanvasDebugInfo:x,shouldShowBoundingBox:j!=="auto",shouldShowScaledBoundingBox:j!=="none",shouldPreserveMaskedArea:C}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),Jz=()=>{const{activeLayerColor:e,activeLayerString:t,boundingBoxColor:n,boundingBoxCoordinatesString:r,boundingBoxDimensionsString:o,scaledBoundingBoxDimensionsString:s,shouldShowScaledBoundingBox:c,canvasCoordinatesString:u,canvasDimensionsString:f,canvasScaleString:p,shouldShowCanvasDebugInfo:h,shouldShowBoundingBox:y,shouldPreserveMaskedArea:x}=A(Zz),{t:S}=K();return l.jsxs(L,{sx:{flexDirection:"column",position:"absolute",top:0,insetInlineStart:0,opacity:.65,display:"flex",fontSize:"sm",padding:1,px:2,minWidth:48,margin:1,borderRadius:"base",pointerEvents:"none",bg:"base.800"},children:[l.jsx(Ye,{style:{color:e},children:`${S("unifiedCanvas.activeLayer")}: ${t}`}),l.jsx(Ye,{children:`${S("unifiedCanvas.canvasScale")}: ${p}%`}),x&&l.jsx(Ye,{style:{color:Gf},children:"Preserve Masked Area: On"}),y&&l.jsx(Ye,{style:{color:n},children:`${S("unifiedCanvas.boundingBox")}: ${o}`}),c&&l.jsx(Ye,{style:{color:n},children:`${S("unifiedCanvas.scaledBoundingBox")}: ${s}`}),h&&l.jsxs(l.Fragment,{children:[l.jsx(Ye,{children:`${S("unifiedCanvas.boundingBoxPosition")}: ${r}`}),l.jsx(Ye,{children:`${S("unifiedCanvas.canvasDimensions")}: ${f}`}),l.jsx(Ye,{children:`${S("unifiedCanvas.canvasPosition")}: ${u}`}),l.jsx(Qz,{})]})]})},eR=pe(tt,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageScale:r,isDrawing:o,isTransformingBoundingBox:s,isMovingBoundingBox:c,tool:u,shouldSnapToGrid:f}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,isDrawing:o,isMovingBoundingBox:c,isTransformingBoundingBox:s,stageScale:r,shouldSnapToGrid:f,tool:u,hitStrokeWidth:20/r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),tR=e=>{const{...t}=e,n=Y(),{boundingBoxCoordinates:r,boundingBoxDimensions:o,isDrawing:s,isMovingBoundingBox:c,isTransformingBoundingBox:u,stageScale:f,shouldSnapToGrid:p,tool:h,hitStrokeWidth:y}=A(eR),x=g.useRef(null),S=g.useRef(null),[j,C]=g.useState(!1);g.useEffect(()=>{var Q;!x.current||!S.current||(x.current.nodes([S.current]),(Q=x.current.getLayer())==null||Q.batchDraw())},[]);const w=64*f,k=g.useCallback(Q=>{if(!p){n(hd({x:Math.floor(Q.target.x()),y:Math.floor(Q.target.y())}));return}const U=Q.target.x(),X=Q.target.y(),te=Fv(U,64),re=Fv(X,64);Q.target.x(te),Q.target.y(re),n(hd({x:te,y:re}))},[n,p]),I=g.useCallback(()=>{if(!S.current)return;const Q=S.current,U=Q.scaleX(),X=Q.scaleY(),te=Math.round(Q.width()*U),re=Math.round(Q.height()*X),$=Math.round(Q.x()),Z=Math.round(Q.y());n(za({width:te,height:re})),n(hd({x:p?ml($,64):$,y:p?ml(Z,64):Z})),Q.scaleX(1),Q.scaleY(1)},[n,p]),P=g.useCallback((Q,U,X)=>{const te=Q.x%w,re=Q.y%w;return{x:ml(U.x,w)+te,y:ml(U.y,w)+re}},[w]),M=()=>{n(pd(!0))},T=()=>{n(pd(!1)),n(md(!1)),n(vl(!1)),C(!1)},D=()=>{n(md(!0))},_=()=>{n(pd(!1)),n(md(!1)),n(vl(!1)),C(!1)},R=()=>{C(!0)},V=()=>{!u&&!c&&C(!1)},F=()=>{n(vl(!0))},B=()=>{n(vl(!1))};return l.jsxs(Ur,{...t,children:[l.jsx($r,{height:o.height,width:o.width,x:r.x,y:r.y,onMouseEnter:F,onMouseOver:F,onMouseLeave:B,onMouseOut:B}),l.jsx($r,{draggable:!0,fillEnabled:!1,height:o.height,hitStrokeWidth:y,listening:!s&&h==="move",onDragStart:D,onDragEnd:_,onDragMove:k,onMouseDown:D,onMouseOut:V,onMouseOver:R,onMouseEnter:R,onMouseUp:_,onTransform:I,onTransformEnd:T,ref:S,stroke:j?"rgba(255,255,255,0.7)":"white",strokeWidth:(j?8:1)/f,width:o.width,x:r.x,y:r.y}),l.jsx(yz,{anchorCornerRadius:3,anchorDragBoundFunc:P,anchorFill:"rgba(212,216,234,1)",anchorSize:15,anchorStroke:"rgb(42,42,42)",borderDash:[4,4],borderEnabled:!0,borderStroke:"black",draggable:!1,enabledAnchors:h==="move"?void 0:[],flipEnabled:!1,ignoreStroke:!0,keepRatio:!1,listening:!s&&h==="move",onDragStart:D,onDragEnd:_,onMouseDown:M,onMouseUp:T,onTransformEnd:T,ref:x,rotateEnabled:!1})]})},nR=pe(tt,e=>{const{cursorPosition:t,brushSize:n,colorPickerColor:r,maskColor:o,brushColor:s,tool:c,layer:u,shouldShowBrush:f,isMovingBoundingBox:p,isTransformingBoundingBox:h,stageScale:y,stageDimensions:x,boundingBoxCoordinates:S,boundingBoxDimensions:j,shouldRestrictStrokesToBox:C}=e,w=C?{clipX:S.x,clipY:S.y,clipWidth:j.width,clipHeight:j.height}:{};return{cursorPosition:t,brushX:t?t.x:x.width/2,brushY:t?t.y:x.height/2,radius:n/2,colorPickerOuterRadius:Lv/y,colorPickerInnerRadius:(Lv-lf+1)/y,maskColorString:Ko({...o,a:.5}),brushColorString:Ko(s),colorPickerColorString:Ko(r),tool:c,layer:u,shouldShowBrush:f,shouldDrawBrushPreview:!(p||h||!t)&&f,strokeWidth:1.5/y,dotRadius:1.5/y,clip:w}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),rR=e=>{const{...t}=e,{brushX:n,brushY:r,radius:o,maskColorString:s,tool:c,layer:u,shouldDrawBrushPreview:f,dotRadius:p,strokeWidth:h,brushColorString:y,colorPickerColorString:x,colorPickerInnerRadius:S,colorPickerOuterRadius:j,clip:C}=A(nR);return f?l.jsxs(Ur,{listening:!1,...C,...t,children:[c==="colorPicker"?l.jsxs(l.Fragment,{children:[l.jsx(Fo,{x:n,y:r,radius:j,stroke:y,strokeWidth:lf,strokeScaleEnabled:!1}),l.jsx(Fo,{x:n,y:r,radius:S,stroke:x,strokeWidth:lf,strokeScaleEnabled:!1})]}):l.jsxs(l.Fragment,{children:[l.jsx(Fo,{x:n,y:r,radius:o,fill:u==="mask"?s:y,globalCompositeOperation:c==="eraser"?"destination-out":"source-out"}),l.jsx(Fo,{x:n,y:r,radius:o,stroke:"rgba(255,255,255,0.4)",strokeWidth:h*2,strokeEnabled:!0,listening:!1}),l.jsx(Fo,{x:n,y:r,radius:o,stroke:"rgba(0,0,0,1)",strokeWidth:h,strokeEnabled:!0,listening:!1})]}),l.jsx(Fo,{x:n,y:r,radius:p*2,fill:"rgba(255,255,255,0.4)",listening:!1}),l.jsx(Fo,{x:n,y:r,radius:p,fill:"rgba(0,0,0,1)",listening:!1})]}):null},oR=pe([tt,Ot],(e,t)=>{const{isMaskEnabled:n,stageScale:r,shouldShowBoundingBox:o,isTransformingBoundingBox:s,isMouseOverBoundingBox:c,isMovingBoundingBox:u,stageDimensions:f,stageCoordinates:p,tool:h,isMovingStage:y,shouldShowIntermediates:x,shouldShowGrid:S,shouldRestrictStrokesToBox:j}=e;let C="none";return h==="move"||t?y?C="grabbing":C="grab":s?C=void 0:j&&!c&&(C="default"),{isMaskEnabled:n,isModifyingBoundingBox:s||u,shouldShowBoundingBox:o,shouldShowGrid:S,stageCoordinates:p,stageCursor:C,stageDimensions:f,stageScale:r,tool:h,isStaging:t,shouldShowIntermediates:x}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),iR=ne(xz,{shouldForwardProp:e=>!["sx"].includes(e)}),e4=()=>{const{isMaskEnabled:e,isModifyingBoundingBox:t,shouldShowBoundingBox:n,shouldShowGrid:r,stageCoordinates:o,stageCursor:s,stageDimensions:c,stageScale:u,tool:f,isStaging:p,shouldShowIntermediates:h}=A(oR);wz();const y=g.useRef(null),x=g.useRef(null),S=g.useCallback(V=>{oC(V),y.current=V},[]),j=g.useCallback(V=>{rC(V),x.current=V},[]),C=g.useRef({x:0,y:0}),w=g.useRef(!1),k=Dz(y),I=kz(y),P=Tz(y,w),M=Pz(y,w,C),T=Iz(),{handleDragStart:D,handleDragMove:_,handleDragEnd:R}=Sz();return l.jsx(L,{sx:{position:"relative",height:"100%",width:"100%",borderRadius:"base"},children:l.jsxs(Ye,{sx:{position:"relative"},children:[l.jsxs(iR,{tabIndex:-1,ref:S,sx:{outline:"none",overflow:"hidden",cursor:s||void 0,canvas:{outline:"none"}},x:o.x,y:o.y,width:c.width,height:c.height,scale:{x:u,y:u},onTouchStart:I,onTouchMove:M,onTouchEnd:P,onMouseDown:I,onMouseLeave:T,onMouseMove:M,onMouseUp:P,onDragStart:D,onDragMove:_,onDragEnd:R,onContextMenu:V=>V.evt.preventDefault(),onWheel:k,draggable:(f==="move"||p)&&!t,children:[l.jsx(Aa,{id:"grid",visible:r,children:l.jsx(Rz,{})}),l.jsx(Aa,{id:"base",ref:j,listening:!1,imageSmoothingEnabled:!1,children:l.jsx($z,{})}),l.jsxs(Aa,{id:"mask",visible:e,listening:!1,children:[l.jsx(Wz,{visible:!0,listening:!1}),l.jsx(Bz,{listening:!1})]}),l.jsx(Aa,{children:l.jsx(Oz,{})}),l.jsxs(Aa,{id:"preview",imageSmoothingEnabled:!1,children:[!p&&l.jsx(rR,{visible:f!=="move",listening:!1}),l.jsx(qz,{visible:p}),h&&l.jsx(Fz,{}),l.jsx(tR,{visible:n&&!p})]})]}),l.jsx(Jz,{}),l.jsx(Kz,{})]})})},aR=pe(tt,Vb,bt,(e,t,n)=>{const{doesCanvasNeedScaling:r,isCanvasInitialized:o}=e;return{doesCanvasNeedScaling:r,activeTabName:n,initialCanvasImage:t,isCanvasInitialized:o}}),t4=()=>{const e=Y(),{doesCanvasNeedScaling:t,activeTabName:n,initialCanvasImage:r,isCanvasInitialized:o}=A(aR),s=g.useRef(null);return g.useLayoutEffect(()=>{window.setTimeout(()=>{if(!s.current)return;const{clientWidth:c,clientHeight:u}=s.current;e(iC({width:c,height:u})),e(o?aC():Sc()),e(I1(!1))},0)},[e,r,t,n,o]),l.jsx(L,{ref:s,sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,width:"100%",height:"100%"},children:l.jsx(yc,{thickness:"2px",speed:"1s",size:"xl"})})},sR=pe([tt,bt,Et],(e,t,n)=>{const{futureLayerStates:r}=e;return{canRedo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function n4(){const e=Y(),{canRedo:t,activeTabName:n}=A(sR),{t:r}=K(),o=()=>{e(sC())};return ce(["meta+shift+z","ctrl+shift+z","control+y","meta+y"],()=>{o()},{enabled:()=>t,preventDefault:!0},[n,t]),l.jsx(ae,{"aria-label":`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,tooltip:`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,icon:l.jsx(W9,{}),onClick:o,isDisabled:!t})}const lR=pe([tt,bt,Et],(e,t,n)=>{const{pastLayerStates:r}=e;return{canUndo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function r4(){const e=Y(),{t}=K(),{canUndo:n,activeTabName:r}=A(lR),o=()=>{e(lC())};return ce(["meta+z","ctrl+z"],()=>{o()},{enabled:()=>n,preventDefault:!0},[r,n]),l.jsx(ae,{"aria-label":`${t("unifiedCanvas.undo")} (Ctrl+Z)`,tooltip:`${t("unifiedCanvas.undo")} (Ctrl+Z)`,icon:l.jsx(G9,{}),onClick:o,isDisabled:!n})}const cR=(e,t,n)=>{const r=document.createElement("img");r.addEventListener("load",()=>{const o=document.createElement("canvas");o.width=t,o.height=n;const s=o.getContext("2d");s&&(s.drawImage(r,0,0),o.toBlob(c=>{c&&navigator.clipboard.write([new ClipboardItem({[c.type]:c})])}),o.remove(),r.remove())}),r.src=e},uR=e=>{const t=document.createElement("a");t.href=e,t.download="",document.body.appendChild(t),t.click(),document.body.removeChild(t),t.remove()},dR=(e,t,n,r)=>{const o=e.scale(),s=e.getClientRect({relativeTo:e.getParent()});e.scale({x:1/t,y:1/t});const{x:c,y:u,width:f,height:p}=e.getClientRect(),h=r?{x:r.x+n.x,y:r.y+n.y,width:r.width,height:r.height}:{x:c,y:u,width:f,height:p},y=e.toDataURL(h);return e.scale(o),{dataURL:y,boundingBox:{x:s.x,y:s.y,width:f,height:p}}},fR={cropVisible:!1,cropToBoundingBox:!1,shouldSaveToGallery:!1,shouldDownload:!1,shouldCopy:!1,shouldSetAsInitialImage:!0},co=(e=fR)=>async(t,n)=>{const{cropVisible:r,cropToBoundingBox:o,shouldSaveToGallery:s,shouldDownload:c,shouldCopy:u,shouldSetAsInitialImage:f}=e;t(cC("Exporting Image")),t(gl(!1));const p=n(),{stageScale:h,boundingBoxCoordinates:y,boundingBoxDimensions:x,stageCoordinates:S}=p.canvas,j=jr();if(!j){t(vd(!1)),t(gl(!0));return}const{dataURL:C,boundingBox:w}=dR(j,h,S,o?{...y,...x}:void 0);if(!C){t(vd(!1)),t(gl(!0));return}const k=new FormData;k.append("data",JSON.stringify({dataURL:C,filename:"merged_canvas.png",kind:s?"result":"temp",cropVisible:r}));const P=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:k})).json(),{url:M,width:T,height:D}=P,_={uuid:C1(),category:s?"result":"user",...P};c&&(uR(M),t(yl({title:Ma.t("toast.downloadImageStarted"),status:"success",duration:2500,isClosable:!0}))),u&&(cR(M,T,D),t(yl({title:Ma.t("toast.imageCopied"),status:"success",duration:2500,isClosable:!0}))),s&&(t(w1({image:_,category:"result"})),t(yl({title:Ma.t("toast.imageSavedToGallery"),status:"success",duration:2500,isClosable:!0}))),f&&(t(uC({kind:"image",layer:"base",...w,image:_})),t(yl({title:Ma.t("toast.canvasMerged"),status:"success",duration:2500,isClosable:!0}))),t(vd(!1)),t(dC(Ma.t("common.statusConnected"))),t(gl(!0))};function hR(){const e=A(Ot),t=jr(),n=A(u=>u.system.isProcessing),r=A(u=>u.canvas.shouldCropToBoundingBoxOnSave),o=Y(),{t:s}=K();ce(["meta+c","ctrl+c"],()=>{c()},{enabled:()=>!e,preventDefault:!0},[t,n]);const c=()=>{o(co({cropVisible:!r,cropToBoundingBox:r,shouldCopy:!0}))};return l.jsx(ae,{"aria-label":`${s("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${s("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:l.jsx(Xi,{}),onClick:c,isDisabled:e})}function pR(){const e=Y(),{t}=K(),n=jr(),r=A(Ot),o=A(u=>u.system.isProcessing),s=A(u=>u.canvas.shouldCropToBoundingBoxOnSave);ce(["shift+d"],()=>{c()},{enabled:()=>!r,preventDefault:!0},[n,o]);const c=()=>{e(co({cropVisible:!s,cropToBoundingBox:s,shouldDownload:!0}))};return l.jsx(ae,{"aria-label":`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:l.jsx(Qh,{}),onClick:c,isDisabled:r})}function mR(){const e=A(Ot),{openUploader:t}=Kh(),{t:n}=K();return l.jsx(ae,{"aria-label":n("common.upload"),tooltip:n("common.upload"),icon:l.jsx(Rc,{}),onClick:t,isDisabled:e})}const vR=pe([tt,Ot],(e,t)=>{const{layer:n,isMaskEnabled:r}=e;return{layer:n,isMaskEnabled:r,isStaging:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function gR(){const e=Y(),{t}=K(),{layer:n,isMaskEnabled:r,isStaging:o}=A(vR),s=()=>{e(Ql(n==="mask"?"base":"mask"))};ce(["q"],()=>{s()},{enabled:()=>!o,preventDefault:!0},[n]);const c=u=>{const f=u.target.value;e(Ql(f)),f==="mask"&&!r&&e(as(!0))};return l.jsx(Mn,{tooltip:`${t("unifiedCanvas.layer")} (Q)`,"aria-label":`${t("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:n,validValues:Q1,onChange:c,isDisabled:o})}function yR(){const e=Y(),{t}=K(),n=jr(),r=A(Ot),o=A(c=>c.system.isProcessing);ce(["shift+m"],()=>{s()},{enabled:()=>!r,preventDefault:!0},[n,o]);const s=()=>{e(co({cropVisible:!1,shouldSetAsInitialImage:!0}))};return l.jsx(ae,{"aria-label":`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:l.jsx(qx,{}),onClick:s,isDisabled:r})}function xR(){const e=A(s=>s.canvas.tool),t=A(Ot),n=Y(),{t:r}=K();ce(["v"],()=>{o()},{enabled:()=>!t,preventDefault:!0},[]);const o=()=>n(Sr("move"));return l.jsx(ae,{"aria-label":`${r("unifiedCanvas.move")} (V)`,tooltip:`${r("unifiedCanvas.move")} (V)`,icon:l.jsx(Bx,{}),isChecked:e==="move"||t,onClick:o})}function bR(){const e=A(s=>s.ui.shouldPinParametersPanel),t=A(s=>s.ui.shouldShowParametersPanel),n=Y(),{t:r}=K(),o=()=>{n(ql(!0)),e&&n(cn())};return!e||!t?l.jsxs(L,{flexDirection:"column",gap:2,children:[l.jsx(ae,{tooltip:`${r("parameters.showOptionsPanel")} (O)`,tooltipProps:{placement:"top"},"aria-label":r("parameters.showOptionsPanel"),onClick:o,children:l.jsx(ep,{})}),l.jsx(L,{children:l.jsx(Mp,{iconButton:!0})}),l.jsx(L,{children:l.jsx(Pp,{width:"100%",height:"40px",btnGroupWidth:"100%"})})]}):null}function SR(){const e=Y(),{t}=K(),n=A(Ot),r=()=>{e(Jf()),e(Sc())};return l.jsx(ae,{"aria-label":t("unifiedCanvas.clearCanvas"),tooltip:t("unifiedCanvas.clearCanvas"),icon:l.jsx(So,{}),onClick:r,isDisabled:n,colorScheme:"error"})}function o4(e,t,n=250){const[r,o]=g.useState(0);return g.useEffect(()=>{const s=setTimeout(()=>{r===1&&e(),o(0)},n);return r===2&&t(),()=>clearTimeout(s)},[r,e,t,n]),()=>o(s=>s+1)}function CR(){const e=jr(),t=Y(),{t:n}=K();ce(["r"],()=>{o()},{enabled:()=>!0,preventDefault:!0},[e]);const r=o4(()=>o(!1),()=>o(!0)),o=(s=!1)=>{const c=jr();if(!c)return;const u=c.getClientRect({skipTransform:!0});t(Z1({contentRect:u,shouldScaleTo1:s}))};return l.jsx(ae,{"aria-label":`${n("unifiedCanvas.resetView")} (R)`,tooltip:`${n("unifiedCanvas.resetView")} (R)`,icon:l.jsx(Wx,{}),onClick:r})}function wR(){const e=A(Ot),t=jr(),n=A(u=>u.system.isProcessing),r=A(u=>u.canvas.shouldCropToBoundingBoxOnSave),o=Y(),{t:s}=K();ce(["shift+s"],()=>{c()},{enabled:()=>!e,preventDefault:!0},[t,n]);const c=()=>{o(co({cropVisible:!r,cropToBoundingBox:r,shouldSaveToGallery:!0}))};return l.jsx(ae,{"aria-label":`${s("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${s("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:l.jsx(Jh,{}),onClick:c,isDisabled:e})}const jR=pe([tt,Ot,Et],(e,t,n)=>{const{isProcessing:r}=n,{tool:o}=e;return{tool:o,isStaging:t,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),kR=()=>{const e=Y(),{t}=K(),{tool:n,isStaging:r}=A(jR);ce(["b"],()=>{o()},{enabled:()=>!r,preventDefault:!0},[]),ce(["e"],()=>{s()},{enabled:()=>!r,preventDefault:!0},[n]),ce(["c"],()=>{c()},{enabled:()=>!r,preventDefault:!0},[n]),ce(["shift+f"],()=>{u()},{enabled:()=>!r,preventDefault:!0}),ce(["delete","backspace"],()=>{f()},{enabled:()=>!r,preventDefault:!0});const o=()=>e(Sr("brush")),s=()=>e(Sr("eraser")),c=()=>e(Sr("colorPicker")),u=()=>e(J1()),f=()=>e(e2());return l.jsxs(L,{flexDirection:"column",gap:2,children:[l.jsxs(Qt,{children:[l.jsx(ae,{"aria-label":`${t("unifiedCanvas.brush")} (B)`,tooltip:`${t("unifiedCanvas.brush")} (B)`,icon:l.jsx(Yx,{}),isChecked:n==="brush"&&!r,onClick:o,isDisabled:r}),l.jsx(ae,{"aria-label":`${t("unifiedCanvas.eraser")} (E)`,tooltip:`${t("unifiedCanvas.eraser")} (B)`,icon:l.jsx(Vx,{}),isChecked:n==="eraser"&&!r,isDisabled:r,onClick:s})]}),l.jsxs(Qt,{children:[l.jsx(ae,{"aria-label":`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:l.jsx(Gx,{}),isDisabled:r,onClick:u}),l.jsx(ae,{"aria-label":`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:l.jsx(zc,{style:{transform:"rotate(45deg)"}}),isDisabled:r,onClick:f})]}),l.jsx(ae,{"aria-label":`${t("unifiedCanvas.colorPicker")} (C)`,tooltip:`${t("unifiedCanvas.colorPicker")} (C)`,icon:l.jsx(Ux,{}),isChecked:n==="colorPicker"&&!r,isDisabled:r,onClick:c,width:"max-content"})]})},i4=()=>{const e=A(Ot),t=Y(),{t:n}=K(),r=()=>{t(fC()),t(Jf()),t(t2())};return l.jsxs(Wc,{title:n("unifiedCanvas.emptyTempImageFolder"),acceptCallback:r,acceptButtonText:n("unifiedCanvas.emptyFolder"),triggerComponent:l.jsx(Je,{leftIcon:l.jsx(So,{}),size:"sm",isDisabled:e,children:n("unifiedCanvas.emptyTempImageFolder")}),children:[l.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderMessage")}),l.jsx("br",{}),l.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderConfirm")})]})},a4=()=>{const e=A(Ot),t=Y(),{t:n}=K();return l.jsxs(Wc,{title:n("unifiedCanvas.clearCanvasHistory"),acceptCallback:()=>t(t2()),acceptButtonText:n("unifiedCanvas.clearHistory"),triggerComponent:l.jsx(Je,{size:"sm",leftIcon:l.jsx(So,{}),isDisabled:e,children:n("unifiedCanvas.clearCanvasHistory")}),children:[l.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryMessage")}),l.jsx("br",{}),l.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryConfirm")})]})},ER=pe([tt],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:o}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:o}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),PR=()=>{const e=Y(),{t}=K(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldShowCanvasDebugInfo:o,shouldShowIntermediates:s}=A(ER);return l.jsx(or,{isLazy:!1,triggerComponent:l.jsx(ae,{tooltip:t("unifiedCanvas.canvasSettings"),tooltipProps:{placement:"bottom"},"aria-label":t("unifiedCanvas.canvasSettings"),icon:l.jsx(tp,{})}),children:l.jsxs(L,{direction:"column",gap:2,children:[l.jsx(ft,{label:t("unifiedCanvas.showIntermediates"),isChecked:s,onChange:c=>e(n2(c.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:c=>e(r2(c.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:c=>e(o2(c.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:o,onChange:c=>e(i2(c.target.checked))}),l.jsx(a4,{}),l.jsx(i4,{})]})})},IR=()=>l.jsxs(L,{flexDirection:"column",rowGap:2,children:[l.jsx(gR,{}),l.jsx(kR,{}),l.jsxs(L,{gap:2,children:[l.jsx(xR,{}),l.jsx(CR,{})]}),l.jsxs(L,{columnGap:2,children:[l.jsx(yR,{}),l.jsx(wR,{})]}),l.jsxs(L,{columnGap:2,children:[l.jsx(hR,{}),l.jsx(pR,{})]}),l.jsxs(L,{gap:2,children:[l.jsx(r4,{}),l.jsx(n4,{})]}),l.jsxs(L,{gap:2,children:[l.jsx(mR,{}),l.jsx(SR,{})]}),l.jsx(PR,{}),l.jsx(bR,{})]});function MR(){const e=Y(),t=A(o=>o.canvas.brushSize),{t:n}=K(),r=A(Ot);return ce(["BracketLeft"],()=>{e(Li(Math.max(t-5,5)))},{enabled:()=>!r,preventDefault:!0},[t]),ce(["BracketRight"],()=>{e(Li(Math.min(t+5,500)))},{enabled:()=>!r,preventDefault:!0},[t]),l.jsx(ut,{label:n("unifiedCanvas.brushSize"),value:t,withInput:!0,onChange:o=>e(Li(o)),sliderNumberInputProps:{max:500},inputReadOnly:!1,isCompact:!0})}function Uc(){return(Uc=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}function qf(e){var t=g.useRef(e),n=g.useRef(function(r){t.current&&t.current(r)});return t.current=e,n.current}var Ji=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e0:w.buttons>0)&&o.current?s(s1(o.current,w,u.current)):C(!1)},j=function(){return C(!1)};function C(w){var k=f.current,I=Yf(o.current),P=w?I.addEventListener:I.removeEventListener;P(k?"touchmove":"mousemove",S),P(k?"touchend":"mouseup",j)}return[function(w){var k=w.nativeEvent,I=o.current;if(I&&(l1(k),!function(M,T){return T&&!Wa(M)}(k,f.current)&&I)){if(Wa(k)){f.current=!0;var P=k.changedTouches||[];P.length&&(u.current=P[0].identifier)}I.focus(),s(s1(I,k,u.current)),C(!0)}},function(w){var k=w.which||w.keyCode;k<37||k>40||(w.preventDefault(),c({left:k===39?.05:k===37?-.05:0,top:k===40?.05:k===38?-.05:0}))},C]},[c,s]),h=p[0],y=p[1],x=p[2];return g.useEffect(function(){return x},[x]),_e.createElement("div",Uc({},r,{onTouchStart:h,onMouseDown:h,className:"react-colorful__interactive",ref:o,onKeyDown:y,tabIndex:0,role:"slider"}))}),$c=function(e){return e.filter(Boolean).join(" ")},Np=function(e){var t=e.color,n=e.left,r=e.top,o=r===void 0?.5:r,s=$c(["react-colorful__pointer",e.className]);return _e.createElement("div",{className:s,style:{top:100*o+"%",left:100*n+"%"}},_e.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},gn=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=Math.pow(10,t)),Math.round(n*e)/n},l4=function(e){var t=e.s,n=e.v,r=e.a,o=(200-t)*n/100;return{h:gn(e.h),s:gn(o>0&&o<200?t*n/100/(o<=100?o:200-o)*100:0),l:gn(o/2),a:gn(r,2)}},Kf=function(e){var t=l4(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},$d=function(e){var t=l4(e);return"hsla("+t.h+", "+t.s+"%, "+t.l+"%, "+t.a+")"},TR=function(e){var t=e.h,n=e.s,r=e.v,o=e.a;t=t/360*6,n/=100,r/=100;var s=Math.floor(t),c=r*(1-n),u=r*(1-(t-s)*n),f=r*(1-(1-t+s)*n),p=s%6;return{r:gn(255*[r,u,c,c,f,r][p]),g:gn(255*[f,r,r,u,c,c][p]),b:gn(255*[c,c,f,r,r,u][p]),a:gn(o,2)}},_R=function(e){var t=e.r,n=e.g,r=e.b,o=e.a,s=Math.max(t,n,r),c=s-Math.min(t,n,r),u=c?s===t?(n-r)/c:s===n?2+(r-t)/c:4+(t-n)/c:0;return{h:gn(60*(u<0?u+6:u)),s:gn(s?c/s*100:0),v:gn(s/255*100),a:o}},DR=_e.memo(function(e){var t=e.hue,n=e.onChange,r=$c(["react-colorful__hue",e.className]);return _e.createElement("div",{className:r},_e.createElement(Rp,{onMove:function(o){n({h:360*o.left})},onKey:function(o){n({h:Ji(t+360*o.left,0,360)})},"aria-label":"Hue","aria-valuenow":gn(t),"aria-valuemax":"360","aria-valuemin":"0"},_e.createElement(Np,{className:"react-colorful__hue-pointer",left:t/360,color:Kf({h:t,s:100,v:100,a:1})})))}),AR=_e.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:Kf({h:t.h,s:100,v:100,a:1})};return _e.createElement("div",{className:"react-colorful__saturation",style:r},_e.createElement(Rp,{onMove:function(o){n({s:100*o.left,v:100-100*o.top})},onKey:function(o){n({s:Ji(t.s+100*o.left,0,100),v:Ji(t.v-100*o.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+gn(t.s)+"%, Brightness "+gn(t.v)+"%"},_e.createElement(Np,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:Kf(t)})))}),c4=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0};function OR(e,t,n){var r=qf(n),o=g.useState(function(){return e.toHsva(t)}),s=o[0],c=o[1],u=g.useRef({color:t,hsva:s});g.useEffect(function(){if(!e.equal(t,u.current.color)){var p=e.toHsva(t);u.current={hsva:p,color:t},c(p)}},[t,e]),g.useEffect(function(){var p;c4(s,u.current.hsva)||e.equal(p=e.fromHsva(s),u.current.color)||(u.current={hsva:s,color:p},r(p))},[s,e,r]);var f=g.useCallback(function(p){c(function(h){return Object.assign({},h,p)})},[]);return[s,f]}var zR=typeof window<"u"?g.useLayoutEffect:g.useEffect,RR=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},c1=new Map,NR=function(e){zR(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!c1.has(t)){var n=t.createElement("style");n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,c1.set(t,n);var r=RR();r&&n.setAttribute("nonce",r),t.head.appendChild(n)}},[])},FR=function(e){var t=e.className,n=e.hsva,r=e.onChange,o={backgroundImage:"linear-gradient(90deg, "+$d(Object.assign({},n,{a:0}))+", "+$d(Object.assign({},n,{a:1}))+")"},s=$c(["react-colorful__alpha",t]),c=gn(100*n.a);return _e.createElement("div",{className:s},_e.createElement("div",{className:"react-colorful__alpha-gradient",style:o}),_e.createElement(Rp,{onMove:function(u){r({a:u.left})},onKey:function(u){r({a:Ji(n.a+u.left)})},"aria-label":"Alpha","aria-valuetext":c+"%","aria-valuenow":c,"aria-valuemin":"0","aria-valuemax":"100"},_e.createElement(Np,{className:"react-colorful__alpha-pointer",left:n.a,color:$d(n)})))},LR=function(e){var t=e.className,n=e.colorModel,r=e.color,o=r===void 0?n.defaultColor:r,s=e.onChange,c=s4(e,["className","colorModel","color","onChange"]),u=g.useRef(null);NR(u);var f=OR(n,o,s),p=f[0],h=f[1],y=$c(["react-colorful",t]);return _e.createElement("div",Uc({},c,{ref:u,className:y}),_e.createElement(AR,{hsva:p,onChange:h}),_e.createElement(DR,{hue:p.h,onChange:h}),_e.createElement(FR,{hsva:p,onChange:h,className:"react-colorful__last-control"}))},BR={defaultColor:{r:0,g:0,b:0,a:1},toHsva:_R,fromHsva:TR,equal:c4},HR=function(e){return _e.createElement(LR,Uc({},e,{colorModel:BR}))};const WR=ne(HR,{baseStyle:{paddingInline:4},shouldForwardProp:e=>!["pickerColor"].includes(e)}),Gd={width:6,height:6,borderColor:"base.100"},VR=e=>{const{styleClass:t="",...n}=e;return l.jsx(WR,{sx:{".react-colorful__hue-pointer":Gd,".react-colorful__saturation-pointer":Gd,".react-colorful__alpha-pointer":Gd},className:t,...n})},vc=g.memo(VR),UR=pe([tt,Ot],(e,t)=>{const{brushColor:n,maskColor:r,layer:o}=e;return{brushColor:n,maskColor:r,layer:o,isStaging:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function $R(){const e=Y(),{brushColor:t,maskColor:n,layer:r,isStaging:o}=A(UR),s=()=>{if(r==="base")return`rgba(${t.r},${t.g},${t.b},${t.a})`;if(r==="mask")return`rgba(${n.r},${n.g},${n.b},${n.a})`};return ce(["shift+BracketLeft"],()=>{e(Bi({...t,a:ee.clamp(t.a-.05,.05,1)}))},{enabled:()=>!o,preventDefault:!0},[t]),ce(["shift+BracketRight"],()=>{e(Bi({...t,a:ee.clamp(t.a+.05,.05,1)}))},{enabled:()=>!o,preventDefault:!0},[t]),l.jsx(or,{triggerComponent:l.jsx(Ye,{sx:{width:7,height:7,minWidth:7,minHeight:7,borderRadius:"full",bg:s(),cursor:"pointer"}}),children:l.jsxs(L,{minWidth:60,direction:"column",gap:4,width:"100%",children:[r==="base"&&l.jsx(vc,{sx:{width:"100%",paddingTop:2,paddingBottom:2},pickerColor:t,onChange:c=>e(Bi(c))}),r==="mask"&&l.jsx(vc,{sx:{width:"100%",paddingTop:2,paddingBottom:2},pickerColor:n,onChange:c=>e(a2(c))})]})})}function u4(){return l.jsxs(L,{columnGap:4,alignItems:"center",children:[l.jsx(MR,{}),l.jsx($R,{})]})}function GR(){const e=Y(),t=A(r=>r.canvas.shouldRestrictStrokesToBox),{t:n}=K();return l.jsx(ft,{label:n("unifiedCanvas.betaLimitToBox"),isChecked:t,onChange:r=>e(s2(r.target.checked))})}function qR(){return l.jsxs(L,{gap:4,alignItems:"center",children:[l.jsx(u4,{}),l.jsx(GR,{})]})}function YR(){const e=Y(),{t}=K(),n=()=>e(Zf());return l.jsx(Je,{size:"sm",leftIcon:l.jsx(So,{}),onClick:n,tooltip:`${t("unifiedCanvas.clearMask")} (Shift+C)`,children:t("unifiedCanvas.betaClear")})}function KR(){const e=A(o=>o.canvas.isMaskEnabled),t=Y(),{t:n}=K(),r=()=>t(as(!e));return l.jsx(ft,{label:`${n("unifiedCanvas.enableMask")} (H)`,isChecked:e,onChange:r})}function XR(){const e=Y(),{t}=K(),n=A(r=>r.canvas.shouldPreserveMaskedArea);return l.jsx(ft,{label:t("unifiedCanvas.betaPreserveMasked"),isChecked:n,onChange:r=>e(l2(r.target.checked))})}function QR(){return l.jsxs(L,{gap:4,alignItems:"center",children:[l.jsx(u4,{}),l.jsx(KR,{}),l.jsx(XR,{}),l.jsx(YR,{})]})}function ZR(){const e=A(r=>r.canvas.shouldDarkenOutsideBoundingBox),t=Y(),{t:n}=K();return l.jsx(ft,{label:n("unifiedCanvas.betaDarkenOutside"),isChecked:e,onChange:r=>t(c2(r.target.checked))})}function JR(){const e=A(r=>r.canvas.shouldShowGrid),t=Y(),{t:n}=K();return l.jsx(ft,{label:n("unifiedCanvas.showGrid"),isChecked:e,onChange:r=>t(u2(r.target.checked))})}function eN(){const e=A(o=>o.canvas.shouldSnapToGrid),t=Y(),{t:n}=K(),r=o=>t(Xl(o.target.checked));return l.jsx(ft,{label:`${n("unifiedCanvas.snapToGrid")} (N)`,isChecked:e,onChange:r})}function tN(){return l.jsxs(L,{alignItems:"center",gap:4,children:[l.jsx(JR,{}),l.jsx(eN,{}),l.jsx(ZR,{})]})}const nN=pe([tt],e=>{const{tool:t,layer:n}=e;return{tool:t,layer:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function rN(){const{tool:e,layer:t}=A(nN);return l.jsxs(L,{height:8,minHeight:8,maxHeight:8,alignItems:"center",children:[t=="base"&&["brush","eraser","colorPicker"].includes(e)&&l.jsx(qR,{}),t=="mask"&&["brush","eraser","colorPicker"].includes(e)&&l.jsx(QR,{}),e=="move"&&l.jsx(tN,{})]})}const oN=pe([tt],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),iN=()=>{const e=Y(),{doesCanvasNeedScaling:t}=A(oN);return g.useLayoutEffect(()=>{e(cn());const n=()=>{e(cn())};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),l.jsx(Ye,{sx:{width:"100%",height:"100%",borderRadius:"base",bg:"base.850"},children:l.jsxs(L,{flexDirection:"row",width:"100%",height:"100%",columnGap:4,padding:4,children:[l.jsx(IR,{}),l.jsxs(L,{width:"100%",height:"100%",flexDirection:"column",rowGap:4,children:[l.jsx(rN,{}),t?l.jsx(t4,{}):l.jsx(e4,{})]})]})})},aN=pe([tt,Ot],(e,t)=>{const{maskColor:n,layer:r,isMaskEnabled:o,shouldPreserveMaskedArea:s}=e;return{layer:r,maskColor:n,maskColorString:Ko(n),isMaskEnabled:o,shouldPreserveMaskedArea:s,isStaging:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),sN=()=>{const e=Y(),{t}=K(),{layer:n,maskColor:r,isMaskEnabled:o,shouldPreserveMaskedArea:s,isStaging:c}=A(aN);ce(["q"],()=>{u()},{enabled:()=>!c,preventDefault:!0},[n]),ce(["shift+c"],()=>{f()},{enabled:()=>!c,preventDefault:!0},[]),ce(["h"],()=>{p()},{enabled:()=>!c,preventDefault:!0},[o]);const u=()=>{e(Ql(n==="mask"?"base":"mask"))},f=()=>e(Zf()),p=()=>e(as(!o));return l.jsx(or,{triggerComponent:l.jsx(Qt,{children:l.jsx(ae,{"aria-label":t("unifiedCanvas.maskingOptions"),tooltip:t("unifiedCanvas.maskingOptions"),icon:l.jsx(R9,{}),isChecked:n==="mask",isDisabled:c})}),children:l.jsxs(L,{direction:"column",gap:2,children:[l.jsx(ft,{label:`${t("unifiedCanvas.enableMask")} (H)`,isChecked:o,onChange:p}),l.jsx(ft,{label:t("unifiedCanvas.preserveMaskedArea"),isChecked:s,onChange:h=>e(l2(h.target.checked))}),l.jsx(vc,{sx:{paddingTop:2,paddingBottom:2},pickerColor:r,onChange:h=>e(a2(h))}),l.jsxs(Je,{size:"sm",leftIcon:l.jsx(So,{}),onClick:f,children:[t("unifiedCanvas.clearMask")," (Shift+C)"]})]})})},lN=pe([tt],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:o,shouldShowGrid:s,shouldShowIntermediates:c,shouldSnapToGrid:u,shouldRestrictStrokesToBox:f}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:o,shouldShowGrid:s,shouldShowIntermediates:c,shouldSnapToGrid:u,shouldRestrictStrokesToBox:f}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),cN=()=>{const e=Y(),{t}=K(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldDarkenOutsideBoundingBox:o,shouldShowCanvasDebugInfo:s,shouldShowGrid:c,shouldShowIntermediates:u,shouldSnapToGrid:f,shouldRestrictStrokesToBox:p}=A(lN);ce(["n"],()=>{e(Xl(!f))},{enabled:!0,preventDefault:!0},[f]);const h=y=>e(Xl(y.target.checked));return l.jsx(or,{isLazy:!1,triggerComponent:l.jsx(ae,{tooltip:t("unifiedCanvas.canvasSettings"),"aria-label":t("unifiedCanvas.canvasSettings"),icon:l.jsx(tp,{})}),children:l.jsxs(L,{direction:"column",gap:2,children:[l.jsx(ft,{label:t("unifiedCanvas.showIntermediates"),isChecked:u,onChange:y=>e(n2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.showGrid"),isChecked:c,onChange:y=>e(u2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.snapToGrid"),isChecked:f,onChange:h}),l.jsx(ft,{label:t("unifiedCanvas.darkenOutsideSelection"),isChecked:o,onChange:y=>e(c2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:y=>e(r2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:y=>e(o2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.limitStrokesToBox"),isChecked:p,onChange:y=>e(s2(y.target.checked))}),l.jsx(ft,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:s,onChange:y=>e(i2(y.target.checked))}),l.jsx(a4,{}),l.jsx(i4,{})]})})},uN=pe([tt,Ot,Et],(e,t,n)=>{const{isProcessing:r}=n,{tool:o,brushColor:s,brushSize:c}=e;return{tool:o,isStaging:t,isProcessing:r,brushColor:s,brushSize:c}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),dN=()=>{const e=Y(),{tool:t,brushColor:n,brushSize:r,isStaging:o}=A(uN),{t:s}=K();ce(["b"],()=>{c()},{enabled:()=>!o,preventDefault:!0},[]),ce(["e"],()=>{u()},{enabled:()=>!o,preventDefault:!0},[t]),ce(["c"],()=>{f()},{enabled:()=>!o,preventDefault:!0},[t]),ce(["shift+f"],()=>{p()},{enabled:()=>!o,preventDefault:!0}),ce(["delete","backspace"],()=>{h()},{enabled:()=>!o,preventDefault:!0}),ce(["BracketLeft"],()=>{e(Li(Math.max(r-5,5)))},{enabled:()=>!o,preventDefault:!0},[r]),ce(["BracketRight"],()=>{e(Li(Math.min(r+5,500)))},{enabled:()=>!o,preventDefault:!0},[r]),ce(["shift+BracketLeft"],()=>{e(Bi({...n,a:ee.clamp(n.a-.05,.05,1)}))},{enabled:()=>!o,preventDefault:!0},[n]),ce(["shift+BracketRight"],()=>{e(Bi({...n,a:ee.clamp(n.a+.05,.05,1)}))},{enabled:()=>!o,preventDefault:!0},[n]);const c=()=>e(Sr("brush")),u=()=>e(Sr("eraser")),f=()=>e(Sr("colorPicker")),p=()=>e(J1()),h=()=>e(e2());return l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{"aria-label":`${s("unifiedCanvas.brush")} (B)`,tooltip:`${s("unifiedCanvas.brush")} (B)`,icon:l.jsx(Yx,{}),isChecked:t==="brush"&&!o,onClick:c,isDisabled:o}),l.jsx(ae,{"aria-label":`${s("unifiedCanvas.eraser")} (E)`,tooltip:`${s("unifiedCanvas.eraser")} (E)`,icon:l.jsx(Vx,{}),isChecked:t==="eraser"&&!o,isDisabled:o,onClick:u}),l.jsx(ae,{"aria-label":`${s("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${s("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:l.jsx(Gx,{}),isDisabled:o,onClick:p}),l.jsx(ae,{"aria-label":`${s("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${s("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:l.jsx(zc,{style:{transform:"rotate(45deg)"}}),isDisabled:o,onClick:h}),l.jsx(ae,{"aria-label":`${s("unifiedCanvas.colorPicker")} (C)`,tooltip:`${s("unifiedCanvas.colorPicker")} (C)`,icon:l.jsx(Ux,{}),isChecked:t==="colorPicker"&&!o,isDisabled:o,onClick:f}),l.jsx(or,{triggerComponent:l.jsx(ae,{"aria-label":s("unifiedCanvas.brushOptions"),tooltip:s("unifiedCanvas.brushOptions"),icon:l.jsx(ep,{})}),children:l.jsxs(L,{minWidth:60,direction:"column",gap:4,width:"100%",children:[l.jsx(L,{gap:4,justifyContent:"space-between",children:l.jsx(ut,{label:s("unifiedCanvas.brushSize"),value:r,withInput:!0,onChange:y=>e(Li(y)),sliderNumberInputProps:{max:500},inputReadOnly:!1})}),l.jsx(vc,{sx:{width:"100%",paddingTop:2,paddingBottom:2},pickerColor:n,onChange:y=>e(Bi(y))})]})})]})},fN=pe([Et,tt,Ot],(e,t,n)=>{const{isProcessing:r}=e,{tool:o,shouldCropToBoundingBoxOnSave:s,layer:c,isMaskEnabled:u}=t;return{isProcessing:r,isStaging:n,isMaskEnabled:u,tool:o,layer:c,shouldCropToBoundingBoxOnSave:s}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),hN=()=>{const e=Y(),{isProcessing:t,isStaging:n,isMaskEnabled:r,layer:o,tool:s,shouldCropToBoundingBoxOnSave:c}=A(fN),u=jr(),{t:f}=K(),{openUploader:p}=Kh();ce(["v"],()=>{h()},{enabled:()=>!n,preventDefault:!0},[]),ce(["r"],()=>{x()},{enabled:()=>!0,preventDefault:!0},[u]),ce(["shift+m"],()=>{j()},{enabled:()=>!n,preventDefault:!0},[u,t]),ce(["shift+s"],()=>{C()},{enabled:()=>!n,preventDefault:!0},[u,t]),ce(["meta+c","ctrl+c"],()=>{w()},{enabled:()=>!n,preventDefault:!0},[u,t]),ce(["shift+d"],()=>{k()},{enabled:()=>!n,preventDefault:!0},[u,t]);const h=()=>e(Sr("move")),y=o4(()=>x(!1),()=>x(!0)),x=(P=!1)=>{const M=jr();if(!M)return;const T=M.getClientRect({skipTransform:!0});e(Z1({contentRect:T,shouldScaleTo1:P}))},S=()=>{e(Jf()),e(Sc())},j=()=>{e(co({cropVisible:!1,shouldSetAsInitialImage:!0}))},C=()=>{e(co({cropVisible:!c,cropToBoundingBox:c,shouldSaveToGallery:!0}))},w=()=>{e(co({cropVisible:!c,cropToBoundingBox:c,shouldCopy:!0}))},k=()=>{e(co({cropVisible:!c,cropToBoundingBox:c,shouldDownload:!0}))},I=P=>{const M=P.target.value;e(Ql(M)),M==="mask"&&!r&&e(as(!0))};return l.jsxs(L,{sx:{alignItems:"center",gap:2},children:[l.jsx(Mn,{tooltip:`${f("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:o,validValues:Q1,onChange:I,isDisabled:n}),l.jsx(sN,{}),l.jsx(dN,{}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{"aria-label":`${f("unifiedCanvas.move")} (V)`,tooltip:`${f("unifiedCanvas.move")} (V)`,icon:l.jsx(Bx,{}),isChecked:s==="move"||n,onClick:h}),l.jsx(ae,{"aria-label":`${f("unifiedCanvas.resetView")} (R)`,tooltip:`${f("unifiedCanvas.resetView")} (R)`,icon:l.jsx(Wx,{}),onClick:y})]}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{"aria-label":`${f("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${f("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:l.jsx(qx,{}),onClick:j,isDisabled:n}),l.jsx(ae,{"aria-label":`${f("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${f("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:l.jsx(Jh,{}),onClick:C,isDisabled:n}),l.jsx(ae,{"aria-label":`${f("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${f("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:l.jsx(Xi,{}),onClick:w,isDisabled:n}),l.jsx(ae,{"aria-label":`${f("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${f("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:l.jsx(Qh,{}),onClick:k,isDisabled:n})]}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(r4,{}),l.jsx(n4,{})]}),l.jsxs(Qt,{isAttached:!0,children:[l.jsx(ae,{"aria-label":`${f("common.upload")}`,tooltip:`${f("common.upload")}`,icon:l.jsx(Rc,{}),onClick:p,isDisabled:n}),l.jsx(ae,{"aria-label":`${f("unifiedCanvas.clearCanvas")}`,tooltip:`${f("unifiedCanvas.clearCanvas")}`,icon:l.jsx(So,{}),onClick:S,colorScheme:"error",isDisabled:n})]}),l.jsx(Qt,{isAttached:!0,children:l.jsx(cN,{})})]})},pN=pe([tt],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),mN=()=>{const e=Y(),{doesCanvasNeedScaling:t}=A(pN);return g.useLayoutEffect(()=>{e(cn());const n=()=>{e(cn())};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),l.jsx(Ye,{sx:{width:"100%",height:"100%",padding:4,borderRadius:"base",bg:"base.850"},children:l.jsxs(L,{sx:{flexDirection:"column",alignItems:"center",gap:4,width:"100%",height:"100%"},children:[l.jsx(hN,{}),l.jsx(L,{sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,width:"100%",height:"100%"},children:t?l.jsx(t4,{}):l.jsx(e4,{})})]})})},vN=pe(tt,e=>{const{boundingBoxDimensions:t,boundingBoxScaleMethod:n}=e;return{boundingBoxDimensions:t,boundingBoxScale:n}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),gN=()=>{const e=Y(),{boundingBoxDimensions:t}=A(vN),{t:n}=K(),r=u=>{e(za({...t,width:Math.floor(u)}))},o=u=>{e(za({...t,height:Math.floor(u)}))},s=()=>{e(za({...t,width:Math.floor(512)}))},c=()=>{e(za({...t,height:Math.floor(512)}))};return l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(ut,{label:n("parameters.width"),min:64,max:1024,step:64,value:t.width,onChange:r,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:s}),l.jsx(ut,{label:n("parameters.height"),min:64,max:1024,step:64,value:t.height,onChange:o,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:c})]})},yN=pe([Ip,Et,tt],(e,t,n)=>{const{tileSize:r,infillMethod:o}=e,{infill_methods:s}=t,{boundingBoxScaleMethod:c,scaledBoundingBoxDimensions:u}=n;return{boundingBoxScale:c,scaledBoundingBoxDimensions:u,tileSize:r,infillMethod:o,availableInfillMethods:s,isManual:c==="manual"}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),xN=()=>{const e=Y(),{tileSize:t,infillMethod:n,availableInfillMethods:r,boundingBoxScale:o,isManual:s,scaledBoundingBoxDimensions:c}=A(yN),{t:u}=K(),f=S=>{e(xl({...c,width:Math.floor(S)}))},p=S=>{e(xl({...c,height:Math.floor(S)}))},h=()=>{e(xl({...c,width:Math.floor(512)}))},y=()=>{e(xl({...c,height:Math.floor(512)}))},x=S=>{e(mC(S.target.value))};return l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(Mn,{label:u("parameters.scaleBeforeProcessing"),validValues:hC,value:o,onChange:x}),l.jsx(ut,{isInputDisabled:!s,isResetDisabled:!s,isSliderDisabled:!s,label:u("parameters.scaledWidth"),min:64,max:1024,step:64,value:c.width,onChange:f,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:h}),l.jsx(ut,{isInputDisabled:!s,isResetDisabled:!s,isSliderDisabled:!s,label:u("parameters.scaledHeight"),min:64,max:1024,step:64,value:c.height,onChange:p,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:y}),l.jsx(Mn,{label:u("parameters.infillMethod"),value:n,validValues:r,onChange:S=>e(pC(S.target.value))}),l.jsx(ut,{isInputDisabled:n!=="tile",isResetDisabled:n!=="tile",isSliderDisabled:n!=="tile",label:u("parameters.tileSize"),min:16,max:64,sliderNumberInputProps:{max:256},value:t,onChange:S=>{e(Bv(S))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(Bv(32))}})]})};function bN(){const e=Y(),t=A(r=>r.generation.seamBlur),{t:n}=K();return l.jsx(ut,{label:n("parameters.seamBlur"),min:0,max:64,sliderNumberInputProps:{max:512},value:t,onChange:r=>{e(Hv(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(Hv(16))}})}function SN(){const e=Y(),{t}=K(),n=A(r=>r.generation.seamSize);return l.jsx(ut,{label:t("parameters.seamSize"),min:1,max:256,sliderNumberInputProps:{max:512},value:n,onChange:r=>{e(Wv(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>e(Wv(96))})}function CN(){const{t:e}=K(),t=A(r=>r.generation.seamSteps),n=Y();return l.jsx(ut,{label:e("parameters.seamSteps"),min:1,max:100,sliderNumberInputProps:{max:999},value:t,onChange:r=>{n(Vv(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{n(Vv(30))}})}function wN(){const e=Y(),{t}=K(),n=A(r=>r.generation.seamStrength);return l.jsx(ut,{label:t("parameters.seamStrength"),min:.01,max:.99,step:.01,value:n,onChange:r=>{e(Uv(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(Uv(.7))}})}const jN=()=>l.jsxs(Fe,{gap:2,alignItems:"stretch",children:[l.jsx(SN,{}),l.jsx(bN,{}),l.jsx(wN,{}),l.jsx(CN,{})]});function kN(){const{t:e}=K(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:l.jsx(kp,{})},unifiedCanvasImg2Img:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:l.jsx($b,{label:e("parameters.img2imgStrength")})},seed:{header:`${e("parameters.seed")}`,feature:ln.SEED,content:l.jsx(Cp,{})},boundingBox:{header:`${e("parameters.boundingBoxHeader")}`,feature:ln.BOUNDING_BOX,content:l.jsx(gN,{})},seamCorrection:{header:`${e("parameters.seamCorrectionHeader")}`,feature:ln.SEAM_CORRECTION,content:l.jsx(jN,{})},infillAndScaling:{header:`${e("parameters.infillScalingHeader")}`,feature:ln.INFILL_AND_SCALING,content:l.jsx(xN,{})},variations:{header:`${e("parameters.variations")}`,feature:ln.VARIATIONS,content:l.jsx(jp,{}),additionalHeaderComponents:l.jsx(wp,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:l.jsx(bp,{}),additionalHeaderComponents:l.jsx(Sp,{})}};return l.jsxs(L,{flexDir:"column",gap:2,position:"relative",children:[l.jsx(Dp,{}),l.jsx(_p,{}),l.jsx(Tp,{}),l.jsx(Ep,{accordionInfo:t})]})}function EN(){const e=A(n=>n.ui.shouldUseCanvasBetaLayout),t=A(bt);return l.jsx(pp,{parametersPanelContent:l.jsx(kN,{}),children:t==="unifiedCanvas"&&(e?l.jsx(iN,{}):l.jsx(mN,{}))})}const _i={boxSize:6},u1=[{id:"txt2img",icon:l.jsx(tn,{as:BD,sx:_i}),workarea:l.jsx(mO,{})},{id:"img2img",icon:l.jsx(tn,{as:fp,sx:_i}),workarea:l.jsx(sO,{})},{id:"unifiedCanvas",icon:l.jsx(tn,{as:VD,sx:_i}),workarea:l.jsx(EN,{})},{id:"nodes",icon:l.jsx(tn,{as:HD,sx:_i}),workarea:l.jsx(XD,{})},{id:"postprocessing",icon:l.jsx(tn,{as:UD,sx:_i}),workarea:l.jsx(QD,{})},{id:"training",icon:l.jsx(tn,{as:WD,sx:_i}),workarea:l.jsx(ZD,{})}];function PN(){const e=A(eE),t=A(f=>f.lightbox.isLightboxOpen),n=A(f=>f.ui.shouldPinGallery),r=A(f=>f.ui.shouldPinParametersPanel),{t:o}=K(),s=Y();ce("1",()=>{s(kn(0))}),ce("2",()=>{s(kn(1))}),ce("3",()=>{s(kn(2))}),ce("4",()=>{s(kn(3))}),ce("5",()=>{s(kn(4))}),ce("6",()=>{s(kn(5))}),ce("z",()=>{s(Uo(!t))},[t]),ce("f",()=>{s(vC()),(n||r)&&s(cn())},[n,r]);const c=g.useMemo(()=>u1.map(f=>l.jsx(Gt,{hasArrow:!0,label:String(o(`common.${f.id}`)),placement:"end",children:l.jsxs(yx,{children:[l.jsx(w2,{children:String(o(`common.${f.id}`))}),f.icon]})},f.id)),[o]),u=g.useMemo(()=>u1.map(f=>l.jsx(vx,{children:f.workarea},f.id)),[]);return l.jsxs(px,{defaultIndex:e,index:e,onChange:f=>{s(kn(f))},flexGrow:1,children:[l.jsx(mx,{children:c}),l.jsx(gx,{children:u})]})}function IN(){async function e(n=""){return await fetch(n,{method:"GET",cache:"no-cache"})}const t=()=>{const n=document.location;e(n+"/flaskwebgui-keep-server-alive").then(o=>o)};(!{}.NODE_ENV||{}.NODE_ENV==="production")&&document.addEventListener("DOMContentLoaded",()=>{t(),setInterval(t,3e3)})}const MN=()=>{const e=Y(),t=A(Y9),n=ls();g.useEffect(()=>{t.forEach(r=>{n(r)}),t.length>0&&e(gC())},[e,n,t])},TN=pe([bt,Pr],(e,t)=>{const{shouldPinGallery:n,shouldShowGallery:r}=t;return{shouldPinGallery:n,shouldShowGalleryButton:(!n||!r)&&["txt2img","img2img","unifiedCanvas"].includes(e)}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),_N=()=>{const{t:e}=K(),{shouldPinGallery:t,shouldShowGalleryButton:n}=A(TN),r=Y(),o=()=>{r(cf(!0)),t&&r(cn())};return n?l.jsx(ae,{tooltip:"Show Gallery (G)",tooltipProps:{placement:"top"},"aria-label":e("accessibility.showGallery"),onClick:o,sx:{pos:"absolute",top:"50%",transform:"translate(0, -50%)",zIndex:31,p:0,insetInlineEnd:0,px:3,h:48,w:8,borderStartEndRadius:0,borderEndEndRadius:0},children:l.jsx(fp,{})}):null},qd={borderStartStartRadius:0,borderEndStartRadius:0},DN=pe([Pr,bt],(e,t)=>{const{shouldPinParametersPanel:n,shouldUseCanvasBetaLayout:r,shouldShowParametersPanel:o}=e,s=r&&t==="unifiedCanvas",c=!s&&(!n||!o),u=!s&&(!n||!o)&&["txt2img","img2img","unifiedCanvas"].includes(t);return{shouldPinParametersPanel:n,shouldShowParametersPanelButton:u,shouldShowProcessButtons:c}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}}),AN=()=>{const e=Y(),{t}=K(),{shouldShowProcessButtons:n,shouldShowParametersPanelButton:r,shouldPinParametersPanel:o}=A(DN),s=()=>{e(ql(!0)),o&&e(cn())};return r?l.jsxs(L,{pos:"absolute",transform:"translate(0, -50%)",zIndex:20,minW:8,top:"50%",insetInlineStart:"4.5rem",direction:"column",gap:2,children:[l.jsx(ae,{tooltip:"Show Options Panel (O)",tooltipProps:{placement:"top"},"aria-label":t("accessibility.showOptionsPanel"),onClick:s,sx:qd,children:l.jsx(ep,{})}),n&&l.jsxs(l.Fragment,{children:[l.jsx(Mp,{iconButton:!0,sx:qd}),l.jsx(Pp,{sx:qd})]})]}):null};var Va=globalThis&&globalThis.__assign||function(){return Va=Object.assign||function(e){for(var t,n=1,r=arguments.length;ne.image.uuid===t.image.uuid&&e.isSelected===t.isSelected,d4=g.memo(e=>{const t=Y(),{activeTabName:n,galleryImageObjectFit:r,galleryImageMinimumWidth:o,mayDeleteImage:s,shouldUseSingleGalleryColumn:c}=A(eA),{image:u,isSelected:f}=e,{url:p,thumbnail:h,uuid:y,metadata:x}=u,[S,j]=g.useState(!1),C=ls(),{direction:w}=ta(),{t:k}=K(),I=yp(),P=()=>j(!0),M=()=>j(!1),T=()=>{var X,te,re,$;(te=(X=u.metadata)==null?void 0:X.image)!=null&&te.prompt&&I(($=(re=u.metadata)==null?void 0:re.image)==null?void 0:$.prompt),C({title:k("toast.promptSet"),status:"success",duration:2500,isClosable:!0})},D=()=>{u.metadata&&t(is(u.metadata.image.seed)),C({title:k("toast.seedSet"),status:"success",duration:2500,isClosable:!0})},_=()=>{t(rs(u)),n!=="img2img"&&t(kn("img2img")),C({title:k("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})},R=()=>{t(bc(u)),t(Sc()),n!=="unifiedCanvas"&&t(kn("unifiedCanvas")),C({title:k("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0})},V=()=>{x&&t(A1(x)),C({title:k("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})},F=async()=>{var X;if((X=x==null?void 0:x.image)!=null&&X.init_image_path&&(await fetch(x.image.init_image_path)).ok){t(kn("img2img")),t(yC(x)),C({title:k("toast.initialImageSet"),status:"success",duration:2500,isClosable:!0});return}C({title:k("toast.initialImageNotSet"),description:k("toast.initialImageNotSetDesc"),status:"error",duration:2500,isClosable:!0})},B=()=>t($v(u)),Q=X=>{X.dataTransfer.setData("invokeai/imageUuid",y),X.dataTransfer.effectAllowed="move"},U=()=>{t($v(u)),t(Uo(!0))};return l.jsx(ON,{menuProps:{size:"sm",isLazy:!0},renderMenu:()=>{var X,te,re,$,Z,fe,Se,Me;return l.jsxs(Oh,{children:[l.jsx(gr,{onClickCapture:U,children:k("parameters.openInViewer")}),l.jsx(gr,{onClickCapture:T,isDisabled:((te=(X=u==null?void 0:u.metadata)==null?void 0:X.image)==null?void 0:te.prompt)===void 0,children:k("parameters.usePrompt")}),l.jsx(gr,{onClickCapture:D,isDisabled:(($=(re=u==null?void 0:u.metadata)==null?void 0:re.image)==null?void 0:$.seed)===void 0,children:k("parameters.useSeed")}),l.jsx(gr,{onClickCapture:V,isDisabled:!["txt2img","img2img"].includes((fe=(Z=u==null?void 0:u.metadata)==null?void 0:Z.image)==null?void 0:fe.type),children:k("parameters.useAll")}),l.jsx(gr,{onClickCapture:F,isDisabled:((Me=(Se=u==null?void 0:u.metadata)==null?void 0:Se.image)==null?void 0:Me.type)!=="img2img",children:k("parameters.useInitImg")}),l.jsx(gr,{onClickCapture:_,children:k("parameters.sendToImg2Img")}),l.jsx(gr,{onClickCapture:R,children:k("parameters.sendToUnifiedCanvas")}),l.jsx(gr,{"data-warning":!0,children:l.jsx(hc,{image:u,children:l.jsx("p",{children:k("parameters.deleteImage")})})})]})},children:X=>l.jsxs(Ye,{position:"relative",onMouseOver:P,onMouseOut:M,userSelect:"none",draggable:!0,onDragStart:Q,ref:X,sx:{padding:2,display:"flex",justifyContent:"center",transition:"transform 0.2s ease-out",_hover:{cursor:"pointer",zIndex:2},_before:{content:'""',display:"block",paddingBottom:"100%"}},children:[l.jsx(cs,{objectFit:c?"contain":r,rounded:"md",src:h||p,loading:"lazy",sx:{position:"absolute",width:"100%",height:"100%",maxWidth:"100%",maxHeight:"100%",top:"50%",transform:"translate(-50%,-50%)",...w==="rtl"?{insetInlineEnd:"50%"}:{insetInlineStart:"50%"}}}),l.jsx(L,{onClick:B,sx:{position:"absolute",top:"0",insetInlineStart:"0",width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},children:f&&l.jsx(tn,{as:Oc,sx:{width:"50%",height:"50%",fill:"ok.500"}})}),S&&o>=64&&l.jsx(Ye,{sx:{position:"absolute",top:1,insetInlineEnd:1},children:l.jsx(hc,{image:u,children:l.jsx(ae,{"aria-label":k("parameters.deleteImage"),icon:l.jsx($9,{}),size:"xs",fontSize:14,isDisabled:!s})})})]},y)})},zN);d4.displayName="HoverableImage";const RN=290,f4=()=>{const e=Y(),{t}=K(),n=g.useRef(null),[r,o]=g.useState(!0),{images:s,currentCategory:c,currentImageUuid:u,shouldPinGallery:f,galleryImageMinimumWidth:p,galleryGridTemplateColumns:h,galleryImageObjectFit:y,shouldAutoSwitchToNewImages:x,areMoreImagesAvailable:S,shouldUseSingleGalleryColumn:j}=A(JD),C=()=>{e(CC(c))},w=I=>{e(Zl(I))},k=()=>{e(d2()),e(cn())};return g.useEffect(()=>{if(!n.current)return;const I=new ResizeObserver(()=>{if(n.current){if(n.current.clientWidthI.disconnect()},[]),l.jsxs(L,{flexDirection:"column",w:"full",h:"full",gap:4,children:[l.jsxs(L,{ref:n,alignItems:"center",justifyContent:"space-between",children:[l.jsx(Qt,{size:"sm",isAttached:!0,w:"max-content",justifyContent:"stretch",children:r?l.jsxs(l.Fragment,{children:[l.jsx(ae,{"aria-label":t("gallery.showGenerations"),tooltip:t("gallery.showGenerations"),isChecked:c==="result",role:"radio",icon:l.jsx(A9,{}),onClick:()=>e(bl("result"))}),l.jsx(ae,{"aria-label":t("gallery.showUploads"),tooltip:t("gallery.showUploads"),role:"radio",isChecked:c==="user",icon:l.jsx(q9,{}),onClick:()=>e(bl("user"))})]}):l.jsxs(l.Fragment,{children:[l.jsx(Je,{size:"sm",isChecked:c==="result",onClick:()=>e(bl("result")),flexGrow:1,children:t("gallery.generations")}),l.jsx(Je,{size:"sm",isChecked:c==="user",onClick:()=>e(bl("user")),flexGrow:1,children:t("gallery.uploads")})]})}),l.jsxs(L,{gap:2,children:[l.jsx(or,{triggerComponent:l.jsx(ae,{size:"sm","aria-label":t("gallery.gallerySettings"),icon:l.jsx(tp,{})}),children:l.jsxs(L,{direction:"column",gap:2,children:[l.jsx(ut,{value:p,onChange:w,min:32,max:256,hideTooltip:!0,label:t("gallery.galleryImageSize"),withReset:!0,handleReset:()=>e(Zl(64))}),l.jsx(ft,{label:t("gallery.maintainAspectRatio"),isChecked:y==="contain",onChange:()=>e(xC(y==="contain"?"cover":"contain"))}),l.jsx(ft,{label:t("gallery.autoSwitchNewImages"),isChecked:x,onChange:I=>e(bC(I.target.checked))}),l.jsx(ft,{label:t("gallery.singleColumnLayout"),isChecked:j,onChange:I=>e(SC(I.target.checked))})]})}),l.jsx(ae,{size:"sm","aria-label":t("gallery.pinGallery"),tooltip:`${t("gallery.pinGallery")} (Shift+G)`,onClick:k,icon:f?l.jsx(Ob,{}):l.jsx(zb,{})})]})]}),l.jsx(Ab,{children:l.jsx(L,{direction:"column",gap:2,h:"full",children:s.length||S?l.jsxs(l.Fragment,{children:[l.jsx(ir,{gap:2,style:{gridTemplateColumns:h},children:s.map(I=>{const{uuid:P}=I,M=u===P;return l.jsx(d4,{image:I,isSelected:M},P)})}),l.jsx(Je,{onClick:C,isDisabled:!S,flexShrink:0,children:t(S?"gallery.loadMore":"gallery.allImagesLoaded")})]}):l.jsxs(L,{sx:{flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:8,h:"100%",w:"100%",color:"base.500"},children:[l.jsx(tn,{as:fp,sx:{w:16,h:16}}),l.jsx(Ce,{textAlign:"center",children:t("gallery.noImagesInGallery")})]})})})]})};f4.displayName="ImageGalleryContent";const d1={txt2img:{galleryMinWidth:200,galleryMaxWidth:500},img2img:{galleryMinWidth:200,galleryMaxWidth:500},unifiedCanvas:{galleryMinWidth:200,galleryMaxWidth:200},nodes:{galleryMinWidth:200,galleryMaxWidth:500},postprocessing:{galleryMinWidth:200,galleryMaxWidth:500},training:{galleryMinWidth:200,galleryMaxWidth:500}},NN=pe([bt,Pr,qr,Ot,Ss],(e,t,n,r,o)=>{const{shouldPinGallery:s,shouldShowGallery:c}=t,{galleryImageMinimumWidth:u}=n,{isLightboxOpen:f}=o;return{activeTabName:e,isStaging:r,shouldPinGallery:s,shouldShowGallery:c,galleryImageMinimumWidth:u,isResizable:e!=="unifiedCanvas",isLightboxOpen:f}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function FN(){const e=Y(),{shouldPinGallery:t,shouldShowGallery:n,galleryImageMinimumWidth:r,activeTabName:o,isStaging:s,isResizable:c,isLightboxOpen:u}=A(NN),f=()=>{e(d2()),e(cn())},p=()=>{e(wC()),t&&e(cn())},h=()=>{e(cf(!1)),t&&e(cn())};ce("g",()=>{p()},[t]),ce("left",()=>{e(B1())},{enabled:!s||o!=="unifiedCanvas"},[s,o]),ce("right",()=>{e(H1())},{enabled:!s||o!=="unifiedCanvas"},[s,o]),ce("shift+g",()=>{f()},[t]),ce("esc",()=>{e(cf(!1))},{enabled:()=>!t,preventDefault:!0},[t]);const y=32;return ce("shift+up",()=>{if(r<256){const x=ee.clamp(r+y,32,256);e(Zl(x))}},[r]),ce("shift+down",()=>{if(r>32){const x=ee.clamp(r-y,32,256);e(Zl(x))}},[r]),l.jsx(Db,{direction:"right",isResizable:c||!t,isOpen:n,onClose:h,isPinned:t&&!u,minWidth:t?d1[o].galleryMinWidth:200,maxWidth:t?d1[o].galleryMaxWidth:void 0,children:l.jsx(f4,{})})}var Hn=function(e,t){return Number(e.toFixed(t))},LN=function(e,t){return typeof e=="number"?e:t},Mt=function(e,t,n){n&&typeof n=="function"&&n(e,t)},BN=function(e){return-Math.cos(e*Math.PI)/2+.5},HN=function(e){return e},WN=function(e){return e*e},VN=function(e){return e*(2-e)},UN=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},$N=function(e){return e*e*e},GN=function(e){return--e*e*e+1},qN=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},YN=function(e){return e*e*e*e},KN=function(e){return 1- --e*e*e*e},XN=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},QN=function(e){return e*e*e*e*e},ZN=function(e){return 1+--e*e*e*e*e},JN=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},h4={easeOut:BN,linear:HN,easeInQuad:WN,easeOutQuad:VN,easeInOutQuad:UN,easeInCubic:$N,easeOutCubic:GN,easeInOutCubic:qN,easeInQuart:YN,easeOutQuart:KN,easeInOutQuart:XN,easeInQuint:QN,easeOutQuint:ZN,easeInOutQuint:JN},p4=function(e){typeof e=="number"&&cancelAnimationFrame(e)},br=function(e){e.mounted&&(p4(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function m4(e,t,n,r){if(e.mounted){var o=new Date().getTime(),s=1;br(e),e.animation=function(){if(!e.mounted)return p4(e.animation);var c=new Date().getTime()-o,u=c/n,f=h4[t],p=f(u);c>=n?(r(s),e.animation=null):e.animation&&(r(p),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function eF(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function jo(e,t,n,r){var o=eF(t);if(!(!e.mounted||!o)){var s=e.setTransformState,c=e.transformState,u=c.scale,f=c.positionX,p=c.positionY,h=t.scale-u,y=t.positionX-f,x=t.positionY-p;n===0?s(t.scale,t.positionX,t.positionY):m4(e,r,n,function(S){var j=u+h*S,C=f+y*S,w=p+x*S;s(j,C,w)})}}function tF(e,t,n){var r=e.offsetWidth,o=e.offsetHeight,s=t.offsetWidth,c=t.offsetHeight,u=s*n,f=c*n,p=r-u,h=o-f;return{wrapperWidth:r,wrapperHeight:o,newContentWidth:u,newDiffWidth:p,newContentHeight:f,newDiffHeight:h}}var nF=function(e,t,n,r,o,s,c){var u=e>t?n*(c?1:.5):0,f=r>o?s*(c?1:.5):0,p=e-t-u,h=u,y=r-o-f,x=f;return{minPositionX:p,maxPositionX:h,minPositionY:y,maxPositionY:x}},Fp=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,o=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var s=tF(n,r,t),c=s.wrapperWidth,u=s.wrapperHeight,f=s.newContentWidth,p=s.newDiffWidth,h=s.newContentHeight,y=s.newDiffHeight,x=nF(c,f,p,u,h,y,Boolean(o));return x},Xf=function(e,t,n,r){return r?en?Hn(n,2):Hn(e,2):Hn(e,2)},ea=function(e,t){var n=Fp(e,t);return e.bounds=n,n};function Gc(e,t,n,r,o,s,c){var u=n.minPositionX,f=n.minPositionY,p=n.maxPositionX,h=n.maxPositionY,y=0,x=0;c&&(y=o,x=s);var S=Xf(e,u-y,p+y,r),j=Xf(t,f-x,h+x,r);return{x:S,y:j}}function qc(e,t,n,r,o,s){var c=e.transformState,u=c.scale,f=c.positionX,p=c.positionY,h=r-u;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:f,y:p};var y=f-t*h,x=p-n*h,S=Gc(y,x,o,s,0,0,null);return S}function Cs(e,t,n,r,o){var s=o?r:0,c=t-s;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=c?c:e}var f1=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,o=e.wrapperComponent,s=t.target,c=o==null?void 0:o.contains(s),u=r&&s&&c;if(!u)return!1;var f=Yc(s,n);return!f},h1=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,o=r.panning.disabled,s=t&&n&&!o;return!!s},rF=function(e,t){var n=e.transformState,r=n.positionX,o=n.positionY;e.isPanning=!0;var s=t.clientX,c=t.clientY;e.startCoords={x:s-r,y:c-o}},oF=function(e,t){var n=t.touches,r=e.transformState,o=r.positionX,s=r.positionY;e.isPanning=!0;var c=n.length===1;if(c){var u=n[0].clientX,f=n[0].clientY;e.startCoords={x:u-o,y:f-s}}};function iF(e){var t=e.transformState,n=t.positionX,r=t.positionY,o=t.scale,s=e.setup,c=s.disabled,u=s.limitToBounds,f=s.centerZoomedOut,p=e.wrapperComponent;if(!(c||!p||!e.bounds)){var h=e.bounds,y=h.maxPositionX,x=h.minPositionX,S=h.maxPositionY,j=h.minPositionY,C=n>y||nS||ry?p.offsetWidth:e.setup.minPositionX||0,I=r>S?p.offsetHeight:e.setup.minPositionY||0,P=qc(e,k,I,o,e.bounds,u||f),M=P.x,T=P.y;return{scale:o,positionX:C?M:n,positionY:w?T:r}}}function aF(e,t,n,r,o){var s=e.setup.limitToBounds,c=e.wrapperComponent,u=e.bounds,f=e.transformState,p=f.scale,h=f.positionX,y=f.positionY;if(!(c===null||u===null||t===h&&n===y)){var x=Gc(t,n,u,s,r,o,c),S=x.x,j=x.y;e.setTransformState(p,S,j)}}var sF=function(e,t,n){var r=e.startCoords,o=e.transformState,s=e.setup.panning,c=s.lockAxisX,u=s.lockAxisY,f=o.positionX,p=o.positionY;if(!r)return{x:f,y:p};var h=t-r.x,y=n-r.y,x=c?f:h,S=u?p:y;return{x,y:S}},gc=function(e,t){var n=e.setup,r=e.transformState,o=r.scale,s=n.minScale,c=n.disablePadding;return t>0&&o>=s&&!c?t:0},lF=function(e){var t=e.mounted,n=e.setup,r=n.disabled,o=n.velocityAnimation,s=e.transformState.scale,c=o.disabled,u=!c||s>1||!r||t;return!!u},cF=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,o=e.setup,s=o.disabled,c=o.velocityAnimation,u=e.transformState.scale,f=c.disabled,p=!f||u>1||!s||t;return!(!p||!n||!r)};function uF(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,o=n.animationTime,s=n.sensitivity;return r?o*t*s:o}function p1(e,t,n,r,o,s,c,u,f,p){if(o){if(t>c&&n>c){var h=c+(e-c)*p;return h>f?f:hs?s:h}}return r?t:Xf(e,s,c,o)}function dF(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function fF(e,t){var n=lF(e);if(n){var r=e.lastMousePosition,o=e.velocityTime,s=e.setup,c=e.wrapperComponent,u=s.velocityAnimation.equalToMove,f=Date.now();if(r&&o&&c){var p=dF(c,u),h=t.x-r.x,y=t.y-r.y,x=h/p,S=y/p,j=f-o,C=h*h+y*y,w=Math.sqrt(C)/j;e.velocity={velocityX:x,velocityY:S,total:w}}e.lastMousePosition=t,e.velocityTime=f}}function hF(e){var t=e.velocity,n=e.bounds,r=e.setup,o=e.wrapperComponent,s=cF(e);if(!(!s||!t||!n||!o)){var c=t.velocityX,u=t.velocityY,f=t.total,p=n.maxPositionX,h=n.minPositionX,y=n.maxPositionY,x=n.minPositionY,S=r.limitToBounds,j=r.alignmentAnimation,C=r.zoomAnimation,w=r.panning,k=w.lockAxisY,I=w.lockAxisX,P=C.animationType,M=j.sizeX,T=j.sizeY,D=j.velocityAlignmentTime,_=D,R=uF(e,f),V=Math.max(R,_),F=gc(e,M),B=gc(e,T),Q=F*o.offsetWidth/100,U=B*o.offsetHeight/100,X=p+Q,te=h-Q,re=y+U,$=x-U,Z=e.transformState,fe=new Date().getTime();m4(e,P,V,function(Se){var Me=e.transformState,Ie=Me.scale,Pe=Me.positionX,he=Me.positionY,se=new Date().getTime()-fe,Ne=se/_,Ve=h4[j.animationType],Ue=1-Ve(Math.min(1,Ne)),$e=1-Se,Qe=Pe+c*$e,me=he+u*$e,De=p1(Qe,Z.positionX,Pe,I,S,h,p,te,X,Ue),Ge=p1(me,Z.positionY,he,k,S,x,y,$,re,Ue);(Pe!==Qe||he!==me)&&e.setTransformState(Ie,De,Ge)})}}function m1(e,t){var n=e.transformState.scale;br(e),ea(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?oF(e,t):rF(e,t)}function v4(e){var t=e.transformState.scale,n=e.setup,r=n.minScale,o=n.alignmentAnimation,s=o.disabled,c=o.sizeX,u=o.sizeY,f=o.animationTime,p=o.animationType,h=s||t.1&&y;x?hF(e):v4(e)}}function Lp(e,t,n,r){var o=e.setup,s=o.minScale,c=o.maxScale,u=o.limitToBounds,f=Cs(Hn(t,2),s,c,0,!1),p=ea(e,f),h=qc(e,n,r,f,p,u),y=h.x,x=h.y;return{scale:f,positionX:y,positionY:x}}function g4(e,t,n){var r=e.transformState.scale,o=e.wrapperComponent,s=e.setup,c=s.minScale,u=s.limitToBounds,f=s.zoomAnimation,p=f.disabled,h=f.animationTime,y=f.animationType,x=p||r>=c;if((r>=1||u)&&v4(e),!(x||!o||!e.mounted)){var S=t||o.offsetWidth/2,j=n||o.offsetHeight/2,C=Lp(e,c,S,j);C&&jo(e,C,h,y)}}var fo=function(){return fo=Object.assign||function(t){for(var n,r=1,o=arguments.length;rc||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaYt.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},TF=function(e,t){var n=e.setup.pinch,r=n.disabled,o=n.excluded,s=e.isInitialized,c=t.target,u=s&&!r&&c;if(!u)return!1;var f=Yc(c,o);return!f},_F=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,o=n&&!t&&r;return!!o},DF=function(e,t,n){var r=n.getBoundingClientRect(),o=e.touches,s=Hn(o[0].clientX-r.left,5),c=Hn(o[0].clientY-r.top,5),u=Hn(o[1].clientX-r.left,5),f=Hn(o[1].clientY-r.top,5);return{x:(s+u)/2/t,y:(c+f)/2/t}},j4=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},AF=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,o=e.setup,s=o.maxScale,c=o.minScale,u=o.zoomAnimation,f=o.disablePadding,p=u.size,h=u.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var y=t/r,x=y*n;return Cs(Hn(x,2),c,s,p,!h&&!f)},OF=160,zF=100,RF=function(e,t){var n=e.props,r=n.onWheelStart,o=n.onZoomStart;e.wheelStopEventTimer||(br(e),Mt(dt(e),t,r),Mt(dt(e),t,o))},NF=function(e,t){var n=e.props,r=n.onWheel,o=n.onZoom,s=e.contentComponent,c=e.setup,u=e.transformState,f=u.scale,p=c.limitToBounds,h=c.centerZoomedOut,y=c.zoomAnimation,x=c.wheel,S=c.disablePadding,j=y.size,C=y.disabled,w=x.step;if(!s)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var k=PF(t,null),I=IF(e,k,w,!t.ctrlKey);if(f!==I){var P=ea(e,I),M=w4(t,s,f),T=C||j===0||h||S,D=p&&T,_=qc(e,M.x,M.y,I,P,D),R=_.x,V=_.y;e.previousWheelEvent=t,e.setTransformState(I,R,V),Mt(dt(e),t,r),Mt(dt(e),t,o)}},FF=function(e,t){var n=e.props,r=n.onWheelStop,o=n.onZoomStop;Qf(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(g4(e,t.x,t.y),e.wheelAnimationTimer=null)},zF);var s=MF(e,t);s&&(Qf(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,Mt(dt(e),t,r),Mt(dt(e),t,o))},OF))},LF=function(e,t){var n=j4(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1,br(e)},BF=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,o=e.transformState.scale,s=e.setup,c=s.limitToBounds,u=s.centerZoomedOut,f=s.zoomAnimation,p=f.disabled,h=f.size;if(!(r===null||!n)){var y=DF(t,o,n);if(!(!Number.isFinite(y.x)||!Number.isFinite(y.y))){var x=j4(t),S=AF(e,x);if(S!==o){var j=ea(e,S),C=p||h===0||u,w=c&&C,k=qc(e,y.x,y.y,S,j,w),I=k.x,P=k.y;e.pinchMidpoint=y,e.lastDistance=x,e.setTransformState(S,I,P)}}}},HF=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,g4(e,t==null?void 0:t.x,t==null?void 0:t.y)},k4=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;Qf(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,Mt(dt(e),t,n)},r)},WF=function(e,t){var n=e.props,r=n.onZoomStart,o=n.onZoom,s=e.setup.doubleClick,c=s.animationTime,u=s.animationType;Mt(dt(e),t,r),S4(e,c,u,function(){return Mt(dt(e),t,o)}),k4(e,t)};function VF(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,o=e.transformState,s=e.contentComponent,c=o.scale,u=e.props,f=u.onZoomStart,p=u.onZoom,h=n.doubleClick,y=h.disabled,x=h.mode,S=h.step,j=h.animationTime,C=h.animationType;if(!y&&!r){if(x==="reset")return WF(e,t);if(!s)return console.error("No ContentComponent found");var w=x==="zoomOut"?-1:1,k=x4(e,w,S);if(c!==k){Mt(dt(e),t,f);var I=w4(t,s,c),P=Lp(e,k,I.x,I.y);if(!P)return console.error("Error during zoom event. New transformation state was not calculated.");Mt(dt(e),t,p),jo(e,P,j,C),k4(e,t)}}}var UF=function(e,t){var n=e.isInitialized,r=e.setup,o=e.wrapperComponent,s=r.doubleClick,c=s.disabled,u=s.excluded,f=t.target,p=o==null?void 0:o.contains(f),h=n&&f&&p&&!c;if(!h)return!1;var y=Yc(f,u);return!y},$F=function(){function e(t){var n=this;this.mounted=!0,this.onChangeCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){ea(n,n.transformState.scale),n.setup=y1(r)},this.initializeWindowEvents=function(){var r,o=Kd(),s=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,c=s==null?void 0:s.defaultView;c==null||c.addEventListener("mousedown",n.onPanningStart,o),c==null||c.addEventListener("mousemove",n.onPanning,o),c==null||c.addEventListener("mouseup",n.onPanningStop,o),s==null||s.addEventListener("mouseleave",n.clearPanning,o),c==null||c.addEventListener("keyup",n.setKeyUnPressed,o),c==null||c.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,o,s=Kd(),c=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,u=c==null?void 0:c.defaultView;u==null||u.removeEventListener("mousedown",n.onPanningStart,s),u==null||u.removeEventListener("mousemove",n.onPanning,s),u==null||u.removeEventListener("mouseup",n.onPanningStop,s),c==null||c.removeEventListener("mouseleave",n.clearPanning,s),u==null||u.removeEventListener("keyup",n.setKeyUnPressed,s),u==null||u.removeEventListener("keydown",n.setKeyPressed,s),document.removeEventListener("mouseleave",n.clearPanning,s),br(n),(o=n.observer)===null||o===void 0||o.disconnect()},this.handleInitializeWrapperEvents=function(r){var o=Kd();r.addEventListener("wheel",n.onWheelZoom,o),r.addEventListener("dblclick",n.onDoubleClick,o),r.addEventListener("touchstart",n.onTouchPanningStart,o),r.addEventListener("touchmove",n.onTouchPanning,o),r.addEventListener("touchend",n.onTouchPanningStop,o)},this.handleInitialize=function(r){var o=n.setup.centerOnInit;n.applyTransformation(),o&&(n.setCenter(),n.observer=new ResizeObserver(function(){var s;n.setCenter(),(s=n.observer)===null||s===void 0||s.disconnect()}),n.observer.observe(r))},this.onWheelZoom=function(r){var o=n.setup.disabled;if(!o){var s=kF(n,r);if(s){var c=n.isPressingKeys(n.setup.wheel.activationKeys);c&&(RF(n,r),NF(n,r),FF(n,r))}}},this.onPanningStart=function(r){var o=n.setup.disabled,s=n.props.onPanningStart;if(!o){var c=f1(n,r);if(c){var u=n.isPressingKeys(n.setup.panning.activationKeys);u&&(r.preventDefault(),r.stopPropagation(),br(n),m1(n,r),Mt(dt(n),r,s))}}},this.onPanning=function(r){var o=n.setup.disabled,s=n.props.onPanning;if(!o){var c=h1(n);if(c){var u=n.isPressingKeys(n.setup.panning.activationKeys);u&&(r.preventDefault(),r.stopPropagation(),v1(n,r.clientX,r.clientY),Mt(dt(n),r,s))}}},this.onPanningStop=function(r){var o=n.props.onPanningStop;n.isPanning&&(pF(n),Mt(dt(n),r,o))},this.onPinchStart=function(r){var o=n.setup.disabled,s=n.props,c=s.onPinchingStart,u=s.onZoomStart;if(!o){var f=TF(n,r);f&&(LF(n,r),br(n),Mt(dt(n),r,c),Mt(dt(n),r,u))}},this.onPinch=function(r){var o=n.setup.disabled,s=n.props,c=s.onPinching,u=s.onZoom;if(!o){var f=_F(n);f&&(r.preventDefault(),r.stopPropagation(),BF(n,r),Mt(dt(n),r,c),Mt(dt(n),r,u))}},this.onPinchStop=function(r){var o=n.props,s=o.onPinchingStop,c=o.onZoomStop;n.pinchStartScale&&(HF(n),Mt(dt(n),r,s),Mt(dt(n),r,c))},this.onTouchPanningStart=function(r){var o=n.setup.disabled,s=n.props.onPanningStart;if(!o){var c=f1(n,r);if(c){var u=n.lastTouch&&+new Date-n.lastTouch<200;if(u&&r.touches.length===1)n.onDoubleClick(r);else{n.lastTouch=+new Date,br(n);var f=r.touches,p=f.length===1,h=f.length===2;p&&(br(n),m1(n,r),Mt(dt(n),r,s)),h&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var o=n.setup.disabled,s=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(o)return;var c=h1(n);if(!c)return;r.preventDefault(),r.stopPropagation();var u=r.touches[0];v1(n,u.clientX,u.clientY),Mt(dt(n),r,s)}else r.touches.length>1&&n.onPinch(r)},this.onTouchPanningStop=function(r){n.onPanningStop(r),n.onPinchStop(r)},this.onDoubleClick=function(r){var o=n.setup.disabled;if(!o){var s=UF(n,r);s&&VF(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?Boolean(r.find(function(o){return n.pressedKeys[o]})):!0},this.setTransformState=function(r,o,s){var c=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(o)&&!Number.isNaN(s)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=o,n.transformState.positionY=s;var u=dt(n);n.onChangeCallbacks.forEach(function(f){return f(u)}),Mt(u,{scale:r,positionX:o,positionY:s},c),n.applyTransformation()}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=C4(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,o,s){return n.props.customTransform?n.props.customTransform(r,o,s):wF(r,o,s)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,o=r.scale,s=r.positionX,c=r.positionY,u=n.handleTransformStyles(s,c,o);n.contentComponent.style.transform=u}},this.getContext=function(){return dt(n)},this.onChange=function(r){return n.onChangeCallbacks.has(r)||n.onChangeCallbacks.add(r),function(){n.onChangeCallbacks.delete(r)}},this.init=function(r,o){n.cleanupWindowEvents(),n.wrapperComponent=r,n.contentComponent=o,ea(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(o),n.initializeWindowEvents(),n.isInitialized=!0,Mt(dt(n),void 0,n.props.onInit)},this.props=t,this.setup=y1(this.props),this.transformState=y4(this.props)}return e}(),Kc=_e.createContext(null),GF=function(e,t){return typeof e=="function"?e(t):e},qF=_e.forwardRef(function(e,t){var n=g.useState(0),r=n[1],o=e.children,s=g.useRef(new $F(e)).current,c=GF(e.children,dt(s)),u=g.useCallback(function(){typeof o=="function"&&r(function(f){return f+1})},[o]);return g.useImperativeHandle(t,function(){return dt(s)},[s]),g.useEffect(function(){s.update(e)},[s,e]),g.useEffect(function(){return s.onChange(u)},[s,e,u]),_e.createElement(Kc.Provider,{value:s},c)});function YF(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var KF=`.transform-component-module_wrapper__7HFJe { - position: relative; - width: -moz-fit-content; - width: fit-content; - height: -moz-fit-content; - height: fit-content; - overflow: hidden; - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; - margin: 0; - padding: 0; -} -.transform-component-module_content__uCDPE { - display: flex; - flex-wrap: wrap; - width: -moz-fit-content; - width: fit-content; - height: -moz-fit-content; - height: fit-content; - margin: 0; - padding: 0; - transform-origin: 0% 0%; -} -.transform-component-module_content__uCDPE img { - pointer-events: none; -} -`,x1={wrapper:"transform-component-module_wrapper__7HFJe",content:"transform-component-module_content__uCDPE"};YF(KF);var XF=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,o=e.contentClass,s=o===void 0?"":o,c=e.wrapperStyle,u=e.contentStyle,f=e.wrapperProps,p=f===void 0?{}:f,h=e.contentProps,y=h===void 0?{}:h,x=g.useContext(Kc).init,S=g.useRef(null),j=g.useRef(null);return g.useEffect(function(){var C=S.current,w=j.current;C!==null&&w!==null&&x&&x(C,w)},[]),_e.createElement("div",fo({},p,{ref:S,className:"react-transform-wrapper ".concat(x1.wrapper," ").concat(r),style:c}),_e.createElement("div",fo({},y,{ref:j,className:"react-transform-component ".concat(x1.content," ").concat(s),style:u}),t))},E4=function(){var e=g.useContext(Kc),t=g.useState(dt(e||{})),n=t[0],r=t[1];if(!e)throw new Error("Transform context mus be placed inside TransformWrapper");return g.useEffect(function(){e.onChange(function(o){r(o)})},[e]),n};_e.forwardRef(function(e,t){var n=g.useRef(null),r=g.useContext(Kc);return g.useEffect(function(){return r.onChange(function(o){if(n.current){var s=0,c=0;n.current.style.transform=r.handleTransformStyles(s,c,1/o.state.scale)}})},[r]),_e.createElement("div",fo({},e,{ref:jF([n,t])}))});const QF=()=>{const[e,t]=g.useState(0),[n,r]=g.useState(1),[o,s]=g.useState(1);return{rotation:e,scaleX:n,scaleY:o,flipHorizontally:()=>{r(n*-1)},flipVertically:()=>{s(o*-1)},rotateCounterClockwise:()=>{t(e===-270?0:e-90)},rotateClockwise:()=>{t(e===270?0:e+90)},reset:()=>{t(0),r(1),s(1)}}},ZF=({flipHorizontally:e,flipVertically:t,rotateCounterClockwise:n,rotateClockwise:r,reset:o})=>{const{zoomIn:s,zoomOut:c,resetTransform:u}=E4(),{t:f}=K();return l.jsxs(Qt,{isAttached:!0,orientation:"vertical",children:[l.jsx(ae,{icon:l.jsx(bD,{}),"aria-label":f("accessibility.zoomIn"),tooltip:f("accessibility.zoomIn"),onClick:()=>s(),fontSize:20}),l.jsx(ae,{icon:l.jsx(SD,{}),"aria-label":f("accessibility.zoomOut"),tooltip:f("accessibility.zoomOut"),onClick:()=>c(),fontSize:20}),l.jsx(ae,{icon:l.jsx(yD,{}),"aria-label":f("accessibility.rotateCounterClockwise"),tooltip:f("accessibility.rotateCounterClockwise"),onClick:n,fontSize:20}),l.jsx(ae,{icon:l.jsx(xD,{}),"aria-label":f("accessibility.rotateClockwise"),tooltip:f("accessibility.rotateClockwise"),onClick:r,fontSize:20}),l.jsx(ae,{icon:l.jsx(W0,{}),"aria-label":f("accessibility.flipHorizontally"),tooltip:f("accessibility.flipHorizontally"),onClick:e,fontSize:20}),l.jsx(ae,{icon:l.jsx(W0,{style:{transform:"rotate(90deg)"}}),"aria-label":f("accessibility.flipVertically"),tooltip:f("accessibility.flipVertically"),onClick:t,fontSize:20}),l.jsx(ae,{icon:l.jsx(Mb,{}),"aria-label":f("accessibility.reset"),tooltip:f("accessibility.reset"),onClick:()=>{u(),o()},fontSize:20})]})};function JF({image:e,alt:t,ref:n,styleClass:r,rotation:o,scaleX:s,scaleY:c}){const{centerView:u}=E4();return l.jsx(XF,{wrapperStyle:{width:"100%",height:"100%"},children:l.jsx("img",{style:{transform:`rotate(${o}deg) scaleX(${s}) scaleY(${c})`,width:"100%"},src:e.url,alt:t,ref:n,className:r||"",onLoad:()=>u(1,0,"easeOut")})})}const eL=pe([qr,Pr],(e,t)=>{const{currentImage:n}=e,{shouldShowImageDetails:r}=t;return{viewerImageToDisplay:n,shouldShowImageDetails:r}},{memoizeOptions:{resultEqualityCheck:ee.isEqual}});function tL(){const e=Y(),t=A(x=>x.lightbox.isLightboxOpen),{rotation:n,scaleX:r,scaleY:o,flipHorizontally:s,flipVertically:c,rotateCounterClockwise:u,rotateClockwise:f,reset:p}=QF(),{viewerImageToDisplay:h,shouldShowImageDetails:y}=A(eL);return ce("Esc",()=>{t&&e(Uo(!1))},[t]),l.jsx(xo,{children:t&&l.jsx(ar.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15,ease:"easeInOut"},style:{display:"flex",width:"100vw",height:`calc(100vh - ${dc*4}px)`,position:"fixed",top:`${dc*4}px`,background:"var(--invokeai-colors-base-900)",zIndex:99},children:l.jsxs(qF,{centerOnInit:!0,minScale:.1,initialPositionX:50,initialPositionY:50,children:[l.jsxs(L,{sx:{flexDir:"column",position:"absolute",insetInlineStart:4,gap:4,zIndex:3,top:4},children:[l.jsx(ae,{icon:l.jsx(gD,{}),"aria-label":"Exit Viewer",className:"lightbox-close-btn",onClick:()=>{e(Uo(!1))},fontSize:20}),l.jsx(ZF,{flipHorizontally:s,flipVertically:c,rotateCounterClockwise:u,rotateClockwise:f,reset:p})]}),l.jsx(L,{sx:{position:"absolute",top:4,zIndex:3,insetInlineStart:"50%",transform:"translate(-50%, 0)"},children:l.jsx(Rb,{})}),h&&l.jsxs(l.Fragment,{children:[l.jsx(JF,{rotation:n,scaleX:r,scaleY:o,image:h,styleClass:"lightbox-image"}),y&&l.jsx(xp,{image:h}),!y&&l.jsx(Ye,{sx:{position:"absolute",top:0,insetInlineStart:0,w:"100vw",h:"100vh",px:16,pointerEvents:"none"},children:l.jsx(Nb,{})})]})]})},"lightbox")})}IN();const aL=e=>{MN();const t=A(r=>r.ui.currentTheme),{setColorMode:n}=jC();return g.useEffect(()=>{n(["light"].includes(t)?"light":"dark")},[n,t]),l.jsxs(ir,{w:"100vw",h:"100vh",children:[l.jsx(tL,{}),l.jsxs(u9,{children:[l.jsx(iP,{}),l.jsxs(ir,{gap:4,p:4,gridAutoRows:"min-content auto",w:eP,h:tP,children:[e.children||l.jsx(_b,{}),l.jsxs(L,{gap:4,w:"full",h:"full",children:[l.jsx(PN,{}),l.jsx(FN,{})]})]}),l.jsx(Ye,{children:l.jsx(Z9,{})})]}),l.jsx($a,{children:l.jsx(AN,{})}),l.jsx($a,{children:l.jsx(_N,{})})]})};export{aL as default}; diff --git a/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-7791bd91.js b/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-7791bd91.js deleted file mode 100644 index 714b252ef2..0000000000 --- a/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-7791bd91.js +++ /dev/null @@ -1,315 +0,0 @@ -import{j as y,cO as Ie,r as _,cP as bt,q as Lr,cQ as o,cR as b,cS as v,cT as S,cU as Vr,cV as ut,cW as vt,cN as ft,cX as mt,n as gt,cY as ht,E as pt}from"./index-e53e8108.js";import{d as yt,i as St,T as xt,j as $t,h as kt}from"./storeHooks-5cde7d31.js";var Or=` - :root { - --chakra-vh: 100vh; - } - - @supports (height: -webkit-fill-available) { - :root { - --chakra-vh: -webkit-fill-available; - } - } - - @supports (height: -moz-fill-available) { - :root { - --chakra-vh: -moz-fill-available; - } - } - - @supports (height: 100dvh) { - :root { - --chakra-vh: 100dvh; - } - } -`,_t=()=>y.jsx(Ie,{styles:Or}),wt=()=>y.jsx(Ie,{styles:` - html { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - font-family: system-ui, sans-serif; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - -moz-osx-font-smoothing: grayscale; - touch-action: manipulation; - } - - body { - position: relative; - min-height: 100%; - font-feature-settings: 'kern'; - } - - *, - *::before, - *::after { - border-width: 0; - border-style: solid; - box-sizing: border-box; - } - - main { - display: block; - } - - hr { - border-top-width: 1px; - box-sizing: content-box; - height: 0; - overflow: visible; - } - - pre, - code, - kbd, - samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; - font-size: 1em; - } - - a { - background-color: transparent; - color: inherit; - text-decoration: inherit; - } - - abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - b, - strong { - font-weight: bold; - } - - small { - font-size: 80%; - } - - sub, - sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - sub { - bottom: -0.25em; - } - - sup { - top: -0.5em; - } - - img { - border-style: none; - } - - button, - input, - optgroup, - select, - textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - } - - button, - input { - overflow: visible; - } - - button, - select { - text-transform: none; - } - - button::-moz-focus-inner, - [type="button"]::-moz-focus-inner, - [type="reset"]::-moz-focus-inner, - [type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; - } - - fieldset { - padding: 0.35em 0.75em 0.625em; - } - - legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; - } - - progress { - vertical-align: baseline; - } - - textarea { - overflow: auto; - } - - [type="checkbox"], - [type="radio"] { - box-sizing: border-box; - padding: 0; - } - - [type="number"]::-webkit-inner-spin-button, - [type="number"]::-webkit-outer-spin-button { - -webkit-appearance: none !important; - } - - input[type="number"] { - -moz-appearance: textfield; - } - - [type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; - } - - [type="search"]::-webkit-search-decoration { - -webkit-appearance: none !important; - } - - ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; - } - - details { - display: block; - } - - summary { - display: list-item; - } - - template { - display: none; - } - - [hidden] { - display: none !important; - } - - body, - blockquote, - dl, - dd, - h1, - h2, - h3, - h4, - h5, - h6, - hr, - figure, - p, - pre { - margin: 0; - } - - button { - background: transparent; - padding: 0; - } - - fieldset { - margin: 0; - padding: 0; - } - - ol, - ul { - margin: 0; - padding: 0; - } - - textarea { - resize: vertical; - } - - button, - [role="button"] { - cursor: pointer; - } - - button::-moz-focus-inner { - border: 0 !important; - } - - table { - border-collapse: collapse; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-size: inherit; - font-weight: inherit; - } - - button, - input, - optgroup, - select, - textarea { - padding: 0; - line-height: inherit; - color: inherit; - } - - img, - svg, - video, - canvas, - audio, - iframe, - embed, - object { - display: block; - } - - img, - video { - max-width: 100%; - height: auto; - } - - [data-js-focus-visible] :focus:not([data-focus-visible-added]):not([data-focus-visible-disabled]) { - outline: none; - box-shadow: none; - } - - select::-ms-expand { - display: none; - } - - ${Or} - `}),pe={light:"chakra-ui-light",dark:"chakra-ui-dark"};function Ct(e={}){const{preventTransition:r=!0}=e,t={setDataset:a=>{const n=r?t.preventTransition():void 0;document.documentElement.dataset.theme=a,document.documentElement.style.colorScheme=a,n==null||n()},setClassName(a){document.body.classList.add(a?pe.dark:pe.light),document.body.classList.remove(a?pe.light:pe.dark)},query(){return window.matchMedia("(prefers-color-scheme: dark)")},getSystemTheme(a){var n;return((n=t.query().matches)!=null?n:a==="dark")?"dark":"light"},addListener(a){const n=t.query(),i=l=>{a(l.matches?"dark":"light")};return typeof n.addListener=="function"?n.addListener(i):n.addEventListener("change",i),()=>{typeof n.removeListener=="function"?n.removeListener(i):n.removeEventListener("change",i)}},preventTransition(){const a=document.createElement("style");return a.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(a),()=>{window.getComputedStyle(document.body),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.head.removeChild(a)})})}}};return t}var zt="chakra-ui-color-mode";function At(e){return{ssr:!1,type:"localStorage",get(r){if(!(globalThis!=null&&globalThis.document))return r;let t;try{t=localStorage.getItem(e)||r}catch{}return t||r},set(r){try{localStorage.setItem(e,r)}catch{}}}}var Pt=At(zt),lr=()=>{};function sr(e,r){return e.type==="cookie"&&e.ssr?e.get(r):r}function qr(e){const{value:r,children:t,options:{useSystemColorMode:a,initialColorMode:n,disableTransitionOnChange:i}={},colorModeManager:l=Pt}=e,d=n==="dark"?"dark":"light",[c,$]=_.useState(()=>sr(l,d)),[g,h]=_.useState(()=>sr(l)),{getSystemTheme:k,setClassName:F,setDataset:me,addListener:nr}=_.useMemo(()=>Ct({preventTransition:i}),[i]),ge=n==="system"&&!c?g:c,I=_.useCallback(re=>{const he=re==="system"?k():re;$(he),F(he==="dark"),me(he),l.set(he)},[l,k,F,me]);yt(()=>{n==="system"&&h(k())},[]),_.useEffect(()=>{const re=l.get();if(re){I(re);return}if(n==="system"){I("system");return}I(d)},[l,d,n,I]);const ir=_.useCallback(()=>{I(ge==="dark"?"light":"dark")},[ge,I]);_.useEffect(()=>{if(a)return nr(I)},[a,nr,I]);const ct=_.useMemo(()=>({colorMode:r??ge,toggleColorMode:r?lr:ir,setColorMode:r?lr:I,forced:r!==void 0}),[ge,ir,I,r]);return y.jsx(bt.Provider,{value:ct,children:t})}qr.displayName="ColorModeProvider";var Tt=["borders","breakpoints","colors","components","config","direction","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","shadows","sizes","space","styles","transition","zIndices"];function Ft(e){return Lr(e)?Tt.every(r=>Object.prototype.hasOwnProperty.call(e,r)):!1}var It={hide:-1,auto:"auto",base:0,docked:10,dropdown:1e3,sticky:1100,banner:1200,overlay:1300,modal:1400,popover:1500,skipLink:1600,toast:1700,tooltip:1800},Bt=It,Mt={base:"0em",sm:"30em",md:"48em",lg:"62em",xl:"80em","2xl":"96em"},Et=Mt,Dt={transparent:"transparent",current:"currentColor",black:"#000000",white:"#FFFFFF",whiteAlpha:{50:"rgba(255, 255, 255, 0.04)",100:"rgba(255, 255, 255, 0.06)",200:"rgba(255, 255, 255, 0.08)",300:"rgba(255, 255, 255, 0.16)",400:"rgba(255, 255, 255, 0.24)",500:"rgba(255, 255, 255, 0.36)",600:"rgba(255, 255, 255, 0.48)",700:"rgba(255, 255, 255, 0.64)",800:"rgba(255, 255, 255, 0.80)",900:"rgba(255, 255, 255, 0.92)"},blackAlpha:{50:"rgba(0, 0, 0, 0.04)",100:"rgba(0, 0, 0, 0.06)",200:"rgba(0, 0, 0, 0.08)",300:"rgba(0, 0, 0, 0.16)",400:"rgba(0, 0, 0, 0.24)",500:"rgba(0, 0, 0, 0.36)",600:"rgba(0, 0, 0, 0.48)",700:"rgba(0, 0, 0, 0.64)",800:"rgba(0, 0, 0, 0.80)",900:"rgba(0, 0, 0, 0.92)"},gray:{50:"#F7FAFC",100:"#EDF2F7",200:"#E2E8F0",300:"#CBD5E0",400:"#A0AEC0",500:"#718096",600:"#4A5568",700:"#2D3748",800:"#1A202C",900:"#171923"},red:{50:"#FFF5F5",100:"#FED7D7",200:"#FEB2B2",300:"#FC8181",400:"#F56565",500:"#E53E3E",600:"#C53030",700:"#9B2C2C",800:"#822727",900:"#63171B"},orange:{50:"#FFFAF0",100:"#FEEBC8",200:"#FBD38D",300:"#F6AD55",400:"#ED8936",500:"#DD6B20",600:"#C05621",700:"#9C4221",800:"#7B341E",900:"#652B19"},yellow:{50:"#FFFFF0",100:"#FEFCBF",200:"#FAF089",300:"#F6E05E",400:"#ECC94B",500:"#D69E2E",600:"#B7791F",700:"#975A16",800:"#744210",900:"#5F370E"},green:{50:"#F0FFF4",100:"#C6F6D5",200:"#9AE6B4",300:"#68D391",400:"#48BB78",500:"#38A169",600:"#2F855A",700:"#276749",800:"#22543D",900:"#1C4532"},teal:{50:"#E6FFFA",100:"#B2F5EA",200:"#81E6D9",300:"#4FD1C5",400:"#38B2AC",500:"#319795",600:"#2C7A7B",700:"#285E61",800:"#234E52",900:"#1D4044"},blue:{50:"#ebf8ff",100:"#bee3f8",200:"#90cdf4",300:"#63b3ed",400:"#4299e1",500:"#3182ce",600:"#2b6cb0",700:"#2c5282",800:"#2a4365",900:"#1A365D"},cyan:{50:"#EDFDFD",100:"#C4F1F9",200:"#9DECF9",300:"#76E4F7",400:"#0BC5EA",500:"#00B5D8",600:"#00A3C4",700:"#0987A0",800:"#086F83",900:"#065666"},purple:{50:"#FAF5FF",100:"#E9D8FD",200:"#D6BCFA",300:"#B794F4",400:"#9F7AEA",500:"#805AD5",600:"#6B46C1",700:"#553C9A",800:"#44337A",900:"#322659"},pink:{50:"#FFF5F7",100:"#FED7E2",200:"#FBB6CE",300:"#F687B3",400:"#ED64A6",500:"#D53F8C",600:"#B83280",700:"#97266D",800:"#702459",900:"#521B41"},linkedin:{50:"#E8F4F9",100:"#CFEDFB",200:"#9BDAF3",300:"#68C7EC",400:"#34B3E4",500:"#00A0DC",600:"#008CC9",700:"#0077B5",800:"#005E93",900:"#004471"},facebook:{50:"#E8F4F9",100:"#D9DEE9",200:"#B7C2DA",300:"#6482C0",400:"#4267B2",500:"#385898",600:"#314E89",700:"#29487D",800:"#223B67",900:"#1E355B"},messenger:{50:"#D0E6FF",100:"#B9DAFF",200:"#A2CDFF",300:"#7AB8FF",400:"#2E90FF",500:"#0078FF",600:"#0063D1",700:"#0052AC",800:"#003C7E",900:"#002C5C"},whatsapp:{50:"#dffeec",100:"#b9f5d0",200:"#90edb3",300:"#65e495",400:"#3cdd78",500:"#22c35e",600:"#179848",700:"#0c6c33",800:"#01421c",900:"#001803"},twitter:{50:"#E5F4FD",100:"#C8E9FB",200:"#A8DCFA",300:"#83CDF7",400:"#57BBF5",500:"#1DA1F2",600:"#1A94DA",700:"#1681BF",800:"#136B9E",900:"#0D4D71"},telegram:{50:"#E3F2F9",100:"#C5E4F3",200:"#A2D4EC",300:"#7AC1E4",400:"#47A9DA",500:"#0088CC",600:"#007AB8",700:"#006BA1",800:"#005885",900:"#003F5E"}},jt=Dt,Rt={none:"0",sm:"0.125rem",base:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},Wt=Rt,Ht={xs:"0 0 0 1px rgba(0, 0, 0, 0.05)",sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",outline:"0 0 0 3px rgba(66, 153, 225, 0.6)",inner:"inset 0 2px 4px 0 rgba(0,0,0,0.06)",none:"none","dark-lg":"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px"},Lt=Ht,Vt={common:"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform",colors:"background-color, border-color, color, fill, stroke",dimensions:"width, height",position:"left, right, top, bottom",background:"background-color, background-image, background-position"},Ot={"ease-in":"cubic-bezier(0.4, 0, 1, 1)","ease-out":"cubic-bezier(0, 0, 0.2, 1)","ease-in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},qt={"ultra-fast":"50ms",faster:"100ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"400ms","ultra-slow":"500ms"},Nt={property:Vt,easing:Ot,duration:qt},Gt=Nt,Ut={none:0,sm:"4px",base:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},Yt=Ut,Xt={none:0,"1px":"1px solid","2px":"2px solid","4px":"4px solid","8px":"8px solid"},Kt=Xt,Qt={letterSpacings:{tighter:"-0.05em",tight:"-0.025em",normal:"0",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeights:{normal:"normal",none:1,shorter:1.25,short:1.375,base:1.5,tall:1.625,taller:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},fonts:{heading:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',body:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',mono:'SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'},fontSizes:{"3xs":"0.45rem","2xs":"0.625rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"}},Nr=Qt,Gr={px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},Zt={max:"max-content",min:"min-content",full:"100%","3xs":"14rem","2xs":"16rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem","8xl":"90rem",prose:"60ch"},Jt={sm:"640px",md:"768px",lg:"1024px",xl:"1280px"},eo={...Gr,...Zt,container:Jt},Ur=eo,ro={breakpoints:Et,zIndices:Bt,radii:Wt,blur:Yt,colors:jt,...Nr,sizes:Ur,shadows:Lt,space:Gr,borders:Kt,transition:Gt};function f(e,r={}){let t=!1;function a(){if(!t){t=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function n(...g){a();for(const h of g)r[h]=c(h);return f(e,r)}function i(...g){for(const h of g)h in r||(r[h]=c(h));return f(e,r)}function l(){return Object.fromEntries(Object.entries(r).map(([h,k])=>[h,k.selector]))}function d(){return Object.fromEntries(Object.entries(r).map(([h,k])=>[h,k.className]))}function c(g){const F=`chakra-${(["container","root"].includes(g??"")?[e]:[e,g]).filter(Boolean).join("__")}`;return{className:F,selector:`.${F}`,toString:()=>g}}return{parts:n,toPart:c,extend:i,selectors:l,classnames:d,get keys(){return Object.keys(r)},__type:{}}}var to=f("accordion").parts("root","container","button","panel").extend("icon"),oo=f("alert").parts("title","description","container").extend("icon","spinner"),ao=f("avatar").parts("label","badge","container").extend("excessLabel","group"),no=f("breadcrumb").parts("link","item","container").extend("separator");f("button").parts();var io=f("checkbox").parts("control","icon","container").extend("label");f("progress").parts("track","filledTrack").extend("label");var lo=f("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),so=f("editable").parts("preview","input","textarea"),co=f("form").parts("container","requiredIndicator","helperText"),bo=f("formError").parts("text","icon"),uo=f("input").parts("addon","field","element"),vo=f("list").parts("container","item","icon"),fo=f("menu").parts("button","list","item").extend("groupTitle","command","divider"),mo=f("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),go=f("numberinput").parts("root","field","stepperGroup","stepper");f("pininput").parts("field");var ho=f("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),po=f("progress").parts("label","filledTrack","track"),yo=f("radio").parts("container","control","label"),So=f("select").parts("field","icon"),xo=f("slider").parts("container","track","thumb","filledTrack","mark"),$o=f("stat").parts("container","label","helpText","number","icon"),ko=f("switch").parts("container","track","thumb"),_o=f("table").parts("table","thead","tbody","tr","th","td","tfoot","caption"),wo=f("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator"),Co=f("tag").parts("container","label","closeButton"),zo=f("card").parts("container","header","body","footer");function q(e,r,t){return Math.min(Math.max(e,t),r)}class Ao extends Error{constructor(r){super(`Failed to parse color: "${r}"`)}}var ae=Ao;function Je(e){if(typeof e!="string")throw new ae(e);if(e.trim().toLowerCase()==="transparent")return[0,0,0,0];let r=e.trim();r=Do.test(e)?Fo(e):e;const t=Io.exec(r);if(t){const l=Array.from(t).slice(1);return[...l.slice(0,3).map(d=>parseInt(be(d,2),16)),parseInt(be(l[3]||"f",2),16)/255]}const a=Bo.exec(r);if(a){const l=Array.from(a).slice(1);return[...l.slice(0,3).map(d=>parseInt(d,16)),parseInt(l[3]||"ff",16)/255]}const n=Mo.exec(r);if(n){const l=Array.from(n).slice(1);return[...l.slice(0,3).map(d=>parseInt(d,10)),parseFloat(l[3]||"1")]}const i=Eo.exec(r);if(i){const[l,d,c,$]=Array.from(i).slice(1).map(parseFloat);if(q(0,100,d)!==d)throw new ae(e);if(q(0,100,c)!==c)throw new ae(e);return[...jo(l,d,c),Number.isNaN($)?1:$]}throw new ae(e)}function Po(e){let r=5381,t=e.length;for(;t;)r=r*33^e.charCodeAt(--t);return(r>>>0)%2341}const dr=e=>parseInt(e.replace(/_/g,""),36),To="1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e,r)=>{const t=dr(r.substring(0,3)),a=dr(r.substring(3)).toString(16);let n="";for(let i=0;i<6-a.length;i++)n+="0";return e[t]=`${n}${a}`,e},{});function Fo(e){const r=e.toLowerCase().trim(),t=To[Po(r)];if(!t)throw new ae(e);return`#${t}`}const be=(e,r)=>Array.from(Array(r)).map(()=>e).join(""),Io=new RegExp(`^#${be("([a-f0-9])",3)}([a-f0-9])?$`,"i"),Bo=new RegExp(`^#${be("([a-f0-9]{2})",3)}([a-f0-9]{2})?$`,"i"),Mo=new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${be(",\\s*(\\d+)\\s*",2)}(?:,\\s*([\\d.]+))?\\s*\\)$`,"i"),Eo=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i,Do=/^[a-z]+$/i,cr=e=>Math.round(e*255),jo=(e,r,t)=>{let a=t/100;if(r===0)return[a,a,a].map(cr);const n=(e%360+360)%360/60,i=(1-Math.abs(2*a-1))*(r/100),l=i*(1-Math.abs(n%2-1));let d=0,c=0,$=0;n>=0&&n<1?(d=i,c=l):n>=1&&n<2?(d=l,c=i):n>=2&&n<3?(c=i,$=l):n>=3&&n<4?(c=l,$=i):n>=4&&n<5?(d=l,$=i):n>=5&&n<6&&(d=i,$=l);const g=a-i/2,h=d+g,k=c+g,F=$+g;return[h,k,F].map(cr)};function Ro(e,r,t,a){return`rgba(${q(0,255,e).toFixed()}, ${q(0,255,r).toFixed()}, ${q(0,255,t).toFixed()}, ${parseFloat(q(0,1,a).toFixed(3))})`}function Wo(e,r){const[t,a,n,i]=Je(e);return Ro(t,a,n,i-r)}function Ho(e){const[r,t,a,n]=Je(e);let i=l=>{const d=q(0,255,l).toString(16);return d.length===1?`0${d}`:d};return`#${i(r)}${i(t)}${i(a)}${n<1?i(Math.round(n*255)):""}`}function Lo(e,r,t,a,n){for(r=r.split?r.split("."):r,a=0;aObject.keys(e).length===0,w=(e,r,t)=>{const a=Lo(e,`colors.${r}`,r);try{return Ho(a),a}catch{return t??"#000000"}},Oo=e=>{const[r,t,a]=Je(e);return(r*299+t*587+a*114)/1e3},qo=e=>r=>{const t=w(r,e);return Oo(t)<128?"dark":"light"},No=e=>r=>qo(e)(r)==="dark",ee=(e,r)=>t=>{const a=w(t,e);return Wo(a,1-r)};function br(e="1rem",r="rgba(255, 255, 255, 0.15)"){return{backgroundImage:`linear-gradient( - 45deg, - ${r} 25%, - transparent 25%, - transparent 50%, - ${r} 50%, - ${r} 75%, - transparent 75%, - transparent - )`,backgroundSize:`${e} ${e}`}}var Go=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`;function Uo(e){const r=Go();return!e||Vo(e)?r:e.string&&e.colors?Xo(e.string,e.colors):e.string&&!e.colors?Yo(e.string):e.colors&&!e.string?Ko(e.colors):r}function Yo(e){let r=0;if(e.length===0)return r.toString();for(let a=0;a>a*8&255;t+=`00${n.toString(16)}`.substr(-2)}return t}function Xo(e,r){let t=0;if(e.length===0)return r[0];for(let a=0;at.colorMode==="dark"?r:e}function er(e){const{orientation:r,vertical:t,horizontal:a}=e;return r?r==="vertical"?t:a:{}}function Yr(e){return Lr(e)&&e.reference?e.reference:String(e)}var Be=(e,...r)=>r.map(Yr).join(` ${e} `).replace(/calc/g,""),ur=(...e)=>`calc(${Be("+",...e)})`,vr=(...e)=>`calc(${Be("-",...e)})`,Xe=(...e)=>`calc(${Be("*",...e)})`,fr=(...e)=>`calc(${Be("/",...e)})`,mr=e=>{const r=Yr(e);return r!=null&&!Number.isNaN(parseFloat(r))?String(r).startsWith("-")?String(r).slice(1):`-${r}`:Xe(r,-1)},D=Object.assign(e=>({add:(...r)=>D(ur(e,...r)),subtract:(...r)=>D(vr(e,...r)),multiply:(...r)=>D(Xe(e,...r)),divide:(...r)=>D(fr(e,...r)),negate:()=>D(mr(e)),toString:()=>e.toString()}),{add:ur,subtract:vr,multiply:Xe,divide:fr,negate:mr});function Qo(e){return!Number.isInteger(parseFloat(e.toString()))}function Zo(e,r="-"){return e.replace(/\s+/g,r)}function Xr(e){const r=Zo(e.toString());return r.includes("\\.")?e:Qo(e)?r.replace(".","\\."):e}function Jo(e,r=""){return[r,Xr(e)].filter(Boolean).join("-")}function ea(e,r){return`var(${Xr(e)}${r?`, ${r}`:""})`}function ra(e,r=""){return`--${Jo(e,r)}`}function x(e,r){const t=ra(e,r==null?void 0:r.prefix);return{variable:t,reference:ea(t,ta(r==null?void 0:r.fallback))}}function ta(e){return typeof e=="string"?e:e==null?void 0:e.reference}var{defineMultiStyleConfig:oa,definePartsStyle:we}=b(ko.keys),le=x("switch-track-width"),N=x("switch-track-height"),De=x("switch-track-diff"),aa=D.subtract(le,N),Ke=x("switch-thumb-x"),te=x("switch-bg"),na=o(e=>{const{colorScheme:r}=e;return{borderRadius:"full",p:"0.5",width:[le.reference],height:[N.reference],transitionProperty:"common",transitionDuration:"fast",[te.variable]:"colors.gray.300",_dark:{[te.variable]:"colors.whiteAlpha.400"},_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed"},_checked:{[te.variable]:`colors.${r}.500`,_dark:{[te.variable]:`colors.${r}.200`}},bg:te.reference}}),ia=o({bg:"white",transitionProperty:"transform",transitionDuration:"normal",borderRadius:"inherit",width:[N.reference],height:[N.reference],_checked:{transform:`translateX(${Ke.reference})`}}),la=we(e=>({container:{[De.variable]:aa,[Ke.variable]:De.reference,_rtl:{[Ke.variable]:D(De).negate().toString()}},track:na(e),thumb:ia})),sa={sm:we({container:{[le.variable]:"1.375rem",[N.variable]:"sizes.3"}}),md:we({container:{[le.variable]:"1.875rem",[N.variable]:"sizes.4"}}),lg:we({container:{[le.variable]:"2.875rem",[N.variable]:"sizes.6"}})},da=oa({baseStyle:la,sizes:sa,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:ca,definePartsStyle:X}=b(_o.keys),ba=X({table:{fontVariantNumeric:"lining-nums tabular-nums",borderCollapse:"collapse",width:"full"},th:{fontFamily:"heading",fontWeight:"bold",textTransform:"uppercase",letterSpacing:"wider",textAlign:"start"},td:{textAlign:"start"},caption:{mt:4,fontFamily:"heading",textAlign:"center",fontWeight:"medium"}}),Pe=o({"&[data-is-numeric=true]":{textAlign:"end"}}),ua=X(e=>{const{colorScheme:r}=e;return{th:{color:s("gray.600","gray.400")(e),borderBottom:"1px",borderColor:s(`${r}.100`,`${r}.700`)(e),...Pe},td:{borderBottom:"1px",borderColor:s(`${r}.100`,`${r}.700`)(e),...Pe},caption:{color:s("gray.600","gray.100")(e)},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),va=X(e=>{const{colorScheme:r}=e;return{th:{color:s("gray.600","gray.400")(e),borderBottom:"1px",borderColor:s(`${r}.100`,`${r}.700`)(e),...Pe},td:{borderBottom:"1px",borderColor:s(`${r}.100`,`${r}.700`)(e),...Pe},caption:{color:s("gray.600","gray.100")(e)},tbody:{tr:{"&:nth-of-type(odd)":{"th, td":{borderBottomWidth:"1px",borderColor:s(`${r}.100`,`${r}.700`)(e)},td:{background:s(`${r}.100`,`${r}.700`)(e)}}}},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),fa={simple:ua,striped:va,unstyled:o({})},ma={sm:X({th:{px:"4",py:"1",lineHeight:"4",fontSize:"xs"},td:{px:"4",py:"2",fontSize:"sm",lineHeight:"4"},caption:{px:"4",py:"2",fontSize:"xs"}}),md:X({th:{px:"6",py:"3",lineHeight:"4",fontSize:"xs"},td:{px:"6",py:"4",lineHeight:"5"},caption:{px:"6",py:"2",fontSize:"sm"}}),lg:X({th:{px:"8",py:"4",lineHeight:"5",fontSize:"sm"},td:{px:"8",py:"5",lineHeight:"6"},caption:{px:"6",py:"2",fontSize:"md"}})},ga=ca({baseStyle:ba,variants:fa,sizes:ma,defaultProps:{variant:"simple",size:"md",colorScheme:"gray"}}),z=v("tabs-color"),T=v("tabs-bg"),ye=v("tabs-border-color"),{defineMultiStyleConfig:ha,definePartsStyle:E}=b(wo.keys),pa=o(e=>{const{orientation:r}=e;return{display:r==="vertical"?"flex":"block"}}),ya=o(e=>{const{isFitted:r}=e;return{flex:r?1:void 0,transitionProperty:"common",transitionDuration:"normal",_focusVisible:{zIndex:1,boxShadow:"outline"},_disabled:{cursor:"not-allowed",opacity:.4}}}),Sa=o(e=>{const{align:r="start",orientation:t}=e;return{justifyContent:{end:"flex-end",center:"center",start:"flex-start"}[r],flexDirection:t==="vertical"?"column":"row"}}),xa=o({p:4}),$a=E(e=>({root:pa(e),tab:ya(e),tablist:Sa(e),tabpanel:xa})),ka={sm:E({tab:{py:1,px:4,fontSize:"sm"}}),md:E({tab:{fontSize:"md",py:2,px:4}}),lg:E({tab:{fontSize:"lg",py:3,px:4}})},_a=E(e=>{const{colorScheme:r,orientation:t}=e,a=t==="vertical",n=t==="vertical"?"borderStart":"borderBottom",i=a?"marginStart":"marginBottom";return{tablist:{[n]:"2px solid",borderColor:"inherit"},tab:{[n]:"2px solid",borderColor:"transparent",[i]:"-2px",_selected:{[z.variable]:`colors.${r}.600`,_dark:{[z.variable]:`colors.${r}.300`},borderColor:"currentColor"},_active:{[T.variable]:"colors.gray.200",_dark:{[T.variable]:"colors.whiteAlpha.300"}},_disabled:{_active:{bg:"none"}},color:z.reference,bg:T.reference}}}),wa=E(e=>{const{colorScheme:r}=e;return{tab:{borderTopRadius:"md",border:"1px solid",borderColor:"transparent",mb:"-1px",[ye.variable]:"transparent",_selected:{[z.variable]:`colors.${r}.600`,[ye.variable]:"colors.white",_dark:{[z.variable]:`colors.${r}.300`,[ye.variable]:"colors.gray.800"},borderColor:"inherit",borderBottomColor:ye.reference},color:z.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),Ca=E(e=>{const{colorScheme:r}=e;return{tab:{border:"1px solid",borderColor:"inherit",[T.variable]:"colors.gray.50",_dark:{[T.variable]:"colors.whiteAlpha.50"},mb:"-1px",_notLast:{marginEnd:"-1px"},_selected:{[T.variable]:"colors.white",[z.variable]:`colors.${r}.600`,_dark:{[T.variable]:"colors.gray.800",[z.variable]:`colors.${r}.300`},borderColor:"inherit",borderTopColor:"currentColor",borderBottomColor:"transparent"},color:z.reference,bg:T.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),za=E(e=>{const{colorScheme:r,theme:t}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",color:"gray.600",_selected:{color:w(t,`${r}.700`),bg:w(t,`${r}.100`)}}}}),Aa=E(e=>{const{colorScheme:r}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",[z.variable]:"colors.gray.600",_dark:{[z.variable]:"inherit"},_selected:{[z.variable]:"colors.white",[T.variable]:`colors.${r}.600`,_dark:{[z.variable]:"colors.gray.800",[T.variable]:`colors.${r}.300`}},color:z.reference,bg:T.reference}}}),Pa=E({}),Ta={line:_a,enclosed:wa,"enclosed-colored":Ca,"soft-rounded":za,"solid-rounded":Aa,unstyled:Pa},Fa=ha({baseStyle:$a,sizes:ka,variants:Ta,defaultProps:{size:"md",variant:"line",colorScheme:"blue"}}),Ia=o({px:1,textTransform:"uppercase",fontSize:"xs",borderRadius:"sm",fontWeight:"bold"}),K=v("badge-bg"),M=v("badge-color"),Ba=o(e=>{const{colorScheme:r,theme:t}=e,a=ee(`${r}.500`,.6)(t);return{[K.variable]:`colors.${r}.500`,[M.variable]:"colors.white",_dark:{[K.variable]:a,[M.variable]:"colors.whiteAlpha.800"},bg:K.reference,color:M.reference}}),Ma=o(e=>{const{colorScheme:r,theme:t}=e,a=ee(`${r}.200`,.16)(t);return{[K.variable]:`colors.${r}.100`,[M.variable]:`colors.${r}.800`,_dark:{[K.variable]:a,[M.variable]:`colors.${r}.200`},bg:K.reference,color:M.reference}}),Ea=o(e=>{const{colorScheme:r,theme:t}=e,a=ee(`${r}.200`,.8)(t);return{[M.variable]:`colors.${r}.500`,_dark:{[M.variable]:a},color:M.reference,boxShadow:`inset 0 0 0px 1px ${M.reference}`}}),Da={solid:Ba,subtle:Ma,outline:Ea},se=S({baseStyle:Ia,variants:Da,defaultProps:{variant:"subtle",colorScheme:"gray"}}),{defineMultiStyleConfig:ja,definePartsStyle:G}=b(Co.keys),Ra=o({fontWeight:"medium",lineHeight:1.2,outline:0,borderRadius:"md",_focusVisible:{boxShadow:"outline"}}),Wa=o({lineHeight:1.2,overflow:"visible"}),Ha=o({fontSize:"lg",w:"5",h:"5",transitionProperty:"common",transitionDuration:"normal",borderRadius:"full",marginStart:"1.5",marginEnd:"-1",opacity:.5,_disabled:{opacity:.4},_focusVisible:{boxShadow:"outline",bg:"rgba(0, 0, 0, 0.14)"},_hover:{opacity:.8},_active:{opacity:1}}),La=G({container:Ra,label:Wa,closeButton:Ha}),Va={sm:G({container:{minH:"5",minW:"5",fontSize:"xs",px:"2"},closeButton:{marginEnd:"-2px",marginStart:"0.35rem"}}),md:G({container:{minH:"6",minW:"6",fontSize:"sm",px:"2"}}),lg:G({container:{minH:"8",minW:"8",fontSize:"md",px:"3"}})},Oa={subtle:G(e=>{var r;return{container:(r=se.variants)==null?void 0:r.subtle(e)}}),solid:G(e=>{var r;return{container:(r=se.variants)==null?void 0:r.solid(e)}}),outline:G(e=>{var r;return{container:(r=se.variants)==null?void 0:r.outline(e)}})},qa=ja({variants:Oa,baseStyle:La,sizes:Va,defaultProps:{size:"md",variant:"subtle",colorScheme:"gray"}}),{definePartsStyle:j,defineMultiStyleConfig:Na}=b(uo.keys),Ga=j({field:{width:"100%",minWidth:0,outline:0,position:"relative",appearance:"none",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed"}}}),H={lg:o({fontSize:"lg",px:"4",h:"12",borderRadius:"md"}),md:o({fontSize:"md",px:"4",h:"10",borderRadius:"md"}),sm:o({fontSize:"sm",px:"3",h:"8",borderRadius:"sm"}),xs:o({fontSize:"xs",px:"2",h:"6",borderRadius:"sm"})},Ua={lg:j({field:H.lg,addon:H.lg}),md:j({field:H.md,addon:H.md}),sm:j({field:H.sm,addon:H.sm}),xs:j({field:H.xs,addon:H.xs})};function rr(e){const{focusBorderColor:r,errorBorderColor:t}=e;return{focusBorderColor:r||s("blue.500","blue.300")(e),errorBorderColor:t||s("red.500","red.300")(e)}}var Ya=j(e=>{const{theme:r}=e,{focusBorderColor:t,errorBorderColor:a}=rr(e);return{field:{border:"1px solid",borderColor:"inherit",bg:"inherit",_hover:{borderColor:s("gray.300","whiteAlpha.400")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:w(r,a),boxShadow:`0 0 0 1px ${w(r,a)}`},_focusVisible:{zIndex:1,borderColor:w(r,t),boxShadow:`0 0 0 1px ${w(r,t)}`}},addon:{border:"1px solid",borderColor:s("inherit","whiteAlpha.50")(e),bg:s("gray.100","whiteAlpha.300")(e)}}}),Xa=j(e=>{const{theme:r}=e,{focusBorderColor:t,errorBorderColor:a}=rr(e);return{field:{border:"2px solid",borderColor:"transparent",bg:s("gray.100","whiteAlpha.50")(e),_hover:{bg:s("gray.200","whiteAlpha.100")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:w(r,a)},_focusVisible:{bg:"transparent",borderColor:w(r,t)}},addon:{border:"2px solid",borderColor:"transparent",bg:s("gray.100","whiteAlpha.50")(e)}}}),Ka=j(e=>{const{theme:r}=e,{focusBorderColor:t,errorBorderColor:a}=rr(e);return{field:{borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:w(r,a),boxShadow:`0px 1px 0px 0px ${w(r,a)}`},_focusVisible:{borderColor:w(r,t),boxShadow:`0px 1px 0px 0px ${w(r,t)}`}},addon:{borderBottom:"2px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent"}}}),Qa=j({field:{bg:"transparent",px:"0",height:"auto"},addon:{bg:"transparent",px:"0",height:"auto"}}),Za={outline:Ya,filled:Xa,flushed:Ka,unstyled:Qa},u=Na({baseStyle:Ga,sizes:Ua,variants:Za,defaultProps:{size:"md",variant:"outline"}}),gr,Ja=o({...(gr=u.baseStyle)==null?void 0:gr.field,paddingY:"2",minHeight:"20",lineHeight:"short",verticalAlign:"top"}),hr,pr,en={outline:o(e=>{var r,t;return(t=(r=u.variants)==null?void 0:r.outline(e).field)!=null?t:{}}),flushed:o(e=>{var r,t;return(t=(r=u.variants)==null?void 0:r.flushed(e).field)!=null?t:{}}),filled:o(e=>{var r,t;return(t=(r=u.variants)==null?void 0:r.filled(e).field)!=null?t:{}}),unstyled:(pr=(hr=u.variants)==null?void 0:hr.unstyled.field)!=null?pr:{}},yr,Sr,xr,$r,kr,_r,wr,Cr,rn={xs:(Sr=(yr=u.sizes)==null?void 0:yr.xs.field)!=null?Sr:{},sm:($r=(xr=u.sizes)==null?void 0:xr.sm.field)!=null?$r:{},md:(_r=(kr=u.sizes)==null?void 0:kr.md.field)!=null?_r:{},lg:(Cr=(wr=u.sizes)==null?void 0:wr.lg.field)!=null?Cr:{}},tn=S({baseStyle:Ja,sizes:rn,variants:en,defaultProps:{size:"md",variant:"outline"}}),Se=x("tooltip-bg"),je=x("tooltip-fg"),on=x("popper-arrow-bg"),an=o({bg:Se.reference,color:je.reference,[Se.variable]:"colors.gray.700",[je.variable]:"colors.whiteAlpha.900",_dark:{[Se.variable]:"colors.gray.300",[je.variable]:"colors.gray.900"},[on.variable]:Se.reference,px:"2",py:"0.5",borderRadius:"sm",fontWeight:"medium",fontSize:"sm",boxShadow:"md",maxW:"xs",zIndex:"tooltip"}),nn=S({baseStyle:an}),{defineMultiStyleConfig:ln,definePartsStyle:ne}=b(po.keys),sn=o(e=>{const{colorScheme:r,theme:t,isIndeterminate:a,hasStripe:n}=e,i=s(br(),br("1rem","rgba(0,0,0,0.1)"))(e),l=s(`${r}.500`,`${r}.200`)(e),d=`linear-gradient( - to right, - transparent 0%, - ${w(t,l)} 50%, - transparent 100% - )`;return{...!a&&n&&i,...a?{bgImage:d}:{bgColor:l}}}),dn=o({lineHeight:"1",fontSize:"0.25em",fontWeight:"bold",color:"white"}),cn=o(e=>({bg:s("gray.100","whiteAlpha.300")(e)})),bn=o(e=>({transitionProperty:"common",transitionDuration:"slow",...sn(e)})),un=ne(e=>({label:dn,filledTrack:bn(e),track:cn(e)})),vn={xs:ne({track:{h:"1"}}),sm:ne({track:{h:"2"}}),md:ne({track:{h:"3"}}),lg:ne({track:{h:"4"}})},fn=ln({sizes:vn,baseStyle:un,defaultProps:{size:"md",colorScheme:"blue"}}),mn=e=>typeof e=="function";function C(e,...r){return mn(e)?e(...r):e}var{definePartsStyle:Ce,defineMultiStyleConfig:gn}=b(io.keys),de=v("checkbox-size"),hn=o(e=>{const{colorScheme:r}=e;return{w:de.reference,h:de.reference,transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:s(`${r}.500`,`${r}.200`)(e),borderColor:s(`${r}.500`,`${r}.200`)(e),color:s("white","gray.900")(e),_hover:{bg:s(`${r}.600`,`${r}.300`)(e),borderColor:s(`${r}.600`,`${r}.300`)(e)},_disabled:{borderColor:s("gray.200","transparent")(e),bg:s("gray.200","whiteAlpha.300")(e),color:s("gray.500","whiteAlpha.500")(e)}},_indeterminate:{bg:s(`${r}.500`,`${r}.200`)(e),borderColor:s(`${r}.500`,`${r}.200`)(e),color:s("white","gray.900")(e)},_disabled:{bg:s("gray.100","whiteAlpha.100")(e),borderColor:s("gray.100","transparent")(e)},_focusVisible:{boxShadow:"outline"},_invalid:{borderColor:s("red.500","red.300")(e)}}}),pn=o({_disabled:{cursor:"not-allowed"}}),yn=o({userSelect:"none",_disabled:{opacity:.4}}),Sn=o({transitionProperty:"transform",transitionDuration:"normal"}),xn=Ce(e=>({icon:Sn,container:pn,control:C(hn,e),label:yn})),$n={sm:Ce({control:{[de.variable]:"sizes.3"},label:{fontSize:"sm"},icon:{fontSize:"3xs"}}),md:Ce({control:{[de.variable]:"sizes.4"},label:{fontSize:"md"},icon:{fontSize:"2xs"}}),lg:Ce({control:{[de.variable]:"sizes.5"},label:{fontSize:"lg"},icon:{fontSize:"2xs"}})},Te=gn({baseStyle:xn,sizes:$n,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:kn,definePartsStyle:ze}=b(yo.keys),_n=o(e=>{var r;const t=(r=C(Te.baseStyle,e))==null?void 0:r.control;return{...t,borderRadius:"full",_checked:{...t==null?void 0:t._checked,_before:{content:'""',display:"inline-block",pos:"relative",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}}}}),wn=ze(e=>{var r,t,a,n;return{label:(t=(r=Te).baseStyle)==null?void 0:t.call(r,e).label,container:(n=(a=Te).baseStyle)==null?void 0:n.call(a,e).container,control:_n(e)}}),Cn={md:ze({control:{w:"4",h:"4"},label:{fontSize:"md"}}),lg:ze({control:{w:"5",h:"5"},label:{fontSize:"lg"}}),sm:ze({control:{width:"3",height:"3"},label:{fontSize:"sm"}})},zn=kn({baseStyle:wn,sizes:Cn,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:An,definePartsStyle:Pn}=b(So.keys),xe=v("select-bg"),zr,Tn=o({...(zr=u.baseStyle)==null?void 0:zr.field,appearance:"none",paddingBottom:"1px",lineHeight:"normal",bg:xe.reference,[xe.variable]:"colors.white",_dark:{[xe.variable]:"colors.gray.700"},"> option, > optgroup":{bg:xe.reference}}),Fn=o({width:"6",height:"100%",insetEnd:"2",position:"relative",color:"currentColor",fontSize:"xl",_disabled:{opacity:.5}}),In=Pn({field:Tn,icon:Fn}),$e=o({paddingInlineEnd:"8"}),Ar,Pr,Tr,Fr,Ir,Br,Mr,Er,Bn={lg:{...(Ar=u.sizes)==null?void 0:Ar.lg,field:{...(Pr=u.sizes)==null?void 0:Pr.lg.field,...$e}},md:{...(Tr=u.sizes)==null?void 0:Tr.md,field:{...(Fr=u.sizes)==null?void 0:Fr.md.field,...$e}},sm:{...(Ir=u.sizes)==null?void 0:Ir.sm,field:{...(Br=u.sizes)==null?void 0:Br.sm.field,...$e}},xs:{...(Mr=u.sizes)==null?void 0:Mr.xs,field:{...(Er=u.sizes)==null?void 0:Er.xs.field,...$e},icon:{insetEnd:"1"}}},Mn=An({baseStyle:In,sizes:Bn,variants:u.variants,defaultProps:u.defaultProps}),Re=v("skeleton-start-color"),We=v("skeleton-end-color"),En=o({[Re.variable]:"colors.gray.100",[We.variable]:"colors.gray.400",_dark:{[Re.variable]:"colors.gray.800",[We.variable]:"colors.gray.600"},background:Re.reference,borderColor:We.reference,opacity:.7,borderRadius:"sm"}),Dn=S({baseStyle:En}),He=v("skip-link-bg"),jn=o({borderRadius:"md",fontWeight:"semibold",_focusVisible:{boxShadow:"outline",padding:"4",position:"fixed",top:"6",insetStart:"6",[He.variable]:"colors.white",_dark:{[He.variable]:"colors.gray.700"},bg:He.reference}}),Rn=S({baseStyle:jn}),{defineMultiStyleConfig:Wn,definePartsStyle:Me}=b(xo.keys),ue=v("slider-thumb-size"),ve=v("slider-track-size"),V=v("slider-bg"),Hn=o(e=>{const{orientation:r}=e;return{display:"inline-block",position:"relative",cursor:"pointer",_disabled:{opacity:.6,cursor:"default",pointerEvents:"none"},...er({orientation:r,vertical:{h:"100%"},horizontal:{w:"100%"}})}}),Ln=o(e=>({...er({orientation:e.orientation,horizontal:{h:ve.reference},vertical:{w:ve.reference}}),overflow:"hidden",borderRadius:"sm",[V.variable]:"colors.gray.200",_dark:{[V.variable]:"colors.whiteAlpha.200"},_disabled:{[V.variable]:"colors.gray.300",_dark:{[V.variable]:"colors.whiteAlpha.300"}},bg:V.reference})),Vn=o(e=>{const{orientation:r}=e;return{...er({orientation:r,vertical:{left:"50%",transform:"translateX(-50%)",_active:{transform:"translateX(-50%) scale(1.15)"}},horizontal:{top:"50%",transform:"translateY(-50%)",_active:{transform:"translateY(-50%) scale(1.15)"}}}),w:ue.reference,h:ue.reference,display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",outline:0,zIndex:1,borderRadius:"full",bg:"white",boxShadow:"base",border:"1px solid",borderColor:"transparent",transitionProperty:"transform",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{bg:"gray.300"}}}),On=o(e=>{const{colorScheme:r}=e;return{width:"inherit",height:"inherit",[V.variable]:`colors.${r}.500`,_dark:{[V.variable]:`colors.${r}.200`},bg:V.reference}}),qn=Me(e=>({container:Hn(e),track:Ln(e),thumb:Vn(e),filledTrack:On(e)})),Nn=Me({container:{[ue.variable]:"sizes.4",[ve.variable]:"sizes.1"}}),Gn=Me({container:{[ue.variable]:"sizes.3.5",[ve.variable]:"sizes.1"}}),Un=Me({container:{[ue.variable]:"sizes.2.5",[ve.variable]:"sizes.0.5"}}),Yn={lg:Nn,md:Gn,sm:Un},Xn=Wn({baseStyle:qn,sizes:Yn,defaultProps:{size:"md",colorScheme:"blue"}}),O=x("spinner-size"),Kn=o({width:[O.reference],height:[O.reference]}),Qn={xs:o({[O.variable]:"sizes.3"}),sm:o({[O.variable]:"sizes.4"}),md:o({[O.variable]:"sizes.6"}),lg:o({[O.variable]:"sizes.8"}),xl:o({[O.variable]:"sizes.12"})},Zn=S({baseStyle:Kn,sizes:Qn,defaultProps:{size:"md"}}),{defineMultiStyleConfig:Jn,definePartsStyle:Kr}=b($o.keys),ei=o({fontWeight:"medium"}),ri=o({opacity:.8,marginBottom:"2"}),ti=o({verticalAlign:"baseline",fontWeight:"semibold"}),oi=o({marginEnd:1,w:"3.5",h:"3.5",verticalAlign:"middle"}),ai=Kr({container:{},label:ei,helpText:ri,number:ti,icon:oi}),ni={md:Kr({label:{fontSize:"sm"},helpText:{fontSize:"sm"},number:{fontSize:"2xl"}})},ii=Jn({baseStyle:ai,sizes:ni,defaultProps:{size:"md"}}),Le=v("kbd-bg"),li=o({[Le.variable]:"colors.gray.100",_dark:{[Le.variable]:"colors.whiteAlpha.100"},bg:Le.reference,borderRadius:"md",borderWidth:"1px",borderBottomWidth:"3px",fontSize:"0.8em",fontWeight:"bold",lineHeight:"normal",px:"0.4em",whiteSpace:"nowrap"}),si=S({baseStyle:li}),di=o({transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}}),ci=S({baseStyle:di}),{defineMultiStyleConfig:bi,definePartsStyle:ui}=b(vo.keys),vi=o({marginEnd:"2",display:"inline",verticalAlign:"text-bottom"}),fi=ui({icon:vi}),mi=bi({baseStyle:fi}),{defineMultiStyleConfig:gi,definePartsStyle:hi}=b(fo.keys),B=v("menu-bg"),Ve=v("menu-shadow"),pi=o({[B.variable]:"#fff",[Ve.variable]:"shadows.sm",_dark:{[B.variable]:"colors.gray.700",[Ve.variable]:"shadows.dark-lg"},color:"inherit",minW:"3xs",py:"2",zIndex:1,borderRadius:"md",borderWidth:"1px",bg:B.reference,boxShadow:Ve.reference}),yi=o({py:"1.5",px:"3",transitionProperty:"background",transitionDuration:"ultra-fast",transitionTimingFunction:"ease-in",_focus:{[B.variable]:"colors.gray.100",_dark:{[B.variable]:"colors.whiteAlpha.100"}},_active:{[B.variable]:"colors.gray.200",_dark:{[B.variable]:"colors.whiteAlpha.200"}},_expanded:{[B.variable]:"colors.gray.100",_dark:{[B.variable]:"colors.whiteAlpha.100"}},_disabled:{opacity:.4,cursor:"not-allowed"},bg:B.reference}),Si=o({mx:4,my:2,fontWeight:"semibold",fontSize:"sm"}),xi=o({opacity:.6}),$i=o({border:0,borderBottom:"1px solid",borderColor:"inherit",my:"2",opacity:.6}),ki=o({transitionProperty:"common",transitionDuration:"normal"}),_i=hi({button:ki,list:pi,item:yi,groupTitle:Si,command:xi,divider:$i}),wi=gi({baseStyle:_i}),{defineMultiStyleConfig:Ci,definePartsStyle:Qe}=b(mo.keys),zi=o({bg:"blackAlpha.600",zIndex:"modal"}),Ai=o(e=>{const{isCentered:r,scrollBehavior:t}=e;return{display:"flex",zIndex:"modal",justifyContent:"center",alignItems:r?"center":"flex-start",overflow:t==="inside"?"hidden":"auto",overscrollBehaviorY:"none"}}),Pi=o(e=>{const{scrollBehavior:r}=e;return{borderRadius:"md",bg:s("white","gray.700")(e),color:"inherit",my:"16",zIndex:"modal",maxH:r==="inside"?"calc(100% - 7.5rem)":void 0,boxShadow:s("lg","dark-lg")(e)}}),Ti=o({px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"}),Fi=o({position:"absolute",top:"2",insetEnd:"3"}),Ii=o(e=>{const{scrollBehavior:r}=e;return{px:"6",py:"2",flex:"1",overflow:r==="inside"?"auto":void 0}}),Bi=o({px:"6",py:"4"}),Mi=Qe(e=>({overlay:zi,dialogContainer:C(Ai,e),dialog:C(Pi,e),header:Ti,closeButton:Fi,body:C(Ii,e),footer:Bi}));function P(e){return Qe(e==="full"?{dialog:{maxW:"100vw",minH:"$100vh",my:"0",borderRadius:"0"}}:{dialog:{maxW:e}})}var Ei={xs:P("xs"),sm:P("sm"),md:P("md"),lg:P("lg"),xl:P("xl"),"2xl":P("2xl"),"3xl":P("3xl"),"4xl":P("4xl"),"5xl":P("5xl"),"6xl":P("6xl"),full:P("full")},Di=Ci({baseStyle:Mi,sizes:Ei,defaultProps:{size:"md"}}),{defineMultiStyleConfig:ji,definePartsStyle:Qr}=b(go.keys),tr=x("number-input-stepper-width"),Zr=x("number-input-input-padding"),Ri=D(tr).add("0.5rem").toString(),Oe=x("number-input-bg"),qe=x("number-input-color"),Ne=x("number-input-border-color"),Wi=o({[tr.variable]:"sizes.6",[Zr.variable]:Ri}),Hi=o(e=>{var r,t;return(t=(r=C(u.baseStyle,e))==null?void 0:r.field)!=null?t:{}}),Li=o({width:tr.reference}),Vi=o({borderStart:"1px solid",borderStartColor:Ne.reference,color:qe.reference,bg:Oe.reference,[qe.variable]:"colors.chakra-body-text",[Ne.variable]:"colors.chakra-border-color",_dark:{[qe.variable]:"colors.whiteAlpha.800",[Ne.variable]:"colors.whiteAlpha.300"},_active:{[Oe.variable]:"colors.gray.200",_dark:{[Oe.variable]:"colors.whiteAlpha.300"}},_disabled:{opacity:.4,cursor:"not-allowed"}}),Oi=Qr(e=>{var r;return{root:Wi,field:(r=C(Hi,e))!=null?r:{},stepperGroup:Li,stepper:Vi}});function ke(e){var r,t,a;const n=(r=u.sizes)==null?void 0:r[e],i={lg:"md",md:"md",sm:"sm",xs:"sm"},l=(a=(t=n.field)==null?void 0:t.fontSize)!=null?a:"md",d=Nr.fontSizes[l];return Qr({field:{...n.field,paddingInlineEnd:Zr.reference,verticalAlign:"top"},stepper:{fontSize:D(d).multiply(.75).toString(),_first:{borderTopEndRadius:i[e]},_last:{borderBottomEndRadius:i[e],mt:"-1px",borderTopWidth:1}}})}var qi={xs:ke("xs"),sm:ke("sm"),md:ke("md"),lg:ke("lg")},Ni=ji({baseStyle:Oi,sizes:qi,variants:u.variants,defaultProps:u.defaultProps}),Dr,Gi=o({...(Dr=u.baseStyle)==null?void 0:Dr.field,textAlign:"center"}),Ui={lg:o({fontSize:"lg",w:12,h:12,borderRadius:"md"}),md:o({fontSize:"md",w:10,h:10,borderRadius:"md"}),sm:o({fontSize:"sm",w:8,h:8,borderRadius:"sm"}),xs:o({fontSize:"xs",w:6,h:6,borderRadius:"sm"})},jr,Rr,Yi={outline:o(e=>{var r,t,a;return(a=(t=C((r=u.variants)==null?void 0:r.outline,e))==null?void 0:t.field)!=null?a:{}}),flushed:o(e=>{var r,t,a;return(a=(t=C((r=u.variants)==null?void 0:r.flushed,e))==null?void 0:t.field)!=null?a:{}}),filled:o(e=>{var r,t,a;return(a=(t=C((r=u.variants)==null?void 0:r.filled,e))==null?void 0:t.field)!=null?a:{}}),unstyled:(Rr=(jr=u.variants)==null?void 0:jr.unstyled.field)!=null?Rr:{}},Xi=S({baseStyle:Gi,sizes:Ui,variants:Yi,defaultProps:u.defaultProps}),{defineMultiStyleConfig:Ki,definePartsStyle:Qi}=b(ho.keys),_e=x("popper-bg"),Zi=x("popper-arrow-bg"),Wr=x("popper-arrow-shadow-color"),Ji=o({zIndex:10}),el=o({[_e.variable]:"colors.white",bg:_e.reference,[Zi.variable]:_e.reference,[Wr.variable]:"colors.gray.200",_dark:{[_e.variable]:"colors.gray.700",[Wr.variable]:"colors.whiteAlpha.300"},width:"xs",border:"1px solid",borderColor:"inherit",borderRadius:"md",boxShadow:"sm",zIndex:"inherit",_focusVisible:{outline:0,boxShadow:"outline"}}),rl=o({px:3,py:2,borderBottomWidth:"1px"}),tl=o({px:3,py:2}),ol=o({px:3,py:2,borderTopWidth:"1px"}),al=o({position:"absolute",borderRadius:"md",top:1,insetEnd:2,padding:2}),nl=Qi({popper:Ji,content:el,header:rl,body:tl,footer:ol,closeButton:al}),il=Ki({baseStyle:nl}),{definePartsStyle:Ze,defineMultiStyleConfig:ll}=b(lo.keys),Ge=v("drawer-bg"),Ue=v("drawer-box-shadow");function Y(e){return Ze(e==="full"?{dialog:{maxW:"100vw",h:"100vh"}}:{dialog:{maxW:e}})}var sl=o({bg:"blackAlpha.600",zIndex:"overlay"}),dl=o({display:"flex",zIndex:"modal",justifyContent:"center"}),cl=o(e=>{const{isFullHeight:r}=e;return{...r&&{height:"100vh"},zIndex:"modal",maxH:"100vh",color:"inherit",[Ge.variable]:"colors.white",[Ue.variable]:"shadows.lg",_dark:{[Ge.variable]:"colors.gray.700",[Ue.variable]:"shadows.dark-lg"},bg:Ge.reference,boxShadow:Ue.reference}}),bl=o({px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"}),ul=o({position:"absolute",top:"2",insetEnd:"3"}),vl=o({px:"6",py:"2",flex:"1",overflow:"auto"}),fl=o({px:"6",py:"4"}),ml=Ze(e=>({overlay:sl,dialogContainer:dl,dialog:C(cl,e),header:bl,closeButton:ul,body:vl,footer:fl})),gl={xs:Y("xs"),sm:Y("md"),md:Y("lg"),lg:Y("2xl"),xl:Y("4xl"),full:Y("full")},hl=ll({baseStyle:ml,sizes:gl,defaultProps:{size:"xs"}}),{definePartsStyle:pl,defineMultiStyleConfig:yl}=b(so.keys),Sl=o({borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal"}),xl=o({borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}}),$l=o({borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}}),kl=pl({preview:Sl,input:xl,textarea:$l}),_l=yl({baseStyle:kl}),{definePartsStyle:wl,defineMultiStyleConfig:Cl}=b(co.keys),Q=v("form-control-color"),zl=o({marginStart:"1",[Q.variable]:"colors.red.500",_dark:{[Q.variable]:"colors.red.300"},color:Q.reference}),Al=o({mt:"2",[Q.variable]:"colors.gray.600",_dark:{[Q.variable]:"colors.whiteAlpha.600"},color:Q.reference,lineHeight:"normal",fontSize:"sm"}),Pl=wl({container:{width:"100%",position:"relative"},requiredIndicator:zl,helperText:Al}),Tl=Cl({baseStyle:Pl}),{definePartsStyle:Fl,defineMultiStyleConfig:Il}=b(bo.keys),Z=v("form-error-color"),Bl=o({[Z.variable]:"colors.red.500",_dark:{[Z.variable]:"colors.red.300"},color:Z.reference,mt:"2",fontSize:"sm",lineHeight:"normal"}),Ml=o({marginEnd:"0.5em",[Z.variable]:"colors.red.500",_dark:{[Z.variable]:"colors.red.300"},color:Z.reference}),El=Fl({text:Bl,icon:Ml}),Dl=Il({baseStyle:El}),jl=o({fontSize:"md",marginEnd:"3",mb:"2",fontWeight:"medium",transitionProperty:"common",transitionDuration:"normal",opacity:1,_disabled:{opacity:.4}}),Rl=S({baseStyle:jl}),Wl=o({fontFamily:"heading",fontWeight:"bold"}),Hl={"4xl":o({fontSize:["6xl",null,"7xl"],lineHeight:1}),"3xl":o({fontSize:["5xl",null,"6xl"],lineHeight:1}),"2xl":o({fontSize:["4xl",null,"5xl"],lineHeight:[1.2,null,1]}),xl:o({fontSize:["3xl",null,"4xl"],lineHeight:[1.33,null,1.2]}),lg:o({fontSize:["2xl",null,"3xl"],lineHeight:[1.33,null,1.2]}),md:o({fontSize:"xl",lineHeight:1.2}),sm:o({fontSize:"md",lineHeight:1.2}),xs:o({fontSize:"sm",lineHeight:1.2})},Ll=S({baseStyle:Wl,sizes:Hl,defaultProps:{size:"xl"}}),{defineMultiStyleConfig:Vl,definePartsStyle:Ol}=b(no.keys),ql=o({transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}}),Nl=Ol({link:ql}),Gl=Vl({baseStyle:Nl}),Ul=o({lineHeight:"1.2",borderRadius:"md",fontWeight:"semibold",transitionProperty:"common",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{_disabled:{bg:"initial"}}}),Jr=o(e=>{const{colorScheme:r,theme:t}=e;if(r==="gray")return{color:s("inherit","whiteAlpha.900")(e),_hover:{bg:s("gray.100","whiteAlpha.200")(e)},_active:{bg:s("gray.200","whiteAlpha.300")(e)}};const a=ee(`${r}.200`,.12)(t),n=ee(`${r}.200`,.24)(t);return{color:s(`${r}.600`,`${r}.200`)(e),bg:"transparent",_hover:{bg:s(`${r}.50`,a)(e)},_active:{bg:s(`${r}.100`,n)(e)}}}),Yl=o(e=>{const{colorScheme:r}=e,t=s("gray.200","whiteAlpha.300")(e);return{border:"1px solid",borderColor:r==="gray"?t:"currentColor",".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)":{marginEnd:"-1px"},".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)":{marginBottom:"-1px"},...C(Jr,e)}}),Xl={yellow:{bg:"yellow.400",color:"black",hoverBg:"yellow.500",activeBg:"yellow.600"},cyan:{bg:"cyan.400",color:"black",hoverBg:"cyan.500",activeBg:"cyan.600"}},Kl=o(e=>{var r;const{colorScheme:t}=e;if(t==="gray"){const c=s("gray.100","whiteAlpha.200")(e);return{bg:c,_hover:{bg:s("gray.200","whiteAlpha.300")(e),_disabled:{bg:c}},_active:{bg:s("gray.300","whiteAlpha.400")(e)}}}const{bg:a=`${t}.500`,color:n="white",hoverBg:i=`${t}.600`,activeBg:l=`${t}.700`}=(r=Xl[t])!=null?r:{},d=s(a,`${t}.200`)(e);return{bg:d,color:s(n,"gray.800")(e),_hover:{bg:s(i,`${t}.300`)(e),_disabled:{bg:d}},_active:{bg:s(l,`${t}.400`)(e)}}}),Ql=o(e=>{const{colorScheme:r}=e;return{padding:0,height:"auto",lineHeight:"normal",verticalAlign:"baseline",color:s(`${r}.500`,`${r}.200`)(e),_hover:{textDecoration:"underline",_disabled:{textDecoration:"none"}},_active:{color:s(`${r}.700`,`${r}.500`)(e)}}}),Zl=o({bg:"none",color:"inherit",display:"inline",lineHeight:"inherit",m:"0",p:"0"}),Jl={ghost:Jr,outline:Yl,solid:Kl,link:Ql,unstyled:Zl},es={lg:o({h:"12",minW:"12",fontSize:"lg",px:"6"}),md:o({h:"10",minW:"10",fontSize:"md",px:"4"}),sm:o({h:"8",minW:"8",fontSize:"sm",px:"3"}),xs:o({h:"6",minW:"6",fontSize:"xs",px:"2"})},rs=S({baseStyle:Ul,variants:Jl,sizes:es,defaultProps:{variant:"solid",size:"md",colorScheme:"gray"}}),{definePartsStyle:U,defineMultiStyleConfig:ts}=b(zo.keys),Fe=v("card-bg"),R=v("card-padding"),et=v("card-shadow"),Ae=v("card-radius"),rt=v("card-border-width","0"),tt=v("card-border-color"),os=U({container:{[Fe.variable]:"colors.chakra-body-bg",backgroundColor:Fe.reference,boxShadow:et.reference,borderRadius:Ae.reference,color:"chakra-body-text",borderWidth:rt.reference,borderColor:tt.reference},body:{padding:R.reference,flex:"1 1 0%"},header:{padding:R.reference},footer:{padding:R.reference}}),as={sm:U({container:{[Ae.variable]:"radii.base",[R.variable]:"space.3"}}),md:U({container:{[Ae.variable]:"radii.md",[R.variable]:"space.5"}}),lg:U({container:{[Ae.variable]:"radii.xl",[R.variable]:"space.7"}})},ns={elevated:U({container:{[et.variable]:"shadows.base",_dark:{[Fe.variable]:"colors.gray.700"}}}),outline:U({container:{[rt.variable]:"1px",[tt.variable]:"colors.chakra-border-color"}}),filled:U({container:{[Fe.variable]:"colors.chakra-subtle-bg"}}),unstyled:{body:{[R.variable]:0},header:{[R.variable]:0},footer:{[R.variable]:0}}},is=ts({baseStyle:os,variants:ns,sizes:as,defaultProps:{variant:"elevated",size:"md"}}),ce=x("close-button-size"),oe=x("close-button-bg"),ls=o({w:[ce.reference],h:[ce.reference],borderRadius:"md",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{[oe.variable]:"colors.blackAlpha.100",_dark:{[oe.variable]:"colors.whiteAlpha.100"}},_active:{[oe.variable]:"colors.blackAlpha.200",_dark:{[oe.variable]:"colors.whiteAlpha.200"}},_focusVisible:{boxShadow:"outline"},bg:oe.reference}),ss={lg:o({[ce.variable]:"sizes.10",fontSize:"md"}),md:o({[ce.variable]:"sizes.8",fontSize:"xs"}),sm:o({[ce.variable]:"sizes.6",fontSize:"2xs"})},ds=S({baseStyle:ls,sizes:ss,defaultProps:{size:"md"}}),{variants:cs,defaultProps:bs}=se,us=o({fontFamily:"mono",fontSize:"sm",px:"0.2em",borderRadius:"sm"}),vs=S({baseStyle:us,variants:cs,defaultProps:bs}),fs=o({w:"100%",mx:"auto",maxW:"prose",px:"4"}),ms=S({baseStyle:fs}),gs=o({opacity:.6,borderColor:"inherit"}),hs=o({borderStyle:"solid"}),ps=o({borderStyle:"dashed"}),ys={solid:hs,dashed:ps},Ss=S({baseStyle:gs,variants:ys,defaultProps:{variant:"solid"}}),{definePartsStyle:xs,defineMultiStyleConfig:$s}=b(to.keys),ks=o({borderTopWidth:"1px",borderColor:"inherit",_last:{borderBottomWidth:"1px"}}),_s=o({transitionProperty:"common",transitionDuration:"normal",fontSize:"md",_focusVisible:{boxShadow:"outline"},_hover:{bg:"blackAlpha.50"},_disabled:{opacity:.4,cursor:"not-allowed"},px:"4",py:"2"}),ws=o({pt:"2",px:"4",pb:"5"}),Cs=o({fontSize:"1.25em"}),zs=xs({container:ks,button:_s,panel:ws,icon:Cs}),As=$s({baseStyle:zs}),{definePartsStyle:fe,defineMultiStyleConfig:Ps}=b(oo.keys),A=v("alert-fg"),W=v("alert-bg"),Ts=fe({container:{bg:W.reference,px:"4",py:"3"},title:{fontWeight:"bold",lineHeight:"6",marginEnd:"2"},description:{lineHeight:"6"},icon:{color:A.reference,flexShrink:0,marginEnd:"3",w:"5",h:"6"},spinner:{color:A.reference,flexShrink:0,marginEnd:"3",w:"5",h:"5"}});function or(e){const{theme:r,colorScheme:t}=e,a=ee(`${t}.200`,.16)(r);return{light:`colors.${t}.100`,dark:a}}var Fs=fe(e=>{const{colorScheme:r}=e,t=or(e);return{container:{[A.variable]:`colors.${r}.500`,[W.variable]:t.light,_dark:{[A.variable]:`colors.${r}.200`,[W.variable]:t.dark}}}}),Is=fe(e=>{const{colorScheme:r}=e,t=or(e);return{container:{[A.variable]:`colors.${r}.500`,[W.variable]:t.light,_dark:{[A.variable]:`colors.${r}.200`,[W.variable]:t.dark},paddingStart:"3",borderStartWidth:"4px",borderStartColor:A.reference}}}),Bs=fe(e=>{const{colorScheme:r}=e,t=or(e);return{container:{[A.variable]:`colors.${r}.500`,[W.variable]:t.light,_dark:{[A.variable]:`colors.${r}.200`,[W.variable]:t.dark},pt:"2",borderTopWidth:"4px",borderTopColor:A.reference}}}),Ms=fe(e=>{const{colorScheme:r}=e;return{container:{[A.variable]:"colors.white",[W.variable]:`colors.${r}.500`,_dark:{[A.variable]:"colors.gray.900",[W.variable]:`colors.${r}.200`},color:A.reference}}}),Es={subtle:Fs,"left-accent":Is,"top-accent":Bs,solid:Ms},Ds=Ps({baseStyle:Ts,variants:Es,defaultProps:{variant:"subtle",colorScheme:"blue"}}),{definePartsStyle:ot,defineMultiStyleConfig:js}=b(ao.keys),J=v("avatar-border-color"),Ye=v("avatar-bg"),Rs=o({borderRadius:"full",border:"0.2em solid",[J.variable]:"white",_dark:{[J.variable]:"colors.gray.800"},borderColor:J.reference}),Ws=o({[Ye.variable]:"colors.gray.200",_dark:{[Ye.variable]:"colors.whiteAlpha.400"},bgColor:Ye.reference}),Hr=v("avatar-background"),Hs=o(e=>{const{name:r,theme:t}=e,a=r?Uo({string:r}):"colors.gray.400",n=No(a)(t);let i="white";return n||(i="gray.800"),{bg:Hr.reference,"&:not([data-loaded])":{[Hr.variable]:a},color:i,[J.variable]:"colors.white",_dark:{[J.variable]:"colors.gray.800"},borderColor:J.reference,verticalAlign:"top"}}),Ls=ot(e=>({badge:C(Rs,e),excessLabel:C(Ws,e),container:C(Hs,e)}));function L(e){const r=e!=="100%"?Ur[e]:void 0;return ot({container:{width:e,height:e,fontSize:`calc(${r??e} / 2.5)`},excessLabel:{width:e,height:e},label:{fontSize:`calc(${r??e} / 2.5)`,lineHeight:e!=="100%"?r??e:void 0}})}var Vs={"2xs":L(4),xs:L(6),sm:L(8),md:L(12),lg:L(16),xl:L(24),"2xl":L(32),full:L("100%")},Os=js({baseStyle:Ls,sizes:Vs,defaultProps:{size:"md"}}),qs={Accordion:As,Alert:Ds,Avatar:Os,Badge:se,Breadcrumb:Gl,Button:rs,Checkbox:Te,CloseButton:ds,Code:vs,Container:ms,Divider:Ss,Drawer:hl,Editable:_l,Form:Tl,FormError:Dl,FormLabel:Rl,Heading:Ll,Input:u,Kbd:si,Link:ci,List:mi,Menu:wi,Modal:Di,NumberInput:Ni,PinInput:Xi,Popover:il,Progress:fn,Radio:zn,Select:Mn,Skeleton:Dn,SkipLink:Rn,Slider:Xn,Spinner:Zn,Stat:ii,Switch:da,Table:ga,Tabs:Fa,Tag:qa,Textarea:tn,Tooltip:nn,Card:is},Ns={colors:{"chakra-body-text":{_light:"gray.800",_dark:"whiteAlpha.900"},"chakra-body-bg":{_light:"white",_dark:"gray.800"},"chakra-border-color":{_light:"gray.200",_dark:"whiteAlpha.300"},"chakra-subtle-bg":{_light:"gray.100",_dark:"gray.700"},"chakra-placeholder-color":{_light:"gray.500",_dark:"whiteAlpha.400"}}},Gs={global:{body:{fontFamily:"body",color:"chakra-body-text",bg:"chakra-body-bg",transitionProperty:"background-color",transitionDuration:"normal",lineHeight:"base"},"*::placeholder":{color:"chakra-placeholder-color"},"*, *::before, &::after":{borderColor:"chakra-border-color",wordWrap:"break-word"}}},Us="ltr",Ys={useSystemColorMode:!1,initialColorMode:"light",cssVarPrefix:"chakra"},at={semanticTokens:Ns,direction:Us,...ro,components:qs,styles:Gs,config:Ys};function ie(e){return typeof e=="function"}function Xs(...e){return r=>e.reduce((t,a)=>a(t),r)}var Ks=e=>function(...t){let a=[...t],n=t[t.length-1];return Ft(n)&&a.length>1?a=a.slice(0,a.length-1):n=e,Xs(...a.map(i=>l=>ie(i)?i(l):Zs(l,i)))(n)},Qs=Ks(at);function Zs(...e){return Vr({},...e,nt)}function nt(e,r,t,a){if((ie(e)||ie(r))&&Object.prototype.hasOwnProperty.call(a,t))return(...n)=>{const i=ie(e)?e(...n):e,l=ie(r)?r(...n):r;return Vr({},i,l,nt)}}function Js(e={}){const{strict:r=!0,errorMessage:t="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:a}=e,n=_.createContext(void 0);n.displayName=a;function i(){var l;const d=_.useContext(n);if(!d&&r){const c=new Error(t);throw c.name="ContextError",(l=Error.captureStackTrace)==null||l.call(Error,c,i),c}return d}return[n.Provider,i,n]}function ed(e){const{cssVarsRoot:r,theme:t,children:a}=e,n=_.useMemo(()=>ut(t),[t]);return y.jsxs(vt,{theme:n,children:[y.jsx(rd,{root:r}),a]})}function rd({root:e=":host, :root"}){const r=[e,"[data-theme]"].join(",");return y.jsx(Ie,{styles:t=>({[r]:t.__cssVars})})}Js({name:"StylesContext",errorMessage:"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` "});function td(){const{colorMode:e}=ft();return y.jsx(Ie,{styles:r=>{const t=mt(r,"styles.global"),a=gt(t,{theme:r,colorMode:e});return a?ht(a)(r):void 0}})}var it=_.createContext({getDocument(){return document},getWindow(){return window}});it.displayName="EnvironmentContext";function lt(e){const{children:r,environment:t,disabled:a}=e,n=_.useRef(null),i=_.useMemo(()=>t||{getDocument:()=>{var d,c;return(c=(d=n.current)==null?void 0:d.ownerDocument)!=null?c:document},getWindow:()=>{var d,c;return(c=(d=n.current)==null?void 0:d.ownerDocument.defaultView)!=null?c:window}},[t]),l=!a||!t;return y.jsxs(it.Provider,{value:i,children:[r,l&&y.jsx("span",{id:"__chakra_env",hidden:!0,ref:n})]})}lt.displayName="EnvironmentProvider";var od=e=>{const{children:r,colorModeManager:t,portalZIndex:a,resetCSS:n=!0,theme:i={},environment:l,cssVarsRoot:d,disableEnvironment:c}=e,$=y.jsx(lt,{environment:l,disabled:c,children:r});return y.jsx(ed,{theme:i,cssVarsRoot:d,children:y.jsxs(qr,{colorModeManager:t,options:i.config,children:[n?y.jsx(wt,{}):y.jsx(_t,{}),y.jsx(td,{}),a?y.jsx(St,{zIndex:a,children:$}):$]})})},ad=e=>function({children:t,theme:a=e,toastOptions:n,...i}){return y.jsxs(od,{theme:a,...i,children:[y.jsx(xt,{value:n==null?void 0:n.defaultOptions,children:t}),y.jsx($t,{...n})]})},nd=ad(at);function p(e,r,t=!1){e=String(e),r=String(r);const a=Array.from({length:21},(d,c)=>c*50),n=["0","5","10","15","20","25","30","35","40","45","50","55","59","64","68","73","77","82","86","95","100"],i={},l={};return a.forEach((d,c)=>{i[d]=`hsl(${e}, ${r}%, ${n[a.length-1-c]}%)`,l[d]=`hsl(${e}, ${r}%, ${n[c]}%)`}),t?l:i}const st={base:p(225,15),accent:p(250,50),working:p(47,67),warning:p(28,75),ok:p(113,70),error:p(0,76),gridLineColor:"rgba(255, 255, 255, 0.2)"};function m(e,r={}){let t=!1;function a(){if(!t){t=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function n(...g){a();for(const h of g)r[h]=c(h);return m(e,r)}function i(...g){for(const h of g)h in r||(r[h]=c(h));return m(e,r)}function l(){return Object.fromEntries(Object.entries(r).map(([h,k])=>[h,k.selector]))}function d(){return Object.fromEntries(Object.entries(r).map(([h,k])=>[h,k.className]))}function c(g){const F=`chakra-${(["container","root"].includes(g??"")?[e]:[e,g]).filter(Boolean).join("__")}`;return{className:F,selector:`.${F}`,toString:()=>g}}return{parts:n,toPart:c,extend:i,selectors:l,classnames:d,get keys(){return Object.keys(r)},__type:{}}}var id=m("accordion").parts("root","container","button","panel").extend("icon");m("alert").parts("title","description","container").extend("icon","spinner");m("avatar").parts("label","badge","container").extend("excessLabel","group");m("breadcrumb").parts("link","item","container").extend("separator");m("button").parts();var ld=m("checkbox").parts("control","icon","container").extend("label");m("progress").parts("track","filledTrack").extend("label");m("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer");m("editable").parts("preview","input","textarea");m("form").parts("container","requiredIndicator","helperText");m("formError").parts("text","icon");var sd=m("input").parts("addon","field","element");m("list").parts("container","item","icon");var dd=m("menu").parts("button","list","item").extend("groupTitle","command","divider"),cd=m("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),bd=m("numberinput").parts("root","field","stepperGroup","stepper");m("pininput").parts("field");var ud=m("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),vd=m("progress").parts("label","filledTrack","track");m("radio").parts("container","control","label");var fd=m("select").parts("field","icon"),md=m("slider").parts("container","track","thumb","filledTrack","mark");m("stat").parts("container","label","helpText","number","icon");var gd=m("switch").parts("container","track","thumb");m("table").parts("table","thead","tbody","tr","th","td","tfoot","caption");var hd=m("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator");m("tag").parts("container","label","closeButton");m("card").parts("container","header","body","footer");const{definePartsStyle:pd,defineMultiStyleConfig:yd}=b(id.keys),Sd=o({border:"none"}),xd=o(e=>{const{colorScheme:r}=e;return{fontWeight:"600",fontSize:"sm",border:"none",borderRadius:"base",bg:`${r}.800`,color:"base.100",_hover:{bg:`${r}.700`},_expanded:{bg:`${r}.750`,borderBottomRadius:"none",_hover:{bg:`${r}.700`}}}}),$d=o(e=>{const{colorScheme:r}=e;return{bg:`${r}.800`,borderRadius:"base",borderTopRadius:"none"}}),kd=o({}),_d=pd(e=>({container:Sd,button:xd(e),panel:$d(e),icon:kd})),wd=yd({variants:{invokeAI:_d},defaultProps:{variant:"invokeAI",colorScheme:"base"}}),Cd=o(e=>{const{colorScheme:r}=e,t={bg:`${r}.600`,color:`${r}.100`,svg:{fill:`${r}.100`}};return{bg:`${r}.700`,color:`${r}.100`,borderRadius:"base",svg:{fill:`${r}.100`},_disabled:t,_hover:{bg:`${r}.650`,color:`${r}.50`,svg:{fill:`${r}.50`},_disabled:t},_checked:{bg:"accent.700",color:"accent.100",svg:{fill:"accent.100"},_disabled:t,_hover:{bg:"accent.600",color:"accent.50",svg:{fill:"accent.50"},_disabled:t}}}}),zd=S({variants:{invokeAI:Cd},defaultProps:{variant:"invokeAI",colorScheme:"base"}}),{definePartsStyle:Ad,defineMultiStyleConfig:Pd}=b(ld.keys),Td=o(e=>{const{colorScheme:r}=e;return{_checked:{bg:`${r}.200`,borderColor:`${r}.200`,color:"base.900",_hover:{bg:`${r}.300`,borderColor:`${r}.300`},_disabled:{borderColor:"transparent",bg:"whiteAlpha.300",color:"whiteAlpha.500"}},_indeterminate:{bg:`${r}.200`,borderColor:`${r}.200`,color:"base.900"},_disabled:{bg:"whiteAlpha.100",borderColor:"transparent"},_focusVisible:{boxShadow:"outline"},_invalid:{borderColor:"red.300"}}}),Fd=Ad(e=>({control:Td(e)})),Id=Pd({variants:{invokeAI:Fd},defaultProps:{variant:"invokeAI",colorScheme:"accent"}}),Bd=o(e=>({fontSize:"sm",marginEnd:0,mb:1,fontWeight:"400",transitionProperty:"common",transitionDuration:"normal",whiteSpace:"nowrap",_disabled:{opacity:.4},color:"base.300"})),Md=S({variants:{invokeAI:Bd},defaultProps:{variant:"invokeAI"}}),Ee=e=>({outline:"none",borderWidth:2,borderStyle:"solid",borderColor:"base.800",bg:"base.900",borderRadius:"base",color:"base.100",boxShadow:"none",_hover:{borderColor:"base.600"},_focus:{borderColor:"accent.700",boxShadow:"none",_hover:{borderColor:"accent.600"}},_invalid:{borderColor:"error.700",boxShadow:"none",_hover:{borderColor:"error.600"}},_disabled:{borderColor:"base.700",bg:"base.700",color:"base.400",_hover:{borderColor:"base.700"}},_placeholder:{color:"base.400"}}),{definePartsStyle:Ed,defineMultiStyleConfig:Dd}=b(sd.keys),jd=Ed(e=>({field:Ee()})),Rd=Dd({variants:{invokeAI:jd},defaultProps:{size:"sm",variant:"invokeAI"}}),{definePartsStyle:Wd,defineMultiStyleConfig:Hd}=b(dd.keys),Ld=Wd({button:{fontWeight:"600",bg:"base.500",color:"base.200",_hover:{bg:"base.600",color:"white"}},list:{zIndex:9999,bg:"base.800"},item:{fontSize:"sm",bg:"base.800",_hover:{bg:"base.750"},_focus:{bg:"base.700"}}}),Vd=Hd({variants:{invokeAI:Ld},defaultProps:{variant:"invokeAI"}}),{defineMultiStyleConfig:Od,definePartsStyle:qd}=b(cd.keys),Nd=o({bg:"blackAlpha.600"}),Gd=o({}),Ud=o(e=>({bg:"base.850",maxH:"80vh"})),Yd=o(e=>({fontWeight:"600",fontSize:"lg",color:"base.200"})),Xd=o({}),Kd=o({overflowY:"scroll"}),Qd=o({}),Zd=qd(e=>({overlay:Nd,dialogContainer:Gd,dialog:Ud(e),header:Yd(e),closeButton:Xd,body:Kd,footer:Qd})),Jd=Od({variants:{invokeAI:Zd},defaultProps:{variant:"invokeAI",size:"lg"}}),{defineMultiStyleConfig:ec,definePartsStyle:rc}=b(bd.keys),tc=o(e=>({height:8})),oc=o(e=>({border:"none",fontWeight:"600",height:"auto",py:1,ps:2,pe:6,...Ee()})),ac=o(e=>({display:"flex"})),nc=o(e=>({border:"none",px:2,py:0,mx:-2,my:0,svg:{color:"base.300",width:2.5,height:2.5,_hover:{color:"base.50"}}})),ic=rc(e=>({root:tc(e),field:oc(e),stepperGroup:ac(e),stepper:nc(e)})),lc=ec({variants:{invokeAI:ic},defaultProps:{size:"sm",variant:"invokeAI"}});function sc(e){return!Number.isInteger(parseFloat(e.toString()))}function dc(e,r="-"){return e.replace(/\s+/g,r)}function dt(e){const r=dc(e.toString());return r.includes("\\.")?e:sc(e)?r.replace(".","\\."):e}function cc(e,r=""){return[r,dt(e)].filter(Boolean).join("-")}function bc(e,r){return`var(${dt(e)}${r?`, ${r}`:""})`}function uc(e,r=""){return`--${cc(e,r)}`}function ar(e,r){const t=uc(e,r==null?void 0:r.prefix);return{variable:t,reference:bc(t,vc(r==null?void 0:r.fallback))}}function vc(e){return typeof e=="string"?e:e==null?void 0:e.reference}const{defineMultiStyleConfig:fc,definePartsStyle:mc}=b(ud.keys),gc=ar("popper-bg"),hc=ar("popper-arrow-bg"),pc=ar("popper-arrow-shadow-color"),yc=o(e=>({[hc.variable]:"colors.base.800",[gc.variable]:"colors.base.800",[pc.variable]:"colors.base.600",minW:"unset",width:"unset",p:4,borderWidth:"2px",borderStyle:"solid",borderColor:"base.600",bg:"base.800"})),Sc=mc(e=>({content:yc(e)})),xc=fc({variants:{invokeAI:Sc},defaultProps:{variant:"invokeAI"}}),{defineMultiStyleConfig:$c,definePartsStyle:kc}=b(vd.keys),_c=o(e=>({bg:"accent.600",transition:"width 0.2s ease-in-out",_indeterminate:{bgGradient:"linear(to-r, transparent 0%, accent.600 50%, transparent 100%);"}})),wc=o(e=>({bg:"base.800"})),Cc=kc(e=>({filledTrack:_c(e),track:wc(e)})),zc=$c({variants:{invokeAI:Cc},defaultProps:{variant:"invokeAI"}}),Ac={"::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"},{definePartsStyle:Pc,defineMultiStyleConfig:Tc}=b(fd.keys),Fc=o(e=>({color:"base.300"})),Ic=o(e=>({fontWeight:"600",...Ee()})),Bc=Pc(e=>({field:Ic(e),icon:Fc(e)})),Mc=Tc({variants:{invokeAI:Bc},defaultProps:{size:"sm",variant:"invokeAI"}}),{definePartsStyle:Ec,defineMultiStyleConfig:Dc}=b(md.keys),jc=o(e=>({bg:"base.400",h:1.5})),Rc=o(e=>{const{colorScheme:r}=e;return{bg:`${r}.600`,h:1.5}}),Wc=o(e=>({w:2,h:4})),Hc=o(e=>({fontSize:"xs",fontWeight:"500",color:"base.200",mt:2,insetInlineStart:"unset"})),Lc=Ec(e=>({track:jc(e),filledTrack:Rc(e),thumb:Wc(e),mark:Hc(e)})),Vc=Dc({variants:{invokeAI:Lc},defaultProps:{variant:"invokeAI",colorScheme:"accent"}}),{defineMultiStyleConfig:Oc,definePartsStyle:qc}=b(gd.keys),Nc=o(e=>{const{colorScheme:r}=e;return{bg:"base.600",_focusVisible:{boxShadow:"none"},_checked:{bg:`${r}.600`}}}),Gc=o(e=>{const{colorScheme:r}=e;return{bg:`${r}.50`}}),Uc=qc(e=>({container:{},track:Nc(e),thumb:Gc(e)})),Yc=Oc({variants:{invokeAI:Uc},defaultProps:{size:"md",variant:"invokeAI",colorScheme:"accent"}}),{defineMultiStyleConfig:Xc,definePartsStyle:Kc}=b(hd.keys),Qc=o(e=>({display:"flex",columnGap:4})),Zc=o(e=>({})),Jc=o(e=>({display:"flex",flexDirection:"column",gap:1,color:"base.700",button:{fontSize:"sm",padding:2,borderRadius:"base",_selected:{bg:"accent.700",color:"accent.100",_hover:{bg:"accent.600",color:"accent.50"}},_hover:{bg:"base.600",color:"base.50"}}})),e0=o(e=>({padding:0,height:"100%"})),r0=Kc(e=>({root:Qc(e),tab:Zc(e),tablist:Jc(e),tabpanel:e0(e)})),t0=Xc({variants:{invokeAI:r0},defaultProps:{variant:"invokeAI"}}),o0=o(e=>({color:"base.400"})),a0=S({variants:{subtext:o0}}),n0=o(e=>Ee()),i0=S({variants:{invokeAI:n0},defaultProps:{size:"md",variant:"invokeAI"}}),l0={config:{cssVarPrefix:"invokeai"},styles:{global:e=>({body:{bg:"base.900",color:"base.50",overflow:"hidden"},"*":{...Ac}})},direction:"ltr",fonts:{body:"'Inter', sans-serif"},shadows:{light:{accent:"0 0 10px 0 var(--invokeai-colors-accent-300)",accentHover:"0 0 10px 0 var(--invokeai-colors-accent-400)",ok:"0 0 7px var(--invokeai-colors-ok-600)",working:"0 0 7px var(--invokeai-colors-working-600)",error:"0 0 7px var(--invokeai-colors-error-600)"},dark:{accent:"0 0 10px 0 var(--invokeai-colors-accent-600)",accentHover:"0 0 10px 0 var(--invokeai-colors-accent-500)",ok:"0 0 7px var(--invokeai-colors-ok-400)",working:"0 0 7px var(--invokeai-colors-working-400)",error:"0 0 7px var(--invokeai-colors-error-400)"}},colors:{...st},components:{Button:zd,Input:Rd,Textarea:i0,Tabs:t0,Progress:zc,Accordion:wd,FormLabel:Md,Switch:Yc,NumberInput:lc,Select:Mc,Slider:Vc,Popover:xc,Modal:Jd,Checkbox:Id,Menu:Vd,Text:a0}},s0={base:p(223,10),accent:p(155,80),working:p(47,68),warning:p(28,75),ok:p(122,49),error:p(0,50),gridLineColor:"rgba(255, 255, 255, 0.2)"},d0={base:p(223,10,!0),accent:p(40,80,!0),working:p(47,68,!0),warning:p(28,75,!0),ok:p(122,49,!0),error:p(0,50,!0),gridLineColor:"rgba(0, 0, 0, 0.2)"},c0={base:p(220,30),accent:p(210,80),working:p(47,68),warning:p(28,75),ok:p(122,49),error:p(0,100),gridLineColor:"rgba(136, 148, 184, 0.2)"},b0={dark:st,light:d0,green:s0,ocean:c0};function f0({children:e}){const{i18n:r}=pt(),t=kt(i=>i.ui.currentTheme),a=r.dir(),n=Qs({...l0,colors:b0[t],direction:a});return _.useEffect(()=>{document.body.dir=a},[a]),y.jsx(nd,{theme:n,children:e})}export{f0 as default}; diff --git a/invokeai/frontend/web/dist/assets/index-5483945c.css b/invokeai/frontend/web/dist/assets/index-5483945c.css deleted file mode 100644 index 395fcc729a..0000000000 --- a/invokeai/frontend/web/dist/assets/index-5483945c.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-cyrillic-ext-100-normal-a1f4d02d.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-cyrillic-100-normal-9747741a.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-greek-ext-100-normal-71976b96.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-greek-100-normal-a44b9fc9.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-latin-ext-100-normal-d3be20b3.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-latin-100-normal-61cac109.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-cyrillic-ext-200-normal-82562199.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-cyrillic-200-normal-87d2e1ba.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-greek-ext-200-normal-45dafb12.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-greek-200-normal-9575e0f8.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(data:font/woff2;base64,d09GMgABAAAAAA7YABAAAAAAIrgAAA56AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGmQbh2YcKgZgP1NUQVREAII4EQgKqhikZwuCEgABNgIkA4QgBCAFhGAHIAwHG98dUdTI0Sp5ZD8TTLc7SDuXNe2Cl41ikP6LJXJ+d74XRfD///v9b659ztlH7vviSdFKaD9BIlmIDKpFjzcSGqPjjUijWrXQLX3ZP0/b6n1aBmUQo49NsMFa3LSxcXUIGxOxGHRUwsC+0/M2rUvdK6/dvdxq9qLtDdyLCgk+1n77TuuXUESRRqiemf6HKNZMQ9VGtUZLDKVov6uTz/9/7Vudt/e9tfmYJv0rjRDFpBIJ5f5h3sj/b9ZEZ8H/YuuIJw4Jook2InQOlZKWDKeTCCGKhlwx27+pd+VW8PCBHUbmdFiPUwgu9Td3RIAFAMC45Z8ZIuAD8RMACRICCRMDiRMP2UUByZAJyVYAUdNCitRC6pCQFm2Qbt0QBBh8iNAWr2UT4LdTQTWDH7R9p6UZcIgbDwAIYDho3GWC2CCAwgEDsBN/n05ojEIurdlSUJBvOpsqCFWeGVpSCwPYR/ICxwMAMcNEaSQYMwHP17pxgO4VDniDwC3v2AGd1OULeoTeRIZIFT8fUiBXzgMgMCT6lDETciAOjhU4IgGMrr3UTrwnTfYLbSeC3muDvB+ieNtOTCJYiDBSMlGixUiUIoOSmoZWqUZNmhnRaOho6SB19UHcCJDckYRIHkieSF5I3kg+SP5IAUjJdPLoRg+mUyMV0RGSkrrdg0tguoMITQ8hnqZXJt7Eh/iTAA8aSabh/WIAwBU8wQe2QYQn6rcC+0ABmaBRYjx4AGGafiD+gBF0pzBs4SJxScVgRwIHaISVrOb2/l2Zp0gRvmK16PHAIC7CLa85BbjA9NAjgd0c4xeerIYFb+ryOwdWOIfMD9yjvKQuzVPGBshlBH/DBHXkDwJ8L4PTFxfSHQwzBcAwOsDijPMbe2M9pwAuiCZ6NeZOtQDjxeYAPQPgOAAO8CAIBw2wiQa4gHZ4t45CfICHO80UwkEYcAiA2jgAEoQW3gDE7wBggATYRIcAmxixFWAdjo4WdCRQsAya1fzeX6JXsQElCJdEdZrRS3sz7dq4wu+XgLjz4PUepQYImvIft126ZfCjFq5OkCJhDOjSMCgwJWJJxpaCI5WLJFy7Yfbi2cdVAjd7CGRzl0MolwclT3m87Octn48C/jQCaN2jmEiJTUptVmaLclvpbFNhu0piVSSqBasRolaEepEaSDWSaRKlWTSjGKQ4LXZoJUeJ1wZB9YYVAMwAqAFwBFILKD2g3AFpHgAKWs39S1DLT3FkytBnLzR+1hjWthub2A52pgc3iia6V33eEIWylMBheN0V8Bj4ajuN2B5SvH1tZ/XyE6ln7gzvzX5lF59lfOHG4GB82bsyVsarTy4tP8DGsGbLXF4HxrVhFq6VaxYALuAh17FP1or6V+/y3BB/bH1Fu7zstO7rbjOjyq6PhICzBESatvZmtr7lT7n3f75K71/7wnX0M59rS+fGHXEu0/pW1rHRT9Zs2MLHBFpasngyLPZlZ5N0d1XzR70zEKLtH2/dniVd7xYWzIaZWVx208jiIup9lqnJGQj1Lt7gJqJGj7GQQgBn0LkfR6lH95hzj2ZKvhzYFywjd1dR79onjnIVxsYsZ8baLvfqAYxlabpyUmsFwB0J97iJEwNzJi5Fq7ZUdLVhFuvIhxfGR0+zPgD7++drbDPWZa/2ZedhXS9PPW6T+VnKYgS5uS8zm42x7H+Vvz3SaCvMew2DSojTLJQUjcb6TqFc/GMhuCObHqu21WI1OaOai/SSAja1KAMxGtUhlMmucKVGIyyqkpWLlpbUO0+qWVhQLXxMmF+rF9f+1MWYtplVEVZYjateWgo6FuQPdi8dUbyAcixE/9jtP1jY8fqSTY/VcGurjcVYte2hFlffXMgtOnM3rQZIDVN3Cf1h8j5cjLt2giki9irsSACrPTAmghwjSSjb3nxBV4aVgQg5HOT7NhAiLucGUSXL1DLofqV+cO9YvTANgX4nD1cuoXuoraLpX1avwR5IWX/7uV8jHAAcuoCDp8c9daI6kAAHivpj/ynqVAGfAj9t7+JgJmDP2vIQc8MQS2y799xcGmTBhmB9OMvuwHOzyk9XVpR3zx0L8j9zTPnZ2gqw/ZiFds60BZYuffKhb+PDvl1ztKqftz+cQQ5dwLz+wcU04sytm6ozlxTwHtBF29XjM0L/R0+dylg6+eNg//OQeZy4cdI0iTdSgj5V3LQtYFMD5gxHJQU33fivdTTCo3y2exaOiAZvGgbeOqxLPjRmuJUy7U65vu5XF78rYe6jq6eedB4MM7WEhDY9dWhZ0aE/FX+4TfVaj8zq6SJWjdx/Kb+JPHj7/q7fHr5bpQ5q9GrH258WfpivGyx/ZOlVkF4QnRS+NVH71RdTtcK33xi4VD3w5OZKnsYCHNqV/K2V/U9dru4gH759oj3mypX2qNvzDz/qPNEeffFie6zzFYhNEL0f/c7TNZ99PqcXv3eu9/Pa+YvVgueyLxjTnh7Gvnrk8PT3z45sop2IujAk/Wd+vvsEYbI4msM2Zx+ectYAHRYWYEH/jEuelkgmg8/0XTeFaLvonPjtZ/Sff/FMrfidc5W8Y3wu2FY8S87++OpA7HGFwZgfXpudJRasqLH9qIXia4PUpUdWz7GrihnVmeJRSdq+8S+lnPxNd6zAwvoXN7b9x/EnJr/o7/957jfrjxe+/Pak+UaDxQE6Vjw5lHL8IU0PVFTo94gHhdHP+1+hbF9EoXDflvrSLVPCtg5Ja+r5LXGe/UGDVdz8cv2SYeZWvXH0gTR4j1qkQJy2hp08FHYSZF5rYQ8SVhC3OMcLuS7oxioG8k/eDAYev/+oZ3NMDz9gTCwP37+TiNiRoFe7JNfy3chHh/VJReE5O1URexVVWpCmA9U1PT40KF/jXZSyoFyjIcohxOto441mVtFuSAZlh4LklD4HTw1AI+jMDVoXkO1fCZ6UiKeCJVNiySSEKpbaTNNDw8PTQ6a2zAKNVkNobndPBtgvB9gPca37sp990g/CNEutpomhwYHJowqtmfkatRqvwVhugKe0TGILj2WMKHHZfxhm9EpFfUY6B8Kvv0OZpu71It6aicrI12o0BVrdsVwBS2Ww5ado9+Ul7JDtzalWurFUjd1EVPr2uwli0rkvB+h+vs9M9JqnhOnKo7+tV06wKyE6PbLP0jzMlN3i7fywyvhPFWyTy83m0U2iK2OkfBCS1yqf1TM1sfGQZEps4qhn4VFLaYGpWsWG4D8jB40jm4Qi4eiQMStbyeeW9rcTO7KCryWEzIAmszvXFSvr7dgflRWcEJcSPINrMoDHevu6TlQHtBEIUNlCYqCCu4pxILiz0FpMcL+eN9/gAcxJSvCgqvWLc4g/dP0ILrOEyGJ374kmd1M7g3ultLDyPiXYnqCZbSEBHEEJvjLsUeG0mjNQXgEcYjiUMhwyGA43Gc6YHkKn+DoeLNfFwneqnO0TvgvJWacIVI5SzteDf0QgZVPSQFn+NFA2Ng2UNc0C6WUeC0H7dARl0sfspj5TR7A1agy0ACvUhnIW2lMW6xzwqxU2C5pYGCyo1F16nA4dVuwIyKzYTxNGWSzksVg4DTv3sXkF5ezxV/zivmzzoE1FfWrnEtzLGmHBfbzNnvJ+yfHlrC2eL3cDOeV090F+DA0eoj+u6wPqq+mZf5oFSC8dpo3TQYFYMQa3w60NTytrFFJplj+Lw5nNwtpq8nWhRGQt5iOhWTLyYFnwtJX1ujZ5f4IEgSqPZOv/k0JVMsPHIr7ZoKKFMiuHFQbiQAt7omoQhcv4SFkhBLBCeIkVNlWJ5VAoSu9wn8pz5t/K5+mmbD1de1jo4bPJ9HS3CjnfAEN6xwFU2fzJHSP+IVs3eBDECJPfehXFHFjui4f4MDioSVp45QL44KjqORlfHN8J4///z5+hAQC3gb+P4l+xmo6d+GAyRjCjUHi7DDkLYL7sPavakwBogsTyShN/wDHxA/u/lX06yRhDyxOROp6MIhQjDYacRJC+vXYBYPsTHzGsCrrRAD6V/nWwBfjHpwgOJmMEMwqFVx7yvayOcTgmflT/14OwtWmJ407FNcL/jBPTAOhRuIg2PMY1S/UibO0QWuBPPSz+lZgGGj0qERG84M0pbA7Q3yUAuaa2fMne86nOdaaLjL3kxADR551uFIpeLMtb7HyYC6d3NRDH2ayL5FWXhUSqCKz/VvPgLkMrQKT+1I0eoRhp0OTRBdKc1/4NYGudD7ckW4/X93uWI5I6qrmsy9BpNYr9xRySY6lnL9I2XhydjyspRDbwQf6Lb4tSS/8hYhzg8hi/cRFOtnHNcnml3xA2j8d+eqHoempxODg6Hz3vQCwBtdsABEjZrQ/fHi3n7/7P8Z8AgB9/TvsDwM/beYt/OE86A+p5AOBoABD472HE7lXH/9+vewEknf/zuJe1CnA7L4kzltwiyRaM6Qh7B5lZSmIxBQjN4KRyoe0a09TR7Rokl7iLERxce8Wi/Ue0c+sCLzQf06Y/wxxGX9pEiwzr4RYqiU57Mrqq+xud4CS2ScjIZFMdWyLQK5v/9ojlt+oViyxO7MPlG/FXMRv1mPo0X2Ch2PgizyseOPkOnMyfW3bG+QKflVzAmHIr/4c0W0ea59Ga/co7eR4HCDBzFB4SG5KerUCAZS9ChzIXAF4A1YmIHDRpfTbvpItzbkSGybTYrxKrS4Q43cREphPHje5hAh5xby3EB148TIV0bkIk9HjPf9JkRiSLFgZ6dSgiUaQ5UYRoSM2TZmhGqdFCJE8Lo3o1qpx3TtSGUseoRSsRSQDiyqRWO0WKpGfoXrlNpQhVjJpEAovZynBDcNPgKYmpzLW8RYXsxT7FfDX02jSq0CJaBCmZeLvkK5CjwK7x0YcTtTL5UAZGzUQ3fM3OLJxUhVgyUnFqSFUG8lfMT5NbVb2fiSSqeiImJTeKeIdMfe8ApTTZcY2fpmvUVE/Bq1Wc0XRpcWdXuEDVj9oYfM8YAwA=) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-latin-ext-200-normal-4336e69d.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-latin-200-normal-74885a0c.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-cyrillic-ext-300-normal-66b2369e.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-cyrillic-300-normal-cff08766.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-greek-ext-300-normal-09d21325.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-greek-300-normal-d0749e19.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-latin-ext-300-normal-34623012.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-latin-300-normal-6b2cee46.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-ext-400-normal-f7666a51.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-400-normal-e9493683.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-ext-400-normal-d3e30cde.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-400-normal-2f2d421a.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-64a98f58.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-0364d368.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-ext-500-normal-8b5f6999.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-500-normal-f6bd191e.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-ext-500-normal-528b79aa.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-500-normal-ddbf6a70.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-ext-500-normal-4fba9ae6.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-d5333670.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-ext-600-normal-2ea11f8c.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-600-normal-9bc492f5.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-ext-600-normal-c37a11b3.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-600-normal-4591e350.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-cc23fe6f.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-048d136d.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-ext-700-normal-b7bb121f.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-700-normal-f6c6dcaf.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-ext-700-normal-22174f43.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-700-normal-9e078f49.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-ext-700-normal-1cc47d25.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-700-normal-ced2d8e0.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-cyrillic-ext-800-normal-f15d8f83.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-cyrillic-800-normal-82994ee8.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-greek-ext-800-normal-bddb6f8e.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-greek-800-normal-fb5de277.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(data:font/woff2;base64,d09GMgABAAAAAA8wABAAAAAAIugAAA7TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGmQbh2YcKgZgP1NUQVREAII4EQgKqlCkdwuCEgABNgIkA4QgBCAFhFgHIAwHG+cdUZSQ1uSRfXHAk/EahJESYUWtxdYd2Ko1UY4oE1hTjvBc/iMeiaAay3p2w+AAVSrCslAxgkFGRqIKS3LwIORLcqzU3x755zezLyQ+qMAbHVTUV1VuWZbnA7TNf3cHx3H0rGLKMnCVJksrNnSBuGFsPyRE0Mk6WKWrKGIR6SoOZXA7ACeaAFf/AxQq/Gvu02bzdmfyqcyZ/JaFJHZVwLLCbPayt8nl72EOqcSkgHU9EDlAVUVkq+paV1+hVKdCSzT19ae7sHYkzHJXcP1MOpm/nFMATQAkkvwzQ3I6yMAEWQSgkBSUkYeK1qFNW9COY+jMBXSlDXVRaGYJffIJQqCBjg2ZW9s5AcM+LsZggKut2RhkkIQKIICEh1DYAoVDABFf8IDefp60T3hDGtIG6Y3wJKIl81KRheuS0gKwQHrN/mREoCzFOaC01B0DHKtMB7B/igmMUrniDETAgVBZ4FJ3PaFodfgVemULT8coSuCWcy2DrAzIIMr2Yn1OptuTMg0oD4IMu6Q78M42q4225a4H3nxFF20R5RUI66cYtDy8fPwCQmLiEpJS6lZs2nfm3IVbQyNjE8S5BxceoO5PQws5SoFSolQoNUqD0qJ0KCPKhGp6cODBuz/jDFXoAVFMRX9pAbmjAFI6qoTUjuYKaZEOGZHJRU8mIfrDAIAY1KADN0TcxF8FqrAOW3DOYlxZAGI7BiAjCBGeK4QrLEogJoUbCTwgiJN5RrJ/xxa5ckXqWhsTDyzEl5I8WxUQANtlIoG7NNYfPPOMMHhx/t8cOHE8EgMoEjXuQnWus3CgqnYiK7FB7VjNAvyQ2vmnI9Q5EnYGEtYAaDrlfEfnZ/cY/hFk4GVr/1+Ahse0lriHGjzAABGEeAjQhQAjyGGnu0AZ2N3xAuUQiwwCoj8rgQyR6AWUryABGejqZ+lBs2IE6CDDIJGjPRqFHpfFlr4ftvU4iBRt0TAKcGls7lvanjMd498SQUFFs0f/hTOxACRFn2wyOBPWZXElpIexhmUdWx1HE9cKnlV8DQIlQhUiVWI1EmVyOxR2Ke1R2ad2QOOQ1hGdY0bnTC5YXbO5YXfL4Y7TPZcHbo88nng983nh1xLQFtEXNRAzFDeSMJY0kUJlzGTN5SzkLSEsyABOINqASZA7QPU4qL4ijwNUIwU7RsHET3YNifF0FYFQzHc1i/OquBLIUxE8TyxB3Fu2uSERrzbv7jAMz5/HE/PkcuY03p/lsPqKAHmDhiLMD2ADfMtjCgOlcrGUx9pyaYCAN6NcEMjT8808U5ZlcsUyqVlmlJrYf3zIOgopJZvovU3Yb3nY82uc/PAmWXnjgckoNpdRPqTIbCblpIKOuX14c+WTB+JJj55RVc8fS2yJT4eOOfwE1w3YbrpFE723zZKR8WLiacWMlgyj7UZx7FuEWcLY3MnxvpgdCSyB5SgqpcmMony4Mp6Yb5jg8RB275mTjgyCsB+4Vkq+1/vYdjMMjJhgXTHZI9KIlWeenbYqDTb3mGGPblFVtw37pooEEuNpot1zAMYEt/HYT9inf+i+CZgohWcgOYWcxuA2eS7Xg+MCidE04YY2C9ywufTs4+yb3NqNB1mHjd6cDfKWvYvNDFHTsRM8t9IEEvpDS5klNpcdPR+Dtl7FJ2afFXnbtDDtFE2X6TKTJsqcLRlqHi7JNKeliAmdZBieMuzedMaLToudCi/FtcA8s8T14FF7lM6iPt8kTvN6w1d42PTJD1PcrpR/1ipM6lI7X5aW0iqVL0lV3WXSJMti0oJ8wUtg4lysSVmpC2ETyKib5vmAqOXkmXWiYZ7ElOLJs6cJxLqiTHb4aYaBTdszFlbKDRvvkrrDmMcdbAmbnPIhW1Vg9hFk70x3WfexI3pMpPk2aY+ZfLl8w/1+y+u7M8oyMC1ytWzDu39MzN27ZvrDYotideMOJz5/Odet++fzJz9HvQAYvAcDhSqhjqQOnGCQ2R0zVq3MmZmzatUMNFxbvFxUjkES5d73ycd37xfSNTCJdO/95OtD2j7cj4FnSnyuTZ418/pkcc68UqTPnHUNX1yUF6Qom/zQ+D2Zor3Oj5rtPU16Q7wDv9HTm0nVe0h+TvcmPX37/Xz/tzBn1Zrc4uLVubmrCmF/0aHuZX0j0eJPrxaPK1AeWZ9on4LKQKMQn8w6/NVq1NydsuHNBmiCZj7Krzwzz5a5eZHhYvt/hJWiJcHxrVvw++qTs/L+TZYlHJP5TFx9R2W9NPNb792VQw+afC94xA37WkfUqJt062/tpinRzEhcFiNLEPn2ZrXNWse37jOyP8771fhtXjWYL1uf679mmXF9UrE9NIYVvASDJz9k4bGl5hqN2pJZPrTXbou1505rXmZ2+ZDuOy2WHrstQxE9LexjzqF9+V/e7R+aeurFStmwk6cNqoOm5BKElqBvnNHSe2CSPV5jIfrVHZQwaWzfQT30UZqYyCPikDkH7rUywQkaL0FDFrtdN3NcnjaH6QpmjNPmie7DIdoWVpt1at/QN29Bxa199b99M/m7kgzjiO6HrTZSpmdkW6jZrBTfsNDuGiikOaXPhpGjMhuva6z+5n6Gccvn6l+AxrVweetJn1duXPR2ahWJjddfjobFPrUk4Z/uvS34JzqL2mH4DPPd09Mm9m3ibHK8v/7liD6+rNyw+E0529TSp3eyW4Yz+N8R+XEB/whSmhY0i6zfHood8XLF53hKFT2zUfm8Ix8MSNVieGoJhkPpOX722NZmx9D4SWmunHuXu3v2nHp+8vkCyZbDgzcfliB4zqG/xPmjlycgsaD5gK6xzRvaopMQ+5Mkzxy+Nh4a6Fv06RLTvHGrTv3Q7oWyJ/YHPv7wIfAx9ndDj+wRRSOy9Whd//7QkDV6KrM5xTfUTWUvKZtMhR1p1TkDRag9LZgxXqudOV6XaL5DdPjmaoC5oQc/vA88iLlKoT7PatXlDWu690cX7kdB8VaaEXy4tuxhzAgzF+ZpGlHKrqfaMcDVEHPDd3/9ErSbmFtPbBhYXmFIKRwRqqwaTuZEsFJDUIpoKUdPCB0RMyZmIIMOz131MS9k//t3oOl3QZRQl1RhHNmf+vCvA/KqZg/RGBprm3RWte9B7lcj3z5b1ywpKCkyJai5Ut0b1Oqz01UvZ6k6Xpx/eX7R/K+m9AEmJDyvnanqcHH+lfnR01SRb3+U/RhYhtZx76ao1OdnXZulnqp6bH4XNDGN7KOKaJYbFseuu37vX0NcSd+eInROr53UsO21+efnd5rWMK7/kvYYkONIbj4gKKFuTFC9iF18ZxNosqtT6/UN7K/sE6AKDomBqM0hhUQBsj4IAAKYiXGkMsoFrQHDwkhJwqgifqLXGAMf4oJRTUwirukO1KLnABrAiO8k1qggKsngJW0w7ISN+D2qkrASf4PMuc6JJDlS+3SmYRF0JAndhBoSbAVQD8sDXFcsD2A3kUM4kUMUq8J0VhBeBge4g5Ggqhp/qFC1y3ljABwWFCTyfYX6OCxA1iFh0ISEwUocFiBYHBYi5JAI4dv8TywjUb6MoEVNAcNEzCERHSCb9ENX3KQK/RF4fHfhkmxaC+JxUw0bBYVJxAkISLUHTkv1PEAk1QHwgqghAzpuY8YsKL0CUxAcadAfVWXxJmVs48mwYxL326jEBO6vXkXQnHf7+jDyYviPxx/BkY7aPM7CKBqOv54T4eBr8QcD4keMJfuRKxRuYPbU/g8uTiM1XoghGoi0qJswA2DzBYnUzA3qEw0swRqVjmjWhUVuTEpKFUcG/t6RqT9rTYvy9ZECDpzp0dnkM4P2MnMuEEUyoQvJhF04Uw3FmUtERkJW7v/YlgbSKAs44dUEDRPWAtF+qeuHo0SHT/NrGCj1leAG1qtdiB4GET1cInpwRUodsvaV9VZh2nK13A8+pBRV3R0aMqDb34q93PNf97niT0v+Hj5AAgB6AkwnVomef2pEMtoT0Qixu/CGkEgcCbQG2eq1sLcQEm2SDkuaEk5Uolsw0ICgiPazOeMIUthdXIVWNxTTE0RiRgI907HV0AG8GdbTUMEiGnP+1JCTGKBaKjENmVCNexIQ0UN7sLswUiezG/qkmJFAa4Ct3spXgQPUy3VMjoViKl4KnNwzgbZm/J9N4jEgtTB2Q9iNdYi+KCvFZEwHqAHBrxIV7U+Nx4OmFosm7GRrMf8Ro6Ryi3IObTEk3KQ6igVqZhfLVnNadUN1ulAojgSWkmnfNDmN4dwrgZRBCvx5Zmup0T0pNO4xhQU/kzOOoDOzi9NpdwPLjRKKPWGgZ3qmmnMA1Dbmq9D8hWh25hTGQVkSiUpYFEpCVlJCxpESpSTK4vh65xSODF8mJ1FOQQ+Ek3tD52vFSeHRgGmx17IbTCzjEH1KDrVSTEFnQfnnCG0oUVEWeTQ0tVikeA648YCgigEIABTvriIqRjFY1vkLEyICANyp3R8CAHdTB3i+PfhtCS0UAwANEgBAAP8mxofZCtrnz1sBgbuDf5zoCNGaKUfPPCAMN54+B+caXIWOp+qhgPcHdGIifA6zEdXCAIo5scRITUvzYJjgFziFc6kImHoe6CbTEuqepEuRvFZO2x4oYDEc3aGXQ7sGp0M+FYHZGOakojmHmHoK+gq0Al9oMXtag7OSlubBKvRfcG7HhGPt61zRTXoylM3wUzmO/YaUJBDWdPZnfBtq+AZsRMtfg4Dfiq+tkD8aW3ilhVjJL8EmuhAdaQN60CbU0HOIozfP9VMAJy41obgqDt1qfaEWX2RYVQ+c8qoji8+Lk7LOSPnVPEtny/ivc1iqr0uk6q3LCOKonpyiykailSgu1ZAPWKy3ZlL0W6911gT11kxPR9eCTUIsp9uctFDrWjeNLbTM2ByYmehreTaeu25poWtiZs7GF0BxbGquICqqo1c89tKTiGcTI1FQceaM6wUv6a/yY656Y2HmUcPE0IsjLR1LQ49mkiJi4vKKjhzbdazoblUYnbGq6T0TLmHz8zl+TcJiHqXFxWS0xDzF8bXyk8y555106EnmXKRO5lBkb5xOaZ99a3bC5nWSe671RbjH62S2JMZd/yot8Q9jf477Ft5k) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-latin-ext-800-normal-b6167428.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-latin-800-normal-a51ac27d.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-cyrillic-ext-900-normal-b1c13874.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-cyrillic-900-normal-768011c3.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-greek-ext-900-normal-bebcb6fc.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-greek-900-normal-ffa82654.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-latin-ext-900-normal-3cff82a5.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-latin-900-normal-f2db7f82.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} diff --git a/invokeai/frontend/web/dist/assets/index-e53e8108.js b/invokeai/frontend/web/dist/assets/index-e53e8108.js deleted file mode 100644 index a9d1c5aede..0000000000 --- a/invokeai/frontend/web/dist/assets/index-e53e8108.js +++ /dev/null @@ -1,115 +0,0 @@ -function h2(t,e){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var yn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function AL(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jt={},IL={get exports(){return jt},set exports(t){jt=t}},hh={},be={},LL={get exports(){return be},set exports(t){be=t}},De={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var qu=Symbol.for("react.element"),ML=Symbol.for("react.portal"),DL=Symbol.for("react.fragment"),NL=Symbol.for("react.strict_mode"),BL=Symbol.for("react.profiler"),FL=Symbol.for("react.provider"),$L=Symbol.for("react.context"),zL=Symbol.for("react.forward_ref"),GL=Symbol.for("react.suspense"),UL=Symbol.for("react.memo"),jL=Symbol.for("react.lazy"),qS=Symbol.iterator;function WL(t){return t===null||typeof t!="object"?null:(t=qS&&t[qS]||t["@@iterator"],typeof t=="function"?t:null)}var p2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g2=Object.assign,m2={};function Us(t,e,n){this.props=t,this.context=e,this.refs=m2,this.updater=n||p2}Us.prototype.isReactComponent={};Us.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};Us.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function v2(){}v2.prototype=Us.prototype;function my(t,e,n){this.props=t,this.context=e,this.refs=m2,this.updater=n||p2}var vy=my.prototype=new v2;vy.constructor=my;g2(vy,Us.prototype);vy.isPureReactComponent=!0;var KS=Array.isArray,y2=Object.prototype.hasOwnProperty,yy={current:null},S2={key:!0,ref:!0,__self:!0,__source:!0};function _2(t,e,n){var r,i={},a=null,s=null;if(e!=null)for(r in e.ref!==void 0&&(s=e.ref),e.key!==void 0&&(a=""+e.key),e)y2.call(e,r)&&!S2.hasOwnProperty(r)&&(i[r]=e[r]);var u=arguments.length-2;if(u===1)i.children=n;else if(1>>1,ve=W[oe];if(0>>1;oei(At,Q))mei(qt,At)?(W[oe]=qt,W[me]=Q,oe=me):(W[oe]=At,W[Ue]=Q,oe=Ue);else if(mei(qt,Q))W[oe]=qt,W[me]=Q,oe=me;else break e}}return Y}function i(W,Y){var Q=W.sortIndex-Y.sortIndex;return Q!==0?Q:W.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],f=[],h=1,p=null,g=3,y=!1,v=!1,w=!1,x=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(W){for(var Y=n(f);Y!==null;){if(Y.callback===null)r(f);else if(Y.startTime<=W)r(f),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=n(f)}}function O(W){if(w=!1,C(W),!v)if(n(c)!==null)v=!0,V(I);else{var Y=n(f);Y!==null&&ie(O,Y.startTime-W)}}function I(W,Y){v=!1,w&&(w=!1,_(U),U=-1),y=!0;var Q=g;try{for(C(Y),p=n(c);p!==null&&(!(p.expirationTime>Y)||W&&!te());){var oe=p.callback;if(typeof oe=="function"){p.callback=null,g=p.priorityLevel;var ve=oe(p.expirationTime<=Y);Y=t.unstable_now(),typeof ve=="function"?p.callback=ve:p===n(c)&&r(c),C(Y)}else r(c);p=n(c)}if(p!==null)var we=!0;else{var Ue=n(f);Ue!==null&&ie(O,Ue.startTime-Y),we=!1}return we}finally{p=null,g=Q,y=!1}}var L=!1,D=null,U=-1,X=5,K=-1;function te(){return!(t.unstable_now()-KW||125oe?(W.sortIndex=Q,e(f,W),n(c)===null&&W===n(f)&&(w?(_(U),U=-1):w=!0,ie(O,Q-oe))):(W.sortIndex=ve,e(c,W),v||y||(v=!0,V(I))),W},t.unstable_shouldYield=te,t.unstable_wrapCallback=function(W){var Y=g;return function(){var Q=g;g=Y;try{return W.apply(this,arguments)}finally{g=Q}}}})(b2);(function(t){t.exports=b2})(nM);/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var C2=be,Yn=$m;function ae(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),zm=Object.prototype.hasOwnProperty,rM=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,QS={},JS={};function iM(t){return zm.call(JS,t)?!0:zm.call(QS,t)?!1:rM.test(t)?JS[t]=!0:(QS[t]=!0,!1)}function aM(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function oM(t,e,n,r){if(e===null||typeof e>"u"||aM(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function wn(t,e,n,r,i,a,s){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=a,this.removeEmptyString=s}var nn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){nn[t]=new wn(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];nn[e]=new wn(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){nn[t]=new wn(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){nn[t]=new wn(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){nn[t]=new wn(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){nn[t]=new wn(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){nn[t]=new wn(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){nn[t]=new wn(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){nn[t]=new wn(t,5,!1,t.toLowerCase(),null,!1,!1)});var _y=/[\-:]([a-z])/g;function wy(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(_y,wy);nn[e]=new wn(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(_y,wy);nn[e]=new wn(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(_y,wy);nn[e]=new wn(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){nn[t]=new wn(t,1,!1,t.toLowerCase(),null,!1,!1)});nn.xlinkHref=new wn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){nn[t]=new wn(t,1,!1,t.toLowerCase(),null,!0,!0)});function by(t,e,n,r){var i=nn.hasOwnProperty(e)?nn[e]:null;(i!==null?i.type!==0:r||!(2u||i[s]!==a[u]){var c=` -`+i[s].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=s&&0<=u);break}}}finally{Wg=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?Kl(t):""}function sM(t){switch(t.tag){case 5:return Kl(t.type);case 16:return Kl("Lazy");case 13:return Kl("Suspense");case 19:return Kl("SuspenseList");case 0:case 2:case 15:return t=Hg(t.type,!1),t;case 11:return t=Hg(t.type.render,!1),t;case 1:return t=Hg(t.type,!0),t;default:return""}}function Wm(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ls:return"Fragment";case ss:return"Portal";case Gm:return"Profiler";case Cy:return"StrictMode";case Um:return"Suspense";case jm:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case P2:return(t.displayName||"Context")+".Consumer";case k2:return(t._context.displayName||"Context")+".Provider";case xy:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case ky:return e=t.displayName||null,e!==null?e:Wm(t.type)||"Memo";case ca:e=t._payload,t=t._init;try{return Wm(t(e))}catch{}}return null}function lM(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Wm(e);case 8:return e===Cy?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Oa(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function O2(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function uM(t){var e=O2(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,a=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,a.call(this,s)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function df(t){t._valueTracker||(t._valueTracker=uM(t))}function T2(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=O2(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function kd(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Hm(t,e){var n=e.checked;return mt({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function e_(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=Oa(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function R2(t,e){e=e.checked,e!=null&&by(t,"checked",e,!1)}function Vm(t,e){R2(t,e);var n=Oa(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?qm(t,e.type,n):e.hasOwnProperty("defaultValue")&&qm(t,e.type,Oa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function t_(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function qm(t,e,n){(e!=="number"||kd(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var Yl=Array.isArray;function _s(t,e,n,r){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=hf.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function wu(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var ou={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},cM=["Webkit","ms","Moz","O"];Object.keys(ou).forEach(function(t){cM.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),ou[e]=ou[t]})});function M2(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||ou.hasOwnProperty(t)&&ou[t]?(""+e).trim():e+"px"}function D2(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=M2(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,i):t[n]=i}}var fM=mt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Xm(t,e){if(e){if(fM[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(ae(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(ae(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(ae(61))}if(e.style!=null&&typeof e.style!="object")throw Error(ae(62))}}function Qm(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jm=null;function Py(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Zm=null,ws=null,bs=null;function i_(t){if(t=Xu(t)){if(typeof Zm!="function")throw Error(ae(280));var e=t.stateNode;e&&(e=yh(e),Zm(t.stateNode,t.type,e))}}function N2(t){ws?bs?bs.push(t):bs=[t]:ws=t}function B2(){if(ws){var t=ws,e=bs;if(bs=ws=null,i_(t),e)for(t=0;t>>=0,t===0?32:31-(bM(t)/CM|0)|0}var pf=64,gf=4194304;function Xl(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Td(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,i=t.suspendedLanes,a=t.pingedLanes,s=n&268435455;if(s!==0){var u=s&~i;u!==0?r=Xl(u):(a&=s,a!==0&&(r=Xl(a)))}else s=n&~i,s!==0?r=Xl(s):a!==0&&(r=Xl(a));if(r===0)return 0;if(e!==0&&e!==r&&!(e&i)&&(i=r&-r,a=e&-e,i>=a||i===16&&(a&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function Ku(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Fr(e),t[e]=n}function EM(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=lu),h_=String.fromCharCode(32),p_=!1;function rC(t,e){switch(t){case"keyup":return tD.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function iC(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var us=!1;function rD(t,e){switch(t){case"compositionend":return iC(e);case"keypress":return e.which!==32?null:(p_=!0,h_);case"textInput":return t=e.data,t===h_&&p_?null:t;default:return null}}function iD(t,e){if(us)return t==="compositionend"||!My&&rC(t,e)?(t=tC(),Jf=Ay=ga=null,us=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=y_(n)}}function lC(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?lC(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function uC(){for(var t=window,e=kd();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=kd(t.document)}return e}function Dy(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function hD(t){var e=uC(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&lC(n.ownerDocument.documentElement,n)){if(r!==null&&Dy(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!t.extend&&a>r&&(i=r,r=a,a=i),i=S_(n,a);var s=S_(n,r);i&&s&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==s.node||t.focusOffset!==s.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),a>r?(t.addRange(e),t.extend(s.node,s.offset)):(e.setEnd(s.node,s.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,cs=null,av=null,cu=null,ov=!1;function __(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ov||cs==null||cs!==kd(r)||(r=cs,"selectionStart"in r&&Dy(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),cu&&Eu(cu,r)||(cu=r,r=Id(av,"onSelect"),0hs||(t.current=dv[hs],dv[hs]=null,hs--)}function at(t,e){hs++,dv[hs]=t.current,t.current=e}var Ta={},fn=La(Ta),Rn=La(!1),so=Ta;function Ls(t,e){var n=t.type.contextTypes;if(!n)return Ta;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=e[a];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function An(t){return t=t.childContextTypes,t!=null}function Md(){lt(Rn),lt(fn)}function E_(t,e,n){if(fn.current!==Ta)throw Error(ae(168));at(fn,e),at(Rn,n)}function yC(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in e))throw Error(ae(108,lM(t)||"Unknown",i));return mt({},n,r)}function Dd(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Ta,so=fn.current,at(fn,t),at(Rn,Rn.current),!0}function O_(t,e,n){var r=t.stateNode;if(!r)throw Error(ae(169));n?(t=yC(t,e,so),r.__reactInternalMemoizedMergedChildContext=t,lt(Rn),lt(fn),at(fn,t)):lt(Rn),at(Rn,n)}var Mi=null,Sh=!1,am=!1;function SC(t){Mi===null?Mi=[t]:Mi.push(t)}function kD(t){Sh=!0,SC(t)}function Ma(){if(!am&&Mi!==null){am=!0;var t=0,e=Qe;try{var n=Mi;for(Qe=1;t>=s,i-=s,Di=1<<32-Fr(e)+i|n<U?(X=D,D=null):X=D.sibling;var K=g(_,D,C[U],O);if(K===null){D===null&&(D=X);break}t&&D&&K.alternate===null&&e(_,D),S=a(K,S,U),L===null?I=K:L.sibling=K,L=K,D=X}if(U===C.length)return n(_,D),ft&&Qa(_,U),I;if(D===null){for(;UU?(X=D,D=null):X=D.sibling;var te=g(_,D,K.value,O);if(te===null){D===null&&(D=X);break}t&&D&&te.alternate===null&&e(_,D),S=a(te,S,U),L===null?I=te:L.sibling=te,L=te,D=X}if(K.done)return n(_,D),ft&&Qa(_,U),I;if(D===null){for(;!K.done;U++,K=C.next())K=p(_,K.value,O),K!==null&&(S=a(K,S,U),L===null?I=K:L.sibling=K,L=K);return ft&&Qa(_,U),I}for(D=r(_,D);!K.done;U++,K=C.next())K=y(D,_,U,K.value,O),K!==null&&(t&&K.alternate!==null&&D.delete(K.key===null?U:K.key),S=a(K,S,U),L===null?I=K:L.sibling=K,L=K);return t&&D.forEach(function(ce){return e(_,ce)}),ft&&Qa(_,U),I}function x(_,S,C,O){if(typeof C=="object"&&C!==null&&C.type===ls&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case ff:e:{for(var I=C.key,L=S;L!==null;){if(L.key===I){if(I=C.type,I===ls){if(L.tag===7){n(_,L.sibling),S=i(L,C.props.children),S.return=_,_=S;break e}}else if(L.elementType===I||typeof I=="object"&&I!==null&&I.$$typeof===ca&&D_(I)===L.type){n(_,L.sibling),S=i(L,C.props),S.ref=Ll(_,L,C),S.return=_,_=S;break e}n(_,L);break}else e(_,L);L=L.sibling}C.type===ls?(S=oo(C.props.children,_.mode,O,C.key),S.return=_,_=S):(O=od(C.type,C.key,C.props,null,_.mode,O),O.ref=Ll(_,S,C),O.return=_,_=O)}return s(_);case ss:e:{for(L=C.key;S!==null;){if(S.key===L)if(S.tag===4&&S.stateNode.containerInfo===C.containerInfo&&S.stateNode.implementation===C.implementation){n(_,S.sibling),S=i(S,C.children||[]),S.return=_,_=S;break e}else{n(_,S);break}else e(_,S);S=S.sibling}S=hm(C,_.mode,O),S.return=_,_=S}return s(_);case ca:return L=C._init,x(_,S,L(C._payload),O)}if(Yl(C))return v(_,S,C,O);if(Ol(C))return w(_,S,C,O);bf(_,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,S!==null&&S.tag===6?(n(_,S.sibling),S=i(S,C),S.return=_,_=S):(n(_,S),S=dm(C,_.mode,O),S.return=_,_=S),s(_)):n(_,S)}return x}var Ds=EC(!0),OC=EC(!1),Qu={},si=La(Qu),Au=La(Qu),Iu=La(Qu);function ro(t){if(t===Qu)throw Error(ae(174));return t}function Wy(t,e){switch(at(Iu,e),at(Au,t),at(si,Qu),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Ym(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Ym(e,t)}lt(si),at(si,e)}function Ns(){lt(si),lt(Au),lt(Iu)}function TC(t){ro(Iu.current);var e=ro(si.current),n=Ym(e,t.type);e!==n&&(at(Au,t),at(si,n))}function Hy(t){Au.current===t&&(lt(si),lt(Au))}var pt=La(0);function Gd(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var om=[];function Vy(){for(var t=0;tn?n:4,t(!0);var r=sm.transition;sm.transition={};try{t(!1),e()}finally{Qe=n,sm.transition=r}}function HC(){return vr().memoizedState}function TD(t,e,n){var r=xa(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VC(t))qC(e,n);else if(n=CC(t,e,n,r),n!==null){var i=Sn();$r(n,t,r,i),KC(n,e,r)}}function RD(t,e,n){var r=xa(t),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VC(t))qC(e,i);else{var a=t.alternate;if(t.lanes===0&&(a===null||a.lanes===0)&&(a=e.lastRenderedReducer,a!==null))try{var s=e.lastRenderedState,u=a(s,n);if(i.hasEagerState=!0,i.eagerState=u,Gr(u,s)){var c=e.interleaved;c===null?(i.next=i,Uy(e)):(i.next=c.next,c.next=i),e.interleaved=i;return}}catch{}finally{}n=CC(t,e,i,r),n!==null&&(i=Sn(),$r(n,t,r,i),KC(n,e,r))}}function VC(t){var e=t.alternate;return t===gt||e!==null&&e===gt}function qC(t,e){fu=Ud=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function KC(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Oy(t,n)}}var jd={readContext:mr,useCallback:on,useContext:on,useEffect:on,useImperativeHandle:on,useInsertionEffect:on,useLayoutEffect:on,useMemo:on,useReducer:on,useRef:on,useState:on,useDebugValue:on,useDeferredValue:on,useTransition:on,useMutableSource:on,useSyncExternalStore:on,useId:on,unstable_isNewReconciler:!1},AD={readContext:mr,useCallback:function(t,e){return Zr().memoizedState=[t,e===void 0?null:e],t},useContext:mr,useEffect:B_,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,nd(4194308,4,zC.bind(null,e,t),n)},useLayoutEffect:function(t,e){return nd(4194308,4,t,e)},useInsertionEffect:function(t,e){return nd(4,2,t,e)},useMemo:function(t,e){var n=Zr();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Zr();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=TD.bind(null,gt,t),[r.memoizedState,t]},useRef:function(t){var e=Zr();return t={current:t},e.memoizedState=t},useState:N_,useDebugValue:Qy,useDeferredValue:function(t){return Zr().memoizedState=t},useTransition:function(){var t=N_(!1),e=t[0];return t=OD.bind(null,t[1]),Zr().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=gt,i=Zr();if(ft){if(n===void 0)throw Error(ae(407));n=n()}else{if(n=e(),Ht===null)throw Error(ae(349));uo&30||IC(r,e,n)}i.memoizedState=n;var a={value:n,getSnapshot:e};return i.queue=a,B_(MC.bind(null,r,a,t),[t]),r.flags|=2048,Du(9,LC.bind(null,r,a,n,e),void 0,null),n},useId:function(){var t=Zr(),e=Ht.identifierPrefix;if(ft){var n=Ni,r=Di;n=(r&~(1<<32-Fr(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=Lu++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=s.createElement(n,{is:r.is}):(t=s.createElement(n),n==="select"&&(s=t,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):t=s.createElementNS(t,n),t[ri]=e,t[Ru]=r,rx(t,e,!1,!1),e.stateNode=t;e:{switch(s=Qm(n,r),n){case"dialog":ot("cancel",t),ot("close",t),i=r;break;case"iframe":case"object":case"embed":ot("load",t),i=r;break;case"video":case"audio":for(i=0;iFs&&(e.flags|=128,r=!0,Ml(a,!1),e.lanes=4194304)}else{if(!r)if(t=Gd(s),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Ml(a,!0),a.tail===null&&a.tailMode==="hidden"&&!s.alternate&&!ft)return sn(e),null}else 2*Pt()-a.renderingStartTime>Fs&&n!==1073741824&&(e.flags|=128,r=!0,Ml(a,!1),e.lanes=4194304);a.isBackwards?(s.sibling=e.child,e.child=s):(n=a.last,n!==null?n.sibling=s:e.child=s,a.last=s)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Pt(),e.sibling=null,n=pt.current,at(pt,r?n&1|2:n&1),e):(sn(e),null);case 22:case 23:return r0(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?jn&1073741824&&(sn(e),e.subtreeFlags&6&&(e.flags|=8192)):sn(e),null;case 24:return null;case 25:return null}throw Error(ae(156,e.tag))}function $D(t,e){switch(By(e),e.tag){case 1:return An(e.type)&&Md(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Ns(),lt(Rn),lt(fn),Vy(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return Hy(e),null;case 13:if(lt(pt),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(ae(340));Ms()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return lt(pt),null;case 4:return Ns(),null;case 10:return Gy(e.type._context),null;case 22:case 23:return r0(),null;case 24:return null;default:return null}}var xf=!1,cn=!1,zD=typeof WeakSet=="function"?WeakSet:Set,he=null;function vs(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){wt(t,e,r)}else n.current=null}function xv(t,e,n){try{n()}catch(r){wt(t,e,r)}}var V_=!1;function GD(t,e){if(sv=Rd,t=uC(),Dy(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var s=0,u=-1,c=-1,f=0,h=0,p=t,g=null;t:for(;;){for(var y;p!==n||i!==0&&p.nodeType!==3||(u=s+i),p!==a||r!==0&&p.nodeType!==3||(c=s+r),p.nodeType===3&&(s+=p.nodeValue.length),(y=p.firstChild)!==null;)g=p,p=y;for(;;){if(p===t)break t;if(g===n&&++f===i&&(u=s),g===a&&++h===r&&(c=s),(y=p.nextSibling)!==null)break;p=g,g=p.parentNode}p=y}n=u===-1||c===-1?null:{start:u,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(lv={focusedElem:t,selectionRange:n},Rd=!1,he=e;he!==null;)if(e=he,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,he=t;else for(;he!==null;){e=he;try{var v=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var w=v.memoizedProps,x=v.memoizedState,_=e.stateNode,S=_.getSnapshotBeforeUpdate(e.elementType===e.type?w:Lr(e.type,w),x);_.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var C=e.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ae(163))}}catch(O){wt(e,e.return,O)}if(t=e.sibling,t!==null){t.return=e.return,he=t;break}he=e.return}return v=V_,V_=!1,v}function du(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&t)===t){var a=i.destroy;i.destroy=void 0,a!==void 0&&xv(e,n,a)}i=i.next}while(i!==r)}}function bh(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function kv(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function ox(t){var e=t.alternate;e!==null&&(t.alternate=null,ox(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[ri],delete e[Ru],delete e[fv],delete e[CD],delete e[xD])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function sx(t){return t.tag===5||t.tag===3||t.tag===4}function q_(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||sx(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Pv(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Ld));else if(r!==4&&(t=t.child,t!==null))for(Pv(t,e,n),t=t.sibling;t!==null;)Pv(t,e,n),t=t.sibling}function Ev(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(Ev(t,e,n),t=t.sibling;t!==null;)Ev(t,e,n),t=t.sibling}var Zt=null,Mr=!1;function sa(t,e,n){for(n=n.child;n!==null;)lx(t,e,n),n=n.sibling}function lx(t,e,n){if(oi&&typeof oi.onCommitFiberUnmount=="function")try{oi.onCommitFiberUnmount(ph,n)}catch{}switch(n.tag){case 5:cn||vs(n,e);case 6:var r=Zt,i=Mr;Zt=null,sa(t,e,n),Zt=r,Mr=i,Zt!==null&&(Mr?(t=Zt,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Zt.removeChild(n.stateNode));break;case 18:Zt!==null&&(Mr?(t=Zt,n=n.stateNode,t.nodeType===8?im(t.parentNode,n):t.nodeType===1&&im(t,n),ku(t)):im(Zt,n.stateNode));break;case 4:r=Zt,i=Mr,Zt=n.stateNode.containerInfo,Mr=!0,sa(t,e,n),Zt=r,Mr=i;break;case 0:case 11:case 14:case 15:if(!cn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,s=a.destroy;a=a.tag,s!==void 0&&(a&2||a&4)&&xv(n,e,s),i=i.next}while(i!==r)}sa(t,e,n);break;case 1:if(!cn&&(vs(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){wt(n,e,u)}sa(t,e,n);break;case 21:sa(t,e,n);break;case 22:n.mode&1?(cn=(r=cn)||n.memoizedState!==null,sa(t,e,n),cn=r):sa(t,e,n);break;default:sa(t,e,n)}}function K_(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new zD),e.forEach(function(r){var i=XD.bind(null,t,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Rr(t,e){var n=e.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~a}if(r=i,r=Pt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jD(r/1960))-r,10t?16:t,ma===null)var r=!1;else{if(t=ma,ma=null,Vd=0,$e&6)throw Error(ae(331));var i=$e;for($e|=4,he=t.current;he!==null;){var a=he,s=a.child;if(he.flags&16){var u=a.deletions;if(u!==null){for(var c=0;cPt()-t0?ao(t,0):e0|=n),In(t,e)}function mx(t,e){e===0&&(t.mode&1?(e=gf,gf<<=1,!(gf&130023424)&&(gf=4194304)):e=1);var n=Sn();t=Gi(t,e),t!==null&&(Ku(t,e,n),In(t,n))}function YD(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),mx(t,n)}function XD(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(ae(314))}r!==null&&r.delete(e),mx(t,n)}var vx;vx=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||Rn.current)Tn=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return Tn=!1,BD(t,e,n);Tn=!!(t.flags&131072)}else Tn=!1,ft&&e.flags&1048576&&_C(e,Bd,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;rd(t,e),t=e.pendingProps;var i=Ls(e,fn.current);xs(e,n),i=Ky(null,e,r,t,i,n);var a=Yy();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,An(r)?(a=!0,Dd(e)):a=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,jy(e),i.updater=_h,e.stateNode=i,i._reactInternals=e,vv(e,r,t,n),e=_v(null,e,r,!0,a,n)):(e.tag=0,ft&&a&&Ny(e),vn(null,e,i,n),e=e.child),e;case 16:r=e.elementType;e:{switch(rd(t,e),t=e.pendingProps,i=r._init,r=i(r._payload),e.type=r,i=e.tag=JD(r),t=Lr(r,t),i){case 0:e=Sv(null,e,r,t,n);break e;case 1:e=j_(null,e,r,t,n);break e;case 11:e=G_(null,e,r,t,n);break e;case 14:e=U_(null,e,r,Lr(r.type,t),n);break e}throw Error(ae(306,r,""))}return e;case 0:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Lr(r,i),Sv(t,e,r,i,n);case 1:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Lr(r,i),j_(t,e,r,i,n);case 3:e:{if(ex(e),t===null)throw Error(ae(387));r=e.pendingProps,a=e.memoizedState,i=a.element,xC(t,e),zd(e,r,null,n);var s=e.memoizedState;if(r=s.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},e.updateQueue.baseState=a,e.memoizedState=a,e.flags&256){i=Bs(Error(ae(423)),e),e=W_(t,e,r,n,i);break e}else if(r!==i){i=Bs(Error(ae(424)),e),e=W_(t,e,r,n,i);break e}else for(Hn=wa(e.stateNode.containerInfo.firstChild),Vn=e,ft=!0,Nr=null,n=OC(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ms(),r===i){e=Ui(t,e,n);break e}vn(t,e,r,n)}e=e.child}return e;case 5:return TC(e),t===null&&pv(e),r=e.type,i=e.pendingProps,a=t!==null?t.memoizedProps:null,s=i.children,uv(r,i)?s=null:a!==null&&uv(r,a)&&(e.flags|=32),ZC(t,e),vn(t,e,s,n),e.child;case 6:return t===null&&pv(e),null;case 13:return tx(t,e,n);case 4:return Wy(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=Ds(e,null,r,n):vn(t,e,r,n),e.child;case 11:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Lr(r,i),G_(t,e,r,i,n);case 7:return vn(t,e,e.pendingProps,n),e.child;case 8:return vn(t,e,e.pendingProps.children,n),e.child;case 12:return vn(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,i=e.pendingProps,a=e.memoizedProps,s=i.value,at(Fd,r._currentValue),r._currentValue=s,a!==null)if(Gr(a.value,s)){if(a.children===i.children&&!Rn.current){e=Ui(t,e,n);break e}}else for(a=e.child,a!==null&&(a.return=e);a!==null;){var u=a.dependencies;if(u!==null){s=a.child;for(var c=u.firstContext;c!==null;){if(c.context===r){if(a.tag===1){c=Bi(-1,n&-n),c.tag=2;var f=a.updateQueue;if(f!==null){f=f.shared;var h=f.pending;h===null?c.next=c:(c.next=h.next,h.next=c),f.pending=c}}a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),gv(a.return,n,e),u.lanes|=n;break}c=c.next}}else if(a.tag===10)s=a.type===e.type?null:a.child;else if(a.tag===18){if(s=a.return,s===null)throw Error(ae(341));s.lanes|=n,u=s.alternate,u!==null&&(u.lanes|=n),gv(s,n,e),s=a.sibling}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}vn(t,e,i.children,n),e=e.child}return e;case 9:return i=e.type,r=e.pendingProps.children,xs(e,n),i=mr(i),r=r(i),e.flags|=1,vn(t,e,r,n),e.child;case 14:return r=e.type,i=Lr(r,e.pendingProps),i=Lr(r.type,i),U_(t,e,r,i,n);case 15:return QC(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Lr(r,i),rd(t,e),e.tag=1,An(r)?(t=!0,Dd(e)):t=!1,xs(e,n),PC(e,r,i),vv(e,r,i,n),_v(null,e,r,!0,t,n);case 19:return nx(t,e,n);case 22:return JC(t,e,n)}throw Error(ae(156,e.tag))};function yx(t,e){return W2(t,e)}function QD(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hr(t,e,n,r){return new QD(t,e,n,r)}function a0(t){return t=t.prototype,!(!t||!t.isReactComponent)}function JD(t){if(typeof t=="function")return a0(t)?1:0;if(t!=null){if(t=t.$$typeof,t===xy)return 11;if(t===ky)return 14}return 2}function ka(t,e){var n=t.alternate;return n===null?(n=hr(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function od(t,e,n,r,i,a){var s=2;if(r=t,typeof t=="function")a0(t)&&(s=1);else if(typeof t=="string")s=5;else e:switch(t){case ls:return oo(n.children,i,a,e);case Cy:s=8,i|=8;break;case Gm:return t=hr(12,n,e,i|2),t.elementType=Gm,t.lanes=a,t;case Um:return t=hr(13,n,e,i),t.elementType=Um,t.lanes=a,t;case jm:return t=hr(19,n,e,i),t.elementType=jm,t.lanes=a,t;case E2:return xh(n,i,a,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case k2:s=10;break e;case P2:s=9;break e;case xy:s=11;break e;case ky:s=14;break e;case ca:s=16,r=null;break e}throw Error(ae(130,t==null?t:typeof t,""))}return e=hr(s,n,e,i),e.elementType=t,e.type=r,e.lanes=a,e}function oo(t,e,n,r){return t=hr(7,t,r,e),t.lanes=n,t}function xh(t,e,n,r){return t=hr(22,t,r,e),t.elementType=E2,t.lanes=n,t.stateNode={isHidden:!1},t}function dm(t,e,n){return t=hr(6,t,null,e),t.lanes=n,t}function hm(t,e,n){return e=hr(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function ZD(t,e,n,r,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=qg(0),this.expirationTimes=qg(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qg(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function o0(t,e,n,r,i,a,s,u,c){return t=new ZD(t,e,n,u,c),e===1?(e=1,a===!0&&(e|=8)):e=0,a=hr(3,null,null,e),t.current=a,a.stateNode=t,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},jy(a),t}function e3(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}e(),t.exports=Qn})(tM);var nw=xd;Fm.createRoot=nw.createRoot,Fm.hydrateRoot=nw.hydrateRoot;const a3="modulepreload",o3=function(t,e){return new URL(t,e).href},rw={},bx=function(e,n,r){if(!n||n.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(n.map(a=>{if(a=o3(a,r),a in rw)return;rw[a]=!0;const s=a.endsWith(".css"),u=s?'[rel="stylesheet"]':"";if(!!r)for(let h=i.length-1;h>=0;h--){const p=i[h];if(p.href===a&&(!s||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${u}`))return;const f=document.createElement("link");if(f.rel=s?"stylesheet":a3,s||(f.as="script",f.crossOrigin=""),f.href=a,document.head.appendChild(f),s)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e())};var Iv={},s3={get exports(){return Iv},set exports(t){Iv=t}},Cx={};/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var $s=be;function l3(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var u3=typeof Object.is=="function"?Object.is:l3,c3=$s.useState,f3=$s.useEffect,d3=$s.useLayoutEffect,h3=$s.useDebugValue;function p3(t,e){var n=e(),r=c3({inst:{value:n,getSnapshot:e}}),i=r[0].inst,a=r[1];return d3(function(){i.value=n,i.getSnapshot=e,pm(i)&&a({inst:i})},[t,n,e]),f3(function(){return pm(i)&&a({inst:i}),t(function(){pm(i)&&a({inst:i})})},[t]),h3(n),n}function pm(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!u3(t,n)}catch{return!0}}function g3(t,e){return e()}var m3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g3:p3;Cx.useSyncExternalStore=$s.useSyncExternalStore!==void 0?$s.useSyncExternalStore:m3;(function(t){t.exports=Cx})(s3);var Lv={},v3={get exports(){return Lv},set exports(t){Lv=t}},xx={};/** - * @license React - * use-sync-external-store-shim/with-selector.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Th=be,y3=Iv;function S3(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var _3=typeof Object.is=="function"?Object.is:S3,w3=y3.useSyncExternalStore,b3=Th.useRef,C3=Th.useEffect,x3=Th.useMemo,k3=Th.useDebugValue;xx.useSyncExternalStoreWithSelector=function(t,e,n,r,i){var a=b3(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=x3(function(){function c(y){if(!f){if(f=!0,h=y,y=r(y),i!==void 0&&s.hasValue){var v=s.value;if(i(v,y))return p=v}return p=y}if(v=p,_3(h,y))return v;var w=r(y);return i!==void 0&&i(v,w)?v:(h=y,p=w)}var f=!1,h,p,g=n===void 0?null:n;return[function(){return c(e())},g===null?void 0:function(){return c(g())}]},[e,n,r,i]);var u=w3(t,a[0],a[1]);return C3(function(){s.hasValue=!0,s.value=u},[u]),k3(u),u};(function(t){t.exports=xx})(v3);function P3(t){t()}let kx=P3;const E3=t=>kx=t,O3=()=>kx,Yd=be.createContext(null);function T3(){return be.useContext(Yd)}const R3=()=>{throw new Error("uSES not initialized!")};let Px=R3;const A3=t=>{Px=t},I3=(t,e)=>t===e;function L3(t=Yd){const e=t===Yd?T3:()=>be.useContext(t);return function(r,i=I3){const{store:a,subscription:s,getServerState:u}=e(),c=Px(s.addNestedSub,a.getState,u||a.getState,r,i);return be.useDebugValue(c),c}}const I8=L3();function Xd(){return Xd=Object.assign?Object.assign.bind():function(t){for(var e=1;e{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],i=e;for(;i;)r.push(i),i=i.next;return r},subscribe(r){let i=!0,a=n={callback:r,next:null,prev:n};return a.prev?a.prev.next=a:e=a,function(){!i||e===null||(i=!1,a.next?a.next.prev=a.prev:n=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}const aw={notify(){},get:()=>[]};function V3(t,e){let n,r=aw;function i(p){return c(),r.subscribe(p)}function a(){r.notify()}function s(){h.onStateChange&&h.onStateChange()}function u(){return Boolean(n)}function c(){n||(n=e?e.addNestedSub(s):t.subscribe(s),r=H3())}function f(){n&&(n(),n=void 0,r.clear(),r=aw)}const h={addNestedSub:i,notifyNestedSubs:a,handleChangeWrapper:s,isSubscribed:u,trySubscribe:c,tryUnsubscribe:f,getListeners:()=>r};return h}const q3=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",K3=q3?be.useLayoutEffect:be.useEffect;function Y3({store:t,context:e,children:n,serverState:r}){const i=be.useMemo(()=>{const u=V3(t);return{store:t,subscription:u,getServerState:r?()=>r:void 0}},[t,r]),a=be.useMemo(()=>t.getState(),[t]);K3(()=>{const{subscription:u}=i;return u.onStateChange=u.notifyNestedSubs,u.trySubscribe(),a!==t.getState()&&u.notifyNestedSubs(),()=>{u.tryUnsubscribe(),u.onStateChange=void 0}},[i,a]);const s=e||Yd;return As.createElement(s.Provider,{value:i},n)}A3(Lv.useSyncExternalStoreWithSelector);E3(xd.unstable_batchedUpdates);function sd(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?sd=function(n){return typeof n}:sd=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},sd(t)}function X3(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ow(t,e){for(var n=0;n1?e-1:0),r=1;r3?e.i-4:e.i:Array.isArray(t)?1:g0(t)?2:m0(t)?3:0}function Ps(t,e){return Hs(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function eN(t,e){return Hs(t)===2?t.get(e):t[e]}function Ix(t,e,n){var r=Hs(t);r===2?t.set(e,n):r===3?t.add(n):t[e]=n}function Lx(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function g0(t){return oN&&t instanceof Map}function m0(t){return sN&&t instanceof Set}function Za(t){return t.o||t.t}function v0(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=Dx(t);delete e[ct];for(var n=Es(e),r=0;r1&&(t.set=t.add=t.clear=t.delete=tN),Object.freeze(t),e&&ho(t,function(n,r){return y0(r,!0)},!0)),t}function tN(){Br(2)}function S0(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function li(t){var e=zv[t];return e||Br(18,t),e}function nN(t,e){zv[t]||(zv[t]=e)}function Bv(){return Bu}function gm(t,e){e&&(li("Patches"),t.u=[],t.s=[],t.v=e)}function Qd(t){Fv(t),t.p.forEach(rN),t.p=null}function Fv(t){t===Bu&&(Bu=t.l)}function sw(t){return Bu={p:[],l:Bu,h:t,m:!0,_:0}}function rN(t){var e=t[ct];e.i===0||e.i===1?e.j():e.O=!0}function mm(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||li("ES5").S(e,t,r),r?(n[ct].P&&(Qd(e),Br(4)),ji(t)&&(t=Jd(e,t),e.l||Zd(e,t)),e.u&&li("Patches").M(n[ct].t,t,e.u,e.s)):t=Jd(e,n,[]),Qd(e),e.u&&e.v(e.u,e.s),t!==Mx?t:void 0}function Jd(t,e,n){if(S0(e))return e;var r=e[ct];if(!r)return ho(e,function(u,c){return lw(t,r,e,u,c,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Zd(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=v0(r.k):r.o,a=i,s=!1;r.i===3&&(a=new Set(i),i.clear(),s=!0),ho(a,function(u,c){return lw(t,r,i,u,c,n,s)}),Zd(t,i,!1),n&&t.u&&li("Patches").N(r,n,t.u,t.s)}return r.o}function lw(t,e,n,r,i,a,s){if(Ra(i)){var u=Jd(t,i,a&&e&&e.i!==3&&!Ps(e.R,r)?a.concat(r):void 0);if(Ix(n,r,u),!Ra(u))return;t.m=!1}else s&&n.add(i);if(ji(i)&&!S0(i)){if(!t.h.D&&t._<1)return;Jd(t,i),e&&e.A.l||Zd(t,i)}}function Zd(t,e,n){n===void 0&&(n=!1),!t.l&&t.h.D&&t.m&&y0(e,n)}function vm(t,e){var n=t[ct];return(n?Za(n):t)[e]}function uw(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function pa(t){t.P||(t.P=!0,t.l&&pa(t.l))}function ym(t){t.o||(t.o=v0(t.t))}function $v(t,e,n){var r=g0(e)?li("MapSet").F(e,n):m0(e)?li("MapSet").T(e,n):t.g?function(i,a){var s=Array.isArray(i),u={i:s?1:0,A:a?a.A:Bv(),P:!1,I:!1,R:{},l:a,t:i,k:null,o:null,j:null,C:!1},c=u,f=Fu;s&&(c=[u],f=Jl);var h=Proxy.revocable(c,f),p=h.revoke,g=h.proxy;return u.k=g,u.j=p,g}(e,n):li("ES5").J(e,n);return(n?n.A:Bv()).p.push(r),r}function iN(t){return Ra(t)||Br(22,t),function e(n){if(!ji(n))return n;var r,i=n[ct],a=Hs(n);if(i){if(!i.P&&(i.i<4||!li("ES5").K(i)))return i.t;i.I=!0,r=cw(n,a),i.I=!1}else r=cw(n,a);return ho(r,function(s,u){i&&eN(i.t,s)===u||Ix(r,s,e(u))}),a===3?new Set(r):r}(t)}function cw(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return v0(t)}function aN(){function t(a,s){var u=i[a];return u?u.enumerable=s:i[a]=u={configurable:!0,enumerable:s,get:function(){var c=this[ct];return Fu.get(c,a)},set:function(c){var f=this[ct];Fu.set(f,a,c)}},u}function e(a){for(var s=a.length-1;s>=0;s--){var u=a[s][ct];if(!u.P)switch(u.i){case 5:r(u)&&pa(u);break;case 4:n(u)&&pa(u)}}}function n(a){for(var s=a.t,u=a.k,c=Es(u),f=c.length-1;f>=0;f--){var h=c[f];if(h!==ct){var p=s[h];if(p===void 0&&!Ps(s,h))return!0;var g=u[h],y=g&&g[ct];if(y?y.t!==p:!Lx(g,p))return!0}}var v=!!s[ct];return c.length!==Es(s).length+(v?0:1)}function r(a){var s=a.k;if(s.length!==a.t.length)return!0;var u=Object.getOwnPropertyDescriptor(s,s.length-1);if(u&&!u.get)return!0;for(var c=0;c1?_-1:0),C=1;C<_;C++)S[C-1]=arguments[C];return c.produce(w,function(O){var I;return(I=a).call.apply(I,[x,O].concat(S))})}}var f;if(typeof a!="function"&&Br(6),s!==void 0&&typeof s!="function"&&Br(7),ji(i)){var h=sw(r),p=$v(r,i,void 0),g=!0;try{f=a(p),g=!1}finally{g?Qd(h):Fv(h)}return typeof Promise<"u"&&f instanceof Promise?f.then(function(w){return gm(h,s),mm(w,h)},function(w){throw Qd(h),w}):(gm(h,s),mm(f,h))}if(!i||typeof i!="object"){if((f=a(i))===void 0&&(f=i),f===Mx&&(f=void 0),r.D&&y0(f,!0),s){var y=[],v=[];li("Patches").M(i,f,y,v),s(y,v)}return f}Br(21,i)},this.produceWithPatches=function(i,a){if(typeof i=="function")return function(f){for(var h=arguments.length,p=Array(h>1?h-1:0),g=1;g=0;i--){var a=r[i];if(a.path.length===0&&a.op==="replace"){n=a.value;break}}i>-1&&(r=r.slice(i+1));var s=li("Patches").$;return Ra(n)?s(n,r):this.produce(n,function(u){return s(u,r)})},t}(),Xn=new uN,Nx=Xn.produce;Xn.produceWithPatches.bind(Xn);Xn.setAutoFreeze.bind(Xn);Xn.setUseProxies.bind(Xn);Xn.applyPatches.bind(Xn);Xn.createDraft.bind(Xn);Xn.finishDraft.bind(Xn);function gr(t){return gr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gr(t)}function cN(t,e){if(gr(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(gr(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Bx(t){var e=cN(t,"string");return gr(e)==="symbol"?e:String(e)}function Ur(t,e,n){return e=Bx(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function pw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function gw(t){for(var e=1;e"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(un(1));return n(w0)(t,e)}if(typeof t!="function")throw new Error(un(2));var i=t,a=e,s=[],u=s,c=!1;function f(){u===s&&(u=s.slice())}function h(){if(c)throw new Error(un(3));return a}function p(w){if(typeof w!="function")throw new Error(un(4));if(c)throw new Error(un(5));var x=!0;return f(),u.push(w),function(){if(x){if(c)throw new Error(un(6));x=!1,f();var S=u.indexOf(w);u.splice(S,1),s=null}}}function g(w){if(!fN(w))throw new Error(un(7));if(typeof w.type>"u")throw new Error(un(8));if(c)throw new Error(un(9));try{c=!0,a=i(a,w)}finally{c=!1}for(var x=s=u,_=0;_"u")throw new Error(un(12));if(typeof n(void 0,{type:eh.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(un(13))})}function Fx(t){for(var e=Object.keys(t),n={},r=0;r"u")throw f&&f.type,new Error(un(14));p[y]=x,h=h||x!==w}return h=h||a.length!==Object.keys(c).length,h?p:c}}function th(){for(var t=arguments.length,e=new Array(t),n=0;n0&&a[a.length-1])&&(f[0]===6||f[0]===2)){n=0;continue}if(f[0]===3&&(!a||f[1]>a[0]&&f[1]{Object.keys(L).forEach(function(D){C(D)&&h[D]!==L[D]&&g.indexOf(D)===-1&&g.push(D)}),Object.keys(h).forEach(function(D){L[D]===void 0&&C(D)&&g.indexOf(D)===-1&&h[D]!==void 0&&g.push(D)}),y===null&&(y=setInterval(_,i)),h=L},a)}function _(){if(g.length===0){y&&clearInterval(y),y=null;return}var L=g.shift(),D=r.reduce(function(U,X){return X.in(U,L,h)},h[L]);if(D!==void 0)try{p[L]=c(D)}catch(U){console.error("redux-persist/createPersistoid: error serializing state",U)}else delete p[L];g.length===0&&S()}function S(){Object.keys(p).forEach(function(L){h[L]===void 0&&delete p[L]}),v=u.setItem(s,c(p)).catch(O)}function C(L){return!(n&&n.indexOf(L)===-1&&L!=="_persist"||e&&e.indexOf(L)!==-1)}function O(L){f&&f(L)}var I=function(){for(;g.length!==0;)_();return v||Promise.resolve()};return{update:x,flush:I}}function WN(t){return JSON.stringify(t)}function HN(t){var e=t.transforms||[],n="".concat(t.keyPrefix!==void 0?t.keyPrefix:C0).concat(t.key),r=t.storage;t.debug;var i;return t.deserialize===!1?i=function(s){return s}:typeof t.deserialize=="function"?i=t.deserialize:i=VN,r.getItem(n).then(function(a){if(a)try{var s={},u=i(a);return Object.keys(u).forEach(function(c){s[c]=e.reduceRight(function(f,h){return h.out(f,c,u)},i(u[c]))}),s}catch(c){throw c}else return})}function VN(t){return JSON.parse(t)}function qN(t){var e=t.storage,n="".concat(t.keyPrefix!==void 0?t.keyPrefix:C0).concat(t.key);return e.removeItem(n,KN)}function KN(t){}function Cw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ti(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function QN(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,a;for(a=0;a=0)&&(n[i]=t[i]);return n}var JN=5e3;function ZN(t,e){var n=t.version!==void 0?t.version:$N;t.debug;var r=t.stateReconciler===void 0?UN:t.stateReconciler,i=t.getStoredState||HN,a=t.timeout!==void 0?t.timeout:JN,s=null,u=!1,c=!0,f=function(p){return p._persist.rehydrated&&s&&!c&&s.update(p),p};return function(h,p){var g=h||{},y=g._persist,v=XN(g,["_persist"]),w=v;if(p.type===Wx){var x=!1,_=function(U,X){x||(p.rehydrate(t.key,U,X),x=!0)};if(a&&setTimeout(function(){!x&&_(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(t.key,'"')))},a),c=!1,s||(s=jN(t)),y)return Ti({},e(w,p),{_persist:y});if(typeof p.rehydrate!="function"||typeof p.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return p.register(t.key),i(t).then(function(D){var U=t.migrate||function(X,K){return Promise.resolve(X)};U(D,n).then(function(X){_(X)},function(X){_(void 0,X)})},function(D){_(void 0,D)}),Ti({},e(w,p),{_persist:{version:n,rehydrated:!1}})}else{if(p.type===Hx)return u=!0,p.result(qN(t)),Ti({},e(w,p),{_persist:y});if(p.type===Ux)return p.result(s&&s.flush()),Ti({},e(w,p),{_persist:y});if(p.type===jx)c=!0;else if(p.type===x0){if(u)return Ti({},w,{_persist:Ti({},y,{rehydrated:!0})});if(p.key===t.key){var S=e(w,p),C=p.payload,O=r!==!1&&C!==void 0?r(C,h,S,t):S,I=Ti({},O,{_persist:Ti({},y,{rehydrated:!0})});return f(I)}}}if(!y)return e(h,p);var L=e(w,p);return L===w?h:f(Ti({},L,{_persist:y}))}}function xw(t){return n5(t)||t5(t)||e5()}function e5(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function t5(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function n5(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&arguments[0]!==void 0?arguments[0]:qx,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case Vx:return Uv({},e,{registry:[].concat(xw(e.registry),[n.key])});case x0:var r=e.registry.indexOf(n.key),i=xw(e.registry);return i.splice(r,1),Uv({},e,{registry:i,bootstrapped:i.length===0});default:return e}};function a5(t,e,n){var r=n||!1,i=w0(i5,qx,e&&e.enhancer?e.enhancer:void 0),a=function(f){i.dispatch({type:Vx,key:f})},s=function(f,h,p){var g={type:x0,payload:h,err:p,key:f};t.dispatch(g),i.dispatch(g),r&&u.getState().bootstrapped&&(r(),r=!1)},u=Uv({},i,{purge:function(){var f=[];return t.dispatch({type:Hx,result:function(p){f.push(p)}}),Promise.all(f)},flush:function(){var f=[];return t.dispatch({type:Ux,result:function(p){f.push(p)}}),Promise.all(f)},pause:function(){t.dispatch({type:jx})},persist:function(){t.dispatch({type:Wx,register:a,rehydrate:s})}});return e&&e.manualPersist||u.persist(),u}var k0={},P0={};P0.__esModule=!0;P0.default=l5;function fd(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?fd=function(n){return typeof n}:fd=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},fd(t)}function bm(){}var o5={getItem:bm,setItem:bm,removeItem:bm};function s5(t){if((typeof self>"u"?"undefined":fd(self))!=="object"||!(t in self))return!1;try{var e=self[t],n="redux-persist ".concat(t," test");e.setItem(n,"test"),e.getItem(n),e.removeItem(n)}catch{return!1}return!0}function l5(t){var e="".concat(t,"Storage");return s5(e)?self[e]:o5}k0.__esModule=!0;k0.default=f5;var u5=c5(P0);function c5(t){return t&&t.__esModule?t:{default:t}}function f5(t){var e=(0,u5.default)(t);return{getItem:function(r){return new Promise(function(i,a){i(e.getItem(r))})},setItem:function(r,i){return new Promise(function(a,s){a(e.setItem(r,i))})},removeItem:function(r){return new Promise(function(i,a){i(e.removeItem(r))})}}}var Kx=void 0,d5=h5(k0);function h5(t){return t&&t.__esModule?t:{default:t}}var p5=(0,d5.default)("local");Kx=p5;var Yx={},Xx={},po={};Object.defineProperty(po,"__esModule",{value:!0});po.PLACEHOLDER_UNDEFINED=po.PACKAGE_NAME=void 0;po.PACKAGE_NAME="redux-deep-persist";po.PLACEHOLDER_UNDEFINED="@@placeholder/undefined";var E0={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigType=void 0,function(e){e[e.WHITELIST=0]="WHITELIST",e[e.BLACKLIST=1]="BLACKLIST"}(t.ConfigType||(t.ConfigType={}))})(E0);(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getRootKeysGroup=t.throwError=t.configValidator=t.transformsValidator=t.singleTransformValidator=t.findDuplicatesAndSubsets=t.unique=t.preserveUndefined=t.mergeDeep=t.dissocPath=t.assocPath=t.path=t.difference=t.cloneDeep=t._cloneDeep=t.getCircularPath=t.isEmpty=t.isDate=t.isString=t.isIntegerString=t.isPlainObject=t.isArray=t.isLength=t.isObjectLike=void 0;const e=po,n=E0,r=function(j){return typeof j=="object"&&j!==null};t.isObjectLike=r;const i=function(j){return typeof j=="number"&&j>-1&&j%1==0&&j<=Number.MAX_SAFE_INTEGER};t.isLength=i,t.isArray=Array.isArray||function(j){return(0,t.isLength)(j&&j.length)&&Object.prototype.toString.call(j)==="[object Array]"};const a=function(j){return!!j&&typeof j=="object"&&!(0,t.isArray)(j)};t.isPlainObject=a;const s=function(j){return String(~~j)===j&&Number(j)>=0};t.isIntegerString=s;const u=function(j){return Object.prototype.toString.call(j)==="[object String]"};t.isString=u;const c=function(j){return Object.prototype.toString.call(j)==="[object Date]"};t.isDate=c;const f=function(j){return Object.keys(j).length===0};t.isEmpty=f;const h=Object.prototype.hasOwnProperty,p=function(j,T,$){$||($=new Set([j])),T||(T="");for(const V in j){const ie=T?`${T}.${V}`:V,W=j[V];if((0,t.isObjectLike)(W))return $.has(W)?`${T}.${V}:`:($.add(W),(0,t.getCircularPath)(W,ie,$))}return null};t.getCircularPath=p;const g=function(j){if(!(0,t.isObjectLike)(j))return j;if((0,t.isDate)(j))return new Date(+j);const T=(0,t.isArray)(j)?[]:{};for(const $ in j){const V=j[$];T[$]=(0,t._cloneDeep)(V)}return T};t._cloneDeep=g;const y=function(j){const T=(0,t.getCircularPath)(j);if(T)throw new Error(`${e.PACKAGE_NAME}: circular dependency detected under the path '${T}' of object you're trying to persist: ${j}`);return(0,t._cloneDeep)(j)};t.cloneDeep=y;const v=function(j,T){if(j===T)return{};if(!(0,t.isObjectLike)(j)||!(0,t.isObjectLike)(T))return T;const $=(0,t.cloneDeep)(j),V=(0,t.cloneDeep)(T),ie=Object.keys($).reduce((Y,Q)=>(h.call(V,Q)||(Y[Q]=void 0),Y),{});if((0,t.isDate)($)||(0,t.isDate)(V))return $.valueOf()===V.valueOf()?{}:V;const W=Object.keys(V).reduce((Y,Q)=>{if(!h.call($,Q))return Y[Q]=V[Q],Y;const oe=(0,t.difference)($[Q],V[Q]);return(0,t.isObjectLike)(oe)&&(0,t.isEmpty)(oe)&&!(0,t.isDate)(oe)?(0,t.isArray)($)&&!(0,t.isArray)(V)||!(0,t.isArray)($)&&(0,t.isArray)(V)?V:Y:(Y[Q]=oe,Y)},ie);return delete W._persist,W};t.difference=v;const w=function(j,T){return T.reduce(($,V)=>{if($){const ie=parseInt(V,10),W=(0,t.isIntegerString)(V)&&ie<0?$.length+ie:V;return(0,t.isString)($)?$.charAt(W):$[W]}},j)};t.path=w;const x=function(j,T){return[...j].reverse().reduce((ie,W,Y)=>{const Q=(0,t.isIntegerString)(W)?[]:{};return Q[W]=Y===0?T:ie,Q},{})};t.assocPath=x;const _=function(j,T){const $=(0,t.cloneDeep)(j);return T.reduce((V,ie,W)=>(W===T.length-1&&V&&(0,t.isObjectLike)(V)&&delete V[ie],V&&V[ie]),$),$};t.dissocPath=_;const S=function(j,T,...$){if(!$||!$.length)return T;const V=$.shift(),{preservePlaceholder:ie,preserveUndefined:W}=j;if((0,t.isObjectLike)(T)&&(0,t.isObjectLike)(V))for(const Y in V)if((0,t.isObjectLike)(V[Y])&&(0,t.isObjectLike)(T[Y]))T[Y]||(T[Y]={}),S(j,T[Y],V[Y]);else if((0,t.isArray)(T)){let Q=V[Y];const oe=ie?e.PLACEHOLDER_UNDEFINED:void 0;W||(Q=typeof Q<"u"?Q:T[parseInt(Y,10)]),Q=Q!==e.PLACEHOLDER_UNDEFINED?Q:oe,T[parseInt(Y,10)]=Q}else{const Q=V[Y]!==e.PLACEHOLDER_UNDEFINED?V[Y]:void 0;T[Y]=Q}return S(j,T,...$)},C=function(j,T,$){return S({preservePlaceholder:$==null?void 0:$.preservePlaceholder,preserveUndefined:$==null?void 0:$.preserveUndefined},(0,t.cloneDeep)(j),(0,t.cloneDeep)(T))};t.mergeDeep=C;const O=function(j,T=[],$,V,ie){if(!(0,t.isObjectLike)(j))return j;for(const W in j){const Y=j[W],Q=(0,t.isArray)(j),oe=V?V+"."+W:W;Y===null&&($===n.ConfigType.WHITELIST&&T.indexOf(oe)===-1||$===n.ConfigType.BLACKLIST&&T.indexOf(oe)!==-1)&&Q&&(j[parseInt(W,10)]=void 0),Y===void 0&&ie&&$===n.ConfigType.BLACKLIST&&T.indexOf(oe)===-1&&Q&&(j[parseInt(W,10)]=e.PLACEHOLDER_UNDEFINED),O(Y,T,$,oe,ie)}},I=function(j,T,$,V){const ie=(0,t.cloneDeep)(j);return O(ie,T,$,"",V),ie};t.preserveUndefined=I;const L=function(j,T,$){return $.indexOf(j)===T};t.unique=L;const D=function(j){return j.reduce((T,$)=>{const V=j.filter(ve=>ve===$),ie=j.filter(ve=>($+".").indexOf(ve+".")===0),{duplicates:W,subsets:Y}=T,Q=V.length>1&&W.indexOf($)===-1,oe=ie.length>1;return{duplicates:[...W,...Q?V:[]],subsets:[...Y,...oe?ie:[]].filter(t.unique).sort()}},{duplicates:[],subsets:[]})};t.findDuplicatesAndSubsets=D;const U=function(j,T,$){const V=$===n.ConfigType.WHITELIST?"whitelist":"blacklist",ie=`${e.PACKAGE_NAME}: incorrect ${V} configuration.`,W=`Check your create${$===n.ConfigType.WHITELIST?"White":"Black"}list arguments. - -`;if(!(0,t.isString)(T)||T.length<1)throw new Error(`${ie} Name (key) of reducer is required. ${W}`);if(!j||!j.length)return;const{duplicates:Y,subsets:Q}=(0,t.findDuplicatesAndSubsets)(j);if(Y.length>1)throw new Error(`${ie} Duplicated paths. - - ${JSON.stringify(Y)} - - ${W}`);if(Q.length>1)throw new Error(`${ie} You are trying to persist an entire property and also some of its subset. - -${JSON.stringify(Q)} - - ${W}`)};t.singleTransformValidator=U;const X=function(j){if(!(0,t.isArray)(j))return;const T=(j==null?void 0:j.map($=>$.deepPersistKey).filter($=>$))||[];if(T.length){const $=T.filter((V,ie)=>T.indexOf(V)!==ie);if($.length)throw new Error(`${e.PACKAGE_NAME}: found duplicated keys in transforms creators. You can createWhitelist or createBlacklist for a specific root reducer key only once. Duplicated keys among createWhitelist and createBlacklist transforms are not allowed. - - Duplicates: ${JSON.stringify($)}`)}};t.transformsValidator=X;const K=function({whitelist:j,blacklist:T}){if(j&&j.length&&T&&T.length)throw new Error(`${e.PACKAGE_NAME}: you should not define a whitelist and blacklist in parallel. It is allowed to use only one of these lists per config.`);if(j){const{duplicates:$,subsets:V}=(0,t.findDuplicatesAndSubsets)(j);(0,t.throwError)({duplicates:$,subsets:V},"whitelist")}if(T){const{duplicates:$,subsets:V}=(0,t.findDuplicatesAndSubsets)(T);(0,t.throwError)({duplicates:$,subsets:V},"blacklist")}};t.configValidator=K;const te=function({duplicates:j,subsets:T},$){if(j.length)throw new Error(`${e.PACKAGE_NAME}: duplicates of paths found in your ${$}. - - ${JSON.stringify(j)}`);if(T.length)throw new Error(`${e.PACKAGE_NAME}: subsets of some parent keys found in your ${$}. You must decide if you want to persist an entire path or its specific subset. - - ${JSON.stringify(T)}`)};t.throwError=te;const ce=function(j){return(0,t.isArray)(j)?j.filter(t.unique).reduce((T,$)=>{const V=$.split("."),ie=V[0],W=V.slice(1).join(".")||void 0,Y=T.filter(oe=>Object.keys(oe)[0]===ie)[0],Q=Y?Object.values(Y)[0]:void 0;return Y||T.push({[ie]:W?[W]:void 0}),Y&&!Q&&W&&(Y[ie]=[W]),Y&&Q&&W&&Q.push(W),T},[]):[]};t.getRootKeysGroup=ce})(Xx);(function(t){var e=yn&&yn.__rest||function(p,g){var y={};for(var v in p)Object.prototype.hasOwnProperty.call(p,v)&&g.indexOf(v)<0&&(y[v]=p[v]);if(p!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,v=Object.getOwnPropertySymbols(p);w!x(S)&&p?p(_,S,C):_,out:(_,S,C)=>!x(S)&&g?g(_,S,C):_,deepPersistKey:v&&v[0]}},s=(p,g,y,{debug:v,whitelist:w,blacklist:x,transforms:_})=>{if(w||x)throw new Error("State reconciler autoMergeDeep uses custom transforms instead of old whitelist or blacklist config properties. Please use createWhitelist or createBlacklist transforms.");(0,n.transformsValidator)(_);const S=(0,n.cloneDeep)(y);let C=p;if(C&&(0,n.isObjectLike)(C)){const O=(0,n.difference)(g,y);(0,n.isEmpty)(O)||(C=(0,n.mergeDeep)(p,O,{preserveUndefined:!0}),v&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: sub state of your state was modified by reducer during rehydration. Values from reducer will be kept: ${JSON.stringify(O)}`)),Object.keys(C).forEach(I=>{if(I!=="_persist"){if((0,n.isObjectLike)(S[I])){S[I]=(0,n.mergeDeep)(S[I],C[I]);return}S[I]=C[I]}})}return v&&C&&(0,n.isObjectLike)(C)&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: rehydrated keys ${JSON.stringify(C)}`),S};t.autoMergeDeep=s;const u=(p,g)=>((0,n.singleTransformValidator)(g,p,i.ConfigType.WHITELIST),a(y=>{if(!g||!g.length)return y;let v=null,w;return g.forEach(x=>{const _=x.split(".");w=(0,n.path)(y,_),typeof w>"u"&&(0,n.isIntegerString)(_[_.length-1])&&(w=r.PLACEHOLDER_UNDEFINED);const S=(0,n.assocPath)(_,w),C=(0,n.isArray)(S)?[]:{};v=(0,n.mergeDeep)(v||C,S,{preservePlaceholder:!0})}),v||y},y=>(0,n.preserveUndefined)(y,g,i.ConfigType.WHITELIST),{whitelist:[p]}));t.createWhitelist=u;const c=(p,g)=>((0,n.singleTransformValidator)(g,p,i.ConfigType.BLACKLIST),a(y=>{if(!g||!g.length)return;const v=(0,n.preserveUndefined)(y,g,i.ConfigType.BLACKLIST,!0);return g.map(x=>x.split(".")).reduce((x,_)=>(0,n.dissocPath)(x,_),v)},y=>(0,n.preserveUndefined)(y,g,i.ConfigType.BLACKLIST),{whitelist:[p]}));t.createBlacklist=c;const f=function(p,g){return g.map(y=>{const v=Object.keys(y)[0],w=y[v];return p===i.ConfigType.WHITELIST?(0,t.createWhitelist)(v,w):(0,t.createBlacklist)(v,w)})};t.getTransforms=f;const h=p=>{var{key:g,whitelist:y,blacklist:v,storage:w,transforms:x,rootReducer:_}=p,S=e(p,["key","whitelist","blacklist","storage","transforms","rootReducer"]);(0,n.configValidator)({whitelist:y,blacklist:v});const C=(0,n.getRootKeysGroup)(y),O=(0,n.getRootKeysGroup)(v),I=Object.keys(_(void 0,{type:""})),L=C.map(ce=>Object.keys(ce)[0]),D=O.map(ce=>Object.keys(ce)[0]),U=I.filter(ce=>L.indexOf(ce)===-1&&D.indexOf(ce)===-1),X=(0,t.getTransforms)(i.ConfigType.WHITELIST,C),K=(0,t.getTransforms)(i.ConfigType.BLACKLIST,O),te=(0,n.isArray)(y)?U.map(ce=>(0,t.createBlacklist)(ce)):[];return Object.assign(Object.assign({},S),{key:g,storage:w,transforms:[...X,...K,...te,...x||[]],stateReconciler:t.autoMergeDeep})};t.getPersistConfig=h})(Yx);const Ef=(t,e)=>Math.floor(t/e)*e,va=(t,e)=>Math.round(t/e)*e;var _t={},g5={get exports(){return _t},set exports(t){_t=t}};/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(t,e){(function(){var n,r="4.17.21",i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",u="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",f=500,h="__lodash_placeholder__",p=1,g=2,y=4,v=1,w=2,x=1,_=2,S=4,C=8,O=16,I=32,L=64,D=128,U=256,X=512,K=30,te="...",ce=800,j=16,T=1,$=2,V=3,ie=1/0,W=9007199254740991,Y=17976931348623157e292,Q=0/0,oe=4294967295,ve=oe-1,we=oe>>>1,Ue=[["ary",D],["bind",x],["bindKey",_],["curry",C],["curryRight",O],["flip",X],["partial",I],["partialRight",L],["rearg",U]],At="[object Arguments]",me="[object Array]",qt="[object AsyncFunction]",Bt="[object Boolean]",bn="[object Date]",wr="[object DOMException]",Ft="[object Error]",xe="[object Function]",Wr="[object GeneratorFunction]",Et="[object Map]",gi="[object Number]",Xs="[object Null]",Mn="[object Object]",Fa="[object Promise]",Qs="[object Proxy]",er="[object RegExp]",Kt="[object Set]",Dn="[object String]",bt="[object Symbol]",$a="[object Undefined]",Hr="[object WeakMap]",Co="[object WeakSet]",Vr="[object ArrayBuffer]",br="[object DataView]",xo="[object Float32Array]",ko="[object Float64Array]",Po="[object Int8Array]",Eo="[object Int16Array]",Oo="[object Int32Array]",Js="[object Uint8Array]",Zs="[object Uint8ClampedArray]",Cr="[object Uint16Array]",Ki="[object Uint32Array]",sp=/\b__p \+= '';/g,tc=/\b(__p \+=) '' \+/g,lp=/(__e\(.*?\)|\b__t\)) \+\n'';/g,el=/&(?:amp|lt|gt|quot|#39);/g,Yi=/[&<>"']/g,up=RegExp(el.source),mi=RegExp(Yi.source),cp=/<%-([\s\S]+?)%>/g,fp=/<%([\s\S]+?)%>/g,nc=/<%=([\s\S]+?)%>/g,dp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hp=/^\w*$/,xr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,tl=/[\\^$.*+?()[\]{}|]/g,pp=RegExp(tl.source),nl=/^\s+/,gp=/\s/,mp=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xi=/\{\n\/\* \[wrapped with (.+)\] \*/,vp=/,? & /,yp=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Sp=/[()=,{}\[\]\/\s]/,_p=/\\(\\)?/g,wp=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,vi=/\w*$/,bp=/^[-+]0x[0-9a-f]+$/i,Cp=/^0b[01]+$/i,xp=/^\[object .+?Constructor\]$/,kp=/^0o[0-7]+$/i,Pp=/^(?:0|[1-9]\d*)$/,Ep=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qi=/($^)/,Op=/['\n\r\u2028\u2029\\]/g,yi="\\ud800-\\udfff",rl="\\u0300-\\u036f",Tp="\\ufe20-\\ufe2f",To="\\u20d0-\\u20ff",il=rl+Tp+To,rc="\\u2700-\\u27bf",ic="a-z\\xdf-\\xf6\\xf8-\\xff",Rp="\\xac\\xb1\\xd7\\xf7",ac="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ap="\\u2000-\\u206f",Ip=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",oc="A-Z\\xc0-\\xd6\\xd8-\\xde",sc="\\ufe0e\\ufe0f",lc=Rp+ac+Ap+Ip,al="['’]",Lp="["+yi+"]",uc="["+lc+"]",Ro="["+il+"]",cc="\\d+",Ao="["+rc+"]",Io="["+ic+"]",fc="[^"+yi+lc+cc+rc+ic+oc+"]",ol="\\ud83c[\\udffb-\\udfff]",dc="(?:"+Ro+"|"+ol+")",hc="[^"+yi+"]",sl="(?:\\ud83c[\\udde6-\\uddff]){2}",ll="[\\ud800-\\udbff][\\udc00-\\udfff]",Si="["+oc+"]",pc="\\u200d",gc="(?:"+Io+"|"+fc+")",Mp="(?:"+Si+"|"+fc+")",Lo="(?:"+al+"(?:d|ll|m|re|s|t|ve))?",mc="(?:"+al+"(?:D|LL|M|RE|S|T|VE))?",vc=dc+"?",yc="["+sc+"]?",Mo="(?:"+pc+"(?:"+[hc,sl,ll].join("|")+")"+yc+vc+")*",ul="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",cl="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Do=yc+vc+Mo,Dp="(?:"+[Ao,sl,ll].join("|")+")"+Do,Sc="(?:"+[hc+Ro+"?",Ro,sl,ll,Lp].join("|")+")",fl=RegExp(al,"g"),_c=RegExp(Ro,"g"),kr=RegExp(ol+"(?="+ol+")|"+Sc+Do,"g"),za=RegExp([Si+"?"+Io+"+"+Lo+"(?="+[uc,Si,"$"].join("|")+")",Mp+"+"+mc+"(?="+[uc,Si+gc,"$"].join("|")+")",Si+"?"+gc+"+"+Lo,Si+"+"+mc,cl,ul,cc,Dp].join("|"),"g"),Np=RegExp("["+pc+yi+il+sc+"]"),wc=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Bp=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],bc=-1,nt={};nt[xo]=nt[ko]=nt[Po]=nt[Eo]=nt[Oo]=nt[Js]=nt[Zs]=nt[Cr]=nt[Ki]=!0,nt[At]=nt[me]=nt[Vr]=nt[Bt]=nt[br]=nt[bn]=nt[Ft]=nt[xe]=nt[Et]=nt[gi]=nt[Mn]=nt[er]=nt[Kt]=nt[Dn]=nt[Hr]=!1;var et={};et[At]=et[me]=et[Vr]=et[br]=et[Bt]=et[bn]=et[xo]=et[ko]=et[Po]=et[Eo]=et[Oo]=et[Et]=et[gi]=et[Mn]=et[er]=et[Kt]=et[Dn]=et[bt]=et[Js]=et[Zs]=et[Cr]=et[Ki]=!0,et[Ft]=et[xe]=et[Hr]=!1;var Cc={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Fp={"&":"&","<":"<",">":">",'"':""","'":"'"},E={"&":"&","<":"<",">":">",""":'"',"'":"'"},N={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},H=parseFloat,fe=parseInt,Ie=typeof yn=="object"&&yn&&yn.Object===Object&&yn,Ye=typeof self=="object"&&self&&self.Object===Object&&self,Pe=Ie||Ye||Function("return this")(),Te=e&&!e.nodeType&&e,ze=Te&&!0&&t&&!t.nodeType&&t,dn=ze&&ze.exports===Te,Yt=dn&&Ie.process,$t=function(){try{var F=ze&&ze.require&&ze.require("util").types;return F||Yt&&Yt.binding&&Yt.binding("util")}catch{}}(),No=$t&&$t.isArrayBuffer,Bo=$t&&$t.isDate,dl=$t&&$t.isMap,H0=$t&&$t.isRegExp,V0=$t&&$t.isSet,q0=$t&&$t.isTypedArray;function Nn(F,J,q){switch(q.length){case 0:return F.call(J);case 1:return F.call(J,q[0]);case 2:return F.call(J,q[0],q[1]);case 3:return F.call(J,q[0],q[1],q[2])}return F.apply(J,q)}function eE(F,J,q,de){for(var Ce=-1,je=F==null?0:F.length;++Ce-1}function $p(F,J,q){for(var de=-1,Ce=F==null?0:F.length;++de-1;);return q}function t1(F,J){for(var q=F.length;q--&&Fo(J,F[q],0)>-1;);return q}function uE(F,J){for(var q=F.length,de=0;q--;)F[q]===J&&++de;return de}var cE=jp(Cc),fE=jp(Fp);function dE(F){return"\\"+N[F]}function hE(F,J){return F==null?n:F[J]}function $o(F){return Np.test(F)}function pE(F){return wc.test(F)}function gE(F){for(var J,q=[];!(J=F.next()).done;)q.push(J.value);return q}function qp(F){var J=-1,q=Array(F.size);return F.forEach(function(de,Ce){q[++J]=[Ce,de]}),q}function n1(F,J){return function(q){return F(J(q))}}function ea(F,J){for(var q=-1,de=F.length,Ce=0,je=[];++q-1}function nO(o,l){var d=this.__data__,m=Gc(d,o);return m<0?(++this.size,d.push([o,l])):d[m][1]=l,this}_i.prototype.clear=JE,_i.prototype.delete=ZE,_i.prototype.get=eO,_i.prototype.has=tO,_i.prototype.set=nO;function wi(o){var l=-1,d=o==null?0:o.length;for(this.clear();++l=l?o:l)),o}function ir(o,l,d,m,b,P){var R,M=l&p,z=l&g,Z=l&y;if(d&&(R=b?d(o,m,b,P):d(o)),R!==n)return R;if(!ht(o))return o;var ee=ke(o);if(ee){if(R=oT(o),!M)return Cn(o,R)}else{var ne=an(o),ue=ne==xe||ne==Wr;if(oa(o))return F1(o,M);if(ne==Mn||ne==At||ue&&!b){if(R=z||ue?{}:rS(o),!M)return z?YO(o,yO(R,o)):KO(o,p1(R,o))}else{if(!et[ne])return b?o:{};R=sT(o,ne,M)}}P||(P=new Er);var ge=P.get(o);if(ge)return ge;P.set(o,R),IS(o)?o.forEach(function(_e){R.add(ir(_e,l,d,_e,o,P))}):RS(o)&&o.forEach(function(_e,Le){R.set(Le,ir(_e,l,d,Le,o,P))});var Se=Z?z?Sg:yg:z?kn:zt,Oe=ee?n:Se(o);return tr(Oe||o,function(_e,Le){Oe&&(Le=_e,_e=o[Le]),Sl(R,Le,ir(_e,l,d,Le,o,P))}),R}function SO(o){var l=zt(o);return function(d){return g1(d,o,l)}}function g1(o,l,d){var m=d.length;if(o==null)return!m;for(o=rt(o);m--;){var b=d[m],P=l[b],R=o[b];if(R===n&&!(b in o)||!P(R))return!1}return!0}function m1(o,l,d){if(typeof o!="function")throw new nr(s);return Pl(function(){o.apply(n,d)},l)}function _l(o,l,d,m){var b=-1,P=xc,R=!0,M=o.length,z=[],Z=l.length;if(!M)return z;d&&(l=ut(l,Bn(d))),m?(P=$p,R=!1):l.length>=i&&(P=hl,R=!1,l=new ja(l));e:for(;++bb?0:b+d),m=m===n||m>b?b:Ee(m),m<0&&(m+=b),m=d>m?0:MS(m);d0&&d(M)?l>1?Xt(M,l-1,d,m,b):Zi(b,M):m||(b[b.length]=M)}return b}var eg=W1(),S1=W1(!0);function qr(o,l){return o&&eg(o,l,zt)}function tg(o,l){return o&&S1(o,l,zt)}function jc(o,l){return Ji(l,function(d){return Pi(o[d])})}function Ha(o,l){l=ia(l,o);for(var d=0,m=l.length;o!=null&&dl}function bO(o,l){return o!=null&&Xe.call(o,l)}function CO(o,l){return o!=null&&l in rt(o)}function xO(o,l,d){return o>=rn(l,d)&&o=120&&ee.length>=120)?new ja(R&&ee):n}ee=o[0];var ne=-1,ue=M[0];e:for(;++ne-1;)M!==o&&Mc.call(M,z,1),Mc.call(o,z,1);return o}function R1(o,l){for(var d=o?l.length:0,m=d-1;d--;){var b=l[d];if(d==m||b!==P){var P=b;ki(b)?Mc.call(o,b,1):fg(o,b)}}return o}function lg(o,l){return o+Bc(c1()*(l-o+1))}function BO(o,l,d,m){for(var b=-1,P=Lt(Nc((l-o)/(d||1)),0),R=q(P);P--;)R[m?P:++b]=o,o+=d;return R}function ug(o,l){var d="";if(!o||l<1||l>W)return d;do l%2&&(d+=o),l=Bc(l/2),l&&(o+=o);while(l);return d}function Re(o,l){return Pg(oS(o,l,Pn),o+"")}function FO(o){return h1(Xo(o))}function $O(o,l){var d=Xo(o);return ef(d,Wa(l,0,d.length))}function Cl(o,l,d,m){if(!ht(o))return o;l=ia(l,o);for(var b=-1,P=l.length,R=P-1,M=o;M!=null&&++bb?0:b+l),d=d>b?b:d,d<0&&(d+=b),b=l>d?0:d-l>>>0,l>>>=0;for(var P=q(b);++m>>1,R=o[P];R!==null&&!$n(R)&&(d?R<=l:R=i){var Z=l?null:ZO(o);if(Z)return Pc(Z);R=!1,b=hl,z=new ja}else z=l?[]:M;e:for(;++m=m?o:ar(o,l,d)}var B1=RE||function(o){return Pe.clearTimeout(o)};function F1(o,l){if(l)return o.slice();var d=o.length,m=a1?a1(d):new o.constructor(d);return o.copy(m),m}function gg(o){var l=new o.constructor(o.byteLength);return new Ic(l).set(new Ic(o)),l}function WO(o,l){var d=l?gg(o.buffer):o.buffer;return new o.constructor(d,o.byteOffset,o.byteLength)}function HO(o){var l=new o.constructor(o.source,vi.exec(o));return l.lastIndex=o.lastIndex,l}function VO(o){return yl?rt(yl.call(o)):{}}function $1(o,l){var d=l?gg(o.buffer):o.buffer;return new o.constructor(d,o.byteOffset,o.length)}function z1(o,l){if(o!==l){var d=o!==n,m=o===null,b=o===o,P=$n(o),R=l!==n,M=l===null,z=l===l,Z=$n(l);if(!M&&!Z&&!P&&o>l||P&&R&&z&&!M&&!Z||m&&R&&z||!d&&z||!b)return 1;if(!m&&!P&&!Z&&o=M)return z;var Z=d[m];return z*(Z=="desc"?-1:1)}}return o.index-l.index}function G1(o,l,d,m){for(var b=-1,P=o.length,R=d.length,M=-1,z=l.length,Z=Lt(P-R,0),ee=q(z+Z),ne=!m;++M1?d[b-1]:n,R=b>2?d[2]:n;for(P=o.length>3&&typeof P=="function"?(b--,P):n,R&&pn(d[0],d[1],R)&&(P=b<3?n:P,b=1),l=rt(l);++m-1?b[P?l[R]:R]:n}}function q1(o){return xi(function(l){var d=l.length,m=d,b=rr.prototype.thru;for(o&&l.reverse();m--;){var P=l[m];if(typeof P!="function")throw new nr(s);if(b&&!R&&Jc(P)=="wrapper")var R=new rr([],!0)}for(m=R?m:d;++m1&&Ne.reverse(),ee&&zM))return!1;var Z=P.get(o),ee=P.get(l);if(Z&&ee)return Z==l&&ee==o;var ne=-1,ue=!0,ge=d&w?new ja:n;for(P.set(o,l),P.set(l,o);++ne1?"& ":"")+l[m],l=l.join(d>2?", ":" "),o.replace(mp,`{ -/* [wrapped with `+l+`] */ -`)}function uT(o){return ke(o)||Ka(o)||!!(l1&&o&&o[l1])}function ki(o,l){var d=typeof o;return l=l??W,!!l&&(d=="number"||d!="symbol"&&Pp.test(o))&&o>-1&&o%1==0&&o0){if(++l>=ce)return arguments[0]}else l=0;return o.apply(n,arguments)}}function ef(o,l){var d=-1,m=o.length,b=m-1;for(l=l===n?m:l;++d1?o[l-1]:n;return d=typeof d=="function"?(o.pop(),d):n,yS(o,d)});function SS(o){var l=k(o);return l.__chain__=!0,l}function _R(o,l){return l(o),o}function tf(o,l){return l(o)}var wR=xi(function(o){var l=o.length,d=l?o[0]:0,m=this.__wrapped__,b=function(P){return Zp(P,o)};return l>1||this.__actions__.length||!(m instanceof Me)||!ki(d)?this.thru(b):(m=m.slice(d,+d+(l?1:0)),m.__actions__.push({func:tf,args:[b],thisArg:n}),new rr(m,this.__chain__).thru(function(P){return l&&!P.length&&P.push(n),P}))});function bR(){return SS(this)}function CR(){return new rr(this.value(),this.__chain__)}function xR(){this.__values__===n&&(this.__values__=LS(this.value()));var o=this.__index__>=this.__values__.length,l=o?n:this.__values__[this.__index__++];return{done:o,value:l}}function kR(){return this}function PR(o){for(var l,d=this;d instanceof zc;){var m=dS(d);m.__index__=0,m.__values__=n,l?b.__wrapped__=m:l=m;var b=m;d=d.__wrapped__}return b.__wrapped__=o,l}function ER(){var o=this.__wrapped__;if(o instanceof Me){var l=o;return this.__actions__.length&&(l=new Me(this)),l=l.reverse(),l.__actions__.push({func:tf,args:[Eg],thisArg:n}),new rr(l,this.__chain__)}return this.thru(Eg)}function OR(){return D1(this.__wrapped__,this.__actions__)}var TR=qc(function(o,l,d){Xe.call(o,d)?++o[d]:bi(o,d,1)});function RR(o,l,d){var m=ke(o)?K0:_O;return d&&pn(o,l,d)&&(l=n),m(o,ye(l,3))}function AR(o,l){var d=ke(o)?Ji:y1;return d(o,ye(l,3))}var IR=V1(hS),LR=V1(pS);function MR(o,l){return Xt(nf(o,l),1)}function DR(o,l){return Xt(nf(o,l),ie)}function NR(o,l,d){return d=d===n?1:Ee(d),Xt(nf(o,l),d)}function _S(o,l){var d=ke(o)?tr:na;return d(o,ye(l,3))}function wS(o,l){var d=ke(o)?tE:v1;return d(o,ye(l,3))}var BR=qc(function(o,l,d){Xe.call(o,d)?o[d].push(l):bi(o,d,[l])});function FR(o,l,d,m){o=xn(o)?o:Xo(o),d=d&&!m?Ee(d):0;var b=o.length;return d<0&&(d=Lt(b+d,0)),lf(o)?d<=b&&o.indexOf(l,d)>-1:!!b&&Fo(o,l,d)>-1}var $R=Re(function(o,l,d){var m=-1,b=typeof l=="function",P=xn(o)?q(o.length):[];return na(o,function(R){P[++m]=b?Nn(l,R,d):wl(R,l,d)}),P}),zR=qc(function(o,l,d){bi(o,d,l)});function nf(o,l){var d=ke(o)?ut:x1;return d(o,ye(l,3))}function GR(o,l,d,m){return o==null?[]:(ke(l)||(l=l==null?[]:[l]),d=m?n:d,ke(d)||(d=d==null?[]:[d]),O1(o,l,d))}var UR=qc(function(o,l,d){o[d?0:1].push(l)},function(){return[[],[]]});function jR(o,l,d){var m=ke(o)?zp:J0,b=arguments.length<3;return m(o,ye(l,4),d,b,na)}function WR(o,l,d){var m=ke(o)?nE:J0,b=arguments.length<3;return m(o,ye(l,4),d,b,v1)}function HR(o,l){var d=ke(o)?Ji:y1;return d(o,of(ye(l,3)))}function VR(o){var l=ke(o)?h1:FO;return l(o)}function qR(o,l,d){(d?pn(o,l,d):l===n)?l=1:l=Ee(l);var m=ke(o)?gO:$O;return m(o,l)}function KR(o){var l=ke(o)?mO:GO;return l(o)}function YR(o){if(o==null)return 0;if(xn(o))return lf(o)?zo(o):o.length;var l=an(o);return l==Et||l==Kt?o.size:ag(o).length}function XR(o,l,d){var m=ke(o)?Gp:UO;return d&&pn(o,l,d)&&(l=n),m(o,ye(l,3))}var QR=Re(function(o,l){if(o==null)return[];var d=l.length;return d>1&&pn(o,l[0],l[1])?l=[]:d>2&&pn(l[0],l[1],l[2])&&(l=[l[0]]),O1(o,Xt(l,1),[])}),rf=AE||function(){return Pe.Date.now()};function JR(o,l){if(typeof l!="function")throw new nr(s);return o=Ee(o),function(){if(--o<1)return l.apply(this,arguments)}}function bS(o,l,d){return l=d?n:l,l=o&&l==null?o.length:l,Ci(o,D,n,n,n,n,l)}function CS(o,l){var d;if(typeof l!="function")throw new nr(s);return o=Ee(o),function(){return--o>0&&(d=l.apply(this,arguments)),o<=1&&(l=n),d}}var Tg=Re(function(o,l,d){var m=x;if(d.length){var b=ea(d,Ko(Tg));m|=I}return Ci(o,m,l,d,b)}),xS=Re(function(o,l,d){var m=x|_;if(d.length){var b=ea(d,Ko(xS));m|=I}return Ci(l,m,o,d,b)});function kS(o,l,d){l=d?n:l;var m=Ci(o,C,n,n,n,n,n,l);return m.placeholder=kS.placeholder,m}function PS(o,l,d){l=d?n:l;var m=Ci(o,O,n,n,n,n,n,l);return m.placeholder=PS.placeholder,m}function ES(o,l,d){var m,b,P,R,M,z,Z=0,ee=!1,ne=!1,ue=!0;if(typeof o!="function")throw new nr(s);l=sr(l)||0,ht(d)&&(ee=!!d.leading,ne="maxWait"in d,P=ne?Lt(sr(d.maxWait)||0,l):P,ue="trailing"in d?!!d.trailing:ue);function ge(xt){var Tr=m,Oi=b;return m=b=n,Z=xt,R=o.apply(Oi,Tr),R}function Se(xt){return Z=xt,M=Pl(Le,l),ee?ge(xt):R}function Oe(xt){var Tr=xt-z,Oi=xt-Z,VS=l-Tr;return ne?rn(VS,P-Oi):VS}function _e(xt){var Tr=xt-z,Oi=xt-Z;return z===n||Tr>=l||Tr<0||ne&&Oi>=P}function Le(){var xt=rf();if(_e(xt))return Ne(xt);M=Pl(Le,Oe(xt))}function Ne(xt){return M=n,ue&&m?ge(xt):(m=b=n,R)}function zn(){M!==n&&B1(M),Z=0,m=z=b=M=n}function gn(){return M===n?R:Ne(rf())}function Gn(){var xt=rf(),Tr=_e(xt);if(m=arguments,b=this,z=xt,Tr){if(M===n)return Se(z);if(ne)return B1(M),M=Pl(Le,l),ge(z)}return M===n&&(M=Pl(Le,l)),R}return Gn.cancel=zn,Gn.flush=gn,Gn}var ZR=Re(function(o,l){return m1(o,1,l)}),eA=Re(function(o,l,d){return m1(o,sr(l)||0,d)});function tA(o){return Ci(o,X)}function af(o,l){if(typeof o!="function"||l!=null&&typeof l!="function")throw new nr(s);var d=function(){var m=arguments,b=l?l.apply(this,m):m[0],P=d.cache;if(P.has(b))return P.get(b);var R=o.apply(this,m);return d.cache=P.set(b,R)||P,R};return d.cache=new(af.Cache||wi),d}af.Cache=wi;function of(o){if(typeof o!="function")throw new nr(s);return function(){var l=arguments;switch(l.length){case 0:return!o.call(this);case 1:return!o.call(this,l[0]);case 2:return!o.call(this,l[0],l[1]);case 3:return!o.call(this,l[0],l[1],l[2])}return!o.apply(this,l)}}function nA(o){return CS(2,o)}var rA=jO(function(o,l){l=l.length==1&&ke(l[0])?ut(l[0],Bn(ye())):ut(Xt(l,1),Bn(ye()));var d=l.length;return Re(function(m){for(var b=-1,P=rn(m.length,d);++b=l}),Ka=w1(function(){return arguments}())?w1:function(o){return St(o)&&Xe.call(o,"callee")&&!s1.call(o,"callee")},ke=q.isArray,yA=No?Bn(No):PO;function xn(o){return o!=null&&sf(o.length)&&!Pi(o)}function Ct(o){return St(o)&&xn(o)}function SA(o){return o===!0||o===!1||St(o)&&hn(o)==Bt}var oa=LE||Gg,_A=Bo?Bn(Bo):EO;function wA(o){return St(o)&&o.nodeType===1&&!El(o)}function bA(o){if(o==null)return!0;if(xn(o)&&(ke(o)||typeof o=="string"||typeof o.splice=="function"||oa(o)||Yo(o)||Ka(o)))return!o.length;var l=an(o);if(l==Et||l==Kt)return!o.size;if(kl(o))return!ag(o).length;for(var d in o)if(Xe.call(o,d))return!1;return!0}function CA(o,l){return bl(o,l)}function xA(o,l,d){d=typeof d=="function"?d:n;var m=d?d(o,l):n;return m===n?bl(o,l,n,d):!!m}function Ag(o){if(!St(o))return!1;var l=hn(o);return l==Ft||l==wr||typeof o.message=="string"&&typeof o.name=="string"&&!El(o)}function kA(o){return typeof o=="number"&&u1(o)}function Pi(o){if(!ht(o))return!1;var l=hn(o);return l==xe||l==Wr||l==qt||l==Qs}function TS(o){return typeof o=="number"&&o==Ee(o)}function sf(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=W}function ht(o){var l=typeof o;return o!=null&&(l=="object"||l=="function")}function St(o){return o!=null&&typeof o=="object"}var RS=dl?Bn(dl):TO;function PA(o,l){return o===l||ig(o,l,wg(l))}function EA(o,l,d){return d=typeof d=="function"?d:n,ig(o,l,wg(l),d)}function OA(o){return AS(o)&&o!=+o}function TA(o){if(dT(o))throw new Ce(a);return b1(o)}function RA(o){return o===null}function AA(o){return o==null}function AS(o){return typeof o=="number"||St(o)&&hn(o)==gi}function El(o){if(!St(o)||hn(o)!=Mn)return!1;var l=Lc(o);if(l===null)return!0;var d=Xe.call(l,"constructor")&&l.constructor;return typeof d=="function"&&d instanceof d&&Tc.call(d)==EE}var Ig=H0?Bn(H0):RO;function IA(o){return TS(o)&&o>=-W&&o<=W}var IS=V0?Bn(V0):AO;function lf(o){return typeof o=="string"||!ke(o)&&St(o)&&hn(o)==Dn}function $n(o){return typeof o=="symbol"||St(o)&&hn(o)==bt}var Yo=q0?Bn(q0):IO;function LA(o){return o===n}function MA(o){return St(o)&&an(o)==Hr}function DA(o){return St(o)&&hn(o)==Co}var NA=Qc(og),BA=Qc(function(o,l){return o<=l});function LS(o){if(!o)return[];if(xn(o))return lf(o)?Pr(o):Cn(o);if(pl&&o[pl])return gE(o[pl]());var l=an(o),d=l==Et?qp:l==Kt?Pc:Xo;return d(o)}function Ei(o){if(!o)return o===0?o:0;if(o=sr(o),o===ie||o===-ie){var l=o<0?-1:1;return l*Y}return o===o?o:0}function Ee(o){var l=Ei(o),d=l%1;return l===l?d?l-d:l:0}function MS(o){return o?Wa(Ee(o),0,oe):0}function sr(o){if(typeof o=="number")return o;if($n(o))return Q;if(ht(o)){var l=typeof o.valueOf=="function"?o.valueOf():o;o=ht(l)?l+"":l}if(typeof o!="string")return o===0?o:+o;o=Z0(o);var d=Cp.test(o);return d||kp.test(o)?fe(o.slice(2),d?2:8):bp.test(o)?Q:+o}function DS(o){return Kr(o,kn(o))}function FA(o){return o?Wa(Ee(o),-W,W):o===0?o:0}function Ve(o){return o==null?"":Fn(o)}var $A=Vo(function(o,l){if(kl(l)||xn(l)){Kr(l,zt(l),o);return}for(var d in l)Xe.call(l,d)&&Sl(o,d,l[d])}),NS=Vo(function(o,l){Kr(l,kn(l),o)}),uf=Vo(function(o,l,d,m){Kr(l,kn(l),o,m)}),zA=Vo(function(o,l,d,m){Kr(l,zt(l),o,m)}),GA=xi(Zp);function UA(o,l){var d=Ho(o);return l==null?d:p1(d,l)}var jA=Re(function(o,l){o=rt(o);var d=-1,m=l.length,b=m>2?l[2]:n;for(b&&pn(l[0],l[1],b)&&(m=1);++d1),P}),Kr(o,Sg(o),d),m&&(d=ir(d,p|g|y,eT));for(var b=l.length;b--;)fg(d,l[b]);return d});function sI(o,l){return FS(o,of(ye(l)))}var lI=xi(function(o,l){return o==null?{}:DO(o,l)});function FS(o,l){if(o==null)return{};var d=ut(Sg(o),function(m){return[m]});return l=ye(l),T1(o,d,function(m,b){return l(m,b[0])})}function uI(o,l,d){l=ia(l,o);var m=-1,b=l.length;for(b||(b=1,o=n);++ml){var m=o;o=l,l=m}if(d||o%1||l%1){var b=c1();return rn(o+b*(l-o+H("1e-"+((b+"").length-1))),l)}return lg(o,l)}var _I=qo(function(o,l,d){return l=l.toLowerCase(),o+(d?GS(l):l)});function GS(o){return Dg(Ve(o).toLowerCase())}function US(o){return o=Ve(o),o&&o.replace(Ep,cE).replace(_c,"")}function wI(o,l,d){o=Ve(o),l=Fn(l);var m=o.length;d=d===n?m:Wa(Ee(d),0,m);var b=d;return d-=l.length,d>=0&&o.slice(d,b)==l}function bI(o){return o=Ve(o),o&&mi.test(o)?o.replace(Yi,fE):o}function CI(o){return o=Ve(o),o&&pp.test(o)?o.replace(tl,"\\$&"):o}var xI=qo(function(o,l,d){return o+(d?"-":"")+l.toLowerCase()}),kI=qo(function(o,l,d){return o+(d?" ":"")+l.toLowerCase()}),PI=H1("toLowerCase");function EI(o,l,d){o=Ve(o),l=Ee(l);var m=l?zo(o):0;if(!l||m>=l)return o;var b=(l-m)/2;return Xc(Bc(b),d)+o+Xc(Nc(b),d)}function OI(o,l,d){o=Ve(o),l=Ee(l);var m=l?zo(o):0;return l&&m>>0,d?(o=Ve(o),o&&(typeof l=="string"||l!=null&&!Ig(l))&&(l=Fn(l),!l&&$o(o))?aa(Pr(o),0,d):o.split(l,d)):[]}var DI=qo(function(o,l,d){return o+(d?" ":"")+Dg(l)});function NI(o,l,d){return o=Ve(o),d=d==null?0:Wa(Ee(d),0,o.length),l=Fn(l),o.slice(d,d+l.length)==l}function BI(o,l,d){var m=k.templateSettings;d&&pn(o,l,d)&&(l=n),o=Ve(o),l=uf({},l,m,J1);var b=uf({},l.imports,m.imports,J1),P=zt(b),R=Vp(b,P),M,z,Z=0,ee=l.interpolate||Qi,ne="__p += '",ue=Kp((l.escape||Qi).source+"|"+ee.source+"|"+(ee===nc?wp:Qi).source+"|"+(l.evaluate||Qi).source+"|$","g"),ge="//# sourceURL="+(Xe.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++bc+"]")+` -`;o.replace(ue,function(_e,Le,Ne,zn,gn,Gn){return Ne||(Ne=zn),ne+=o.slice(Z,Gn).replace(Op,dE),Le&&(M=!0,ne+=`' + -__e(`+Le+`) + -'`),gn&&(z=!0,ne+=`'; -`+gn+`; -__p += '`),Ne&&(ne+=`' + -((__t = (`+Ne+`)) == null ? '' : __t) + -'`),Z=Gn+_e.length,_e}),ne+=`'; -`;var Se=Xe.call(l,"variable")&&l.variable;if(!Se)ne=`with (obj) { -`+ne+` -} -`;else if(Sp.test(Se))throw new Ce(u);ne=(z?ne.replace(sp,""):ne).replace(tc,"$1").replace(lp,"$1;"),ne="function("+(Se||"obj")+`) { -`+(Se?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(M?", __e = _.escape":"")+(z?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+ne+`return __p -}`;var Oe=WS(function(){return je(P,ge+"return "+ne).apply(n,R)});if(Oe.source=ne,Ag(Oe))throw Oe;return Oe}function FI(o){return Ve(o).toLowerCase()}function $I(o){return Ve(o).toUpperCase()}function zI(o,l,d){if(o=Ve(o),o&&(d||l===n))return Z0(o);if(!o||!(l=Fn(l)))return o;var m=Pr(o),b=Pr(l),P=e1(m,b),R=t1(m,b)+1;return aa(m,P,R).join("")}function GI(o,l,d){if(o=Ve(o),o&&(d||l===n))return o.slice(0,r1(o)+1);if(!o||!(l=Fn(l)))return o;var m=Pr(o),b=t1(m,Pr(l))+1;return aa(m,0,b).join("")}function UI(o,l,d){if(o=Ve(o),o&&(d||l===n))return o.replace(nl,"");if(!o||!(l=Fn(l)))return o;var m=Pr(o),b=e1(m,Pr(l));return aa(m,b).join("")}function jI(o,l){var d=K,m=te;if(ht(l)){var b="separator"in l?l.separator:b;d="length"in l?Ee(l.length):d,m="omission"in l?Fn(l.omission):m}o=Ve(o);var P=o.length;if($o(o)){var R=Pr(o);P=R.length}if(d>=P)return o;var M=d-zo(m);if(M<1)return m;var z=R?aa(R,0,M).join(""):o.slice(0,M);if(b===n)return z+m;if(R&&(M+=z.length-M),Ig(b)){if(o.slice(M).search(b)){var Z,ee=z;for(b.global||(b=Kp(b.source,Ve(vi.exec(b))+"g")),b.lastIndex=0;Z=b.exec(ee);)var ne=Z.index;z=z.slice(0,ne===n?M:ne)}}else if(o.indexOf(Fn(b),M)!=M){var ue=z.lastIndexOf(b);ue>-1&&(z=z.slice(0,ue))}return z+m}function WI(o){return o=Ve(o),o&&up.test(o)?o.replace(el,SE):o}var HI=qo(function(o,l,d){return o+(d?" ":"")+l.toUpperCase()}),Dg=H1("toUpperCase");function jS(o,l,d){return o=Ve(o),l=d?n:l,l===n?pE(o)?bE(o):aE(o):o.match(l)||[]}var WS=Re(function(o,l){try{return Nn(o,n,l)}catch(d){return Ag(d)?d:new Ce(d)}}),VI=xi(function(o,l){return tr(l,function(d){d=Yr(d),bi(o,d,Tg(o[d],o))}),o});function qI(o){var l=o==null?0:o.length,d=ye();return o=l?ut(o,function(m){if(typeof m[1]!="function")throw new nr(s);return[d(m[0]),m[1]]}):[],Re(function(m){for(var b=-1;++bW)return[];var d=oe,m=rn(o,oe);l=ye(l),o-=oe;for(var b=Hp(m,l);++d0||l<0)?new Me(d):(o<0?d=d.takeRight(-o):o&&(d=d.drop(o)),l!==n&&(l=Ee(l),d=l<0?d.dropRight(-l):d.take(l-o)),d)},Me.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},Me.prototype.toArray=function(){return this.take(oe)},qr(Me.prototype,function(o,l){var d=/^(?:filter|find|map|reject)|While$/.test(l),m=/^(?:head|last)$/.test(l),b=k[m?"take"+(l=="last"?"Right":""):l],P=m||/^find/.test(l);b&&(k.prototype[l]=function(){var R=this.__wrapped__,M=m?[1]:arguments,z=R instanceof Me,Z=M[0],ee=z||ke(R),ne=function(Le){var Ne=b.apply(k,Zi([Le],M));return m&&ue?Ne[0]:Ne};ee&&d&&typeof Z=="function"&&Z.length!=1&&(z=ee=!1);var ue=this.__chain__,ge=!!this.__actions__.length,Se=P&&!ue,Oe=z&&!ge;if(!P&&ee){R=Oe?R:new Me(this);var _e=o.apply(R,M);return _e.__actions__.push({func:tf,args:[ne],thisArg:n}),new rr(_e,ue)}return Se&&Oe?o.apply(this,M):(_e=this.thru(ne),Se?m?_e.value()[0]:_e.value():_e)})}),tr(["pop","push","shift","sort","splice","unshift"],function(o){var l=Ec[o],d=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",m=/^(?:pop|shift)$/.test(o);k.prototype[o]=function(){var b=arguments;if(m&&!this.__chain__){var P=this.value();return l.apply(ke(P)?P:[],b)}return this[d](function(R){return l.apply(ke(R)?R:[],b)})}}),qr(Me.prototype,function(o,l){var d=k[l];if(d){var m=d.name+"";Xe.call(Wo,m)||(Wo[m]=[]),Wo[m].push({name:l,func:d})}}),Wo[Kc(n,_).name]=[{name:"wrapper",func:n}],Me.prototype.clone=WE,Me.prototype.reverse=HE,Me.prototype.value=VE,k.prototype.at=wR,k.prototype.chain=bR,k.prototype.commit=CR,k.prototype.next=xR,k.prototype.plant=PR,k.prototype.reverse=ER,k.prototype.toJSON=k.prototype.valueOf=k.prototype.value=OR,k.prototype.first=k.prototype.head,pl&&(k.prototype[pl]=kR),k},Go=CE();ze?((ze.exports=Go)._=Go,Te._=Go):Pe._=Go}).call(yn)})(g5,_t);const Jo=(t,e,n,r,i,a,s)=>{const u=t/2-(n+i/2)*s,c=e/2-(r+a/2)*s;return{x:u,y:c}},Zo=(t,e,n,r,i=.95)=>{const a=t*i/n,s=e*i/r;return Math.min(1,Math.min(a,s))},L8=.999,M8=.1,D8=20,Nl=.95,N8=30,B8=10,Pw=t=>({x:Math.floor(t.x),y:Math.floor(t.y)}),Ya=t=>{const{width:e,height:n}=t,r={width:e,height:n},i=512*512,a=e/n;let s=e*n,u=448;for(;s1?(r.width=u,r.height=va(u/a,64)):a<1&&(r.height=u,r.width=va(u*a,64)),s=r.width*r.height;return r},m5=t=>({width:va(t.width,64),height:va(t.height,64)}),F8=[{key:"Base",value:"base"},{key:"Mask",value:"mask"}],$8=[{key:"Auto",value:"auto"},{key:"Manual",value:"manual"},{key:"None",value:"none"}],Qx=t=>t.kind==="line"&&t.layer==="mask",z8=t=>t.kind==="line"&&t.layer==="base",Ew=t=>t.kind==="image"&&t.layer==="base",G8=t=>t.kind==="fillRect"&&t.layer==="base",U8=t=>t.kind==="eraseRect"&&t.layer==="base",v5=t=>t.kind==="line",Zl={objects:[],stagingArea:{images:[],selectedImageIndex:-1}},y5={boundingBoxCoordinates:{x:0,y:0},boundingBoxDimensions:{width:512,height:512},boundingBoxPreviewFill:{r:0,g:0,b:0,a:.5},boundingBoxScaleMethod:"auto",brushColor:{r:90,g:90,b:255,a:1},brushSize:50,canvasContainerDimensions:{width:0,height:0},colorPickerColor:{r:90,g:90,b:255,a:1},cursorPosition:null,doesCanvasNeedScaling:!1,futureLayerStates:[],isCanvasInitialized:!1,isDrawing:!1,isMaskEnabled:!0,isMouseOverBoundingBox:!1,isMoveBoundingBoxKeyHeld:!1,isMoveStageKeyHeld:!1,isMovingBoundingBox:!1,isMovingStage:!1,isTransformingBoundingBox:!1,layer:"base",layerState:Zl,maskColor:{r:255,g:90,b:90,a:1},maxHistory:128,minimumStageScale:1,pastLayerStates:[],scaledBoundingBoxDimensions:{width:512,height:512},shouldAutoSave:!1,shouldCropToBoundingBoxOnSave:!1,shouldDarkenOutsideBoundingBox:!1,shouldLockBoundingBox:!1,shouldPreserveMaskedArea:!1,shouldRestrictStrokesToBox:!0,shouldShowBoundingBox:!0,shouldShowBrush:!0,shouldShowBrushPreview:!1,shouldShowCanvasDebugInfo:!1,shouldShowCheckboardTransparency:!1,shouldShowGrid:!0,shouldShowIntermediates:!0,shouldShowStagingImage:!0,shouldShowStagingOutline:!0,shouldSnapToGrid:!0,stageCoordinates:{x:0,y:0},stageDimensions:{width:0,height:0},stageScale:1,tool:"brush"},Jx=vo({name:"canvas",initialState:y5,reducers:{setTool:(t,e)=>{const n=e.payload;t.tool=e.payload,n!=="move"&&(t.isTransformingBoundingBox=!1,t.isMouseOverBoundingBox=!1,t.isMovingBoundingBox=!1,t.isMovingStage=!1)},setLayer:(t,e)=>{t.layer=e.payload},toggleTool:t=>{const e=t.tool;e!=="move"&&(t.tool=e==="brush"?"eraser":"brush")},setMaskColor:(t,e)=>{t.maskColor=e.payload},setBrushColor:(t,e)=>{t.brushColor=e.payload},setBrushSize:(t,e)=>{t.brushSize=e.payload},clearMask:t=>{t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.layerState.objects=t.layerState.objects.filter(e=>!Qx(e)),t.futureLayerStates=[],t.shouldPreserveMaskedArea=!1},toggleShouldInvertMask:t=>{t.shouldPreserveMaskedArea=!t.shouldPreserveMaskedArea},toggleShouldShowMask:t=>{t.isMaskEnabled=!t.isMaskEnabled},setShouldPreserveMaskedArea:(t,e)=>{t.shouldPreserveMaskedArea=e.payload},setIsMaskEnabled:(t,e)=>{t.isMaskEnabled=e.payload,t.layer=e.payload?"mask":"base"},setShouldShowCheckboardTransparency:(t,e)=>{t.shouldShowCheckboardTransparency=e.payload},setShouldShowBrushPreview:(t,e)=>{t.shouldShowBrushPreview=e.payload},setShouldShowBrush:(t,e)=>{t.shouldShowBrush=e.payload},setCursorPosition:(t,e)=>{t.cursorPosition=e.payload},setInitialCanvasImage:(t,e)=>{const n=e.payload,{stageDimensions:r}=t,i={width:Ef(_t.clamp(n.width,64,512),64),height:Ef(_t.clamp(n.height,64,512),64)},a={x:va(n.width/2-i.width/2,64),y:va(n.height/2-i.height/2,64)};if(t.boundingBoxScaleMethod==="auto"){const c=Ya(i);t.scaledBoundingBoxDimensions=c}t.boundingBoxDimensions=i,t.boundingBoxCoordinates=a,t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.layerState={...Zl,objects:[{kind:"image",layer:"base",x:0,y:0,width:n.width,height:n.height,image:n}]},t.futureLayerStates=[],t.isCanvasInitialized=!1;const s=Zo(r.width,r.height,n.width,n.height,Nl),u=Jo(r.width,r.height,0,0,n.width,n.height,s);t.stageScale=s,t.stageCoordinates=u,t.doesCanvasNeedScaling=!0},setBoundingBoxDimensions:(t,e)=>{const n=m5(e.payload);if(t.boundingBoxDimensions=n,t.boundingBoxScaleMethod==="auto"){const r=Ya(n);t.scaledBoundingBoxDimensions=r}},setBoundingBoxCoordinates:(t,e)=>{t.boundingBoxCoordinates=Pw(e.payload)},setStageCoordinates:(t,e)=>{t.stageCoordinates=e.payload},setBoundingBoxPreviewFill:(t,e)=>{t.boundingBoxPreviewFill=e.payload},setDoesCanvasNeedScaling:(t,e)=>{t.doesCanvasNeedScaling=e.payload},setStageScale:(t,e)=>{t.stageScale=e.payload},setShouldDarkenOutsideBoundingBox:(t,e)=>{t.shouldDarkenOutsideBoundingBox=e.payload},setIsDrawing:(t,e)=>{t.isDrawing=e.payload},clearCanvasHistory:t=>{t.pastLayerStates=[],t.futureLayerStates=[]},setShouldLockBoundingBox:(t,e)=>{t.shouldLockBoundingBox=e.payload},toggleShouldLockBoundingBox:t=>{t.shouldLockBoundingBox=!t.shouldLockBoundingBox},setShouldShowBoundingBox:(t,e)=>{t.shouldShowBoundingBox=e.payload},setIsTransformingBoundingBox:(t,e)=>{t.isTransformingBoundingBox=e.payload},setIsMovingBoundingBox:(t,e)=>{t.isMovingBoundingBox=e.payload},setIsMouseOverBoundingBox:(t,e)=>{t.isMouseOverBoundingBox=e.payload},setIsMoveBoundingBoxKeyHeld:(t,e)=>{t.isMoveBoundingBoxKeyHeld=e.payload},setIsMoveStageKeyHeld:(t,e)=>{t.isMoveStageKeyHeld=e.payload},addImageToStagingArea:(t,e)=>{const{boundingBox:n,image:r}=e.payload;!n||!r||(t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState.stagingArea.images.push({kind:"image",layer:"base",...n,image:r}),t.layerState.stagingArea.selectedImageIndex=t.layerState.stagingArea.images.length-1,t.futureLayerStates=[])},discardStagedImages:t=>{t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState.stagingArea={...Zl.stagingArea},t.futureLayerStates=[],t.shouldShowStagingOutline=!0,t.shouldShowStagingOutline=!0},addFillRect:t=>{const{boundingBoxCoordinates:e,boundingBoxDimensions:n,brushColor:r}=t;t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState.objects.push({kind:"fillRect",layer:"base",...e,...n,color:r}),t.futureLayerStates=[]},addEraseRect:t=>{const{boundingBoxCoordinates:e,boundingBoxDimensions:n}=t;t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState.objects.push({kind:"eraseRect",layer:"base",...e,...n}),t.futureLayerStates=[]},addLine:(t,e)=>{const{tool:n,layer:r,brushColor:i,brushSize:a,shouldRestrictStrokesToBox:s}=t;if(n==="move"||n==="colorPicker")return;const u=a/2,c=r==="base"&&n==="brush"?{color:i}:{};t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift();const f={kind:"line",layer:r,tool:n,strokeWidth:u,points:e.payload,...c};s&&(f.clip={...t.boundingBoxCoordinates,...t.boundingBoxDimensions}),t.layerState.objects.push(f),t.futureLayerStates=[]},addPointToCurrentLine:(t,e)=>{const n=t.layerState.objects.findLast(v5);n&&n.points.push(...e.payload)},undo:t=>{const e=t.pastLayerStates.pop();e&&(t.futureLayerStates.unshift(_t.cloneDeep(t.layerState)),t.futureLayerStates.length>t.maxHistory&&t.futureLayerStates.pop(),t.layerState=e)},redo:t=>{const e=t.futureLayerStates.shift();e&&(t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState=e)},setShouldShowGrid:(t,e)=>{t.shouldShowGrid=e.payload},setIsMovingStage:(t,e)=>{t.isMovingStage=e.payload},setShouldSnapToGrid:(t,e)=>{t.shouldSnapToGrid=e.payload},setShouldAutoSave:(t,e)=>{t.shouldAutoSave=e.payload},setShouldShowIntermediates:(t,e)=>{t.shouldShowIntermediates=e.payload},resetCanvas:t=>{t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.layerState=Zl,t.futureLayerStates=[]},setCanvasContainerDimensions:(t,e)=>{t.canvasContainerDimensions=e.payload},resizeAndScaleCanvas:t=>{const{width:e,height:n}=t.canvasContainerDimensions,r=t.layerState.objects.find(Ew),i={width:Math.floor(e),height:Math.floor(n)};if(!r){const h=Zo(i.width,i.height,512,512,Nl),p=Jo(i.width,i.height,0,0,512,512,h),g={width:512,height:512};if(t.stageScale=h,t.stageCoordinates=p,t.stageDimensions=i,t.boundingBoxCoordinates={x:0,y:0},t.boundingBoxDimensions=g,t.boundingBoxScaleMethod==="auto"){const y=Ya(g);t.scaledBoundingBoxDimensions=y}return}const{width:a,height:s}=r,c=Zo(e,n,a,s,.95),f=Jo(i.width,i.height,0,0,a,s,c);t.minimumStageScale=c,t.stageScale=c,t.stageCoordinates=Pw(f),t.stageDimensions=i,t.isCanvasInitialized=!0},resizeCanvas:t=>{const{width:e,height:n}=t.canvasContainerDimensions,r={width:Math.floor(e),height:Math.floor(n)};if(t.stageDimensions=r,!t.layerState.objects.find(Ew)){const i=Zo(r.width,r.height,512,512,Nl),a=Jo(r.width,r.height,0,0,512,512,i),s={width:512,height:512};if(t.stageScale=i,t.stageCoordinates=a,t.boundingBoxCoordinates={x:0,y:0},t.boundingBoxDimensions=s,t.boundingBoxScaleMethod==="auto"){const u=Ya(s);t.scaledBoundingBoxDimensions=u}}},resetCanvasView:(t,e)=>{const{contentRect:n,shouldScaleTo1:r}=e.payload,{stageDimensions:{width:i,height:a}}=t,{x:s,y:u,width:c,height:f}=n;if(c!==0&&f!==0){const h=r?1:Zo(i,a,c,f,Nl),p=Jo(i,a,s,u,c,f,h);t.stageScale=h,t.stageCoordinates=p}else{const h=Zo(i,a,512,512,Nl),p=Jo(i,a,0,0,512,512,h),g={width:512,height:512};if(t.stageScale=h,t.stageCoordinates=p,t.boundingBoxCoordinates={x:0,y:0},t.boundingBoxDimensions=g,t.boundingBoxScaleMethod==="auto"){const y=Ya(g);t.scaledBoundingBoxDimensions=y}}},nextStagingAreaImage:t=>{const e=t.layerState.stagingArea.selectedImageIndex,n=t.layerState.stagingArea.images.length;t.layerState.stagingArea.selectedImageIndex=Math.min(e+1,n-1)},prevStagingAreaImage:t=>{const e=t.layerState.stagingArea.selectedImageIndex;t.layerState.stagingArea.selectedImageIndex=Math.max(e-1,0)},commitStagingAreaImage:t=>{const{images:e,selectedImageIndex:n}=t.layerState.stagingArea;t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.pastLayerStates.length>t.maxHistory&&t.pastLayerStates.shift(),t.layerState.objects.push({...e[n]}),t.layerState.stagingArea={...Zl.stagingArea},t.futureLayerStates=[],t.shouldShowStagingOutline=!0,t.shouldShowStagingImage=!0},fitBoundingBoxToStage:t=>{const{boundingBoxDimensions:e,boundingBoxCoordinates:n,stageDimensions:r,stageScale:i}=t,a=r.width/i,s=r.height/i;if(n.x<0||n.x+e.width>a||n.y<0||n.y+e.height>s){const u={width:Ef(_t.clamp(a,64,512),64),height:Ef(_t.clamp(s,64,512),64)},c={x:va(a/2-u.width/2,64),y:va(s/2-u.height/2,64)};if(t.boundingBoxDimensions=u,t.boundingBoxCoordinates=c,t.boundingBoxScaleMethod==="auto"){const f=Ya(u);t.scaledBoundingBoxDimensions=f}}},setBoundingBoxScaleMethod:(t,e)=>{if(t.boundingBoxScaleMethod=e.payload,e.payload==="auto"){const n=Ya(t.boundingBoxDimensions);t.scaledBoundingBoxDimensions=n}},setScaledBoundingBoxDimensions:(t,e)=>{t.scaledBoundingBoxDimensions=e.payload},setShouldShowStagingImage:(t,e)=>{t.shouldShowStagingImage=e.payload},setShouldShowStagingOutline:(t,e)=>{t.shouldShowStagingOutline=e.payload},setShouldShowCanvasDebugInfo:(t,e)=>{t.shouldShowCanvasDebugInfo=e.payload},setShouldRestrictStrokesToBox:(t,e)=>{t.shouldRestrictStrokesToBox=e.payload},setShouldCropToBoundingBoxOnSave:(t,e)=>{t.shouldCropToBoundingBoxOnSave=e.payload},setColorPickerColor:(t,e)=>{t.colorPickerColor=e.payload},commitColorPickerColor:t=>{t.brushColor={...t.colorPickerColor,a:t.brushColor.a},t.tool="brush"},setMergedCanvas:(t,e)=>{t.pastLayerStates.push(_t.cloneDeep(t.layerState)),t.futureLayerStates=[],t.layerState.objects=[e.payload]},resetCanvasInteractionState:t=>{t.cursorPosition=null,t.isDrawing=!1,t.isMouseOverBoundingBox=!1,t.isMoveBoundingBoxKeyHeld=!1,t.isMoveStageKeyHeld=!1,t.isMovingBoundingBox=!1,t.isMovingStage=!1,t.isTransformingBoundingBox=!1},mouseLeftCanvas:t=>{t.cursorPosition=null,t.isDrawing=!1,t.isMouseOverBoundingBox=!1,t.isMovingBoundingBox=!1,t.isTransformingBoundingBox=!1}}}),{addEraseRect:j8,addFillRect:W8,addImageToStagingArea:S5,addLine:H8,addPointToCurrentLine:V8,clearCanvasHistory:q8,clearMask:K8,commitColorPickerColor:Y8,commitStagingAreaImage:X8,discardStagedImages:Q8,fitBoundingBoxToStage:J8,mouseLeftCanvas:Z8,nextStagingAreaImage:eU,prevStagingAreaImage:tU,redo:nU,resetCanvas:rU,resetCanvasInteractionState:iU,resetCanvasView:aU,resizeAndScaleCanvas:oU,resizeCanvas:sU,setBoundingBoxCoordinates:lU,setBoundingBoxDimensions:uU,setBoundingBoxPreviewFill:cU,setBoundingBoxScaleMethod:fU,setBrushColor:dU,setBrushSize:hU,setCanvasContainerDimensions:pU,setColorPickerColor:gU,setCursorPosition:mU,setDoesCanvasNeedScaling:vU,setInitialCanvasImage:yU,setIsDrawing:SU,setIsMaskEnabled:_U,setIsMouseOverBoundingBox:wU,setIsMoveBoundingBoxKeyHeld:bU,setIsMoveStageKeyHeld:CU,setIsMovingBoundingBox:xU,setIsMovingStage:kU,setIsTransformingBoundingBox:PU,setLayer:EU,setMaskColor:OU,setMergedCanvas:TU,setShouldAutoSave:RU,setShouldCropToBoundingBoxOnSave:AU,setShouldDarkenOutsideBoundingBox:IU,setShouldLockBoundingBox:LU,setShouldPreserveMaskedArea:MU,setShouldShowBoundingBox:DU,setShouldShowBrush:NU,setShouldShowBrushPreview:BU,setShouldShowCanvasDebugInfo:FU,setShouldShowCheckboardTransparency:$U,setShouldShowGrid:zU,setShouldShowIntermediates:GU,setShouldShowStagingImage:UU,setShouldShowStagingOutline:jU,setShouldSnapToGrid:WU,setStageCoordinates:HU,setStageScale:VU,setTool:qU,toggleShouldLockBoundingBox:KU,toggleTool:YU,undo:XU,setScaledBoundingBoxDimensions:QU,setShouldRestrictStrokesToBox:JU}=Jx.actions,_5=Jx.reducer,w5={currentImageUuid:"",galleryImageMinimumWidth:64,galleryImageObjectFit:"cover",shouldAutoSwitchToNewImages:!0,currentCategory:"result",categories:{user:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0},result:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0}},galleryWidth:300,shouldUseSingleGalleryColumn:!1},Zx=vo({name:"gallery",initialState:w5,reducers:{setCurrentImage:(t,e)=>{t.currentImage=e.payload,t.currentImageUuid=e.payload.uuid},removeImage:(t,e)=>{const{uuid:n,category:r}=e.payload,i=t.categories[r].images,a=i.filter(s=>s.uuid!==n);if(n===t.currentImageUuid){const s=i.findIndex(c=>c.uuid===n),u=_t.clamp(s,0,a.length-1);t.currentImage=a.length?a[u]:void 0,t.currentImageUuid=a.length?a[u].uuid:""}t.categories[r].images=a},addImage:(t,e)=>{const{image:n,category:r}=e.payload,{uuid:i,url:a,mtime:s}=n,u=t.categories[r];u.images.find(c=>c.url===a&&c.mtime===s)||(u.images.unshift(n),t.shouldAutoSwitchToNewImages&&(t.currentImageUuid=i,t.currentImage=n,t.currentCategory=r),t.intermediateImage=void 0,u.latest_mtime=s)},setIntermediateImage:(t,e)=>{t.intermediateImage=e.payload},clearIntermediateImage:t=>{t.intermediateImage=void 0},selectNextImage:t=>{const{currentImage:e}=t;if(!e)return;const n=t.categories[e.category].images;if(e){const r=n.findIndex(i=>i.uuid===e.uuid);if(r{const{currentImage:e}=t;if(!e)return;const n=t.categories[e.category].images;if(e){const r=n.findIndex(i=>i.uuid===e.uuid);if(r>0){const i=n[r-1];t.currentImage=i,t.currentImageUuid=i.uuid}}},addGalleryImages:(t,e)=>{const{images:n,areMoreImagesAvailable:r,category:i}=e.payload,a=t.categories[i].images;if(n.length>0){const s=n.filter(u=>!a.find(c=>c.url===u.url&&c.mtime===u.mtime));if(t.categories[i].images=a.concat(s).sort((u,c)=>c.mtime-u.mtime),!t.currentImage){const u=n[0];t.currentImage=u,t.currentImageUuid=u.uuid}t.categories[i].latest_mtime=n[0].mtime,t.categories[i].earliest_mtime=n[n.length-1].mtime}r!==void 0&&(t.categories[i].areMoreImagesAvailable=r)},setGalleryImageMinimumWidth:(t,e)=>{t.galleryImageMinimumWidth=e.payload},setGalleryImageObjectFit:(t,e)=>{t.galleryImageObjectFit=e.payload},setShouldAutoSwitchToNewImages:(t,e)=>{t.shouldAutoSwitchToNewImages=e.payload},setCurrentCategory:(t,e)=>{t.currentCategory=e.payload},setGalleryWidth:(t,e)=>{t.galleryWidth=e.payload},setShouldUseSingleGalleryColumn:(t,e)=>{t.shouldUseSingleGalleryColumn=e.payload}}}),{addImage:Of,clearIntermediateImage:Cm,removeImage:ek,setCurrentImage:ZU,addGalleryImages:b5,setIntermediateImage:C5,selectNextImage:ej,selectPrevImage:tj,setGalleryImageMinimumWidth:nj,setGalleryImageObjectFit:rj,setShouldAutoSwitchToNewImages:ij,setCurrentCategory:aj,setGalleryWidth:oj,setShouldUseSingleGalleryColumn:sj}=Zx.actions,x5=Zx.reducer,k5={isLightboxOpen:!1},P5=k5,tk=vo({name:"lightbox",initialState:P5,reducers:{setIsLightboxOpen:(t,e)=>{t.isLightboxOpen=e.payload}}}),{setIsLightboxOpen:lj}=tk.actions,E5=tk.reducer,dd=t=>typeof t=="string"?t:t.length===1?t[0].prompt:t.map(e=>`${e.prompt}:${e.weight}`).join(" ");function O5(t){let e=typeof t=="string"?t:dd(t),n="";const r=new RegExp(/\[([^\][]*)]/,"gi"),i=[...e.matchAll(r)].map(a=>a[1]);return i.length&&(n=i.join(" "),i.forEach(a=>{e=e.replace(`[${a}]`,"").replaceAll("[]","").trim()})),[e,n]}const T5=t=>{const r=t.split(",").map(i=>i.split(":")).map(i=>({seed:Number(i[0]),weight:Number(i[1])}));return R5(r)?r:!1},R5=t=>Boolean(typeof t=="string"?T5(t):t.length&&!t.some(e=>{const{seed:n,weight:r}=e,i=!isNaN(parseInt(n.toString(),10)),a=!isNaN(parseInt(r.toString(),10))&&r>=0&&r<=1;return!(i&&a)})),Ow=t=>t.reduce((e,n,r,i)=>{const{seed:a,weight:s}=n;return e+=`${a}:${s}`,r!==i.length-1&&(e+=","),e},""),A5=t=>t.split(",").map(r=>r.split(":")).map(r=>[parseInt(r[0],10),parseFloat(r[1])]),nk={cfgScale:7.5,height:512,img2imgStrength:.75,infillMethod:"patchmatch",iterations:1,maskPath:"",perlin:0,prompt:"",negativePrompt:"",sampler:"k_lms",seamBlur:16,seamless:!1,seamSize:96,seamSteps:30,seamStrength:.7,seed:0,seedWeights:"",shouldFitToWidthHeight:!0,shouldGenerateVariations:!1,shouldRandomizeSeed:!0,steps:50,threshold:0,tileSize:32,variationAmount:.1,width:512,shouldUseSymmetry:!1,horizontalSymmetrySteps:0,verticalSymmetrySteps:0},I5=nk,rk=vo({name:"generation",initialState:I5,reducers:{setPrompt:(t,e)=>{const n=e.payload;typeof n=="string"?t.prompt=n:t.prompt=dd(n)},setNegativePrompt:(t,e)=>{const n=e.payload;typeof n=="string"?t.negativePrompt=n:t.negativePrompt=dd(n)},setIterations:(t,e)=>{t.iterations=e.payload},setSteps:(t,e)=>{t.steps=e.payload},clampSymmetrySteps:t=>{t.horizontalSymmetrySteps=_t.clamp(t.horizontalSymmetrySteps,0,t.steps),t.verticalSymmetrySteps=_t.clamp(t.verticalSymmetrySteps,0,t.steps)},setCfgScale:(t,e)=>{t.cfgScale=e.payload},setThreshold:(t,e)=>{t.threshold=e.payload},setPerlin:(t,e)=>{t.perlin=e.payload},setHeight:(t,e)=>{t.height=e.payload},setWidth:(t,e)=>{t.width=e.payload},setSampler:(t,e)=>{t.sampler=e.payload},setSeed:(t,e)=>{t.seed=e.payload,t.shouldRandomizeSeed=!1},setImg2imgStrength:(t,e)=>{t.img2imgStrength=e.payload},setMaskPath:(t,e)=>{t.maskPath=e.payload},setSeamless:(t,e)=>{t.seamless=e.payload},setShouldFitToWidthHeight:(t,e)=>{t.shouldFitToWidthHeight=e.payload},resetSeed:t=>{t.seed=-1},setParameter:(t,e)=>{const{key:n,value:r}=e.payload,i={...t,[n]:r};return n==="seed"&&(i.shouldRandomizeSeed=!1),i},setShouldGenerateVariations:(t,e)=>{t.shouldGenerateVariations=e.payload},setVariationAmount:(t,e)=>{t.variationAmount=e.payload},setSeedWeights:(t,e)=>{t.seedWeights=e.payload,t.shouldGenerateVariations=!0,t.variationAmount=0},setAllTextToImageParameters:(t,e)=>{const{sampler:n,prompt:r,seed:i,variations:a,steps:s,cfg_scale:u,threshold:c,perlin:f,seamless:h,_hires_fix:p,width:g,height:y}=e.payload.image;a&&a.length>0?(t.seedWeights=Ow(a),t.shouldGenerateVariations=!0,t.variationAmount=0):t.shouldGenerateVariations=!1,i&&(t.seed=i,t.shouldRandomizeSeed=!1),r&&(t.prompt=dd(r)),n&&(t.sampler=n),s&&(t.steps=s),u&&(t.cfgScale=u),typeof c>"u"?t.threshold=0:t.threshold=c,typeof f>"u"?t.perlin=0:t.perlin=f,typeof h=="boolean"&&(t.seamless=h),g&&(t.width=g),y&&(t.height=y)},setAllImageToImageParameters:(t,e)=>{const{type:n,strength:r,fit:i,init_image_path:a,mask_image_path:s}=e.payload.image;n==="img2img"&&(a&&(t.initialImage=a),s&&(t.maskPath=s),r&&(t.img2imgStrength=r),typeof i=="boolean"&&(t.shouldFitToWidthHeight=i))},setAllParameters:(t,e)=>{const{type:n,sampler:r,prompt:i,seed:a,variations:s,steps:u,cfg_scale:c,threshold:f,perlin:h,seamless:p,_hires_fix:g,width:y,height:v,strength:w,fit:x,init_image_path:_,mask_image_path:S}=e.payload.image;if(n==="img2img"&&(_&&(t.initialImage=_),S&&(t.maskPath=S),w&&(t.img2imgStrength=w),typeof x=="boolean"&&(t.shouldFitToWidthHeight=x)),s&&s.length>0?(t.seedWeights=Ow(s),t.shouldGenerateVariations=!0,t.variationAmount=0):t.shouldGenerateVariations=!1,a&&(t.seed=a,t.shouldRandomizeSeed=!1),i){const[C,O]=O5(i);C&&(t.prompt=C),O?t.negativePrompt=O:t.negativePrompt=""}r&&(t.sampler=r),u&&(t.steps=u),c&&(t.cfgScale=c),typeof f>"u"?t.threshold=0:t.threshold=f,typeof h>"u"?t.perlin=0:t.perlin=h,typeof p=="boolean"&&(t.seamless=p),y&&(t.width=y),v&&(t.height=v)},resetParametersState:t=>({...t,...nk}),setShouldRandomizeSeed:(t,e)=>{t.shouldRandomizeSeed=e.payload},setInitialImage:(t,e)=>{t.initialImage=e.payload},clearInitialImage:t=>{t.initialImage=void 0},setSeamSize:(t,e)=>{t.seamSize=e.payload},setSeamBlur:(t,e)=>{t.seamBlur=e.payload},setSeamStrength:(t,e)=>{t.seamStrength=e.payload},setSeamSteps:(t,e)=>{t.seamSteps=e.payload},setTileSize:(t,e)=>{t.tileSize=e.payload},setInfillMethod:(t,e)=>{t.infillMethod=e.payload},setShouldUseSymmetry:(t,e)=>{t.shouldUseSymmetry=e.payload},setHorizontalSymmetrySteps:(t,e)=>{t.horizontalSymmetrySteps=e.payload},setVerticalSymmetrySteps:(t,e)=>{t.verticalSymmetrySteps=e.payload}}}),{clampSymmetrySteps:uj,clearInitialImage:L5,resetParametersState:cj,resetSeed:fj,setAllImageToImageParameters:dj,setAllParameters:hj,setAllTextToImageParameters:pj,setCfgScale:gj,setHeight:mj,setImg2imgStrength:vj,setInfillMethod:M5,setInitialImage:D5,setIterations:yj,setMaskPath:N5,setParameter:Sj,setPerlin:_j,setPrompt:wj,setNegativePrompt:bj,setSampler:Cj,setSeamBlur:xj,setSeamless:kj,setSeamSize:Pj,setSeamSteps:Ej,setSeamStrength:Oj,setSeed:Tj,setSeedWeights:Rj,setShouldFitToWidthHeight:Aj,setShouldGenerateVariations:Ij,setShouldRandomizeSeed:Lj,setSteps:Mj,setThreshold:Dj,setTileSize:Nj,setVariationAmount:Bj,setWidth:Fj,setShouldUseSymmetry:$j,setHorizontalSymmetrySteps:zj,setVerticalSymmetrySteps:Gj}=rk.actions,B5=rk.reducer,ik={codeformerFidelity:.75,facetoolStrength:.75,facetoolType:"gfpgan",hiresFix:!1,hiresStrength:.75,shouldLoopback:!1,shouldRunESRGAN:!1,shouldRunFacetool:!1,upscalingLevel:4,upscalingDenoising:.75,upscalingStrength:.75},F5=ik,ak=vo({name:"postprocessing",initialState:F5,reducers:{setFacetoolStrength:(t,e)=>{t.facetoolStrength=e.payload},setCodeformerFidelity:(t,e)=>{t.codeformerFidelity=e.payload},setUpscalingLevel:(t,e)=>{t.upscalingLevel=e.payload},setUpscalingDenoising:(t,e)=>{t.upscalingDenoising=e.payload},setUpscalingStrength:(t,e)=>{t.upscalingStrength=e.payload},setHiresFix:(t,e)=>{t.hiresFix=e.payload},setHiresStrength:(t,e)=>{t.hiresStrength=e.payload},resetPostprocessingState:t=>({...t,...ik}),setShouldRunFacetool:(t,e)=>{t.shouldRunFacetool=e.payload},setFacetoolType:(t,e)=>{t.facetoolType=e.payload},setShouldRunESRGAN:(t,e)=>{t.shouldRunESRGAN=e.payload},setShouldLoopback:(t,e)=>{t.shouldLoopback=e.payload}}}),{resetPostprocessingState:Uj,setCodeformerFidelity:jj,setFacetoolStrength:Wj,setFacetoolType:Hj,setHiresFix:Vj,setHiresStrength:qj,setShouldLoopback:Kj,setShouldRunESRGAN:Yj,setShouldRunFacetool:Xj,setUpscalingLevel:Qj,setUpscalingDenoising:Jj,setUpscalingStrength:Zj}=ak.actions,$5=ak.reducer;function Sr(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Tw(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:{};Sr(this,t),this.init(e,n)}return _r(t,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=n||U5,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function(n){this.debug=n}},{key:"log",value:function(){for(var n=arguments.length,r=new Array(n),i=0;i1?r-1:0),a=1;a-1?u.replace(/###/g,"."):u}function i(){return!t||typeof t=="string"}for(var a=typeof e!="string"?[].concat(e):e.split(".");a.length>1;){if(i())return{};var s=r(a.shift());!t[s]&&n&&(t[s]=new n),Object.prototype.hasOwnProperty.call(t,s)?t=t[s]:t={}}return i()?{}:{obj:t,k:r(a.shift())}}function Mw(t,e,n){var r=O0(t,e,Object),i=r.obj,a=r.k;i[a]=n}function H5(t,e,n,r){var i=O0(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(n)),r||a[s].push(n)}function rh(t,e){var n=O0(t,e),r=n.obj,i=n.k;if(r)return r[i]}function Dw(t,e,n){var r=rh(t,n);return r!==void 0?r:rh(e,n)}function uk(t,e,n){for(var r in e)r!=="__proto__"&&r!=="constructor"&&(r in t?typeof t[r]=="string"||t[r]instanceof String||typeof e[r]=="string"||e[r]instanceof String?n&&(t[r]=e[r]):uk(t[r],e[r],n):t[r]=e[r]);return t}function es(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var V5={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function q5(t){return typeof t=="string"?t.replace(/[&<>"'\/]/g,function(e){return V5[e]}):t}var Qh=typeof window<"u"&&window.navigator&&typeof window.navigator.userAgentData>"u"&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,K5=[" ",",","?","!",";"];function Y5(t,e,n){e=e||"",n=n||"";var r=K5.filter(function(u){return e.indexOf(u)<0&&n.indexOf(u)<0});if(r.length===0)return!0;var i=new RegExp("(".concat(r.map(function(u){return u==="?"?"\\?":u}).join("|"),")")),a=!i.test(t);if(!a){var s=t.indexOf(n);s>0&&!i.test(t.substring(0,s))&&(a=!0)}return a}function Nw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Tf(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ck(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(t){if(t[e])return t[e];for(var r=e.split(n),i=t,a=0;aa+s;)s++,u=r.slice(a,a+s).join(n),c=i[u];if(c===void 0)return;if(c===null)return null;if(e.endsWith(u)){if(typeof c=="string")return c;if(u&&typeof c[u]=="string")return c[u]}var f=r.slice(a+s).join(n);return f?ck(c,f,n):void 0}i=i[r[a]]}return i}}var J5=function(t){Xh(n,t);var e=X5(n);function n(r){var i,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Sr(this,n),i=e.call(this),Qh&&Aa.call(Ea(i)),i.data=r||{},i.options=a,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.options.ignoreJSONStructure===void 0&&(i.options.ignoreJSONStructure=!0),i}return _r(n,[{key:"addNamespaces",value:function(i){this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}},{key:"removeNamespaces",value:function(i){var a=this.options.ns.indexOf(i);a>-1&&this.options.ns.splice(a,1)}},{key:"getResource",value:function(i,a,s){var u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},c=u.keySeparator!==void 0?u.keySeparator:this.options.keySeparator,f=u.ignoreJSONStructure!==void 0?u.ignoreJSONStructure:this.options.ignoreJSONStructure,h=[i,a];s&&typeof s!="string"&&(h=h.concat(s)),s&&typeof s=="string"&&(h=h.concat(c?s.split(c):s)),i.indexOf(".")>-1&&(h=i.split("."));var p=rh(this.data,h);return p||!f||typeof s!="string"?p:ck(this.data&&this.data[i]&&this.data[i][a],s,c)}},{key:"addResource",value:function(i,a,s,u){var c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},f=this.options.keySeparator;f===void 0&&(f=".");var h=[i,a];s&&(h=h.concat(f?s.split(f):s)),i.indexOf(".")>-1&&(h=i.split("."),u=a,a=h[1]),this.addNamespaces(a),Mw(this.data,h,u),c.silent||this.emit("added",i,a,s,u)}},{key:"addResources",value:function(i,a,s){var u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var c in s)(typeof s[c]=="string"||Object.prototype.toString.apply(s[c])==="[object Array]")&&this.addResource(i,a,c,s[c],{silent:!0});u.silent||this.emit("added",i,a,s)}},{key:"addResourceBundle",value:function(i,a,s,u,c){var f=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},h=[i,a];i.indexOf(".")>-1&&(h=i.split("."),u=s,s=a,a=h[1]),this.addNamespaces(a);var p=rh(this.data,h)||{};u?uk(p,s,c):p=Tf(Tf({},p),s),Mw(this.data,h,p),f.silent||this.emit("added",i,a,s)}},{key:"removeResourceBundle",value:function(i,a){this.hasResourceBundle(i,a)&&delete this.data[i][a],this.removeNamespaces(a),this.emit("removed",i,a)}},{key:"hasResourceBundle",value:function(i,a){return this.getResource(i,a)!==void 0}},{key:"getResourceBundle",value:function(i,a){return a||(a=this.options.defaultNS),this.options.compatibilityAPI==="v1"?Tf(Tf({},{}),this.getResource(i,a)):this.getResource(i,a)}},{key:"getDataByLanguage",value:function(i){return this.data[i]}},{key:"hasLanguageSomeTranslations",value:function(i){var a=this.getDataByLanguage(i),s=a&&Object.keys(a)||[];return!!s.find(function(u){return a[u]&&Object.keys(a[u]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(Aa),fk={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,n,r,i,a){var s=this;return e.forEach(function(u){s.processors[u]&&(n=s.processors[u].process(n,r,i,a))}),n}};function Bw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function mn(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Fw={},$w=function(t){Xh(n,t);var e=Z5(n);function n(r){var i,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Sr(this,n),i=e.call(this),Qh&&Aa.call(Ea(i)),W5(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,Ea(i)),i.options=a,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.logger=ii.create("translator"),i}return _r(n,[{key:"changeLanguage",value:function(i){i&&(this.language=i)}},{key:"exists",value:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(i==null)return!1;var s=this.resolve(i,a);return s&&s.res!==void 0}},{key:"extractFromKey",value:function(i,a){var s=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");var u=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,c=a.ns||this.options.defaultNS||[],f=s&&i.indexOf(s)>-1,h=!this.options.userDefinedKeySeparator&&!a.keySeparator&&!this.options.userDefinedNsSeparator&&!a.nsSeparator&&!Y5(i,s,u);if(f&&!h){var p=i.match(this.interpolator.nestingRegexp);if(p&&p.length>0)return{key:i,namespaces:c};var g=i.split(s);(s!==u||s===u&&this.options.ns.indexOf(g[0])>-1)&&(c=g.shift()),i=g.join(u)}return typeof c=="string"&&(c=[c]),{key:i,namespaces:c}}},{key:"translate",value:function(i,a,s){var u=this;if(gr(a)!=="object"&&this.options.overloadTranslationOptionHandler&&(a=this.options.overloadTranslationOptionHandler(arguments)),a||(a={}),i==null)return"";Array.isArray(i)||(i=[String(i)]);var c=a.returnDetails!==void 0?a.returnDetails:this.options.returnDetails,f=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,h=this.extractFromKey(i[i.length-1],a),p=h.key,g=h.namespaces,y=g[g.length-1],v=a.lng||this.language,w=a.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(v&&v.toLowerCase()==="cimode"){if(w){var x=a.nsSeparator||this.options.nsSeparator;return c?{res:"".concat(y).concat(x).concat(p),usedKey:p,exactUsedKey:p,usedLng:v,usedNS:y}:"".concat(y).concat(x).concat(p)}return c?{res:p,usedKey:p,exactUsedKey:p,usedLng:v,usedNS:y}:p}var _=this.resolve(i,a),S=_&&_.res,C=_&&_.usedKey||p,O=_&&_.exactUsedKey||p,I=Object.prototype.toString.apply(S),L=["[object Number]","[object Function]","[object RegExp]"],D=a.joinArrays!==void 0?a.joinArrays:this.options.joinArrays,U=!this.i18nFormat||this.i18nFormat.handleAsObject,X=typeof S!="string"&&typeof S!="boolean"&&typeof S!="number";if(U&&S&&X&&L.indexOf(I)<0&&!(typeof D=="string"&&I==="[object Array]")){if(!a.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var K=this.options.returnedObjectHandler?this.options.returnedObjectHandler(C,S,mn(mn({},a),{},{ns:g})):"key '".concat(p," (").concat(this.language,")' returned an object instead of string.");return c?(_.res=K,_):K}if(f){var te=I==="[object Array]",ce=te?[]:{},j=te?O:C;for(var T in S)if(Object.prototype.hasOwnProperty.call(S,T)){var $="".concat(j).concat(f).concat(T);ce[T]=this.translate($,mn(mn({},a),{joinArrays:!1,ns:g})),ce[T]===$&&(ce[T]=S[T])}S=ce}}else if(U&&typeof D=="string"&&I==="[object Array]")S=S.join(D),S&&(S=this.extendTranslation(S,i,a,s));else{var V=!1,ie=!1,W=a.count!==void 0&&typeof a.count!="string",Y=n.hasDefaultValue(a),Q=W?this.pluralResolver.getSuffix(v,a.count,a):"",oe=a["defaultValue".concat(Q)]||a.defaultValue;!this.isValidLookup(S)&&Y&&(V=!0,S=oe),this.isValidLookup(S)||(ie=!0,S=p);var ve=a.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,we=ve&&ie?void 0:S,Ue=Y&&oe!==S&&this.options.updateMissing;if(ie||V||Ue){if(this.logger.log(Ue?"updateKey":"missingKey",v,y,p,Ue?oe:S),f){var At=this.resolve(p,mn(mn({},a),{},{keySeparator:!1}));At&&At.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var me=[],qt=this.languageUtils.getFallbackCodes(this.options.fallbackLng,a.lng||this.language);if(this.options.saveMissingTo==="fallback"&&qt&&qt[0])for(var Bt=0;Bt1&&arguments[1]!==void 0?arguments[1]:{},u,c,f,h,p;return typeof i=="string"&&(i=[i]),i.forEach(function(g){if(!a.isValidLookup(u)){var y=a.extractFromKey(g,s),v=y.key;c=v;var w=y.namespaces;a.options.fallbackNS&&(w=w.concat(a.options.fallbackNS));var x=s.count!==void 0&&typeof s.count!="string",_=x&&!s.ordinal&&s.count===0&&a.pluralResolver.shouldUseIntlApi(),S=s.context!==void 0&&(typeof s.context=="string"||typeof s.context=="number")&&s.context!=="",C=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);w.forEach(function(O){a.isValidLookup(u)||(p=O,!Fw["".concat(C[0],"-").concat(O)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(p)&&(Fw["".concat(C[0],"-").concat(O)]=!0,a.logger.warn('key "'.concat(c,'" for languages "').concat(C.join(", "),`" won't get resolved as namespace "`).concat(p,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),C.forEach(function(I){if(!a.isValidLookup(u)){h=I;var L=[v];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(L,v,I,O,s);else{var D;x&&(D=a.pluralResolver.getSuffix(I,s.count,s));var U="".concat(a.options.pluralSeparator,"zero");if(x&&(L.push(v+D),_&&L.push(v+U)),S){var X="".concat(v).concat(a.options.contextSeparator).concat(s.context);L.push(X),x&&(L.push(X+D),_&&L.push(X+U))}}for(var K;K=L.pop();)a.isValidLookup(u)||(f=K,u=a.getResource(I,O,K,s))}}))})}}),{res:u,usedKey:c,exactUsedKey:f,usedLng:h,usedNS:p}}},{key:"isValidLookup",value:function(i){return i!==void 0&&!(!this.options.returnNull&&i===null)&&!(!this.options.returnEmptyString&&i==="")}},{key:"getResource",value:function(i,a,s){var u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(i,a,s,u):this.resourceStore.getResource(i,a,s,u)}}],[{key:"hasDefaultValue",value:function(i){var a="defaultValue";for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)&&a===s.substring(0,a.length)&&i[s]!==void 0)return!0;return!1}}]),n}(Aa);function xm(t){return t.charAt(0).toUpperCase()+t.slice(1)}var zw=function(){function t(e){Sr(this,t),this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ii.create("languageUtils")}return _r(t,[{key:"getScriptPartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return null;var r=n.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}},{key:"getLanguagePartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return n;var r=n.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function(n){if(typeof n=="string"&&n.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],i=n.split("-");return this.options.lowerCaseLng?i=i.map(function(a){return a.toLowerCase()}):i.length===2?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=xm(i[1].toLowerCase()))):i.length===3&&(i[0]=i[0].toLowerCase(),i[1].length===2&&(i[1]=i[1].toUpperCase()),i[0]!=="sgn"&&i[2].length===2&&(i[2]=i[2].toUpperCase()),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=xm(i[1].toLowerCase())),r.indexOf(i[2].toLowerCase())>-1&&(i[2]=xm(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?n.toLowerCase():n}},{key:"isSupportedCode",value:function(n){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(n=this.getLanguagePartFromCode(n)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(n)>-1}},{key:"getBestMatchFromCodes",value:function(n){var r=this;if(!n)return null;var i;return n.forEach(function(a){if(!i){var s=r.formatLanguageCode(a);(!r.options.supportedLngs||r.isSupportedCode(s))&&(i=s)}}),!i&&this.options.supportedLngs&&n.forEach(function(a){if(!i){var s=r.getLanguagePartFromCode(a);if(r.isSupportedCode(s))return i=s;i=r.options.supportedLngs.find(function(u){if(u.indexOf(s)===0)return u})}}),i||(i=this.getFallbackCodes(this.options.fallbackLng)[0]),i}},{key:"getFallbackCodes",value:function(n,r){if(!n)return[];if(typeof n=="function"&&(n=n(r)),typeof n=="string"&&(n=[n]),Object.prototype.toString.apply(n)==="[object Array]")return n;if(!r)return n.default||[];var i=n[r];return i||(i=n[this.getScriptPartFromCode(r)]),i||(i=n[this.formatLanguageCode(r)]),i||(i=n[this.getLanguagePartFromCode(r)]),i||(i=n.default),i||[]}},{key:"toResolveHierarchy",value:function(n,r){var i=this,a=this.getFallbackCodes(r||this.options.fallbackLng||[],n),s=[],u=function(f){f&&(i.isSupportedCode(f)?s.push(f):i.logger.warn("rejecting language code not found in supportedLngs: ".concat(f)))};return typeof n=="string"&&n.indexOf("-")>-1?(this.options.load!=="languageOnly"&&u(this.formatLanguageCode(n)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&u(this.getScriptPartFromCode(n)),this.options.load!=="currentOnly"&&u(this.getLanguagePartFromCode(n))):typeof n=="string"&&u(this.formatLanguageCode(n)),a.forEach(function(c){s.indexOf(c)<0&&u(i.formatLanguageCode(c))}),s}}]),t}(),t4=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],n4={1:function(e){return Number(e>1)},2:function(e){return Number(e!=1)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(e==1?0:e>=2&&e<=4?1:2)},7:function(e){return Number(e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(e==1?0:e==2?1:e!=8&&e!=11?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(e==1?0:e==2?1:e<7?2:e<11?3:4)},11:function(e){return Number(e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(e!==0)},14:function(e){return Number(e==1?0:e==2?1:e==3?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:e!==0?1:2)},17:function(e){return Number(e==1||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(e==0?0:e==1?1:2)},19:function(e){return Number(e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(e==1?0:e==0||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3)}},r4=["v1","v2","v3"],Gw={zero:0,one:1,two:2,few:3,many:4,other:5};function i4(){var t={};return t4.forEach(function(e){e.lngs.forEach(function(n){t[n]={numbers:e.nr,plurals:n4[e.fc]}})}),t}var a4=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Sr(this,t),this.languageUtils=e,this.options=n,this.logger=ii.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=i4()}return _r(t,[{key:"addRule",value:function(n,r){this.rules[n]=r}},{key:"getRule",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(n,{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[n]||this.rules[this.languageUtils.getLanguagePartFromCode(n)]}},{key:"needsPlural",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.getRule(n,r);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(n,i).map(function(a){return"".concat(r).concat(a)})}},{key:"getSuffixes",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=this.getRule(n,i);return a?this.shouldUseIntlApi()?a.resolvedOptions().pluralCategories.sort(function(s,u){return Gw[s]-Gw[u]}).map(function(s){return"".concat(r.options.prepend).concat(s)}):a.numbers.map(function(s){return r.getSuffix(n,s,i)}):[]}},{key:"getSuffix",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=this.getRule(n,i);return a?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(a.select(r)):this.getSuffixRetroCompatible(a,r):(this.logger.warn("no plural rule found for: ".concat(n)),"")}},{key:"getSuffixRetroCompatible",value:function(n,r){var i=this,a=n.noAbs?n.plurals(r):n.plurals(Math.abs(r)),s=n.numbers[a];this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1&&(s===2?s="plural":s===1&&(s=""));var u=function(){return i.options.prepend&&s.toString()?i.options.prepend+s.toString():s.toString()};return this.options.compatibilityJSON==="v1"?s===1?"":typeof s=="number"?"_plural_".concat(s.toString()):u():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1?u():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}},{key:"shouldUseIntlApi",value:function(){return!r4.includes(this.options.compatibilityJSON)}}]),t}();function Uw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ar(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};Sr(this,t),this.logger=ii.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||function(n){return n},this.init(e)}return _r(t,[{key:"init",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};n.interpolation||(n.interpolation={escapeValue:!0});var r=n.interpolation;this.escape=r.escape!==void 0?r.escape:q5,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?es(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?es(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?es(r.nestingPrefix):r.nestingPrefixEscaped||es("$t("),this.nestingSuffix=r.nestingSuffix?es(r.nestingSuffix):r.nestingSuffixEscaped||es(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var n="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(n,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var i="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(i,"g")}},{key:"interpolate",value:function(n,r,i,a){var s=this,u,c,f,h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function p(x){return x.replace(/\$/g,"$$$$")}var g=function(_){if(_.indexOf(s.formatSeparator)<0){var S=Dw(r,h,_);return s.alwaysFormat?s.format(S,void 0,i,Ar(Ar(Ar({},a),r),{},{interpolationkey:_})):S}var C=_.split(s.formatSeparator),O=C.shift().trim(),I=C.join(s.formatSeparator).trim();return s.format(Dw(r,h,O),I,i,Ar(Ar(Ar({},a),r),{},{interpolationkey:O}))};this.resetRegExp();var y=a&&a.missingInterpolationHandler||this.options.missingInterpolationHandler,v=a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,w=[{regex:this.regexpUnescape,safeValue:function(_){return p(_)}},{regex:this.regexp,safeValue:function(_){return s.escapeValue?p(s.escape(_)):p(_)}}];return w.forEach(function(x){for(f=0;u=x.regex.exec(n);){var _=u[1].trim();if(c=g(_),c===void 0)if(typeof y=="function"){var S=y(n,u,a);c=typeof S=="string"?S:""}else if(a&&Object.prototype.hasOwnProperty.call(a,_))c="";else if(v){c=u[0];continue}else s.logger.warn("missed to pass in variable ".concat(_," for interpolating ").concat(n)),c="";else typeof c!="string"&&!s.useRawValueToEscape&&(c=Lw(c));var C=x.safeValue(c);if(n=n.replace(u[0],C),v?(x.regex.lastIndex+=c.length,x.regex.lastIndex-=u[0].length):x.regex.lastIndex=0,f++,f>=s.maxReplaces)break}}),n}},{key:"nest",value:function(n,r){var i=this,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s,u,c;function f(y,v){var w=this.nestingOptionsSeparator;if(y.indexOf(w)<0)return y;var x=y.split(new RegExp("".concat(w,"[ ]*{"))),_="{".concat(x[1]);y=x[0],_=this.interpolate(_,c);var S=_.match(/'/g),C=_.match(/"/g);(S&&S.length%2===0&&!C||C.length%2!==0)&&(_=_.replace(/'/g,'"'));try{c=JSON.parse(_),v&&(c=Ar(Ar({},v),c))}catch(O){return this.logger.warn("failed parsing options string in nesting for key ".concat(y),O),"".concat(y).concat(w).concat(_)}return delete c.defaultValue,y}for(;s=this.nestingRegexp.exec(n);){var h=[];c=Ar({},a),c=c.replace&&typeof c.replace!="string"?c.replace:c,c.applyPostProcessor=!1,delete c.defaultValue;var p=!1;if(s[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(s[1])){var g=s[1].split(this.formatSeparator).map(function(y){return y.trim()});s[1]=g.shift(),h=g,p=!0}if(u=r(f.call(this,s[1].trim(),c),c),u&&s[0]===n&&typeof u!="string")return u;typeof u!="string"&&(u=Lw(u)),u||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(n)),u=""),p&&(u=h.reduce(function(y,v){return i.format(y,v,a.lng,Ar(Ar({},a),{},{interpolationkey:s[1].trim()}))},u.trim())),n=n.replace(s[0],u),this.regexp.lastIndex=0}return n}}]),t}();function jw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ri(t){for(var e=1;e-1){var r=t.split("(");e=r[0].toLowerCase().trim();var i=r[1].substring(0,r[1].length-1);if(e==="currency"&&i.indexOf(":")<0)n.currency||(n.currency=i.trim());else if(e==="relativetime"&&i.indexOf(":")<0)n.range||(n.range=i.trim());else{var a=i.split(";");a.forEach(function(s){if(s){var u=s.split(":"),c=G5(u),f=c[0],h=c.slice(1),p=h.join(":").trim().replace(/^'+|'+$/g,"");n[f.trim()]||(n[f.trim()]=p),p==="false"&&(n[f.trim()]=!1),p==="true"&&(n[f.trim()]=!0),isNaN(p)||(n[f.trim()]=parseInt(p,10))}})}}return{formatName:e,formatOptions:n}}function ts(t){var e={};return function(r,i,a){var s=i+JSON.stringify(a),u=e[s];return u||(u=t(i,a),e[s]=u),u(r)}}var l4=function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Sr(this,t),this.logger=ii.create("formatter"),this.options=e,this.formats={number:ts(function(n,r){var i=new Intl.NumberFormat(n,Ri({},r));return function(a){return i.format(a)}}),currency:ts(function(n,r){var i=new Intl.NumberFormat(n,Ri(Ri({},r),{},{style:"currency"}));return function(a){return i.format(a)}}),datetime:ts(function(n,r){var i=new Intl.DateTimeFormat(n,Ri({},r));return function(a){return i.format(a)}}),relativetime:ts(function(n,r){var i=new Intl.RelativeTimeFormat(n,Ri({},r));return function(a){return i.format(a,r.range||"day")}}),list:ts(function(n,r){var i=new Intl.ListFormat(n,Ri({},r));return function(a){return i.format(a)}})},this.init(e)}return _r(t,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},i=r.interpolation;this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||","}},{key:"add",value:function(n,r){this.formats[n.toLowerCase().trim()]=r}},{key:"addCached",value:function(n,r){this.formats[n.toLowerCase().trim()]=ts(r)}},{key:"format",value:function(n,r,i){var a=this,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},u=r.split(this.formatSeparator),c=u.reduce(function(f,h){var p=s4(h),g=p.formatName,y=p.formatOptions;if(a.formats[g]){var v=f;try{var w=s&&s.formatParams&&s.formatParams[s.interpolationkey]||{},x=w.locale||w.lng||s.locale||s.lng||i;v=a.formats[g](f,x,Ri(Ri(Ri({},y),s),w))}catch(_){a.logger.warn(_)}return v}else a.logger.warn("there was no format function for ".concat(g));return f},n);return c}}]),t}();function Ww(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Hw(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function f4(t,e){t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)}var d4=function(t){Xh(n,t);var e=u4(n);function n(r,i,a){var s,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return Sr(this,n),s=e.call(this),Qh&&Aa.call(Ea(s)),s.backend=r,s.store=i,s.services=a,s.languageUtils=a.languageUtils,s.options=u,s.logger=ii.create("backendConnector"),s.waitingReads=[],s.maxParallelReads=u.maxParallelReads||10,s.readingCalls=0,s.maxRetries=u.maxRetries>=0?u.maxRetries:5,s.retryTimeout=u.retryTimeout>=1?u.retryTimeout:350,s.state={},s.queue=[],s.backend&&s.backend.init&&s.backend.init(a,u.backend,u),s}return _r(n,[{key:"queueLoad",value:function(i,a,s,u){var c=this,f={},h={},p={},g={};return i.forEach(function(y){var v=!0;a.forEach(function(w){var x="".concat(y,"|").concat(w);!s.reload&&c.store.hasResourceBundle(y,w)?c.state[x]=2:c.state[x]<0||(c.state[x]===1?h[x]===void 0&&(h[x]=!0):(c.state[x]=1,v=!1,h[x]===void 0&&(h[x]=!0),f[x]===void 0&&(f[x]=!0),g[w]===void 0&&(g[w]=!0)))}),v||(p[y]=!0)}),(Object.keys(f).length||Object.keys(h).length)&&this.queue.push({pending:h,pendingCount:Object.keys(h).length,loaded:{},errors:[],callback:u}),{toLoad:Object.keys(f),pending:Object.keys(h),toLoadLanguages:Object.keys(p),toLoadNamespaces:Object.keys(g)}}},{key:"loaded",value:function(i,a,s){var u=i.split("|"),c=u[0],f=u[1];a&&this.emit("failedLoading",c,f,a),s&&this.store.addResourceBundle(c,f,s),this.state[i]=a?-1:2;var h={};this.queue.forEach(function(p){H5(p.loaded,[c],f),f4(p,i),a&&p.errors.push(a),p.pendingCount===0&&!p.done&&(Object.keys(p.loaded).forEach(function(g){h[g]||(h[g]={});var y=p.loaded[g];y.length&&y.forEach(function(v){h[g][v]===void 0&&(h[g][v]=!0)})}),p.done=!0,p.errors.length?p.callback(p.errors):p.callback())}),this.emit("loaded",h),this.queue=this.queue.filter(function(p){return!p.done})}},{key:"read",value:function(i,a,s){var u=this,c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,f=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,h=arguments.length>5?arguments[5]:void 0;if(!i.length)return h(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:i,ns:a,fcName:s,tried:c,wait:f,callback:h});return}this.readingCalls++;var p=function(w,x){if(u.readingCalls--,u.waitingReads.length>0){var _=u.waitingReads.shift();u.read(_.lng,_.ns,_.fcName,_.tried,_.wait,_.callback)}if(w&&x&&c2&&arguments[2]!==void 0?arguments[2]:{},c=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),c&&c();typeof i=="string"&&(i=this.languageUtils.toResolveHierarchy(i)),typeof a=="string"&&(a=[a]);var f=this.queueLoad(i,a,u,c);if(!f.toLoad.length)return f.pending.length||c(),null;f.toLoad.forEach(function(h){s.loadOne(h)})}},{key:"load",value:function(i,a,s){this.prepareLoading(i,a,{},s)}},{key:"reload",value:function(i,a,s){this.prepareLoading(i,a,{reload:!0},s)}},{key:"loadOne",value:function(i){var a=this,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",u=i.split("|"),c=u[0],f=u[1];this.read(c,f,"read",void 0,void 0,function(h,p){h&&a.logger.warn("".concat(s,"loading namespace ").concat(f," for language ").concat(c," failed"),h),!h&&p&&a.logger.log("".concat(s,"loaded namespace ").concat(f," for language ").concat(c),p),a.loaded(i,h,p)})}},{key:"saveMissing",value:function(i,a,s,u,c){var f=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},h=arguments.length>6&&arguments[6]!==void 0?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(a)){this.logger.warn('did not save key "'.concat(s,'" as the namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if(this.backend&&this.backend.create){var p=Hw(Hw({},f),{},{isUpdate:c}),g=this.backend.create.bind(this.backend);if(g.length<6)try{var y;g.length===5?y=g(i,a,s,u,p):y=g(i,a,s,u),y&&typeof y.then=="function"?y.then(function(v){return h(null,v)}).catch(h):h(null,y)}catch(v){h(v)}else g(i,a,s,u,h,p)}!i||!i[0]||this.store.addResource(i[0],a,s,u)}}}]),n}(Aa);function Vw(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var n={};if(gr(e[1])==="object"&&(n=e[1]),typeof e[1]=="string"&&(n.defaultValue=e[1]),typeof e[2]=="string"&&(n.tDescription=e[2]),gr(e[2])==="object"||gr(e[3])==="object"){var r=e[3]||e[2];Object.keys(r).forEach(function(i){n[i]=r[i]})}return n},interpolation:{escapeValue:!0,format:function(e,n,r,i){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function qw(t){return typeof t.ns=="string"&&(t.ns=[t.ns]),typeof t.fallbackLng=="string"&&(t.fallbackLng=[t.fallbackLng]),typeof t.fallbackNS=="string"&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t}function Kw(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Qr(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Rf(){}function g4(t){var e=Object.getOwnPropertyNames(Object.getPrototypeOf(t));e.forEach(function(n){typeof t[n]=="function"&&(t[n]=t[n].bind(t))})}var ih=function(t){Xh(n,t);var e=h4(n);function n(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;if(Sr(this,n),r=e.call(this),Qh&&Aa.call(Ea(r)),r.options=qw(i),r.services={},r.logger=ii,r.modules={external:[]},g4(Ea(r)),a&&!r.isInitialized&&!i.isClone){if(!r.options.initImmediate)return r.init(i,a),Ju(r,Ea(r));setTimeout(function(){r.init(i,a)},0)}return r}return _r(n,[{key:"init",value:function(){var i=this,a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;typeof a=="function"&&(s=a,a={}),!a.defaultNS&&a.defaultNS!==!1&&a.ns&&(typeof a.ns=="string"?a.defaultNS=a.ns:a.ns.indexOf("translation")<0&&(a.defaultNS=a.ns[0]));var u=Vw();this.options=Qr(Qr(Qr({},u),this.options),qw(a)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=Qr(Qr({},u.interpolation),this.options.interpolation)),a.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=a.keySeparator),a.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=a.nsSeparator);function c(_){return _?typeof _=="function"?new _:_:null}if(!this.options.isClone){this.modules.logger?ii.init(c(this.modules.logger),this.options):ii.init(null,this.options);var f;this.modules.formatter?f=this.modules.formatter:typeof Intl<"u"&&(f=l4);var h=new zw(this.options);this.store=new J5(this.options.resources,this.options);var p=this.services;p.logger=ii,p.resourceStore=this.store,p.languageUtils=h,p.pluralResolver=new a4(h,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),f&&(!this.options.interpolation.format||this.options.interpolation.format===u.interpolation.format)&&(p.formatter=c(f),p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new o4(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new d4(c(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",function(_){for(var S=arguments.length,C=new Array(S>1?S-1:0),O=1;O1?S-1:0),O=1;O0&&g[0]!=="dev"&&(this.options.lng=g[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var y=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];y.forEach(function(_){i[_]=function(){var S;return(S=i.store)[_].apply(S,arguments)}});var v=["addResource","addResources","addResourceBundle","removeResourceBundle"];v.forEach(function(_){i[_]=function(){var S;return(S=i.store)[_].apply(S,arguments),i}});var w=Bl(),x=function(){var S=function(O,I){i.isInitialized&&!i.initializedStoreOnce&&i.logger.warn("init: i18next is already initialized. You should call init just once!"),i.isInitialized=!0,i.options.isClone||i.logger.log("initialized",i.options),i.emit("initialized",i.options),w.resolve(I),s(O,I)};if(i.languages&&i.options.compatibilityAPI!=="v1"&&!i.isInitialized)return S(null,i.t.bind(i));i.changeLanguage(i.options.lng,S)};return this.options.resources||!this.options.initImmediate?x():setTimeout(x,0),w}},{key:"loadResources",value:function(i){var a=this,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rf,u=s,c=typeof i=="string"?i:this.language;if(typeof i=="function"&&(u=i),!this.options.resources||this.options.partialBundledLanguages){if(c&&c.toLowerCase()==="cimode")return u();var f=[],h=function(y){if(y){var v=a.services.languageUtils.toResolveHierarchy(y);v.forEach(function(w){f.indexOf(w)<0&&f.push(w)})}};if(c)h(c);else{var p=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);p.forEach(function(g){return h(g)})}this.options.preload&&this.options.preload.forEach(function(g){return h(g)}),this.services.backendConnector.load(f,this.options.ns,function(g){!g&&!a.resolvedLanguage&&a.language&&a.setResolvedLanguage(a.language),u(g)})}else u(null)}},{key:"reloadResources",value:function(i,a,s){var u=Bl();return i||(i=this.languages),a||(a=this.options.ns),s||(s=Rf),this.services.backendConnector.reload(i,a,function(c){u.resolve(),s(c)}),u}},{key:"use",value:function(i){if(!i)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!i.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return i.type==="backend"&&(this.modules.backend=i),(i.type==="logger"||i.log&&i.warn&&i.error)&&(this.modules.logger=i),i.type==="languageDetector"&&(this.modules.languageDetector=i),i.type==="i18nFormat"&&(this.modules.i18nFormat=i),i.type==="postProcessor"&&fk.addPostProcessor(i),i.type==="formatter"&&(this.modules.formatter=i),i.type==="3rdParty"&&this.modules.external.push(i),this}},{key:"setResolvedLanguage",value:function(i){if(!(!i||!this.languages)&&!(["cimode","dev"].indexOf(i)>-1))for(var a=0;a-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}}},{key:"changeLanguage",value:function(i,a){var s=this;this.isLanguageChangingTo=i;var u=Bl();this.emit("languageChanging",i);var c=function(g){s.language=g,s.languages=s.services.languageUtils.toResolveHierarchy(g),s.resolvedLanguage=void 0,s.setResolvedLanguage(g)},f=function(g,y){y?(c(y),s.translator.changeLanguage(y),s.isLanguageChangingTo=void 0,s.emit("languageChanged",y),s.logger.log("languageChanged",y)):s.isLanguageChangingTo=void 0,u.resolve(function(){return s.t.apply(s,arguments)}),a&&a(g,function(){return s.t.apply(s,arguments)})},h=function(g){!i&&!g&&s.services.languageDetector&&(g=[]);var y=typeof g=="string"?g:s.services.languageUtils.getBestMatchFromCodes(g);y&&(s.language||c(y),s.translator.language||s.translator.changeLanguage(y),s.services.languageDetector&&s.services.languageDetector.cacheUserLanguage&&s.services.languageDetector.cacheUserLanguage(y)),s.loadResources(y,function(v){f(v,y)})};return!i&&this.services.languageDetector&&!this.services.languageDetector.async?h(this.services.languageDetector.detect()):!i&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(h):this.services.languageDetector.detect(h):h(i),u}},{key:"getFixedT",value:function(i,a,s){var u=this,c=function f(h,p){var g;if(gr(p)!=="object"){for(var y=arguments.length,v=new Array(y>2?y-2:0),w=2;w1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var u=this.resolvedLanguage||this.languages[0],c=this.options?this.options.fallbackLng:!1,f=this.languages[this.languages.length-1];if(u.toLowerCase()==="cimode")return!0;var h=function(y,v){var w=a.services.backendConnector.state["".concat(y,"|").concat(v)];return w===-1||w===2};if(s.precheck){var p=s.precheck(this,h);if(p!==void 0)return p}return!!(this.hasResourceBundle(u,i)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||h(u,i)&&(!c||h(f,i)))}},{key:"loadNamespaces",value:function(i,a){var s=this,u=Bl();return this.options.ns?(typeof i=="string"&&(i=[i]),i.forEach(function(c){s.options.ns.indexOf(c)<0&&s.options.ns.push(c)}),this.loadResources(function(c){u.resolve(),a&&a(c)}),u):(a&&a(),Promise.resolve())}},{key:"loadLanguages",value:function(i,a){var s=Bl();typeof i=="string"&&(i=[i]);var u=this.options.preload||[],c=i.filter(function(f){return u.indexOf(f)<0});return c.length?(this.options.preload=u.concat(c),this.loadResources(function(f){s.resolve(),a&&a(f)}),s):(a&&a(),Promise.resolve())}},{key:"dir",value:function(i){if(i||(i=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!i)return"rtl";var a=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=this.services&&this.services.languageUtils||new zw(Vw());return a.indexOf(s.getLanguagePartFromCode(i))>-1||i.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var i=this,a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rf,u=Qr(Qr(Qr({},this.options),a),{isClone:!0}),c=new n(u);(a.debug!==void 0||a.prefix!==void 0)&&(c.logger=c.logger.clone(a));var f=["store","services","language"];return f.forEach(function(h){c[h]=i[h]}),c.services=Qr({},this.services),c.services.utils={hasLoadedNamespace:c.hasLoadedNamespace.bind(c)},c.translator=new $w(c.services,c.options),c.translator.on("*",function(h){for(var p=arguments.length,g=new Array(p>1?p-1:0),y=1;y0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return new ih(t,e)});var Ae=ih.createInstance();Ae.createInstance=ih.createInstance;Ae.createInstance;Ae.dir;Ae.init;Ae.loadResources;Ae.reloadResources;Ae.use;Ae.changeLanguage;Ae.getFixedT;Ae.t;Ae.exists;Ae.setDefaultNamespace;Ae.hasLoadedNamespace;Ae.loadNamespaces;Ae.loadLanguages;var dk=[],m4=dk.forEach,v4=dk.slice;function y4(t){return m4.call(v4.call(arguments,1),function(e){if(e)for(var n in e)t[n]===void 0&&(t[n]=e[n])}),t}var Yw=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,S4=function(e,n,r){var i=r||{};i.path=i.path||"/";var a=encodeURIComponent(n),s="".concat(e,"=").concat(a);if(i.maxAge>0){var u=i.maxAge-0;if(Number.isNaN(u))throw new Error("maxAge should be a Number");s+="; Max-Age=".concat(Math.floor(u))}if(i.domain){if(!Yw.test(i.domain))throw new TypeError("option domain is invalid");s+="; Domain=".concat(i.domain)}if(i.path){if(!Yw.test(i.path))throw new TypeError("option path is invalid");s+="; Path=".concat(i.path)}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires=".concat(i.expires.toUTCString())}if(i.httpOnly&&(s+="; HttpOnly"),i.secure&&(s+="; Secure"),i.sameSite){var c=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(c){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s},Xw={create:function(e,n,r,i){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(a.expires=new Date,a.expires.setTime(a.expires.getTime()+r*60*1e3)),i&&(a.domain=i),document.cookie=S4(e,encodeURIComponent(n),a)},read:function(e){for(var n="".concat(e,"="),r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),a=i.split("&"),s=0;s0){var c=a[s].substring(0,u);c===e.lookupQuerystring&&(n=a[s].substring(u+1))}}}return n}},Fl=null,Qw=function(){if(Fl!==null)return Fl;try{Fl=window!=="undefined"&&window.localStorage!==null;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{Fl=!1}return Fl},b4={name:"localStorage",lookup:function(e){var n;if(e.lookupLocalStorage&&Qw()){var r=window.localStorage.getItem(e.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(e,n){n.lookupLocalStorage&&Qw()&&window.localStorage.setItem(n.lookupLocalStorage,e)}},$l=null,Jw=function(){if($l!==null)return $l;try{$l=window!=="undefined"&&window.sessionStorage!==null;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{$l=!1}return $l},C4={name:"sessionStorage",lookup:function(e){var n;if(e.lookupSessionStorage&&Jw()){var r=window.sessionStorage.getItem(e.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(e,n){n.lookupSessionStorage&&Jw()&&window.sessionStorage.setItem(n.lookupSessionStorage,e)}},x4={name:"navigator",lookup:function(e){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},k4={name:"htmlTag",lookup:function(e){var n,r=e.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},P4={name:"path",lookup:function(e){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof e.lookupFromPathIndex=="number"){if(typeof r[e.lookupFromPathIndex]!="string")return;n=r[e.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},E4={name:"subdomain",lookup:function(e){var n=typeof e.lookupFromSubdomainIndex=="number"?e.lookupFromSubdomainIndex+1:1,r=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}};function O4(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}}var hk=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Sr(this,t),this.type="languageDetector",this.detectors={},this.init(e,n)}return _r(t,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=y4(r,this.options||{},O4()),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(_4),this.addDetector(w4),this.addDetector(b4),this.addDetector(C4),this.addDetector(x4),this.addDetector(k4),this.addDetector(P4),this.addDetector(E4)}},{key:"addDetector",value:function(n){this.detectors[n.name]=n}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(a){if(r.detectors[a]){var s=r.detectors[a].lookup(r.options);s&&typeof s=="string"&&(s=[s]),s&&(i=i.concat(s))}}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(a){i.detectors[a]&&i.detectors[a].cacheUserLanguage(n,i.options)}))}}]),t}();hk.type="languageDetector";function Wv(t){return Wv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wv(t)}var pk=[],T4=pk.forEach,R4=pk.slice;function Hv(t){return T4.call(R4.call(arguments,1),function(e){if(e)for(var n in e)t[n]===void 0&&(t[n]=e[n])}),t}function gk(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":Wv(XMLHttpRequest))==="object"}function A4(t){return!!t&&typeof t.then=="function"}function I4(t){return A4(t)?t:Promise.resolve(t)}function L4(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var $u={},M4={get exports(){return $u},set exports(t){$u=t}},gu={},D4={get exports(){return gu},set exports(t){gu=t}},Zw;function N4(){return Zw||(Zw=1,function(t,e){var n=typeof self<"u"?self:yn,r=function(){function a(){this.fetch=!1,this.DOMException=n.DOMException}return a.prototype=n,new a}();(function(a){(function(s){var u={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function c(T){return T&&DataView.prototype.isPrototypeOf(T)}if(u.arrayBuffer)var f=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(T){return T&&f.indexOf(Object.prototype.toString.call(T))>-1};function p(T){if(typeof T!="string"&&(T=String(T)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(T))throw new TypeError("Invalid character in header field name");return T.toLowerCase()}function g(T){return typeof T!="string"&&(T=String(T)),T}function y(T){var $={next:function(){var V=T.shift();return{done:V===void 0,value:V}}};return u.iterable&&($[Symbol.iterator]=function(){return $}),$}function v(T){this.map={},T instanceof v?T.forEach(function($,V){this.append(V,$)},this):Array.isArray(T)?T.forEach(function($){this.append($[0],$[1])},this):T&&Object.getOwnPropertyNames(T).forEach(function($){this.append($,T[$])},this)}v.prototype.append=function(T,$){T=p(T),$=g($);var V=this.map[T];this.map[T]=V?V+", "+$:$},v.prototype.delete=function(T){delete this.map[p(T)]},v.prototype.get=function(T){return T=p(T),this.has(T)?this.map[T]:null},v.prototype.has=function(T){return this.map.hasOwnProperty(p(T))},v.prototype.set=function(T,$){this.map[p(T)]=g($)},v.prototype.forEach=function(T,$){for(var V in this.map)this.map.hasOwnProperty(V)&&T.call($,this.map[V],V,this)},v.prototype.keys=function(){var T=[];return this.forEach(function($,V){T.push(V)}),y(T)},v.prototype.values=function(){var T=[];return this.forEach(function($){T.push($)}),y(T)},v.prototype.entries=function(){var T=[];return this.forEach(function($,V){T.push([V,$])}),y(T)},u.iterable&&(v.prototype[Symbol.iterator]=v.prototype.entries);function w(T){if(T.bodyUsed)return Promise.reject(new TypeError("Already read"));T.bodyUsed=!0}function x(T){return new Promise(function($,V){T.onload=function(){$(T.result)},T.onerror=function(){V(T.error)}})}function _(T){var $=new FileReader,V=x($);return $.readAsArrayBuffer(T),V}function S(T){var $=new FileReader,V=x($);return $.readAsText(T),V}function C(T){for(var $=new Uint8Array(T),V=new Array($.length),ie=0;ie<$.length;ie++)V[ie]=String.fromCharCode($[ie]);return V.join("")}function O(T){if(T.slice)return T.slice(0);var $=new Uint8Array(T.byteLength);return $.set(new Uint8Array(T)),$.buffer}function I(){return this.bodyUsed=!1,this._initBody=function(T){this._bodyInit=T,T?typeof T=="string"?this._bodyText=T:u.blob&&Blob.prototype.isPrototypeOf(T)?this._bodyBlob=T:u.formData&&FormData.prototype.isPrototypeOf(T)?this._bodyFormData=T:u.searchParams&&URLSearchParams.prototype.isPrototypeOf(T)?this._bodyText=T.toString():u.arrayBuffer&&u.blob&&c(T)?(this._bodyArrayBuffer=O(T.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(T)||h(T))?this._bodyArrayBuffer=O(T):this._bodyText=T=Object.prototype.toString.call(T):this._bodyText="",this.headers.get("content-type")||(typeof T=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):u.searchParams&&URLSearchParams.prototype.isPrototypeOf(T)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},u.blob&&(this.blob=function(){var T=w(this);if(T)return T;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?w(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(_)}),this.text=function(){var T=w(this);if(T)return T;if(this._bodyBlob)return S(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(C(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},u.formData&&(this.formData=function(){return this.text().then(X)}),this.json=function(){return this.text().then(JSON.parse)},this}var L=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function D(T){var $=T.toUpperCase();return L.indexOf($)>-1?$:T}function U(T,$){$=$||{};var V=$.body;if(T instanceof U){if(T.bodyUsed)throw new TypeError("Already read");this.url=T.url,this.credentials=T.credentials,$.headers||(this.headers=new v(T.headers)),this.method=T.method,this.mode=T.mode,this.signal=T.signal,!V&&T._bodyInit!=null&&(V=T._bodyInit,T.bodyUsed=!0)}else this.url=String(T);if(this.credentials=$.credentials||this.credentials||"same-origin",($.headers||!this.headers)&&(this.headers=new v($.headers)),this.method=D($.method||this.method||"GET"),this.mode=$.mode||this.mode||null,this.signal=$.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&V)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(V)}U.prototype.clone=function(){return new U(this,{body:this._bodyInit})};function X(T){var $=new FormData;return T.trim().split("&").forEach(function(V){if(V){var ie=V.split("="),W=ie.shift().replace(/\+/g," "),Y=ie.join("=").replace(/\+/g," ");$.append(decodeURIComponent(W),decodeURIComponent(Y))}}),$}function K(T){var $=new v,V=T.replace(/\r?\n[\t ]+/g," ");return V.split(/\r?\n/).forEach(function(ie){var W=ie.split(":"),Y=W.shift().trim();if(Y){var Q=W.join(":").trim();$.append(Y,Q)}}),$}I.call(U.prototype);function te(T,$){$||($={}),this.type="default",this.status=$.status===void 0?200:$.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in $?$.statusText:"OK",this.headers=new v($.headers),this.url=$.url||"",this._initBody(T)}I.call(te.prototype),te.prototype.clone=function(){return new te(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new v(this.headers),url:this.url})},te.error=function(){var T=new te(null,{status:0,statusText:""});return T.type="error",T};var ce=[301,302,303,307,308];te.redirect=function(T,$){if(ce.indexOf($)===-1)throw new RangeError("Invalid status code");return new te(null,{status:$,headers:{location:T}})},s.DOMException=a.DOMException;try{new s.DOMException}catch{s.DOMException=function($,V){this.message=$,this.name=V;var ie=Error($);this.stack=ie.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function j(T,$){return new Promise(function(V,ie){var W=new U(T,$);if(W.signal&&W.signal.aborted)return ie(new s.DOMException("Aborted","AbortError"));var Y=new XMLHttpRequest;function Q(){Y.abort()}Y.onload=function(){var oe={status:Y.status,statusText:Y.statusText,headers:K(Y.getAllResponseHeaders()||"")};oe.url="responseURL"in Y?Y.responseURL:oe.headers.get("X-Request-URL");var ve="response"in Y?Y.response:Y.responseText;V(new te(ve,oe))},Y.onerror=function(){ie(new TypeError("Network request failed"))},Y.ontimeout=function(){ie(new TypeError("Network request failed"))},Y.onabort=function(){ie(new s.DOMException("Aborted","AbortError"))},Y.open(W.method,W.url,!0),W.credentials==="include"?Y.withCredentials=!0:W.credentials==="omit"&&(Y.withCredentials=!1),"responseType"in Y&&u.blob&&(Y.responseType="blob"),W.headers.forEach(function(oe,ve){Y.setRequestHeader(ve,oe)}),W.signal&&(W.signal.addEventListener("abort",Q),Y.onreadystatechange=function(){Y.readyState===4&&W.signal.removeEventListener("abort",Q)}),Y.send(typeof W._bodyInit>"u"?null:W._bodyInit)})}return j.polyfill=!0,a.fetch||(a.fetch=j,a.Headers=v,a.Request=U,a.Response=te),s.Headers=v,s.Request=U,s.Response=te,s.fetch=j,Object.defineProperty(s,"__esModule",{value:!0}),s})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e}(D4,gu)),gu}(function(t,e){var n;if(typeof fetch=="function"&&(typeof yn<"u"&&yn.fetch?n=yn.fetch:typeof window<"u"&&window.fetch?n=window.fetch:n=fetch),typeof L4<"u"&&(typeof window>"u"||typeof window.document>"u")){var r=n||N4();r.default&&(r=r.default),e.default=r,t.exports=e.default}})(M4,$u);const mk=$u,eb=h2({__proto__:null,default:mk},[$u]);function ah(t){return ah=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ah(t)}var Fi;typeof fetch=="function"&&(typeof global<"u"&&global.fetch?Fi=global.fetch:typeof window<"u"&&window.fetch?Fi=window.fetch:Fi=fetch);var zu;gk()&&(typeof global<"u"&&global.XMLHttpRequest?zu=global.XMLHttpRequest:typeof window<"u"&&window.XMLHttpRequest&&(zu=window.XMLHttpRequest));var oh;typeof ActiveXObject=="function"&&(typeof global<"u"&&global.ActiveXObject?oh=global.ActiveXObject:typeof window<"u"&&window.ActiveXObject&&(oh=window.ActiveXObject));!Fi&&eb&&!zu&&!oh&&(Fi=mk||eb);typeof Fi!="function"&&(Fi=void 0);var Vv=function(e,n){if(n&&ah(n)==="object"){var r="";for(var i in n)r+="&"+encodeURIComponent(i)+"="+encodeURIComponent(n[i]);if(!r)return e;e=e+(e.indexOf("?")!==-1?"&":"?")+r.slice(1)}return e},tb=function(e,n,r){Fi(e,n).then(function(i){if(!i.ok)return r(i.statusText||"Error",{status:i.status});i.text().then(function(a){r(null,{status:i.status,data:a})}).catch(r)}).catch(r)},nb=!1,B4=function(e,n,r,i){e.queryStringParams&&(n=Vv(n,e.queryStringParams));var a=Hv({},typeof e.customHeaders=="function"?e.customHeaders():e.customHeaders);r&&(a["Content-Type"]="application/json");var s=typeof e.requestOptions=="function"?e.requestOptions(r):e.requestOptions,u=Hv({method:r?"POST":"GET",body:r?e.stringify(r):void 0,headers:a},nb?{}:s);try{tb(n,u,i)}catch(c){if(!s||Object.keys(s).length===0||!c.message||c.message.indexOf("not implemented")<0)return i(c);try{Object.keys(s).forEach(function(f){delete u[f]}),tb(n,u,i),nb=!0}catch(f){i(f)}}},F4=function(e,n,r,i){r&&ah(r)==="object"&&(r=Vv("",r).slice(1)),e.queryStringParams&&(n=Vv(n,e.queryStringParams));try{var a;zu?a=new zu:a=new oh("MSXML2.XMLHTTP.3.0"),a.open(r?"POST":"GET",n,1),e.crossDomain||a.setRequestHeader("X-Requested-With","XMLHttpRequest"),a.withCredentials=!!e.withCredentials,r&&a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.overrideMimeType&&a.overrideMimeType("application/json");var s=e.customHeaders;if(s=typeof s=="function"?s():s,s)for(var u in s)a.setRequestHeader(u,s[u]);a.onreadystatechange=function(){a.readyState>3&&i(a.status>=400?a.statusText:null,{status:a.status,data:a.responseText})},a.send(r)}catch(c){console&&console.log(c)}},$4=function(e,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i=i||function(){},Fi&&n.indexOf("file:")!==0)return B4(e,n,r,i);if(gk()||typeof ActiveXObject=="function")return F4(e,n,r,i);i(new Error("No fetch and no xhr implementation found!"))};function Gu(t){return Gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Gu(t)}function z4(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rb(t,e){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};z4(this,t),this.services=e,this.options=n,this.allOptions=r,this.type="backend",this.init(e,n,r)}return G4(t,[{key:"init",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=Hv(i,this.options||{},W4()),this.allOptions=a,this.services&&this.options.reloadInterval&&setInterval(function(){return r.reload()},this.options.reloadInterval)}},{key:"readMulti",value:function(n,r,i){this._readAny(n,n,r,r,i)}},{key:"read",value:function(n,r,i){this._readAny([n],n,[r],r,i)}},{key:"_readAny",value:function(n,r,i,a,s){var u=this,c=this.options.loadPath;typeof this.options.loadPath=="function"&&(c=this.options.loadPath(n,i)),c=I4(c),c.then(function(f){if(!f)return s(null,{});var h=u.services.interpolator.interpolate(f,{lng:n.join("+"),ns:i.join("+")});u.loadUrl(h,s,r,a)})}},{key:"loadUrl",value:function(n,r,i,a){var s=this;this.options.request(this.options,n,void 0,function(u,c){if(c&&(c.status>=500&&c.status<600||!c.status))return r("failed loading "+n+"; status code: "+c.status,!0);if(c&&c.status>=400&&c.status<500)return r("failed loading "+n+"; status code: "+c.status,!1);if(!c&&u&&u.message&&u.message.indexOf("Failed to fetch")>-1)return r("failed loading "+n+": "+u.message,!0);if(u)return r(u,!1);var f,h;try{typeof c.data=="string"?f=s.options.parse(c.data,i,a):f=c.data}catch{h="failed parsing "+n+" to json"}if(h)return r(h,!1);r(null,f)})}},{key:"create",value:function(n,r,i,a,s){var u=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var c=this.options.parsePayload(r,i,a),f=0,h=[],p=[];n.forEach(function(g){var y=u.options.addPath;typeof u.options.addPath=="function"&&(y=u.options.addPath(g,r));var v=u.services.interpolator.interpolate(y,{lng:g,ns:r});u.options.request(u.options,v,c,function(w,x){f+=1,h.push(w),p.push(x),f===n.length&&typeof s=="function"&&s(h,p)})})}}},{key:"reload",value:function(){var n=this,r=this.services,i=r.backendConnector,a=r.languageUtils,s=r.logger,u=i.language;if(!(u&&u.toLowerCase()==="cimode")){var c=[],f=function(p){var g=a.toResolveHierarchy(p);g.forEach(function(y){c.indexOf(y)<0&&c.push(y)})};f(u),this.allOptions.preload&&this.allOptions.preload.forEach(function(h){return f(h)}),c.forEach(function(h){n.allOptions.ns.forEach(function(p){i.read(h,p,"read",null,null,function(g,y){g&&s.warn("loading namespace ".concat(p," for language ").concat(h," failed"),g),!g&&y&&s.log("loaded namespace ".concat(p," for language ").concat(h),y),i.loaded("".concat(h,"|").concat(p),g,y)})})})}}}]),t}();yk.type="backend";function H4(){if(console&&console.warn){for(var t,e=arguments.length,n=new Array(e),r=0;r2&&arguments[2]!==void 0?arguments[2]:{},r=e.languages[0],i=e.options?e.options.fallbackLng:!1,a=e.languages[e.languages.length-1];if(r.toLowerCase()==="cimode")return!0;var s=function(c,f){var h=e.services.backendConnector.state["".concat(c,"|").concat(f)];return h===-1||h===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!s(e.isLanguageChangingTo,t)?!1:!!(e.hasResourceBundle(r,t)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||s(r,t)&&(!i||s(a,t)))}function q4(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!e.languages||!e.languages.length)return qv("i18n.languages were undefined or empty",e.languages),!0;var r=e.options.ignoreJSONStructure!==void 0;return r?e.hasLoadedNamespace(t,{precheck:function(a,s){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&a.services.backendConnector.backend&&a.isLanguageChangingTo&&!s(a.isLanguageChangingTo,t))return!1}}):V4(t,e,n)}var K4=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Y4={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},X4=function(e){return Y4[e]},Q4=function(e){return e.replace(K4,X4)};function ob(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function sb(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};Kv=sb(sb({},Kv),t)}function Z4(){return Kv}var Sk;function eB(t){Sk=t}function tB(){return Sk}var nB={type:"3rdParty",init:function(e){J4(e.options.react),eB(e)}},rB=be.createContext(),iB=function(){function t(){Sr(this,t),this.usedNamespaces={}}return _r(t,[{key:"addUsedNamespaces",value:function(n){var r=this;n.forEach(function(i){r.usedNamespaces[i]||(r.usedNamespaces[i]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),t}();function aB(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,s,u=[],c=!0,f=!1;try{if(a=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(h){f=!0,i=h}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(f)throw i}}return u}}function oB(t,e){return ok(t)||aB(t,e)||sk(t,e)||lk()}function lb(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function km(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{},n=e.i18n,r=be.useContext(rB)||{},i=r.i18n,a=r.defaultNS,s=n||i||tB();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new iB),!s){qv("You will need to pass in an i18next instance by using initReactI18next");var u=function(X,K){return typeof K=="string"?K:K&&gr(K)==="object"&&typeof K.defaultValue=="string"?K.defaultValue:Array.isArray(X)?X[X.length-1]:X},c=[u,{},!1];return c.t=u,c.i18n={},c.ready=!1,c}s.options.react&&s.options.react.wait!==void 0&&qv("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var f=km(km(km({},Z4()),s.options.react),e),h=f.useSuspense,p=f.keyPrefix,g=t||a||s.options&&s.options.defaultNS;g=typeof g=="string"?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var y=(s.isInitialized||s.initializedStoreOnce)&&g.every(function(U){return q4(U,s,f)});function v(){return s.getFixedT(null,f.nsMode==="fallback"?g:g[0],p)}var w=be.useState(v),x=oB(w,2),_=x[0],S=x[1],C=g.join(),O=sB(C),I=be.useRef(!0);be.useEffect(function(){var U=f.bindI18n,X=f.bindI18nStore;I.current=!0,!y&&!h&&ab(s,g,function(){I.current&&S(v)}),y&&O&&O!==C&&I.current&&S(v);function K(){I.current&&S(v)}return U&&s&&s.on(U,K),X&&s&&s.store.on(X,K),function(){I.current=!1,U&&s&&U.split(" ").forEach(function(te){return s.off(te,K)}),X&&s&&X.split(" ").forEach(function(te){return s.store.off(te,K)})}},[s,C]);var L=be.useRef(!0);be.useEffect(function(){I.current&&!L.current&&S(v),L.current=!1},[s,p]);var D=[_,s,y];if(D.t=_,D.i18n=s,D.ready=y,y||!y&&!h)return D;throw new Promise(function(U){ab(s,g,function(){U()})})}Ae.use(yk).use(hk).use(nB).init({fallbackLng:"en",debug:!1,backend:{loadPath:"/locales/{{lng}}.json"},interpolation:{escapeValue:!1},returnNull:!1});const uB={isConnected:!1,isProcessing:!1,log:[],shouldShowLogViewer:!1,shouldDisplayInProgressType:"latents",shouldDisplayGuides:!0,isGFPGANAvailable:!0,isESRGANAvailable:!0,socketId:"",shouldConfirmOnDelete:!0,openAccordions:[0],currentStep:0,totalSteps:0,currentIteration:0,totalIterations:0,currentStatus:Ae.isInitialized?Ae.t("common.statusDisconnected"):"Disconnected",currentStatusHasSteps:!1,model:"",model_id:"",model_hash:"",app_id:"",app_version:"",model_list:{},infill_methods:[],hasError:!1,wasErrorSeen:!0,isCancelable:!0,saveIntermediatesInterval:5,enableImageDebugging:!1,toastQueue:[],searchFolder:null,foundModels:null,openModel:null,cancelOptions:{cancelType:"immediate",cancelAfter:null}},_k=vo({name:"system",initialState:uB,reducers:{setShouldDisplayInProgressType:(t,e)=>{t.shouldDisplayInProgressType=e.payload},setIsProcessing:(t,e)=>{t.isProcessing=e.payload},setCurrentStatus:(t,e)=>{t.currentStatus=e.payload},setSystemStatus:(t,e)=>({...t,...e.payload}),errorOccurred:t=>{t.hasError=!0,t.isProcessing=!1,t.isCancelable=!0,t.currentStep=0,t.totalSteps=0,t.currentIteration=0,t.totalIterations=0,t.currentStatusHasSteps=!1,t.currentStatus=Ae.t("common.statusError"),t.wasErrorSeen=!1},errorSeen:t=>{t.hasError=!1,t.wasErrorSeen=!0,t.currentStatus=t.isConnected?Ae.t("common.statusConnected"):Ae.t("common.statusDisconnected")},addLogEntry:(t,e)=>{const{timestamp:n,message:r,level:i}=e.payload,s={timestamp:n,message:r,level:i||"info"};t.log.push(s)},setShouldShowLogViewer:(t,e)=>{t.shouldShowLogViewer=e.payload},setIsConnected:(t,e)=>{t.isConnected=e.payload,t.isProcessing=!1,t.isCancelable=!0,t.currentStep=0,t.totalSteps=0,t.currentIteration=0,t.totalIterations=0,t.currentStatusHasSteps=!1,t.hasError=!1},setSocketId:(t,e)=>{t.socketId=e.payload},setShouldConfirmOnDelete:(t,e)=>{t.shouldConfirmOnDelete=e.payload},setOpenAccordions:(t,e)=>{t.openAccordions=e.payload},setSystemConfig:(t,e)=>({...t,...e.payload}),setShouldDisplayGuides:(t,e)=>{t.shouldDisplayGuides=e.payload},processingCanceled:t=>{t.isProcessing=!1,t.isCancelable=!0,t.currentStep=0,t.totalSteps=0,t.currentIteration=0,t.totalIterations=0,t.currentStatusHasSteps=!1,t.currentStatus=Ae.t("common.statusProcessingCanceled")},generationRequested:t=>{t.isProcessing=!0,t.isCancelable=!0,t.currentStep=0,t.totalSteps=0,t.currentIteration=0,t.totalIterations=0,t.currentStatusHasSteps=!1,t.currentStatus=Ae.t("common.statusPreparing")},setModelList:(t,e)=>{t.model_list=e.payload},setIsCancelable:(t,e)=>{t.isCancelable=e.payload},modelChangeRequested:t=>{t.currentStatus=Ae.t("common.statusLoadingModel"),t.isCancelable=!1,t.isProcessing=!0,t.currentStatusHasSteps=!1},modelConvertRequested:t=>{t.currentStatus=Ae.t("common.statusConvertingModel"),t.isCancelable=!1,t.isProcessing=!0,t.currentStatusHasSteps=!1},modelMergingRequested:t=>{t.currentStatus=Ae.t("common.statusMergingModels"),t.isCancelable=!1,t.isProcessing=!0,t.currentStatusHasSteps=!1},setSaveIntermediatesInterval:(t,e)=>{t.saveIntermediatesInterval=e.payload},setEnableImageDebugging:(t,e)=>{t.enableImageDebugging=e.payload},addToast:(t,e)=>{t.toastQueue.push(e.payload)},clearToastQueue:t=>{t.toastQueue=[]},setProcessingIndeterminateTask:(t,e)=>{t.isProcessing=!0,t.currentStatus=e.payload,t.currentStatusHasSteps=!1},setSearchFolder:(t,e)=>{t.searchFolder=e.payload},setFoundModels:(t,e)=>{t.foundModels=e.payload},setOpenModel:(t,e)=>{t.openModel=e.payload},setCancelType:(t,e)=>{t.cancelOptions.cancelType=e.payload},setCancelAfter:(t,e)=>{t.cancelOptions.cancelAfter=e.payload}}}),{setShouldDisplayInProgressType:eW,setIsProcessing:ei,addLogEntry:Gt,setShouldShowLogViewer:tW,setIsConnected:ub,setSocketId:nW,setShouldConfirmOnDelete:rW,setOpenAccordions:iW,setSystemStatus:cB,setCurrentStatus:ns,setSystemConfig:fB,setShouldDisplayGuides:aW,processingCanceled:dB,errorOccurred:cb,errorSeen:oW,setModelList:rs,setIsCancelable:Af,modelChangeRequested:hB,modelConvertRequested:pB,modelMergingRequested:gB,setSaveIntermediatesInterval:sW,setEnableImageDebugging:lW,generationRequested:mB,addToast:zl,clearToastQueue:uW,setProcessingIndeterminateTask:cW,setSearchFolder:vB,setFoundModels:yB,setOpenModel:fW,setCancelType:dW,setCancelAfter:hW}=_k.actions,SB=_k.reducer,wk=["txt2img","img2img","unifiedCanvas","nodes","postprocessing","training"],_B={activeTab:0,currentTheme:"dark",parametersPanelScrollPosition:0,shouldPinParametersPanel:!0,shouldShowParametersPanel:!0,shouldShowImageDetails:!1,shouldUseCanvasBetaLayout:!1,shouldShowExistingModelsInSearch:!1,shouldUseSliders:!1,addNewModelUIOption:null,shouldPinGallery:!0,shouldShowGallery:!0,shouldHidePreview:!1},wB=_B,bk=vo({name:"ui",initialState:wB,reducers:{setActiveTab:(t,e)=>{typeof e.payload=="number"?t.activeTab=e.payload:t.activeTab=wk.indexOf(e.payload)},setCurrentTheme:(t,e)=>{t.currentTheme=e.payload},setParametersPanelScrollPosition:(t,e)=>{t.parametersPanelScrollPosition=e.payload},setShouldPinParametersPanel:(t,e)=>{t.shouldPinParametersPanel=e.payload,t.shouldShowParametersPanel=!0},setShouldShowParametersPanel:(t,e)=>{t.shouldShowParametersPanel=e.payload},setShouldShowImageDetails:(t,e)=>{t.shouldShowImageDetails=e.payload},setShouldUseCanvasBetaLayout:(t,e)=>{t.shouldUseCanvasBetaLayout=e.payload},setShouldHidePreview:(t,e)=>{t.shouldHidePreview=e.payload},setShouldShowExistingModelsInSearch:(t,e)=>{t.shouldShowExistingModelsInSearch=e.payload},setShouldUseSliders:(t,e)=>{t.shouldUseSliders=e.payload},setAddNewModelUIOption:(t,e)=>{t.addNewModelUIOption=e.payload},setShouldPinGallery:(t,e)=>{t.shouldPinGallery=e.payload},setShouldShowGallery:(t,e)=>{t.shouldShowGallery=e.payload},togglePinGalleryPanel:t=>{t.shouldPinGallery=!t.shouldPinGallery},togglePinParametersPanel:t=>{t.shouldPinParametersPanel=!t.shouldPinParametersPanel},toggleParametersPanel:t=>{t.shouldShowParametersPanel=!t.shouldShowParametersPanel},toggleGalleryPanel:t=>{t.shouldShowGallery=!t.shouldShowGallery},togglePanels:t=>{t.shouldShowGallery||t.shouldShowParametersPanel?(t.shouldShowGallery=!1,t.shouldShowParametersPanel=!1):(t.shouldShowGallery=!0,t.shouldShowParametersPanel=!0)}}}),{setActiveTab:pW,setCurrentTheme:gW,setParametersPanelScrollPosition:mW,setShouldPinParametersPanel:vW,setShouldShowParametersPanel:yW,setShouldShowImageDetails:SW,setShouldUseCanvasBetaLayout:_W,setShouldShowExistingModelsInSearch:wW,setShouldUseSliders:bW,setAddNewModelUIOption:CW,setShouldHidePreview:xW,setShouldPinGallery:kW,setShouldShowGallery:PW,togglePanels:EW,togglePinGalleryPanel:OW,togglePinParametersPanel:TW,toggleParametersPanel:RW,toggleGalleryPanel:AW}=bk.actions,bB=bk.reducer,di=Object.create(null);di.open="0";di.close="1";di.ping="2";di.pong="3";di.message="4";di.upgrade="5";di.noop="6";const hd=Object.create(null);Object.keys(di).forEach(t=>{hd[di[t]]=t});const CB={type:"error",data:"parser error"},xB=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",kB=typeof ArrayBuffer=="function",PB=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,Ck=({type:t,data:e},n,r)=>xB&&e instanceof Blob?n?r(e):fb(e,r):kB&&(e instanceof ArrayBuffer||PB(e))?n?r(e):fb(new Blob([e]),r):r(di[t]+(e||"")),fb=(t,e)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];e("b"+(r||""))},n.readAsDataURL(t)},db="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",eu=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let t=0;t{let e=t.length*.75,n=t.length,r,i=0,a,s,u,c;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);const f=new ArrayBuffer(e),h=new Uint8Array(f);for(r=0;r>4,h[i++]=(s&15)<<4|u>>2,h[i++]=(u&3)<<6|c&63;return f},OB=typeof ArrayBuffer=="function",xk=(t,e)=>{if(typeof t!="string")return{type:"message",data:kk(t,e)};const n=t.charAt(0);return n==="b"?{type:"message",data:TB(t.substring(1),e)}:hd[n]?t.length>1?{type:hd[n],data:t.substring(1)}:{type:hd[n]}:CB},TB=(t,e)=>{if(OB){const n=EB(t);return kk(n,e)}else return{base64:!0,data:t}},kk=(t,e)=>{switch(e){case"blob":return t instanceof ArrayBuffer?new Blob([t]):t;case"arraybuffer":default:return t}},Pk=String.fromCharCode(30),RB=(t,e)=>{const n=t.length,r=new Array(n);let i=0;t.forEach((a,s)=>{Ck(a,!1,u=>{r[s]=u,++i===n&&e(r.join(Pk))})})},AB=(t,e)=>{const n=t.split(Pk),r=[];for(let i=0;itypeof self<"u"?self:typeof window<"u"?window:Function("return this")())();function Ok(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}const LB=fr.setTimeout,MB=fr.clearTimeout;function Jh(t,e){e.useNativeTimers?(t.setTimeoutFn=LB.bind(fr),t.clearTimeoutFn=MB.bind(fr)):(t.setTimeoutFn=fr.setTimeout.bind(fr),t.clearTimeoutFn=fr.clearTimeout.bind(fr))}const DB=1.33;function NB(t){return typeof t=="string"?BB(t):Math.ceil((t.byteLength||t.size)*DB)}function BB(t){let e=0,n=0;for(let r=0,i=t.length;r=57344?n+=3:(r++,n+=4);return n}class FB extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}}class Tk extends Rt{constructor(e){super(),this.writable=!1,Jh(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,n,r){return super.emitReserved("error",new FB(e,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const n=xk(e,this.socket.binaryType);this.onPacket(n)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}}const Rk="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Yv=64,$B={};let hb=0,If=0,pb;function gb(t){let e="";do e=Rk[t%Yv]+e,t=Math.floor(t/Yv);while(t>0);return e}function Ak(){const t=gb(+new Date);return t!==pb?(hb=0,pb=t):t+"."+gb(hb++)}for(;If{this.readyState="paused",e()};if(this.polling||!this.writable){let r=0;this.polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};AB(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,RB(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let e=this.query||{};const n=this.opts.secure?"https":"http";let r="";this.opts.timestampRequests!==!1&&(e[this.opts.timestampParam]=Ak()),!this.supportsBinary&&!e.sid&&(e.b64=1),this.opts.port&&(n==="https"&&Number(this.opts.port)!==443||n==="http"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port);const i=Ik(e),a=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(a?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}request(e={}){return Object.assign(e,{xd:this.xd,xs:this.xs},this.opts),new ui(this.uri(),e)}doWrite(e,n){const r=this.request({method:"POST",data:e});r.on("success",n),r.on("error",(i,a)=>{this.onError("xhr post error",i,a)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=e}}class ui extends Rt{constructor(e,n){super(),Jh(this,n),this.opts=n,this.method=n.method||"GET",this.uri=e,this.async=n.async!==!1,this.data=n.data!==void 0?n.data:null,this.create()}create(){const e=Ok(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd,e.xscheme=!!this.opts.xs;const n=this.xhr=new Mk(e);try{n.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let r in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.opts.extraHeaders[r])}}catch{}if(this.method==="POST")try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{n.setRequestHeader("Accept","*/*")}catch{}"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout),n.onreadystatechange=()=>{n.readyState===4&&(n.status===200||n.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof n.status=="number"?n.status:0)},0))},n.send(this.data)}catch(r){this.setTimeoutFn(()=>{this.onError(r)},0);return}typeof document<"u"&&(this.index=ui.requestsCount++,ui.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=UB,e)try{this.xhr.abort()}catch{}typeof document<"u"&&delete ui.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}ui.requestsCount=0;ui.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",mb);else if(typeof addEventListener=="function"){const t="onpagehide"in fr?"pagehide":"unload";addEventListener(t,mb,!1)}}function mb(){for(let t in ui.requests)ui.requests.hasOwnProperty(t)&&ui.requests[t].abort()}const Dk=(()=>typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,n)=>n(e,0))(),Lf=fr.WebSocket||fr.MozWebSocket,vb=!0,HB="arraybuffer",yb=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class VB extends Tk{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),n=this.opts.protocols,r=yb?{}:Ok(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=vb&&!yb?n?new Lf(e,n):new Lf(e):new Lf(e,n,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType||HB,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n{const s={};try{vb&&this.ws.send(a)}catch{}i&&Dk(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){let e=this.query||{};const n=this.opts.secure?"wss":"ws";let r="";this.opts.port&&(n==="wss"&&Number(this.opts.port)!==443||n==="ws"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port),this.opts.timestampRequests&&(e[this.opts.timestampParam]=Ak()),this.supportsBinary||(e.b64=1);const i=Ik(e),a=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(a?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}check(){return!!Lf}}const qB={websocket:VB,polling:WB},KB=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,YB=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Xv(t){const e=t,n=t.indexOf("["),r=t.indexOf("]");n!=-1&&r!=-1&&(t=t.substring(0,n)+t.substring(n,r).replace(/:/g,";")+t.substring(r,t.length));let i=KB.exec(t||""),a={},s=14;for(;s--;)a[YB[s]]=i[s]||"";return n!=-1&&r!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=XB(a,a.path),a.queryKey=QB(a,a.query),a}function XB(t,e){const n=/\/{2,9}/g,r=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&r.splice(0,1),e.slice(-1)=="/"&&r.splice(r.length-1,1),r}function QB(t,e){const n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}let Nk=class os extends Rt{constructor(e,n={}){super(),this.writeBuffer=[],e&&typeof e=="object"&&(n=e,e=null),e?(e=Xv(e),n.hostname=e.host,n.secure=e.protocol==="https"||e.protocol==="wss",n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=Xv(n.host).host),Jh(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=n.transports||["polling","websocket"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=zB(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const n=Object.assign({},this.opts.query);n.EIO=Ek,n.transport=e,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts.transportOptions[e],this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new qB[e](r)}open(){let e;if(this.opts.rememberUpgrade&&os.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)e="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else e=this.transports[0];this.readyState="opening";try{e=this.createTransport(e)}catch{this.transports.shift(),this.open();return}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",n=>this.onClose("transport close",n))}probe(e){let n=this.createTransport(e),r=!1;os.priorWebsocketSuccess=!1;const i=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",p=>{if(!r)if(p.type==="pong"&&p.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;os.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(h(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const g=new Error("probe error");g.transport=n.name,this.emitReserved("upgradeError",g)}}))};function a(){r||(r=!0,h(),n.close(),n=null)}const s=p=>{const g=new Error("probe error: "+p);g.transport=n.name,a(),this.emitReserved("upgradeError",g)};function u(){s("transport closed")}function c(){s("socket closed")}function f(p){n&&p.name!==n.name&&a()}const h=()=>{n.removeListener("open",i),n.removeListener("error",s),n.removeListener("close",u),this.off("close",c),this.off("upgrading",f)};n.once("open",i),n.once("error",s),n.once("close",u),this.once("close",c),this.once("upgrading",f),n.open()}onOpen(){if(this.readyState="open",os.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let e=0;const n=this.upgrades.length;for(;e{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this.maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}write(e,n,r){return this.sendPacket("message",e,n,r),this}send(e,n,r){return this.sendPacket("message",e,n,r),this}sendPacket(e,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const a={type:e,data:n,options:r};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}onError(e){os.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,n){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const n=[];let r=0;const i=e.length;for(;rtypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,Bk=Object.prototype.toString,tF=typeof Blob=="function"||typeof Blob<"u"&&Bk.call(Blob)==="[object BlobConstructor]",nF=typeof File=="function"||typeof File<"u"&&Bk.call(File)==="[object FileConstructor]";function T0(t){return ZB&&(t instanceof ArrayBuffer||eF(t))||tF&&t instanceof Blob||nF&&t instanceof File}function pd(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n=0&&t.num0;case Be.ACK:case Be.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class sF{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const n=iF(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const lF=Object.freeze(Object.defineProperty({__proto__:null,Decoder:R0,Encoder:oF,get PacketType(){return Be},protocol:aF},Symbol.toStringTag,{value:"Module"}));function Dr(t,e,n){return t.on(e,n),function(){t.off(e,n)}}const uF=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Fk extends Rt{constructor(e,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[Dr(e,"open",this.onopen.bind(this)),Dr(e,"packet",this.onpacket.bind(this)),Dr(e,"error",this.onerror.bind(this)),Dr(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...n){if(uF.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const r={type:Be.EVENT,data:n};if(r.options={},r.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const s=this.ids++,u=n.pop();this._registerAckCallback(s,u),r.id=s}const i=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!i||!this.connected)||(this.connected?(this.notifyOutgoingListeners(r),this.packet(r)):this.sendBuffer.push(r)),this.flags={},this}_registerAckCallback(e,n){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[e]=n;return}const a=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let s=0;s{this.io.clearTimeoutFn(a),n.apply(this,[null,...s])}}emitWithAck(e,...n){const r=this.flags.timeout!==void 0||this._opts.ackTimeout!==void 0;return new Promise((i,a)=>{n.push((s,u)=>r?s?a(s):i(u):i(s)),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...a)=>r!==this._queue[0]?void 0:(i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...a)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:Be.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case Be.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Be.EVENT:case Be.BINARY_EVENT:this.onevent(e);break;case Be.ACK:case Be.BINARY_ACK:this.onack(e);break;case Be.DISCONNECT:this.ondisconnect();break;case Be.CONNECT_ERROR:this.destroy();const r=new Error(e.data.message);r.data=e.data.data,this.emitReserved("connect_error",r);break}}onevent(e){const n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const n=this;let r=!1;return function(...i){r||(r=!0,n.packet({type:Be.ACK,id:e,data:i}))}}onack(e){const n=this.acks[e.id];typeof n=="function"&&(n.apply(this,e.data),delete this.acks[e.id])}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Be.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const n=this._anyListeners;for(let r=0;r0&&t.jitter<=1?t.jitter:0,this.attempts=0}Vs.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=Math.floor(e*10)&1?t+n:t-n}return Math.min(t,this.max)|0};Vs.prototype.reset=function(){this.attempts=0};Vs.prototype.setMin=function(t){this.ms=t};Vs.prototype.setMax=function(t){this.max=t};Vs.prototype.setJitter=function(t){this.jitter=t};class Zv extends Rt{constructor(e,n){var r;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Jh(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Vs({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;const i=n.parser||lF;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Nk(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=Dr(n,"open",function(){r.onopen(),e&&e()}),a=Dr(n,"error",s=>{r.cleanup(),r._readyState="closed",this.emitReserved("error",s),e?e(s):r.maybeReconnectOnOpen()});if(this._timeout!==!1){const s=this._timeout;s===0&&i();const u=this.setTimeoutFn(()=>{i(),n.close(),n.emit("error",new Error("timeout"))},s);this.opts.autoUnref&&u.unref(),this.subs.push(function(){clearTimeout(u)})}return this.subs.push(i),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(Dr(e,"ping",this.onping.bind(this)),Dr(e,"data",this.ondata.bind(this)),Dr(e,"error",this.onerror.bind(this)),Dr(e,"close",this.onclose.bind(this)),Dr(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){Dk(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,n){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new Fk(this,e,n),this.nsps[e]=r),r}_destroy(e){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(e){const n=this.encoder.encode(e);for(let r=0;re()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,n){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(function(){clearTimeout(r)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const Gl={};function gd(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};const n=JB(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,s=Gl[i]&&a in Gl[i].nsps,u=e.forceNew||e["force new connection"]||e.multiplex===!1||s;let c;return u?c=new Zv(r,e):(Gl[i]||(Gl[i]=new Zv(r,e)),c=Gl[i]),n.query&&!e.query&&(e.query=n.queryKey),c.socket(n.path,e)}Object.assign(gd,{Manager:Zv,Socket:Fk,io:gd,connect:gd});const IW=["ddim","plms","k_lms","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_dpmpp_2_a","k_euler","k_euler_a","k_heun"],LW=["ddim","plms","k_lms","dpmpp_2","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_euler","k_euler_a","k_heun"],MW=Array.from(Array(65)).map((t,e)=>e*64),DW=Array.from(Array(65)).map((t,e)=>e*64),NW=[{key:"2x",value:2},{key:"4x",value:4}],cF=0,fF=4294967295,BW=["gfpgan","codeformer"],FW=[{key:"None",value:"none"},{key:"Fast",value:"latents"},{key:"Accurate",value:"full-res"}];var dF=Math.PI/180;function hF(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const Os=typeof global<"u"?global:typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{},pe={_global:Os,version:"8.4.2",isBrowser:hF(),isUnminified:/param/.test(function(t){}.toString()),dblClickWindow:400,getAngle(t){return pe.angleDeg?t*dF:t},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_mouseListenClick:!1,_touchListenClick:!1,_pointerListenClick:!1,_mouseInDblClickWindow:!1,_touchInDblClickWindow:!1,_pointerInDblClickWindow:!1,_mouseDblClickPointerId:null,_touchDblClickPointerId:null,_pointerDblClickPointerId:null,pixelRatio:typeof window<"u"&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return pe.DD.isDragging},isDragReady(){return!!pe.DD.node},releaseCanvasOnDestroy:!0,document:Os.document,_injectGlobal(t){Os.Konva=t}},yt=t=>{pe[t.prototype.getClassName()]=t};pe._injectGlobal(pe);class Wn{constructor(e=[1,0,0,1,0,0]){this.dirty=!1,this.m=e&&e.slice()||[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new Wn(this.m)}copyInto(e){e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5]}point(e){var n=this.m;return{x:n[0]*e.x+n[2]*e.y+n[4],y:n[1]*e.x+n[3]*e.y+n[5]}}translate(e,n){return this.m[4]+=this.m[0]*e+this.m[2]*n,this.m[5]+=this.m[1]*e+this.m[3]*n,this}scale(e,n){return this.m[0]*=e,this.m[1]*=e,this.m[2]*=n,this.m[3]*=n,this}rotate(e){var n=Math.cos(e),r=Math.sin(e),i=this.m[0]*n+this.m[2]*r,a=this.m[1]*n+this.m[3]*r,s=this.m[0]*-r+this.m[2]*n,u=this.m[1]*-r+this.m[3]*n;return this.m[0]=i,this.m[1]=a,this.m[2]=s,this.m[3]=u,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(e,n){var r=this.m[0]+this.m[2]*n,i=this.m[1]+this.m[3]*n,a=this.m[2]+this.m[0]*e,s=this.m[3]+this.m[1]*e;return this.m[0]=r,this.m[1]=i,this.m[2]=a,this.m[3]=s,this}multiply(e){var n=this.m[0]*e.m[0]+this.m[2]*e.m[1],r=this.m[1]*e.m[0]+this.m[3]*e.m[1],i=this.m[0]*e.m[2]+this.m[2]*e.m[3],a=this.m[1]*e.m[2]+this.m[3]*e.m[3],s=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],u=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=a,this.m[4]=s,this.m[5]=u,this}invert(){var e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),n=this.m[3]*e,r=-this.m[1]*e,i=-this.m[2]*e,a=this.m[0]*e,s=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),u=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=a,this.m[4]=s,this.m[5]=u,this}getMatrix(){return this.m}decompose(){var e=this.m[0],n=this.m[1],r=this.m[2],i=this.m[3],a=this.m[4],s=this.m[5],u=e*i-n*r;let c={x:a,y:s,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(e!=0||n!=0){var f=Math.sqrt(e*e+n*n);c.rotation=n>0?Math.acos(e/f):-Math.acos(e/f),c.scaleX=f,c.scaleY=u/f,c.skewX=(e*r+n*i)/u,c.skewY=0}else if(r!=0||i!=0){var h=Math.sqrt(r*r+i*i);c.rotation=Math.PI/2-(i>0?Math.acos(-r/h):-Math.acos(r/h)),c.scaleX=u/h,c.scaleY=h,c.skewX=0,c.skewY=(e*r+n*i)/u}return c.rotation=G._getRotation(c.rotation),c}}var pF="[object Array]",gF="[object Number]",mF="[object String]",vF="[object Boolean]",yF=Math.PI/180,SF=180/Math.PI,Pm="#",_F="",wF="0",bF="Konva warning: ",Sb="Konva error: ",CF="rgb(",Em={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,132,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,255,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,203],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[119,128,144],slategrey:[119,128,144],snow:[255,255,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[255,255,255,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,5]},xF=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/,Mf=[];const kF=typeof requestAnimationFrame<"u"&&requestAnimationFrame||function(t){setTimeout(t,60)},G={_isElement(t){return!!(t&&t.nodeType==1)},_isFunction(t){return!!(t&&t.constructor&&t.call&&t.apply)},_isPlainObject(t){return!!t&&t.constructor===Object},_isArray(t){return Object.prototype.toString.call(t)===pF},_isNumber(t){return Object.prototype.toString.call(t)===gF&&!isNaN(t)&&isFinite(t)},_isString(t){return Object.prototype.toString.call(t)===mF},_isBoolean(t){return Object.prototype.toString.call(t)===vF},isObject(t){return t instanceof Object},isValidSelector(t){if(typeof t!="string")return!1;var e=t[0];return e==="#"||e==="."||e===e.toUpperCase()},_sign(t){return t===0||t>0?1:-1},requestAnimFrame(t){Mf.push(t),Mf.length===1&&kF(function(){const e=Mf;Mf=[],e.forEach(function(n){n()})})},createCanvasElement(){var t=document.createElement("canvas");try{t.style=t.style||{}}catch{}return t},createImageElement(){return document.createElement("img")},_isInDocument(t){for(;t=t.parentNode;)if(t==document)return!0;return!1},_urlToImage(t,e){var n=G.createImageElement();n.onload=function(){e(n)},n.src=t},_rgbToHex(t,e,n){return((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)},_hexToRgb(t){t=t.replace(Pm,_F);var e=parseInt(t,16);return{r:e>>16&255,g:e>>8&255,b:e&255}},getRandomColor(){for(var t=(Math.random()*16777215<<0).toString(16);t.length<6;)t=wF+t;return Pm+t},getRGB(t){var e;return t in Em?(e=Em[t],{r:e[0],g:e[1],b:e[2]}):t[0]===Pm?this._hexToRgb(t.substring(1)):t.substr(0,4)===CF?(e=xF.exec(t.replace(/ /g,"")),{r:parseInt(e[1],10),g:parseInt(e[2],10),b:parseInt(e[3],10)}):{r:0,g:0,b:0}},colorToRGBA(t){return t=t||"black",G._namedColorToRBA(t)||G._hex3ColorToRGBA(t)||G._hex4ColorToRGBA(t)||G._hex6ColorToRGBA(t)||G._hex8ColorToRGBA(t)||G._rgbColorToRGBA(t)||G._rgbaColorToRGBA(t)||G._hslColorToRGBA(t)},_namedColorToRBA(t){var e=Em[t.toLowerCase()];return e?{r:e[0],g:e[1],b:e[2],a:1}:null},_rgbColorToRGBA(t){if(t.indexOf("rgb(")===0){t=t.match(/rgb\(([^)]+)\)/)[1];var e=t.split(/ *, */).map(Number);return{r:e[0],g:e[1],b:e[2],a:1}}},_rgbaColorToRGBA(t){if(t.indexOf("rgba(")===0){t=t.match(/rgba\(([^)]+)\)/)[1];var e=t.split(/ *, */).map((n,r)=>n.slice(-1)==="%"?r===3?parseInt(n)/100:parseInt(n)/100*255:Number(n));return{r:e[0],g:e[1],b:e[2],a:e[3]}}},_hex8ColorToRGBA(t){if(t[0]==="#"&&t.length===9)return{r:parseInt(t.slice(1,3),16),g:parseInt(t.slice(3,5),16),b:parseInt(t.slice(5,7),16),a:parseInt(t.slice(7,9),16)/255}},_hex6ColorToRGBA(t){if(t[0]==="#"&&t.length===7)return{r:parseInt(t.slice(1,3),16),g:parseInt(t.slice(3,5),16),b:parseInt(t.slice(5,7),16),a:1}},_hex4ColorToRGBA(t){if(t[0]==="#"&&t.length===5)return{r:parseInt(t[1]+t[1],16),g:parseInt(t[2]+t[2],16),b:parseInt(t[3]+t[3],16),a:parseInt(t[4]+t[4],16)/255}},_hex3ColorToRGBA(t){if(t[0]==="#"&&t.length===4)return{r:parseInt(t[1]+t[1],16),g:parseInt(t[2]+t[2],16),b:parseInt(t[3]+t[3],16),a:1}},_hslColorToRGBA(t){if(/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(t)){const[e,...n]=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t),r=Number(n[0])/360,i=Number(n[1])/100,a=Number(n[2])/100;let s,u,c;if(i===0)return c=a*255,{r:Math.round(c),g:Math.round(c),b:Math.round(c),a:1};a<.5?s=a*(1+i):s=a+i-a*i;const f=2*a-s,h=[0,0,0];for(let p=0;p<3;p++)u=r+1/3*-(p-1),u<0&&u++,u>1&&u--,6*u<1?c=f+(s-f)*6*u:2*u<1?c=s:3*u<2?c=f+(s-f)*(2/3-u)*6:c=f,h[p]=c*255;return{r:Math.round(h[0]),g:Math.round(h[1]),b:Math.round(h[2]),a:1}}},haveIntersection(t,e){return!(e.x>t.x+t.width||e.x+e.widtht.y+t.height||e.y+e.height1?(s=n,u=r,c=(n-i)*(n-i)+(r-a)*(r-a)):(s=t+h*(n-t),u=e+h*(r-e),c=(s-i)*(s-i)+(u-a)*(u-a))}return[s,u,c]},_getProjectionToLine(t,e,n){var r=G.cloneObject(t),i=Number.MAX_VALUE;return e.forEach(function(a,s){if(!(!n&&s===e.length-1)){var u=e[(s+1)%e.length],c=G._getProjectionToSegment(a.x,a.y,u.x,u.y,t.x,t.y),f=c[0],h=c[1],p=c[2];pe.length){var s=e;e=t,t=s}for(r=0;r{e.width=0,e.height=0})},drawRoundedRectPath(t,e,n,r){let i=0,a=0,s=0,u=0;typeof r=="number"?i=a=s=u=Math.min(r,e/2,n/2):(i=Math.min(r[0]||0,e/2,n/2),a=Math.min(r[1]||0,e/2,n/2),u=Math.min(r[2]||0,e/2,n/2),s=Math.min(r[3]||0,e/2,n/2)),t.moveTo(i,0),t.lineTo(e-a,0),t.arc(e-a,a,a,Math.PI*3/2,0,!1),t.lineTo(e,n-u),t.arc(e-u,n-u,u,0,Math.PI/2,!1),t.lineTo(s,n),t.arc(s,n-s,s,Math.PI/2,Math.PI,!1),t.lineTo(0,i),t.arc(i,i,i,Math.PI,Math.PI*3/2,!1)}};function Da(t){return G._isString(t)?'"'+t+'"':Object.prototype.toString.call(t)==="[object Number]"||G._isBoolean(t)?t:Object.prototype.toString.call(t)}function $k(t){return t>255?255:t<0?0:Math.round(t)}function le(){if(pe.isUnminified)return function(t,e){return G._isNumber(t)||G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a number.'),t}}function A0(t){if(pe.isUnminified)return function(e,n){let r=G._isNumber(e),i=G._isArray(e)&&e.length==t;return!r&&!i&&G.warn(Da(e)+' is a not valid value for "'+n+'" attribute. The value should be a number or Array('+t+")"),e}}function I0(){if(pe.isUnminified)return function(t,e){var n=G._isNumber(t),r=t==="auto";return n||r||G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a number or "auto".'),t}}function qs(){if(pe.isUnminified)return function(t,e){return G._isString(t)||G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a string.'),t}}function zk(){if(pe.isUnminified)return function(t,e){const n=G._isString(t),r=Object.prototype.toString.call(t)==="[object CanvasGradient]"||t&&t.addColorStop;return n||r||G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a string or a native gradient.'),t}}function PF(){if(pe.isUnminified)return function(t,e){const n=Int8Array?Object.getPrototypeOf(Int8Array):null;return n&&t instanceof n||(G._isArray(t)?t.forEach(function(r){G._isNumber(r)||G.warn('"'+e+'" attribute has non numeric element '+r+". Make sure that all elements are numbers.")}):G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a array of numbers.')),t}}function jr(){if(pe.isUnminified)return function(t,e){var n=t===!0||t===!1;return n||G.warn(Da(t)+' is a not valid value for "'+e+'" attribute. The value should be a boolean.'),t}}function EF(t){if(pe.isUnminified)return function(e,n){return e==null||G.isObject(e)||G.warn(Da(e)+' is a not valid value for "'+n+'" attribute. The value should be an object with properties '+t),e}}var Ul="get",jl="set";const A={addGetterSetter(t,e,n,r,i){A.addGetter(t,e,n),A.addSetter(t,e,r,i),A.addOverloadedGetterSetter(t,e)},addGetter(t,e,n){var r=Ul+G._capitalize(e);t.prototype[r]=t.prototype[r]||function(){var i=this.attrs[e];return i===void 0?n:i}},addSetter(t,e,n,r){var i=jl+G._capitalize(e);t.prototype[i]||A.overWriteSetter(t,e,n,r)},overWriteSetter(t,e,n,r){var i=jl+G._capitalize(e);t.prototype[i]=function(a){return n&&a!==void 0&&a!==null&&(a=n.call(this,a,e)),this._setAttr(e,a),r&&r.call(this),this}},addComponentsGetterSetter(t,e,n,r,i){var a=n.length,s=G._capitalize,u=Ul+s(e),c=jl+s(e),f,h;t.prototype[u]=function(){var g={};for(f=0;f{this._setAttr(e+s(w),void 0)}),this._fireChangeEvent(e,y,g),i&&i.call(this),this},A.addOverloadedGetterSetter(t,e)},addOverloadedGetterSetter(t,e){var n=G._capitalize(e),r=jl+n,i=Ul+n;t.prototype[e]=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()}},addDeprecatedGetterSetter(t,e,n,r){G.error("Adding deprecated "+e);var i=Ul+G._capitalize(e),a=e+" property is deprecated and will be removed soon. Look at Konva change log for more information.";t.prototype[i]=function(){G.error(a);var s=this.attrs[e];return s===void 0?n:s},A.addSetter(t,e,r,function(){G.error(a)}),A.addOverloadedGetterSetter(t,e)},backCompat(t,e){G.each(e,function(n,r){var i=t.prototype[r],a=Ul+G._capitalize(n),s=jl+G._capitalize(n);function u(){i.apply(this,arguments),G.error('"'+n+'" method is deprecated and will be removed soon. Use ""'+r+'" instead.')}t.prototype[n]=u,t.prototype[a]=u,t.prototype[s]=u})},afterSetFilter(){this._filterUpToDate=!1}};function OF(t){var e=[],n=t.length,r=G,i,a;for(i=0;itypeof h=="number"?Math.floor(h):h)),a+=TF+f.join(_b)+RF)):(a+=u.property,e||(a+=DF+u.val)),a+=LF;return a}clearTrace(){this.traceArr=[]}_trace(e){var n=this.traceArr,r;n.push(e),r=n.length,r>=BF&&n.shift()}reset(){var e=this.getCanvas().getPixelRatio();this.setTransform(1*e,0,0,1*e,0,0)}getCanvas(){return this.canvas}clear(e){var n=this.getCanvas();e?this.clearRect(e.x||0,e.y||0,e.width||0,e.height||0):this.clearRect(0,0,n.getWidth()/n.pixelRatio,n.getHeight()/n.pixelRatio)}_applyLineCap(e){var n=e.getLineCap();n&&this.setAttr("lineCap",n)}_applyOpacity(e){var n=e.getAbsoluteOpacity();n!==1&&this.setAttr("globalAlpha",n)}_applyLineJoin(e){var n=e.attrs.lineJoin;n&&this.setAttr("lineJoin",n)}setAttr(e,n){this._context[e]=n}arc(e,n,r,i,a,s){this._context.arc(e,n,r,i,a,s)}arcTo(e,n,r,i,a){this._context.arcTo(e,n,r,i,a)}beginPath(){this._context.beginPath()}bezierCurveTo(e,n,r,i,a,s){this._context.bezierCurveTo(e,n,r,i,a,s)}clearRect(e,n,r,i){this._context.clearRect(e,n,r,i)}clip(){this._context.clip()}closePath(){this._context.closePath()}createImageData(e,n){var r=arguments;if(r.length===2)return this._context.createImageData(e,n);if(r.length===1)return this._context.createImageData(e)}createLinearGradient(e,n,r,i){return this._context.createLinearGradient(e,n,r,i)}createPattern(e,n){return this._context.createPattern(e,n)}createRadialGradient(e,n,r,i,a,s){return this._context.createRadialGradient(e,n,r,i,a,s)}drawImage(e,n,r,i,a,s,u,c,f){var h=arguments,p=this._context;h.length===3?p.drawImage(e,n,r):h.length===5?p.drawImage(e,n,r,i,a):h.length===9&&p.drawImage(e,n,r,i,a,s,u,c,f)}ellipse(e,n,r,i,a,s,u,c){this._context.ellipse(e,n,r,i,a,s,u,c)}isPointInPath(e,n,r,i){return r?this._context.isPointInPath(r,e,n,i):this._context.isPointInPath(e,n,i)}fill(e){e?this._context.fill(e):this._context.fill()}fillRect(e,n,r,i){this._context.fillRect(e,n,r,i)}strokeRect(e,n,r,i){this._context.strokeRect(e,n,r,i)}fillText(e,n,r,i){i?this._context.fillText(e,n,r,i):this._context.fillText(e,n,r)}measureText(e){return this._context.measureText(e)}getImageData(e,n,r,i){return this._context.getImageData(e,n,r,i)}lineTo(e,n){this._context.lineTo(e,n)}moveTo(e,n){this._context.moveTo(e,n)}rect(e,n,r,i){this._context.rect(e,n,r,i)}putImageData(e,n,r){this._context.putImageData(e,n,r)}quadraticCurveTo(e,n,r,i){this._context.quadraticCurveTo(e,n,r,i)}restore(){this._context.restore()}rotate(e){this._context.rotate(e)}save(){this._context.save()}scale(e,n){this._context.scale(e,n)}setLineDash(e){this._context.setLineDash?this._context.setLineDash(e):"mozDash"in this._context?this._context.mozDash=e:"webkitLineDash"in this._context&&(this._context.webkitLineDash=e)}getLineDash(){return this._context.getLineDash()}setTransform(e,n,r,i,a,s){this._context.setTransform(e,n,r,i,a,s)}stroke(e){e?this._context.stroke(e):this._context.stroke()}strokeText(e,n,r,i){this._context.strokeText(e,n,r,i)}transform(e,n,r,i,a,s){this._context.transform(e,n,r,i,a,s)}translate(e,n){this._context.translate(e,n)}_enableTrace(){var e=this,n=wb.length,r=this.setAttr,i,a,s=function(u){var c=e[u],f;e[u]=function(){return a=OF(Array.prototype.slice.call(arguments,0)),f=c.apply(e,arguments),e._trace({method:u,args:a}),f}};for(i=0;i{e.dragStatus==="dragging"&&(t=!0)}),t},justDragged:!1,get node(){var t;return Ge._dragElements.forEach(e=>{t=e.node}),t},_dragElements:new Map,_drag(t){const e=[];Ge._dragElements.forEach((n,r)=>{const{node:i}=n,a=i.getStage();a.setPointersPositions(t),n.pointerId===void 0&&(n.pointerId=G._getFirstPointerId(t));const s=a._changedPointerPositions.find(f=>f.id===n.pointerId);if(s){if(n.dragStatus!=="dragging"){var u=i.dragDistance(),c=Math.max(Math.abs(s.x-n.startPointerPos.x),Math.abs(s.y-n.startPointerPos.y));if(c{n.fire("dragmove",{type:"dragmove",target:n,evt:t},!0)})},_endDragBefore(t){const e=[];Ge._dragElements.forEach(n=>{const{node:r}=n,i=r.getStage();if(t&&i.setPointersPositions(t),!i._changedPointerPositions.find(u=>u.id===n.pointerId))return;(n.dragStatus==="dragging"||n.dragStatus==="stopped")&&(Ge.justDragged=!0,pe._mouseListenClick=!1,pe._touchListenClick=!1,pe._pointerListenClick=!1,n.dragStatus="stopped");const s=n.node.getLayer()||n.node instanceof pe.Stage&&n.node;s&&e.indexOf(s)===-1&&e.push(s)}),e.forEach(n=>{n.draw()})},_endDragAfter(t){Ge._dragElements.forEach((e,n)=>{e.dragStatus==="stopped"&&e.node.fire("dragend",{type:"dragend",target:e.node,evt:t},!0),e.dragStatus!=="dragging"&&Ge._dragElements.delete(n)})}};pe.isBrowser&&(window.addEventListener("mouseup",Ge._endDragBefore,!0),window.addEventListener("touchend",Ge._endDragBefore,!0),window.addEventListener("mousemove",Ge._drag),window.addEventListener("touchmove",Ge._drag),window.addEventListener("mouseup",Ge._endDragAfter,!1),window.addEventListener("touchend",Ge._endDragAfter,!1));var md="absoluteOpacity",Nf="allEventListeners",Ii="absoluteTransform",bb="absoluteScale",Xa="canvas",GF="Change",UF="children",jF="konva",ey="listening",Cb="mouseenter",xb="mouseleave",kb="set",Pb="Shape",vd=" ",Eb="stage",ua="transform",WF="Stage",ty="visible",HF=["xChange.konva","yChange.konva","scaleXChange.konva","scaleYChange.konva","skewXChange.konva","skewYChange.konva","rotationChange.konva","offsetXChange.konva","offsetYChange.konva","transformsEnabledChange.konva"].join(vd);let VF=1;class se{constructor(e){this._id=VF++,this.eventListeners={},this.attrs={},this.index=0,this._allEventListeners=null,this.parent=null,this._cache=new Map,this._attachedDepsListeners=new Map,this._lastPos=null,this._batchingTransformChange=!1,this._needClearTransformCache=!1,this._filterUpToDate=!1,this._isUnderCache=!1,this._dragEventId=null,this._shouldFireChangeEvents=!1,this.setAttrs(e),this._shouldFireChangeEvents=!0}hasChildren(){return!1}_clearCache(e){(e===ua||e===Ii)&&this._cache.get(e)?this._cache.get(e).dirty=!0:e?this._cache.delete(e):this._cache.clear()}_getCache(e,n){var r=this._cache.get(e),i=e===ua||e===Ii,a=r===void 0||i&&r.dirty===!0;return a&&(r=n.call(this),this._cache.set(e,r)),r}_calculate(e,n,r){if(!this._attachedDepsListeners.get(e)){const i=n.map(a=>a+"Change.konva").join(vd);this.on(i,()=>{this._clearCache(e)}),this._attachedDepsListeners.set(e,!0)}return this._getCache(e,r)}_getCanvasCache(){return this._cache.get(Xa)}_clearSelfAndDescendantCache(e){this._clearCache(e),e===Ii&&this.fire("absoluteTransformChange")}clearCache(){if(this._cache.has(Xa)){const{scene:e,filter:n,hit:r}=this._cache.get(Xa);G.releaseCanvas(e,n,r),this._cache.delete(Xa)}return this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(e){var n=e||{},r={};(n.x===void 0||n.y===void 0||n.width===void 0||n.height===void 0)&&(r=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()}));var i=Math.ceil(n.width||r.width),a=Math.ceil(n.height||r.height),s=n.pixelRatio,u=n.x===void 0?Math.floor(r.x):n.x,c=n.y===void 0?Math.floor(r.y):n.y,f=n.offset||0,h=n.drawBorder||!1,p=n.hitCanvasPixelRatio||1;if(!i||!a){G.error("Can not cache the node. Width or height of the node equals 0. Caching is skipped.");return}i+=f*2+1,a+=f*2+1,u-=f,c-=f;var g=new Ts({pixelRatio:s,width:i,height:a}),y=new Ts({pixelRatio:s,width:0,height:0}),v=new L0({pixelRatio:p,width:i,height:a}),w=g.getContext(),x=v.getContext();return v.isCache=!0,g.isCache=!0,this._cache.delete(Xa),this._filterUpToDate=!1,n.imageSmoothingEnabled===!1&&(g.getContext()._context.imageSmoothingEnabled=!1,y.getContext()._context.imageSmoothingEnabled=!1),w.save(),x.save(),w.translate(-u,-c),x.translate(-u,-c),this._isUnderCache=!0,this._clearSelfAndDescendantCache(md),this._clearSelfAndDescendantCache(bb),this.drawScene(g,this),this.drawHit(v,this),this._isUnderCache=!1,w.restore(),x.restore(),h&&(w.save(),w.beginPath(),w.rect(0,0,i,a),w.closePath(),w.setAttr("strokeStyle","red"),w.setAttr("lineWidth",5),w.stroke(),w.restore()),this._cache.set(Xa,{scene:g,filter:y,hit:v,x:u,y:c}),this._requestDraw(),this}isCached(){return this._cache.has(Xa)}getClientRect(e){throw new Error('abstract "getClientRect" method call')}_transformedRect(e,n){var r=[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}],i,a,s,u,c=this.getAbsoluteTransform(n);return r.forEach(function(f){var h=c.point(f);i===void 0&&(i=s=h.x,a=u=h.y),i=Math.min(i,h.x),a=Math.min(a,h.y),s=Math.max(s,h.x),u=Math.max(u,h.y)}),{x:i,y:a,width:s-i,height:u-a}}_drawCachedSceneCanvas(e){e.save(),e._applyOpacity(this),e._applyGlobalCompositeOperation(this);const n=this._getCanvasCache();e.translate(n.x,n.y);var r=this._getCachedSceneCanvas(),i=r.pixelRatio;e.drawImage(r._canvas,0,0,r.width/i,r.height/i),e.restore()}_drawCachedHitCanvas(e){var n=this._getCanvasCache(),r=n.hit;e.save(),e.translate(n.x,n.y),e.drawImage(r._canvas,0,0,r.width/r.pixelRatio,r.height/r.pixelRatio),e.restore()}_getCachedSceneCanvas(){var e=this.filters(),n=this._getCanvasCache(),r=n.scene,i=n.filter,a=i.getContext(),s,u,c,f;if(e){if(!this._filterUpToDate){var h=r.pixelRatio;i.setSize(r.width/r.pixelRatio,r.height/r.pixelRatio);try{for(s=e.length,a.clear(),a.drawImage(r._canvas,0,0,r.getWidth()/h,r.getHeight()/h),u=a.getImageData(0,0,i.getWidth(),i.getHeight()),c=0;c{var n,r;if(!e)return this;for(n in e)n!==UF&&(r=kb+G._capitalize(n),G._isFunction(this[r])?this[r](e[n]):this._setAttr(n,e[n]))}),this}isListening(){return this._getCache(ey,this._isListening)}_isListening(e){if(!this.listening())return!1;const r=this.getParent();return r&&r!==e&&this!==e?r._isListening(e):!0}isVisible(){return this._getCache(ty,this._isVisible)}_isVisible(e){if(!this.visible())return!1;const r=this.getParent();return r&&r!==e&&this!==e?r._isVisible(e):!0}shouldDrawHit(e,n=!1){if(e)return this._isVisible(e)&&this._isListening(e);var r=this.getLayer(),i=!1;Ge._dragElements.forEach(s=>{s.dragStatus==="dragging"&&(s.node.nodeType==="Stage"||s.node.getLayer()===r)&&(i=!0)});var a=!n&&!pe.hitOnDragEnabled&&i;return this.isListening()&&this.isVisible()&&!a}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){var e=this.getDepth(),n=this,r=0,i,a,s,u;function c(f){for(i=[],a=f.length,s=0;s0&&i[0].getDepth()<=e&&c(i)}return n.nodeType!==WF&&c(n.getStage().getChildren()),r}getDepth(){for(var e=0,n=this.parent;n;)e++,n=n.parent;return e}_batchTransformChanges(e){this._batchingTransformChange=!0,e(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(ua),this._clearSelfAndDescendantCache(Ii)),this._needClearTransformCache=!1}setPosition(e){return this._batchTransformChanges(()=>{this.x(e.x),this.y(e.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){if(!this.getStage())return null;var e=this.getStage().getPointerPosition();if(!e)return null;var n=this.getAbsoluteTransform().copy();return n.invert(),n.point(e)}getAbsolutePosition(e){let n=!1,r=this.parent;for(;r;){if(r.isCached()){n=!0;break}r=r.parent}n&&!e&&(e=!0);var i=this.getAbsoluteTransform(e).getMatrix(),a=new Wn,s=this.offset();return a.m=i.slice(),a.translate(s.x,s.y),a.getTranslation()}setAbsolutePosition(e){var n=this._clearTransform();this.attrs.x=n.x,this.attrs.y=n.y,delete n.x,delete n.y,this._clearCache(ua);var r=this._getAbsoluteTransform().copy();return r.invert(),r.translate(e.x,e.y),e={x:this.attrs.x+r.getTranslation().x,y:this.attrs.y+r.getTranslation().y},this._setTransform(n),this.setPosition({x:e.x,y:e.y}),this._clearCache(ua),this._clearSelfAndDescendantCache(Ii),this}_setTransform(e){var n;for(n in e)this.attrs[n]=e[n]}_clearTransform(){var e={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,e}move(e){var n=e.x,r=e.y,i=this.x(),a=this.y();return n!==void 0&&(i+=n),r!==void 0&&(a+=r),this.setPosition({x:i,y:a}),this}_eachAncestorReverse(e,n){var r=[],i=this.getParent(),a,s;if(!(n&&n._id===this._id)){for(r.unshift(this);i&&(!n||i._id!==n._id);)r.unshift(i),i=i.parent;for(a=r.length,s=0;s0?(this.parent.children.splice(e,1),this.parent.children.splice(e-1,0,this),this.parent._setChildrenIndices(),!0):!1}moveToBottom(){if(!this.parent)return G.warn("Node has no parent. moveToBottom function is ignored."),!1;var e=this.index;return e>0?(this.parent.children.splice(e,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1}setZIndex(e){if(!this.parent)return G.warn("Node has no parent. zIndex parameter is ignored."),this;(e<0||e>=this.parent.children.length)&&G.warn("Unexpected value "+e+" for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to "+(this.parent.children.length-1)+".");var n=this.index;return this.parent.children.splice(n,1),this.parent.children.splice(e,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(md,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){var e=this.opacity(),n=this.getParent();return n&&!n._isUnderCache&&(e*=n.getAbsoluteOpacity()),e}moveTo(e){return this.getParent()!==e&&(this._remove(),e.add(this)),this}toObject(){var e={},n=this.getAttrs(),r,i,a,s,u;e.attrs={};for(r in n)i=n[r],u=G.isObject(i)&&!G._isPlainObject(i)&&!G._isArray(i),!u&&(a=typeof this[r]=="function"&&this[r],delete n[r],s=a?a.call(this):null,n[r]=i,s!==i&&(e.attrs[r]=i));return e.className=this.getClassName(),G._prepareToStringify(e)}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(e,n,r){var i=[];n&&this._isMatch(e)&&i.push(this);for(var a=this.parent;a;){if(a===r)return i;a._isMatch(e)&&i.push(a),a=a.parent}return i}isAncestorOf(e){return!1}findAncestor(e,n,r){return this.findAncestors(e,n,r)[0]}_isMatch(e){if(!e)return!1;if(typeof e=="function")return e(this);var n=e.replace(/ /g,"").split(","),r=n.length,i,a;for(i=0;i{try{const i=e==null?void 0:e.callback;i&&delete e.callback,G._urlToImage(this.toDataURL(e),function(a){n(a),i==null||i(a)})}catch(i){r(i)}})}toBlob(e){return new Promise((n,r)=>{try{const i=e==null?void 0:e.callback;i&&delete e.callback,this.toCanvas(e).toBlob(a=>{n(a),i==null||i(a)})}catch(i){r(i)}})}setSize(e){return this.width(e.width),this.height(e.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance!==void 0?this.attrs.dragDistance:this.parent?this.parent.getDragDistance():pe.dragDistance}_off(e,n,r){var i=this.eventListeners[e],a,s,u;for(a=0;a=0;if(r&&!this.isDragging()){var i=!1;Ge._dragElements.forEach(a=>{this.isAncestorOf(a.node)&&(i=!0)}),i||this._createDragElement(e)}})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{this._dragCleanup();var e=this.getStage();if(!e)return;const n=Ge._dragElements.get(this._id),r=n&&n.dragStatus==="dragging",i=n&&n.dragStatus==="ready";r?this.stopDrag():i&&Ge._dragElements.delete(this._id)}}_dragCleanup(){this.off("mousedown.konva"),this.off("touchstart.konva")}isClientRectOnScreen(e={x:0,y:0}){const n=this.getStage();if(!n)return!1;const r={x:-e.x,y:-e.y,width:n.width()+2*e.x,height:n.height()+2*e.y};return G.haveIntersection(r,this.getClientRect())}static create(e,n){return G._isString(e)&&(e=JSON.parse(e)),this._createNode(e,n)}static _createNode(e,n){var r=se.prototype.getClassName.call(e),i=e.children,a,s,u;n&&(e.attrs.container=n),pe[r]||(G.warn('Can not find a node with class name "'+r+'". Fallback to "Shape".'),r="Shape");const c=pe[r];if(a=new c(e.attrs),i)for(s=i.length,u=0;u0}removeChildren(){return this.getChildren().forEach(e=>{e.parent=null,e.index=0,e.remove()}),this.children=[],this._requestDraw(),this}destroyChildren(){return this.getChildren().forEach(e=>{e.parent=null,e.index=0,e.destroy()}),this.children=[],this._requestDraw(),this}add(...e){if(e.length===0)return this;if(e.length>1){for(var n=0;n0?n[0]:void 0}_generalFind(e,n){var r=[];return this._descendants(i=>{const a=i._isMatch(e);return a&&r.push(i),!!(a&&n)}),r}_descendants(e){let n=!1;const r=this.getChildren();for(const i of r){if(n=e(i),n)return!0;if(i.hasChildren()&&(n=i._descendants(e),n))return!0}return!1}toObject(){var e=se.prototype.toObject.call(this);return e.children=[],this.getChildren().forEach(n=>{e.children.push(n.toObject())}),e}isAncestorOf(e){for(var n=e.getParent();n;){if(n._id===this._id)return!0;n=n.getParent()}return!1}clone(e){var n=se.prototype.clone.call(this,e);return this.getChildren().forEach(function(r){n.add(r.clone())}),n}getAllIntersections(e){var n=[];return this.find("Shape").forEach(function(r){r.isVisible()&&r.intersects(e)&&n.push(r)}),n}_clearSelfAndDescendantCache(e){var n;super._clearSelfAndDescendantCache(e),!this.isCached()&&((n=this.children)===null||n===void 0||n.forEach(function(r){r._clearSelfAndDescendantCache(e)}))}_setChildrenIndices(){var e;(e=this.children)===null||e===void 0||e.forEach(function(n,r){n.index=r}),this._requestDraw()}drawScene(e,n){var r=this.getLayer(),i=e||r&&r.getCanvas(),a=i&&i.getContext(),s=this._getCanvasCache(),u=s&&s.scene,c=i&&i.isCache;if(!this.isVisible()&&!c)return this;if(u){a.save();var f=this.getAbsoluteTransform(n).getMatrix();a.transform(f[0],f[1],f[2],f[3],f[4],f[5]),this._drawCachedSceneCanvas(a),a.restore()}else this._drawChildren("drawScene",i,n);return this}drawHit(e,n){if(!this.shouldDrawHit(n))return this;var r=this.getLayer(),i=e||r&&r.hitCanvas,a=i&&i.getContext(),s=this._getCanvasCache(),u=s&&s.hit;if(u){a.save();var c=this.getAbsoluteTransform(n).getMatrix();a.transform(c[0],c[1],c[2],c[3],c[4],c[5]),this._drawCachedHitCanvas(a),a.restore()}else this._drawChildren("drawHit",i,n);return this}_drawChildren(e,n,r){var i,a=n&&n.getContext(),s=this.clipWidth(),u=this.clipHeight(),c=this.clipFunc(),f=s&&u||c;const h=r===this;if(f){a.save();var p=this.getAbsoluteTransform(r),g=p.getMatrix();if(a.transform(g[0],g[1],g[2],g[3],g[4],g[5]),a.beginPath(),c)c.call(this,a,this);else{var y=this.clipX(),v=this.clipY();a.rect(y,v,s,u)}a.clip(),g=p.copy().invert().getMatrix(),a.transform(g[0],g[1],g[2],g[3],g[4],g[5])}var w=!h&&this.globalCompositeOperation()!=="source-over"&&e==="drawScene";w&&(a.save(),a._applyGlobalCompositeOperation(this)),(i=this.children)===null||i===void 0||i.forEach(function(x){x[e](n,r)}),w&&a.restore(),f&&a.restore()}getClientRect(e){var n;e=e||{};var r=e.skipTransform,i=e.relativeTo,a,s,u,c,f={x:1/0,y:1/0,width:0,height:0},h=this;(n=this.children)===null||n===void 0||n.forEach(function(w){if(w.visible()){var x=w.getClientRect({relativeTo:h,skipShadow:e.skipShadow,skipStroke:e.skipStroke});x.width===0&&x.height===0||(a===void 0?(a=x.x,s=x.y,u=x.x+x.width,c=x.y+x.height):(a=Math.min(a,x.x),s=Math.min(s,x.y),u=Math.max(u,x.x+x.width),c=Math.max(c,x.y+x.height)))}});for(var p=this.find("Shape"),g=!1,y=0;yt.indexOf("pointer")>=0?"pointer":t.indexOf("touch")>=0?"touch":"mouse",is=t=>{const e=iu(t);if(e==="pointer")return pe.pointerEventsEnabled&&Tm.pointer;if(e==="touch")return Tm.touch;if(e==="mouse")return Tm.mouse};function Tb(t={}){return(t.clipFunc||t.clipWidth||t.clipHeight)&&G.warn("Stage does not support clipping. Please use clip for Layers or Groups."),t}const ZF="Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);",yd=[];class tp extends qn{constructor(e){super(Tb(e)),this._pointerPositions=[],this._changedPointerPositions=[],this._buildDOM(),this._bindContentEvents(),yd.push(this),this.on("widthChange.konva heightChange.konva",this._resizeDOM),this.on("visibleChange.konva",this._checkVisibility),this.on("clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva",()=>{Tb(this.attrs)}),this._checkVisibility()}_validateAdd(e){const n=e.getType()==="Layer",r=e.getType()==="FastLayer";n||r||G.throw("You may only add layers to the stage.")}_checkVisibility(){if(!this.content)return;const e=this.visible()?"":"none";this.content.style.display=e}setContainer(e){if(typeof e===KF){if(e.charAt(0)==="."){var n=e.slice(1);e=document.getElementsByClassName(n)[0]}else{var r;e.charAt(0)!=="#"?r=e:r=e.slice(1),e=document.getElementById(r)}if(!e)throw"Can not find container in document with id "+r}return this._setAttr("container",e),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),e.appendChild(this.content)),this}shouldDrawHit(){return!0}clear(){var e=this.children,n=e.length,r;for(r=0;r-1&&yd.splice(n,1),G.releaseCanvas(this.bufferCanvas._canvas,this.bufferHitCanvas._canvas),this}getPointerPosition(){const e=this._pointerPositions[0]||this._changedPointerPositions[0];return e?{x:e.x,y:e.y}:(G.warn(ZF),null)}_getPointerById(e){return this._pointerPositions.find(n=>n.id===e)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(e){e=e||{},e.x=e.x||0,e.y=e.y||0,e.width=e.width||this.width(),e.height=e.height||this.height();var n=new Ts({width:e.width,height:e.height,pixelRatio:e.pixelRatio||1}),r=n.getContext()._context,i=this.children;return(e.x||e.y)&&r.translate(-1*e.x,-1*e.y),i.forEach(function(a){if(a.isVisible()){var s=a._toKonvaCanvas(e);r.drawImage(s._canvas,e.x,e.y,s.getWidth()/s.getPixelRatio(),s.getHeight()/s.getPixelRatio())}}),n}getIntersection(e){if(!e)return null;var n=this.children,r=n.length,i=r-1,a;for(a=i;a>=0;a--){const s=n[a].getIntersection(e);if(s)return s}return null}_resizeDOM(){var e=this.width(),n=this.height();this.content&&(this.content.style.width=e+Ob,this.content.style.height=n+Ob),this.bufferCanvas.setSize(e,n),this.bufferHitCanvas.setSize(e,n),this.children.forEach(r=>{r.setSize({width:e,height:n}),r.draw()})}add(e,...n){if(arguments.length>1){for(var r=0;rQF&&G.warn("The stage has "+i+" layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group."),e.setSize({width:this.width(),height:this.height()}),e.draw(),pe.isBrowser&&this.content.appendChild(e.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(e){return Uk(e,this)}setPointerCapture(e){jk(e,this)}releaseCapture(e){mu(e)}getLayers(){return this.children}_bindContentEvents(){pe.isBrowser&&JF.forEach(([e,n])=>{this.content.addEventListener(e,r=>{this[n](r)},{passive:!1})})}_pointerenter(e){this.setPointersPositions(e);const n=is(e.type);this._fire(n.pointerenter,{evt:e,target:this,currentTarget:this})}_pointerover(e){this.setPointersPositions(e);const n=is(e.type);this._fire(n.pointerover,{evt:e,target:this,currentTarget:this})}_getTargetShape(e){let n=this[e+"targetShape"];return n&&!n.getStage()&&(n=null),n}_pointerleave(e){const n=is(e.type),r=iu(e.type);if(n){this.setPointersPositions(e);var i=this._getTargetShape(r),a=!Ge.isDragging||pe.hitOnDragEnabled;i&&a?(i._fireAndBubble(n.pointerout,{evt:e}),i._fireAndBubble(n.pointerleave,{evt:e}),this._fire(n.pointerleave,{evt:e,target:this,currentTarget:this}),this[r+"targetShape"]=null):a&&(this._fire(n.pointerleave,{evt:e,target:this,currentTarget:this}),this._fire(n.pointerout,{evt:e,target:this,currentTarget:this})),this.pointerPos=void 0,this._pointerPositions=[]}}_pointerdown(e){const n=is(e.type),r=iu(e.type);if(n){this.setPointersPositions(e);var i=!1;this._changedPointerPositions.forEach(a=>{var s=this.getIntersection(a);if(Ge.justDragged=!1,pe["_"+r+"ListenClick"]=!0,!(s&&s.isListening()))return;pe.capturePointerEventsEnabled&&s.setPointerCapture(a.id),this[r+"ClickStartShape"]=s,s._fireAndBubble(n.pointerdown,{evt:e,pointerId:a.id}),i=!0;const c=e.type.indexOf("touch")>=0;s.preventDefault()&&e.cancelable&&c&&e.preventDefault()}),i||this._fire(n.pointerdown,{evt:e,target:this,currentTarget:this,pointerId:this._pointerPositions[0].id})}}_pointermove(e){const n=is(e.type),r=iu(e.type);if(!n)return;Ge.isDragging&&Ge.node.preventDefault()&&e.cancelable&&e.preventDefault(),this.setPointersPositions(e);var i=!Ge.isDragging||pe.hitOnDragEnabled;if(!i)return;var a={};let s=!1;var u=this._getTargetShape(r);this._changedPointerPositions.forEach(c=>{const f=Om(c.id)||this.getIntersection(c),h=c.id,p={evt:e,pointerId:h};var g=u!==f;if(g&&u&&(u._fireAndBubble(n.pointerout,Object.assign({},p),f),u._fireAndBubble(n.pointerleave,Object.assign({},p),f)),f){if(a[f._id])return;a[f._id]=!0}f&&f.isListening()?(s=!0,g&&(f._fireAndBubble(n.pointerover,Object.assign({},p),u),f._fireAndBubble(n.pointerenter,Object.assign({},p),u),this[r+"targetShape"]=f),f._fireAndBubble(n.pointermove,Object.assign({},p))):u&&(this._fire(n.pointerover,{evt:e,target:this,currentTarget:this,pointerId:h}),this[r+"targetShape"]=null)}),s||this._fire(n.pointermove,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(e){const n=is(e.type),r=iu(e.type);if(!n)return;this.setPointersPositions(e);const i=this[r+"ClickStartShape"],a=this[r+"ClickEndShape"];var s={};let u=!1;this._changedPointerPositions.forEach(c=>{const f=Om(c.id)||this.getIntersection(c);if(f){if(f.releaseCapture(c.id),s[f._id])return;s[f._id]=!0}const h=c.id,p={evt:e,pointerId:h};let g=!1;pe["_"+r+"InDblClickWindow"]?(g=!0,clearTimeout(this[r+"DblTimeout"])):Ge.justDragged||(pe["_"+r+"InDblClickWindow"]=!0,clearTimeout(this[r+"DblTimeout"])),this[r+"DblTimeout"]=setTimeout(function(){pe["_"+r+"InDblClickWindow"]=!1},pe.dblClickWindow),f&&f.isListening()?(u=!0,this[r+"ClickEndShape"]=f,f._fireAndBubble(n.pointerup,Object.assign({},p)),pe["_"+r+"ListenClick"]&&i&&i===f&&(f._fireAndBubble(n.pointerclick,Object.assign({},p)),g&&a&&a===f&&f._fireAndBubble(n.pointerdblclick,Object.assign({},p)))):(this[r+"ClickEndShape"]=null,pe["_"+r+"ListenClick"]&&this._fire(n.pointerclick,{evt:e,target:this,currentTarget:this,pointerId:h}),g&&this._fire(n.pointerdblclick,{evt:e,target:this,currentTarget:this,pointerId:h}))}),u||this._fire(n.pointerup,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),pe["_"+r+"ListenClick"]=!1,e.cancelable&&r!=="touch"&&e.preventDefault()}_contextmenu(e){this.setPointersPositions(e);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(ny,{evt:e}):this._fire(ny,{evt:e,target:this,currentTarget:this})}_wheel(e){this.setPointersPositions(e);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(ry,{evt:e}):this._fire(ry,{evt:e,target:this,currentTarget:this})}_pointercancel(e){this.setPointersPositions(e);const n=Om(e.pointerId)||this.getIntersection(this.getPointerPosition());n&&n._fireAndBubble(Ss,M0(e)),mu(e.pointerId)}_lostpointercapture(e){mu(e.pointerId)}setPointersPositions(e){var n=this._getContentPosition(),r=null,i=null;e=e||window.event,e.touches!==void 0?(this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(e.touches,a=>{this._pointerPositions.push({id:a.identifier,x:(a.clientX-n.left)/n.scaleX,y:(a.clientY-n.top)/n.scaleY})}),Array.prototype.forEach.call(e.changedTouches||e.touches,a=>{this._changedPointerPositions.push({id:a.identifier,x:(a.clientX-n.left)/n.scaleX,y:(a.clientY-n.top)/n.scaleY})})):(r=(e.clientX-n.left)/n.scaleX,i=(e.clientY-n.top)/n.scaleY,this.pointerPos={x:r,y:i},this._pointerPositions=[{x:r,y:i,id:G._getFirstPointerId(e)}],this._changedPointerPositions=[{x:r,y:i,id:G._getFirstPointerId(e)}])}_setPointerPosition(e){G.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.'),this.setPointersPositions(e)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};var e=this.content.getBoundingClientRect();return{top:e.top,left:e.left,scaleX:e.width/this.content.clientWidth||1,scaleY:e.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferCanvas=new Ts({width:this.width(),height:this.height()}),this.bufferHitCanvas=new L0({pixelRatio:1,width:this.width(),height:this.height()}),!!pe.isBrowser){var e=this.container();if(!e)throw"Stage has no container. A container is required.";e.innerHTML="",this.content=document.createElement("div"),this.content.style.position="relative",this.content.style.userSelect="none",this.content.className="konvajs-content",this.content.setAttribute("role","presentation"),e.appendChild(this.content),this._resizeDOM()}}cache(){return G.warn("Cache function is not allowed for stage. You may use cache only for layers, groups and shapes."),this}clearCache(){return this}batchDraw(){return this.getChildren().forEach(function(e){e.batchDraw()}),this}}tp.prototype.nodeType=qF;yt(tp);A.addGetterSetter(tp,"container");var eP="hasShadow",tP="shadowRGBA",nP="patternImage",rP="linearGradient",iP="radialGradient";let Gf;function Rm(){return Gf||(Gf=G.createCanvasElement().getContext("2d"),Gf)}const vu={};function e$(t){t.fill()}function t$(t){t.stroke()}function n$(t){t.fill()}function r$(t){t.stroke()}function i$(){this._clearCache(eP)}function a$(){this._clearCache(tP)}function o$(){this._clearCache(nP)}function s$(){this._clearCache(rP)}function l$(){this._clearCache(iP)}class re extends se{constructor(e){super(e);let n;for(;n=G.getRandomColor(),!(n&&!(n in vu)););this.colorKey=n,vu[n]=this}getContext(){return G.warn("shape.getContext() method is deprecated. Please do not use it."),this.getLayer().getContext()}getCanvas(){return G.warn("shape.getCanvas() method is deprecated. Please do not use it."),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(eP,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(nP,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){var e=Rm();const n=e.createPattern(this.fillPatternImage(),this.fillPatternRepeat()||"repeat");if(n&&n.setTransform){const r=new Wn;r.translate(this.fillPatternX(),this.fillPatternY()),r.rotate(pe.getAngle(this.fillPatternRotation())),r.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),r.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());const i=r.getMatrix(),a=typeof DOMMatrix>"u"?{a:i[0],b:i[1],c:i[2],d:i[3],e:i[4],f:i[5]}:new DOMMatrix(i);n.setTransform(a)}return n}}_getLinearGradient(){return this._getCache(rP,this.__getLinearGradient)}__getLinearGradient(){var e=this.fillLinearGradientColorStops();if(e){for(var n=Rm(),r=this.fillLinearGradientStartPoint(),i=this.fillLinearGradientEndPoint(),a=n.createLinearGradient(r.x,r.y,i.x,i.y),s=0;sthis.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate("hasStroke",["strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops"],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){const e=this.hitStrokeWidth();return e==="auto"?this.hasStroke():this.strokeEnabled()&&!!e}intersects(e){var n=this.getStage(),r=n.bufferHitCanvas,i;return r.getContext().clear(),this.drawHit(r,null,!0),i=r.context.getImageData(Math.round(e.x),Math.round(e.y),1,1).data,i[3]>0}destroy(){return se.prototype.destroy.call(this),delete vu[this.colorKey],delete this.colorKey,this}_useBufferCanvas(e){var n;if(!this.getStage()||!((n=this.attrs.perfectDrawEnabled)!==null&&n!==void 0?n:!0))return!1;const i=e||this.hasFill(),a=this.hasStroke(),s=this.getAbsoluteOpacity()!==1;if(i&&a&&s)return!0;const u=this.hasShadow(),c=this.shadowForStrokeEnabled();return!!(i&&a&&u&&c)}setStrokeHitEnabled(e){G.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."),e?this.hitStrokeWidth("auto"):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){var e=this.size();return{x:this._centroid?-e.width/2:0,y:this._centroid?-e.height/2:0,width:e.width,height:e.height}}getClientRect(e={}){const n=e.skipTransform,r=e.relativeTo,i=this.getSelfRect(),s=!e.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,u=i.width+s,c=i.height+s,f=!e.skipShadow&&this.hasShadow(),h=f?this.shadowOffsetX():0,p=f?this.shadowOffsetY():0,g=u+Math.abs(h),y=c+Math.abs(p),v=f&&this.shadowBlur()||0,w=g+v*2,x=y+v*2,_={width:w,height:x,x:-(s/2+v)+Math.min(h,0)+i.x,y:-(s/2+v)+Math.min(p,0)+i.y};return n?_:this._transformedRect(_,r)}drawScene(e,n){var r=this.getLayer(),i=e||r.getCanvas(),a=i.getContext(),s=this._getCanvasCache(),u=this.getSceneFunc(),c=this.hasShadow(),f,h,p,g=i.isCache,y=n===this;if(!this.isVisible()&&!y)return this;if(s){a.save();var v=this.getAbsoluteTransform(n).getMatrix();return a.transform(v[0],v[1],v[2],v[3],v[4],v[5]),this._drawCachedSceneCanvas(a),a.restore(),this}if(!u)return this;if(a.save(),this._useBufferCanvas()&&!g){f=this.getStage(),h=f.bufferCanvas,p=h.getContext(),p.clear(),p.save(),p._applyLineJoin(this);var w=this.getAbsoluteTransform(n).getMatrix();p.transform(w[0],w[1],w[2],w[3],w[4],w[5]),u.call(this,p,this),p.restore();var x=h.pixelRatio;c&&a._applyShadow(this),a._applyOpacity(this),a._applyGlobalCompositeOperation(this),a.drawImage(h._canvas,0,0,h.width/x,h.height/x)}else{if(a._applyLineJoin(this),!y){var w=this.getAbsoluteTransform(n).getMatrix();a.transform(w[0],w[1],w[2],w[3],w[4],w[5]),a._applyOpacity(this),a._applyGlobalCompositeOperation(this)}c&&a._applyShadow(this),u.call(this,a,this)}return a.restore(),this}drawHit(e,n,r=!1){if(!this.shouldDrawHit(n,r))return this;var i=this.getLayer(),a=e||i.hitCanvas,s=a&&a.getContext(),u=this.hitFunc()||this.sceneFunc(),c=this._getCanvasCache(),f=c&&c.hit;if(this.colorKey||G.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"),f){s.save();var h=this.getAbsoluteTransform(n).getMatrix();return s.transform(h[0],h[1],h[2],h[3],h[4],h[5]),this._drawCachedHitCanvas(s),s.restore(),this}if(!u)return this;if(s.save(),s._applyLineJoin(this),!(this===n)){var g=this.getAbsoluteTransform(n).getMatrix();s.transform(g[0],g[1],g[2],g[3],g[4],g[5])}return u.call(this,s,this),s.restore(),this}drawHitFromCache(e=0){var n=this._getCanvasCache(),r=this._getCachedSceneCanvas(),i=n.hit,a=i.getContext(),s=i.getWidth(),u=i.getHeight(),c,f,h,p,g,y;a.clear(),a.drawImage(r._canvas,0,0,s,u);try{for(c=a.getImageData(0,0,s,u),f=c.data,h=f.length,p=G._hexToRgb(this.colorKey),g=0;ge?(f[g]=p.r,f[g+1]=p.g,f[g+2]=p.b,f[g+3]=255):f[g+3]=0;a.putImageData(c,0,0)}catch(v){G.error("Unable to draw hit graph from cached scene canvas. "+v.message)}return this}hasPointerCapture(e){return Uk(e,this)}setPointerCapture(e){jk(e,this)}releaseCapture(e){mu(e)}}re.prototype._fillFunc=e$;re.prototype._strokeFunc=t$;re.prototype._fillFuncHit=n$;re.prototype._strokeFuncHit=r$;re.prototype._centroid=!1;re.prototype.nodeType="Shape";yt(re);re.prototype.eventListeners={};re.prototype.on.call(re.prototype,"shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",i$);re.prototype.on.call(re.prototype,"shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",a$);re.prototype.on.call(re.prototype,"fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva",o$);re.prototype.on.call(re.prototype,"fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva",s$);re.prototype.on.call(re.prototype,"fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva",l$);A.addGetterSetter(re,"stroke",void 0,zk());A.addGetterSetter(re,"strokeWidth",2,le());A.addGetterSetter(re,"fillAfterStrokeEnabled",!1);A.addGetterSetter(re,"hitStrokeWidth","auto",I0());A.addGetterSetter(re,"strokeHitEnabled",!0,jr());A.addGetterSetter(re,"perfectDrawEnabled",!0,jr());A.addGetterSetter(re,"shadowForStrokeEnabled",!0,jr());A.addGetterSetter(re,"lineJoin");A.addGetterSetter(re,"lineCap");A.addGetterSetter(re,"sceneFunc");A.addGetterSetter(re,"hitFunc");A.addGetterSetter(re,"dash");A.addGetterSetter(re,"dashOffset",0,le());A.addGetterSetter(re,"shadowColor",void 0,qs());A.addGetterSetter(re,"shadowBlur",0,le());A.addGetterSetter(re,"shadowOpacity",1,le());A.addComponentsGetterSetter(re,"shadowOffset",["x","y"]);A.addGetterSetter(re,"shadowOffsetX",0,le());A.addGetterSetter(re,"shadowOffsetY",0,le());A.addGetterSetter(re,"fillPatternImage");A.addGetterSetter(re,"fill",void 0,zk());A.addGetterSetter(re,"fillPatternX",0,le());A.addGetterSetter(re,"fillPatternY",0,le());A.addGetterSetter(re,"fillLinearGradientColorStops");A.addGetterSetter(re,"strokeLinearGradientColorStops");A.addGetterSetter(re,"fillRadialGradientStartRadius",0);A.addGetterSetter(re,"fillRadialGradientEndRadius",0);A.addGetterSetter(re,"fillRadialGradientColorStops");A.addGetterSetter(re,"fillPatternRepeat","repeat");A.addGetterSetter(re,"fillEnabled",!0);A.addGetterSetter(re,"strokeEnabled",!0);A.addGetterSetter(re,"shadowEnabled",!0);A.addGetterSetter(re,"dashEnabled",!0);A.addGetterSetter(re,"strokeScaleEnabled",!0);A.addGetterSetter(re,"fillPriority","color");A.addComponentsGetterSetter(re,"fillPatternOffset",["x","y"]);A.addGetterSetter(re,"fillPatternOffsetX",0,le());A.addGetterSetter(re,"fillPatternOffsetY",0,le());A.addComponentsGetterSetter(re,"fillPatternScale",["x","y"]);A.addGetterSetter(re,"fillPatternScaleX",1,le());A.addGetterSetter(re,"fillPatternScaleY",1,le());A.addComponentsGetterSetter(re,"fillLinearGradientStartPoint",["x","y"]);A.addComponentsGetterSetter(re,"strokeLinearGradientStartPoint",["x","y"]);A.addGetterSetter(re,"fillLinearGradientStartPointX",0);A.addGetterSetter(re,"strokeLinearGradientStartPointX",0);A.addGetterSetter(re,"fillLinearGradientStartPointY",0);A.addGetterSetter(re,"strokeLinearGradientStartPointY",0);A.addComponentsGetterSetter(re,"fillLinearGradientEndPoint",["x","y"]);A.addComponentsGetterSetter(re,"strokeLinearGradientEndPoint",["x","y"]);A.addGetterSetter(re,"fillLinearGradientEndPointX",0);A.addGetterSetter(re,"strokeLinearGradientEndPointX",0);A.addGetterSetter(re,"fillLinearGradientEndPointY",0);A.addGetterSetter(re,"strokeLinearGradientEndPointY",0);A.addComponentsGetterSetter(re,"fillRadialGradientStartPoint",["x","y"]);A.addGetterSetter(re,"fillRadialGradientStartPointX",0);A.addGetterSetter(re,"fillRadialGradientStartPointY",0);A.addComponentsGetterSetter(re,"fillRadialGradientEndPoint",["x","y"]);A.addGetterSetter(re,"fillRadialGradientEndPointX",0);A.addGetterSetter(re,"fillRadialGradientEndPointY",0);A.addGetterSetter(re,"fillPatternRotation",0);A.backCompat(re,{dashArray:"dash",getDashArray:"getDash",setDashArray:"getDash",drawFunc:"sceneFunc",getDrawFunc:"getSceneFunc",setDrawFunc:"setSceneFunc",drawHitFunc:"hitFunc",getDrawHitFunc:"getHitFunc",setDrawHitFunc:"setHitFunc"});var u$="#",c$="beforeDraw",f$="draw",aP=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],d$=aP.length;class yo extends qn{constructor(e){super(e),this.canvas=new Ts,this.hitCanvas=new L0({pixelRatio:1}),this._waitingForDraw=!1,this.on("visibleChange.konva",this._checkVisibility),this._checkVisibility(),this.on("imageSmoothingEnabledChange.konva",this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(e){return this.getContext().clear(e),this.getHitCanvas().getContext().clear(e),this}setZIndex(e){super.setZIndex(e);var n=this.getStage();return n&&n.content&&(n.content.removeChild(this.getNativeCanvasElement()),e{this.draw(),this._waitingForDraw=!1})),this}getIntersection(e){if(!this.isListening()||!this.isVisible())return null;for(var n=1,r=!1;;){for(let i=0;i0)return{antialiased:!0};return{}}drawScene(e,n){var r=this.getLayer(),i=e||r&&r.getCanvas();return this._fire(c$,{node:this}),this.clearBeforeDraw()&&i.getContext().clear(),qn.prototype.drawScene.call(this,i,n),this._fire(f$,{node:this}),this}drawHit(e,n){var r=this.getLayer(),i=e||r&&r.hitCanvas;return r&&r.clearBeforeDraw()&&r.getHitCanvas().getContext().clear(),qn.prototype.drawHit.call(this,i,n),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(e){G.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening(e)}getHitGraphEnabled(e){return G.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening()}toggleHitCanvas(){if(!(!this.parent||!this.parent.content)){var e=this.parent,n=!!this.hitCanvas._canvas.parentNode;n?e.content.removeChild(this.hitCanvas._canvas):e.content.appendChild(this.hitCanvas._canvas)}}destroy(){return G.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}}yo.prototype.nodeType="Layer";yt(yo);A.addGetterSetter(yo,"imageSmoothingEnabled",!0);A.addGetterSetter(yo,"clearBeforeDraw",!0);A.addGetterSetter(yo,"hitGraphEnabled",!0,jr());class D0 extends yo{constructor(e){super(e),this.listening(!1),G.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.')}}D0.prototype.nodeType="FastLayer";yt(D0);class zs extends qn{_validateAdd(e){var n=e.getType();n!=="Group"&&n!=="Shape"&&G.throw("You may only add groups and shapes to groups.")}}zs.prototype.nodeType="Group";yt(zs);var Am=function(){return Os.performance&&Os.performance.now?function(){return Os.performance.now()}:function(){return new Date().getTime()}}();class dr{constructor(e,n){this.id=dr.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:Am(),frameRate:0},this.func=e,this.setLayers(n)}setLayers(e){var n=[];return e?e.length>0?n=e:n=[e]:n=[],this.layers=n,this}getLayers(){return this.layers}addLayer(e){var n=this.layers,r=n.length,i;for(i=0;ithis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():e<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=e,this.update())}getTime(){return this._time}setPosition(e){this.prevPos=this._pos,this.propFunc(e),this._pos=e}getPosition(e){return e===void 0&&(e=this._time),this.func(e,this.begin,this._change,this.duration)}play(){this.state=Rb,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onPlay")}reverse(){this.state=Ab,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onReverse")}seek(e){this.pause(),this._time=e,this.update(),this.fire("onSeek")}reset(){this.pause(),this._time=0,this.update(),this.fire("onReset")}finish(){this.pause(),this._time=this.duration,this.update(),this.fire("onFinish")}update(){this.setPosition(this.getPosition(this._time)),this.fire("onUpdate")}onEnterFrame(){var e=this.getTimer()-this._startTime;this.state===Rb?this.setTime(e):this.state===Ab&&this.setTime(this.duration-e)}pause(){this.state=p$,this.fire("onPause")}getTimer(){return new Date().getTime()}}class kt{constructor(e){var n=this,r=e.node,i=r._id,a,s=e.easing||yu.Linear,u=!!e.yoyo,c;typeof e.duration>"u"?a=.3:e.duration===0?a=.001:a=e.duration,this.node=r,this._id=g$++;var f=r.getLayer()||(r instanceof pe.Stage?r.getLayers():null);f||G.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new dr(function(){n.tween.onEnterFrame()},f),this.tween=new m$(c,function(h){n._tweenFunc(h)},s,0,1,a*1e3,u),this._addListeners(),kt.attrs[i]||(kt.attrs[i]={}),kt.attrs[i][this._id]||(kt.attrs[i][this._id]={}),kt.tweens[i]||(kt.tweens[i]={});for(c in e)h$[c]===void 0&&this._addAttr(c,e[c]);this.reset(),this.onFinish=e.onFinish,this.onReset=e.onReset,this.onUpdate=e.onUpdate}_addAttr(e,n){var r=this.node,i=r._id,a,s,u,c,f,h,p,g;if(u=kt.tweens[i][e],u&&delete kt.attrs[i][u][e],a=r.getAttr(e),G._isArray(n))if(s=[],f=Math.max(n.length,a.length),e==="points"&&n.length!==a.length&&(n.length>a.length?(p=a,a=G._prepareArrayForTween(a,n,r.closed())):(h=n,n=G._prepareArrayForTween(n,a,r.closed()))),e.indexOf("fill")===0)for(c=0;c{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{var e=this.node,n=kt.attrs[e._id][this._id];n.points&&n.points.trueEnd&&e.setAttr("points",n.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{var e=this.node,n=kt.attrs[e._id][this._id];n.points&&n.points.trueStart&&e.points(n.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(e){return this.tween.seek(e*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){var e=this.node._id,n=this._id,r=kt.tweens[e],i;this.pause();for(i in r)delete kt.tweens[e][i];delete kt.attrs[e][n]}}kt.attrs={};kt.tweens={};se.prototype.to=function(t){var e=t.onFinish;t.node=this,t.onFinish=function(){this.destroy(),e&&e()};var n=new kt(t);n.play()};const yu={BackEaseIn(t,e,n,r){var i=1.70158;return n*(t/=r)*t*((i+1)*t-i)+e},BackEaseOut(t,e,n,r){var i=1.70158;return n*((t=t/r-1)*t*((i+1)*t+i)+1)+e},BackEaseInOut(t,e,n,r){var i=1.70158;return(t/=r/2)<1?n/2*(t*t*(((i*=1.525)+1)*t-i))+e:n/2*((t-=2)*t*(((i*=1.525)+1)*t+i)+2)+e},ElasticEaseIn(t,e,n,r,i,a){var s=0;return t===0?e:(t/=r)===1?e+n:(a||(a=r*.3),!i||i0?e:n),h=s*n,p=u*(u>0?e:n),g=c*(c>0?n:e);return{x:f,y:r?-1*g:p,width:h-f,height:g-p}}}Hi.prototype._centroid=!0;Hi.prototype.className="Arc";Hi.prototype._attrsAffectingSize=["innerRadius","outerRadius"];yt(Hi);A.addGetterSetter(Hi,"innerRadius",0,le());A.addGetterSetter(Hi,"outerRadius",0,le());A.addGetterSetter(Hi,"angle",0,le());A.addGetterSetter(Hi,"clockwise",!1,jr());function iy(t,e,n,r,i,a,s){var u=Math.sqrt(Math.pow(n-t,2)+Math.pow(r-e,2)),c=Math.sqrt(Math.pow(i-n,2)+Math.pow(a-r,2)),f=s*u/(u+c),h=s*c/(u+c),p=n-f*(i-t),g=r-f*(a-e),y=n+h*(i-t),v=r+h*(a-e);return[p,g,y,v]}function Mb(t,e){var n=t.length,r=[],i,a;for(i=2;i4){for(u=this.getTensionPoints(),c=u.length,f=a?0:4,a||e.quadraticCurveTo(u[0],u[1],u[2],u[3]);fh?f:h,x=f>h?1:f/h,_=f>h?h/f:1;e.translate(u,c),e.rotate(y),e.scale(x,_),e.arc(0,0,w,p,p+g,1-v),e.scale(1/x,1/_),e.rotate(-y),e.translate(-u,-c);break;case"z":r=!0,e.closePath();break}}!r&&!this.hasFill()?e.strokeShape(this):e.fillStrokeShape(this)}getSelfRect(){var e=[];this.dataArray.forEach(function(f){if(f.command==="A"){var h=f.points[4],p=f.points[5],g=f.points[4]+p,y=Math.PI/180;if(Math.abs(h-g)g;v-=y){const w=tt.getPointOnEllipticalArc(f.points[0],f.points[1],f.points[2],f.points[3],v,0);e.push(w.x,w.y)}else for(let v=h+y;vthis.dataArray[r].pathLength;)e-=this.dataArray[r].pathLength,++r;if(r===i)return n=this.dataArray[r-1].points.slice(-2),{x:n[0],y:n[1]};if(e<.01)return n=this.dataArray[r].points.slice(0,2),{x:n[0],y:n[1]};var a=this.dataArray[r],s=a.points;switch(a.command){case"L":return tt.getPointOnLine(e,a.start.x,a.start.y,s[0],s[1]);case"C":return tt.getPointOnCubicBezier(e/a.pathLength,a.start.x,a.start.y,s[0],s[1],s[2],s[3],s[4],s[5]);case"Q":return tt.getPointOnQuadraticBezier(e/a.pathLength,a.start.x,a.start.y,s[0],s[1],s[2],s[3]);case"A":var u=s[0],c=s[1],f=s[2],h=s[3],p=s[4],g=s[5],y=s[6];return p+=g*e/a.pathLength,tt.getPointOnEllipticalArc(u,c,f,h,p,y)}return null}static getLineLength(e,n,r,i){return Math.sqrt((r-e)*(r-e)+(i-n)*(i-n))}static getPointOnLine(e,n,r,i,a,s,u){s===void 0&&(s=n),u===void 0&&(u=r);var c=(a-r)/(i-n+1e-8),f=Math.sqrt(e*e/(1+c*c));i0&&!isNaN(v[0]);){var S=null,C=[],O=c,I=f,L,D,U,X,K,te,ce,j,T,$;switch(y){case"l":c+=v.shift(),f+=v.shift(),S="L",C.push(c,f);break;case"L":c=v.shift(),f=v.shift(),C.push(c,f);break;case"m":var V=v.shift(),ie=v.shift();if(c+=V,f+=ie,S="M",s.length>2&&s[s.length-1].command==="z"){for(var W=s.length-2;W>=0;W--)if(s[W].command==="M"){c=s[W].points[0]+V,f=s[W].points[1]+ie;break}}C.push(c,f),y="l";break;case"M":c=v.shift(),f=v.shift(),S="M",C.push(c,f),y="L";break;case"h":c+=v.shift(),S="L",C.push(c,f);break;case"H":c=v.shift(),S="L",C.push(c,f);break;case"v":f+=v.shift(),S="L",C.push(c,f);break;case"V":f=v.shift(),S="L",C.push(c,f);break;case"C":C.push(v.shift(),v.shift(),v.shift(),v.shift()),c=v.shift(),f=v.shift(),C.push(c,f);break;case"c":C.push(c+v.shift(),f+v.shift(),c+v.shift(),f+v.shift()),c+=v.shift(),f+=v.shift(),S="C",C.push(c,f);break;case"S":D=c,U=f,L=s[s.length-1],L.command==="C"&&(D=c+(c-L.points[2]),U=f+(f-L.points[3])),C.push(D,U,v.shift(),v.shift()),c=v.shift(),f=v.shift(),S="C",C.push(c,f);break;case"s":D=c,U=f,L=s[s.length-1],L.command==="C"&&(D=c+(c-L.points[2]),U=f+(f-L.points[3])),C.push(D,U,c+v.shift(),f+v.shift()),c+=v.shift(),f+=v.shift(),S="C",C.push(c,f);break;case"Q":C.push(v.shift(),v.shift()),c=v.shift(),f=v.shift(),C.push(c,f);break;case"q":C.push(c+v.shift(),f+v.shift()),c+=v.shift(),f+=v.shift(),S="Q",C.push(c,f);break;case"T":D=c,U=f,L=s[s.length-1],L.command==="Q"&&(D=c+(c-L.points[0]),U=f+(f-L.points[1])),c=v.shift(),f=v.shift(),S="Q",C.push(D,U,c,f);break;case"t":D=c,U=f,L=s[s.length-1],L.command==="Q"&&(D=c+(c-L.points[0]),U=f+(f-L.points[1])),c+=v.shift(),f+=v.shift(),S="Q",C.push(D,U,c,f);break;case"A":X=v.shift(),K=v.shift(),te=v.shift(),ce=v.shift(),j=v.shift(),T=c,$=f,c=v.shift(),f=v.shift(),S="A",C=this.convertEndpointToCenterParameterization(T,$,c,f,ce,j,X,K,te);break;case"a":X=v.shift(),K=v.shift(),te=v.shift(),ce=v.shift(),j=v.shift(),T=c,$=f,c+=v.shift(),f+=v.shift(),S="A",C=this.convertEndpointToCenterParameterization(T,$,c,f,ce,j,X,K,te);break}s.push({command:S||y,points:C,start:{x:O,y:I},pathLength:this.calcLength(O,I,S||y,C)})}(y==="z"||y==="Z")&&s.push({command:"z",points:[],start:void 0,pathLength:0})}return s}static calcLength(e,n,r,i){var a,s,u,c,f=tt;switch(r){case"L":return f.getLineLength(e,n,i[0],i[1]);case"C":for(a=0,s=f.getPointOnCubicBezier(0,e,n,i[0],i[1],i[2],i[3],i[4],i[5]),c=.01;c<=1;c+=.01)u=f.getPointOnCubicBezier(c,e,n,i[0],i[1],i[2],i[3],i[4],i[5]),a+=f.getLineLength(s.x,s.y,u.x,u.y),s=u;return a;case"Q":for(a=0,s=f.getPointOnQuadraticBezier(0,e,n,i[0],i[1],i[2],i[3]),c=.01;c<=1;c+=.01)u=f.getPointOnQuadraticBezier(c,e,n,i[0],i[1],i[2],i[3]),a+=f.getLineLength(s.x,s.y,u.x,u.y),s=u;return a;case"A":a=0;var h=i[4],p=i[5],g=i[4]+p,y=Math.PI/180;if(Math.abs(h-g)g;c-=y)u=f.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],c,0),a+=f.getLineLength(s.x,s.y,u.x,u.y),s=u;else for(c=h+y;c1&&(u*=Math.sqrt(y),c*=Math.sqrt(y));var v=Math.sqrt((u*u*(c*c)-u*u*(g*g)-c*c*(p*p))/(u*u*(g*g)+c*c*(p*p)));a===s&&(v*=-1),isNaN(v)&&(v=0);var w=v*u*g/c,x=v*-c*p/u,_=(e+r)/2+Math.cos(h)*w-Math.sin(h)*x,S=(n+i)/2+Math.sin(h)*w+Math.cos(h)*x,C=function(K){return Math.sqrt(K[0]*K[0]+K[1]*K[1])},O=function(K,te){return(K[0]*te[0]+K[1]*te[1])/(C(K)*C(te))},I=function(K,te){return(K[0]*te[1]=1&&(X=0),s===0&&X>0&&(X=X-2*Math.PI),s===1&&X<0&&(X=X+2*Math.PI),[_,S,u,c,L,X,h,s]}}tt.prototype.className="Path";tt.prototype._attrsAffectingSize=["data"];yt(tt);A.addGetterSetter(tt,"data");class So extends Vi{_sceneFunc(e){super._sceneFunc(e);var n=Math.PI*2,r=this.points(),i=r,a=this.tension()!==0&&r.length>4;a&&(i=this.getTensionPoints());var s=this.pointerLength(),u=r.length,c,f;if(a){const g=[i[i.length-4],i[i.length-3],i[i.length-2],i[i.length-1],r[u-2],r[u-1]],y=tt.calcLength(i[i.length-4],i[i.length-3],"C",g),v=tt.getPointOnQuadraticBezier(Math.min(1,1-s/y),g[0],g[1],g[2],g[3],g[4],g[5]);c=r[u-2]-v.x,f=r[u-1]-v.y}else c=r[u-2]-r[u-4],f=r[u-1]-r[u-3];var h=(Math.atan2(f,c)+n)%n,p=this.pointerWidth();this.pointerAtEnding()&&(e.save(),e.beginPath(),e.translate(r[u-2],r[u-1]),e.rotate(h),e.moveTo(0,0),e.lineTo(-s,p/2),e.lineTo(-s,-p/2),e.closePath(),e.restore(),this.__fillStroke(e)),this.pointerAtBeginning()&&(e.save(),e.beginPath(),e.translate(r[0],r[1]),a?(c=(i[0]+i[2])/2-r[0],f=(i[1]+i[3])/2-r[1]):(c=r[2]-r[0],f=r[3]-r[1]),e.rotate((Math.atan2(-f,-c)+n)%n),e.moveTo(0,0),e.lineTo(-s,p/2),e.lineTo(-s,-p/2),e.closePath(),e.restore(),this.__fillStroke(e))}__fillStroke(e){var n=this.dashEnabled();n&&(this.attrs.dashEnabled=!1,e.setLineDash([])),e.fillStrokeShape(this),n&&(this.attrs.dashEnabled=!0)}getSelfRect(){const e=super.getSelfRect(),n=this.pointerWidth()/2;return{x:e.x-n,y:e.y-n,width:e.width+n*2,height:e.height+n*2}}}So.prototype.className="Arrow";yt(So);A.addGetterSetter(So,"pointerLength",10,le());A.addGetterSetter(So,"pointerWidth",10,le());A.addGetterSetter(So,"pointerAtBeginning",!1);A.addGetterSetter(So,"pointerAtEnding",!0);class Ks extends re{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius()!==e/2&&this.radius(e/2)}setHeight(e){this.radius()!==e/2&&this.radius(e/2)}}Ks.prototype._centroid=!0;Ks.prototype.className="Circle";Ks.prototype._attrsAffectingSize=["radius"];yt(Ks);A.addGetterSetter(Ks,"radius",0,le());class Na extends re{_sceneFunc(e){var n=this.radiusX(),r=this.radiusY();e.beginPath(),e.save(),n!==r&&e.scale(1,r/n),e.arc(0,0,n,0,Math.PI*2,!1),e.restore(),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(e){this.radiusX(e/2)}setHeight(e){this.radiusY(e/2)}}Na.prototype.className="Ellipse";Na.prototype._centroid=!0;Na.prototype._attrsAffectingSize=["radiusX","radiusY"];yt(Na);A.addComponentsGetterSetter(Na,"radius",["x","y"]);A.addGetterSetter(Na,"radiusX",0,le());A.addGetterSetter(Na,"radiusY",0,le());let hi=class oP extends re{constructor(e){super(e),this.on("imageChange.konva",()=>{this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){const e=this.image();e&&e.complete||e&&e.readyState===4||e&&e.addEventListener&&e.addEventListener("load",()=>{this._requestDraw()})}_useBufferCanvas(){return super._useBufferCanvas(!0)}_sceneFunc(e){const n=this.getWidth(),r=this.getHeight(),i=this.cornerRadius(),a=this.attrs.image;let s;if(a){const u=this.attrs.cropWidth,c=this.attrs.cropHeight;u&&c?s=[a,this.cropX(),this.cropY(),u,c,0,0,n,r]:s=[a,0,0,n,r]}(this.hasFill()||this.hasStroke()||i)&&(e.beginPath(),i?G.drawRoundedRectPath(e,n,r,i):e.rect(0,0,n,r),e.closePath(),e.fillStrokeShape(this)),a&&(i&&e.clip(),e.drawImage.apply(e,s))}_hitFunc(e){var n=this.width(),r=this.height(),i=this.cornerRadius();e.beginPath(),i?G.drawRoundedRectPath(e,n,r,i):e.rect(0,0,n,r),e.closePath(),e.fillStrokeShape(this)}getWidth(){var e,n;return(e=this.attrs.width)!==null&&e!==void 0?e:(n=this.image())===null||n===void 0?void 0:n.width}getHeight(){var e,n;return(e=this.attrs.height)!==null&&e!==void 0?e:(n=this.image())===null||n===void 0?void 0:n.height}static fromURL(e,n,r=null){var i=G.createImageElement();i.onload=function(){var a=new oP({image:i});n(a)},i.onerror=r,i.crossOrigin="Anonymous",i.src=e}};hi.prototype.className="Image";yt(hi);A.addGetterSetter(hi,"cornerRadius",0,A0(4));A.addGetterSetter(hi,"image");A.addComponentsGetterSetter(hi,"crop",["x","y","width","height"]);A.addGetterSetter(hi,"cropX",0,le());A.addGetterSetter(hi,"cropY",0,le());A.addGetterSetter(hi,"cropWidth",0,le());A.addGetterSetter(hi,"cropHeight",0,le());var sP=["fontFamily","fontSize","fontStyle","padding","lineHeight","text","width","height","pointerDirection","pointerWidth","pointerHeight"],v$="Change.konva",y$="none",ay="up",oy="right",sy="down",ly="left",S$=sP.length;class N0 extends zs{constructor(e){super(e),this.on("add.konva",function(n){this._addListeners(n.child),this._sync()})}getText(){return this.find("Text")[0]}getTag(){return this.find("Tag")[0]}_addListeners(e){var n=this,r,i=function(){n._sync()};for(r=0;r{n=Math.min(n,s.x),r=Math.max(r,s.x),i=Math.min(i,s.y),a=Math.max(a,s.y)}),{x:n,y:i,width:r-n,height:a-i}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}}wo.prototype.className="RegularPolygon";wo.prototype._centroid=!0;wo.prototype._attrsAffectingSize=["radius"];yt(wo);A.addGetterSetter(wo,"radius",0,le());A.addGetterSetter(wo,"sides",0,le());var Db=Math.PI*2;class bo extends re{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.innerRadius(),0,Db,!1),e.moveTo(this.outerRadius(),0),e.arc(0,0,this.outerRadius(),Db,0,!0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(e){this.outerRadius(e/2)}setHeight(e){this.outerRadius(e/2)}}bo.prototype.className="Ring";bo.prototype._centroid=!0;bo.prototype._attrsAffectingSize=["innerRadius","outerRadius"];yt(bo);A.addGetterSetter(bo,"innerRadius",0,le());A.addGetterSetter(bo,"outerRadius",0,le());class pi extends re{constructor(e){super(e),this._updated=!0,this.anim=new dr(()=>{var n=this._updated;return this._updated=!1,n}),this.on("animationChange.konva",function(){this.frameIndex(0)}),this.on("frameIndexChange.konva",function(){this._updated=!0}),this.on("frameRateChange.konva",function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_sceneFunc(e){var n=this.animation(),r=this.frameIndex(),i=r*4,a=this.animations()[n],s=this.frameOffsets(),u=a[i+0],c=a[i+1],f=a[i+2],h=a[i+3],p=this.image();if((this.hasFill()||this.hasStroke())&&(e.beginPath(),e.rect(0,0,f,h),e.closePath(),e.fillStrokeShape(this)),p)if(s){var g=s[n],y=r*2;e.drawImage(p,u,c,f,h,g[y+0],g[y+1],f,h)}else e.drawImage(p,u,c,f,h,0,0,f,h)}_hitFunc(e){var n=this.animation(),r=this.frameIndex(),i=r*4,a=this.animations()[n],s=this.frameOffsets(),u=a[i+2],c=a[i+3];if(e.beginPath(),s){var f=s[n],h=r*2;e.rect(f[h+0],f[h+1],u,c)}else e.rect(0,0,u,c);e.closePath(),e.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){var e=this;this.interval=setInterval(function(){e._updateIndex()},1e3/this.frameRate())}start(){if(!this.isRunning()){var e=this.getLayer();this.anim.setLayers(e),this._setInterval(),this.anim.start()}}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){var e=this.frameIndex(),n=this.animation(),r=this.animations(),i=r[n],a=i.length/4;e{e=e.trim();const n=e.indexOf(" ")>=0,r=e.indexOf('"')>=0||e.indexOf("'")>=0;return n&&!r&&(e=`"${e}"`),e}).join(", ")}var jf;function Lm(){return jf||(jf=G.createCanvasElement().getContext(b$),jf)}function L$(t){t.fillText(this._partialText,this._partialTextX,this._partialTextY)}function M$(t){t.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function D$(t){return t=t||{},!t.fillLinearGradientColorStops&&!t.fillRadialGradientColorStops&&!t.fillPatternImage&&(t.fill=t.fill||"black"),t}let vt=class extends re{constructor(e){super(D$(e)),this._partialTextX=0,this._partialTextY=0;for(var n=0;n1&&(_+=s)}}}_hitFunc(e){var n=this.getWidth(),r=this.getHeight();e.beginPath(),e.rect(0,0,n,r),e.closePath(),e.fillStrokeShape(this)}setText(e){var n=G._isString(e)?e:e==null?"":e+"";return this._setAttr(C$,n),this}getWidth(){var e=this.attrs.width===as||this.attrs.width===void 0;return e?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){var e=this.attrs.height===as||this.attrs.height===void 0;return e?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return G.warn("text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height."),this.textHeight}measureSize(e){var n=Lm(),r=this.fontSize(),i;return n.save(),n.font=this._getContextFont(),i=n.measureText(e),n.restore(),{width:i.width,height:r}}_getContextFont(){return this.fontStyle()+Uf+this.fontVariant()+Uf+(this.fontSize()+E$)+I$(this.fontFamily())}_addTextLine(e){this.align()===Wl&&(e=e.trim());var r=this._getTextWidth(e);return this.textArr.push({text:e,width:r,lastInParagraph:!1})}_getTextWidth(e){var n=this.letterSpacing(),r=e.length;return Lm().measureText(e).width+(r?n*(r-1):0)}_setTextData(){var e=this.text().split(` -`),n=+this.fontSize(),r=0,i=this.lineHeight()*n,a=this.attrs.width,s=this.attrs.height,u=a!==as&&a!==void 0,c=s!==as&&s!==void 0,f=this.padding(),h=a-f*2,p=s-f*2,g=0,y=this.wrap(),v=y!==Fb,w=y!==R$&&v,x=this.ellipsis();this.textArr=[],Lm().font=this._getContextFont();for(var _=x?this._getTextWidth(Im):0,S=0,C=e.length;Sh)for(;O.length>0;){for(var L=0,D=O.length,U="",X=0;L>>1,te=O.slice(0,K+1),ce=this._getTextWidth(te)+_;ce<=h?(L=K+1,U=te,X=ce):D=K}if(U){if(w){var j,T=O[U.length],$=T===Uf||T===Nb;$&&X<=h?j=U.length:j=Math.max(U.lastIndexOf(Uf),U.lastIndexOf(Nb))+1,j>0&&(L=j,U=U.slice(0,L),X=this._getTextWidth(U))}U=U.trimRight(),this._addTextLine(U),r=Math.max(r,X),g+=i;var V=this._shouldHandleEllipsis(g);if(V){this._tryToAddEllipsisToLastLine();break}if(O=O.slice(L),O=O.trimLeft(),O.length>0&&(I=this._getTextWidth(O),I<=h)){this._addTextLine(O),g+=i,r=Math.max(r,I);break}}else break}else this._addTextLine(O),g+=i,r=Math.max(r,I),this._shouldHandleEllipsis(g)&&Sp)break}this.textHeight=n,this.textWidth=r}_shouldHandleEllipsis(e){var n=+this.fontSize(),r=this.lineHeight()*n,i=this.attrs.height,a=i!==as&&i!==void 0,s=this.padding(),u=i-s*2,c=this.wrap(),f=c!==Fb;return!f||a&&e+r>u}_tryToAddEllipsisToLastLine(){var e=this.attrs.width,n=e!==as&&e!==void 0,r=this.padding(),i=e-r*2,a=this.ellipsis(),s=this.textArr[this.textArr.length-1];if(!(!s||!a)){if(n){var u=this._getTextWidth(s.text+Im)=1){var r=n[0].p0;e.moveTo(r.x,r.y)}for(var i=0;i0&&(u+=e.dataArray[c].pathLength);var f=0;i==="center"&&(f=Math.max(0,u/2-s/2)),i==="right"&&(f=Math.max(0,u-s));for(var h=lP(this.text()),p=this.text().split(" ").length-1,g,y,v,w=-1,x=0,_=function(){x=0;for(var ce=e.dataArray,j=w+1;j0)return w=j,ce[j];ce[j].command==="M"&&(g={x:ce[j].points[0],y:ce[j].points[1]})}return{}},S=function(ce){var j=e._getTextSize(ce).width+r;ce===" "&&i==="justify"&&(j+=(u-s)/p);var T=0,$=0;for(y=void 0;Math.abs(j-T)/j>.01&&$<20;){$++;for(var V=T;v===void 0;)v=_(),v&&V+v.pathLengthj?y=tt.getPointOnLine(j,g.x,g.y,v.points[0],v.points[1],g.x,g.y):v=void 0;break;case"A":var W=v.points[4],Y=v.points[5],Q=v.points[4]+Y;x===0?x=W+1e-8:j>T?x+=Math.PI/180*Y/Math.abs(Y):x-=Math.PI/360*Y/Math.abs(Y),(Y<0&&x=0&&x>Q)&&(x=Q,ie=!0),y=tt.getPointOnEllipticalArc(v.points[0],v.points[1],v.points[2],v.points[3],x,v.points[6]);break;case"C":x===0?j>v.pathLength?x=1e-8:x=j/v.pathLength:j>T?x+=(j-T)/v.pathLength/2:x=Math.max(x-(T-j)/v.pathLength/2,0),x>1&&(x=1,ie=!0),y=tt.getPointOnCubicBezier(x,v.start.x,v.start.y,v.points[0],v.points[1],v.points[2],v.points[3],v.points[4],v.points[5]);break;case"Q":x===0?x=j/v.pathLength:j>T?x+=(j-T)/v.pathLength:x-=(T-j)/v.pathLength,x>1&&(x=1,ie=!0),y=tt.getPointOnQuadraticBezier(x,v.start.x,v.start.y,v.points[0],v.points[1],v.points[2],v.points[3]);break}y!==void 0&&(T=tt.getLineLength(g.x,g.y,y.x,y.y)),ie&&(ie=!1,v=void 0)}},C="C",O=e._getTextSize(C).width+r,I=f/O-1,L=0;Lt+`.${gP}`).join(" "),$b="nodesRect",F$=["widthChange","heightChange","scaleXChange","scaleYChange","skewXChange","skewYChange","rotationChange","offsetXChange","offsetYChange","transformsEnabledChange","strokeWidthChange"],$$={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135};const z$="ontouchstart"in pe._global;function G$(t,e){if(t==="rotater")return"crosshair";e+=G.degToRad($$[t]||0);var n=(G.radToDeg(e)%360+360)%360;return G._inRange(n,315+22.5,360)||G._inRange(n,0,22.5)?"ns-resize":G._inRange(n,45-22.5,45+22.5)?"nesw-resize":G._inRange(n,90-22.5,90+22.5)?"ew-resize":G._inRange(n,135-22.5,135+22.5)?"nwse-resize":G._inRange(n,180-22.5,180+22.5)?"ns-resize":G._inRange(n,225-22.5,225+22.5)?"nesw-resize":G._inRange(n,270-22.5,270+22.5)?"ew-resize":G._inRange(n,315-22.5,315+22.5)?"nwse-resize":(G.error("Transformer has unknown angle for cursor detection: "+n),"pointer")}var sh=["top-left","top-center","top-right","middle-right","middle-left","bottom-left","bottom-center","bottom-right"],zb=1e8;function U$(t){return{x:t.x+t.width/2*Math.cos(t.rotation)+t.height/2*Math.sin(-t.rotation),y:t.y+t.height/2*Math.cos(t.rotation)+t.width/2*Math.sin(t.rotation)}}function mP(t,e,n){const r=n.x+(t.x-n.x)*Math.cos(e)-(t.y-n.y)*Math.sin(e),i=n.y+(t.x-n.x)*Math.sin(e)+(t.y-n.y)*Math.cos(e);return Object.assign(Object.assign({},t),{rotation:t.rotation+e,x:r,y:i})}function j$(t,e){const n=U$(t);return mP(t,e,n)}function W$(t,e,n){let r=e;for(let i=0;i{const i=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()},a=r._attrsAffectingSize.map(s=>s+"Change."+this._getEventNamespace()).join(" ");r.on(a,i),r.on(F$.map(s=>s+`.${this._getEventNamespace()}`).join(" "),i),r.on(`absoluteTransformChange.${this._getEventNamespace()}`,i),this._proxyDrag(r)}),this._resetTransformCache();var n=!!this.findOne(".top-left");return n&&this.update(),this}_proxyDrag(e){let n;e.on(`dragstart.${this._getEventNamespace()}`,r=>{n=e.getAbsolutePosition(),!this.isDragging()&&e!==this.findOne(".back")&&this.startDrag(r,!1)}),e.on(`dragmove.${this._getEventNamespace()}`,r=>{if(!n)return;const i=e.getAbsolutePosition(),a=i.x-n.x,s=i.y-n.y;this.nodes().forEach(u=>{if(u===e||u.isDragging())return;const c=u.getAbsolutePosition();u.setAbsolutePosition({x:c.x+a,y:c.y+s}),u.startDrag(r)}),n=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(e=>{e.off("."+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache($b),this._clearCache("transform"),this._clearSelfAndDescendantCache("absoluteTransform")}_getNodeRect(){return this._getCache($b,this.__getNodeRect)}__getNodeShape(e,n=this.rotation(),r){var i=e.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),a=e.getAbsoluteScale(r),s=e.getAbsolutePosition(r),u=i.x*a.x-e.offsetX()*a.x,c=i.y*a.y-e.offsetY()*a.y;const f=(pe.getAngle(e.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2),h={x:s.x+u*Math.cos(f)+c*Math.sin(-f),y:s.y+c*Math.cos(f)+u*Math.sin(f),width:i.width*a.x,height:i.height*a.y,rotation:f};return mP(h,-pe.getAngle(n),{x:0,y:0})}__getNodeRect(){var e=this.getNode();if(!e)return{x:-zb,y:-zb,width:0,height:0,rotation:0};const n=[];this.nodes().map(f=>{const h=f.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()});var p=[{x:h.x,y:h.y},{x:h.x+h.width,y:h.y},{x:h.x+h.width,y:h.y+h.height},{x:h.x,y:h.y+h.height}],g=f.getAbsoluteTransform();p.forEach(function(y){var v=g.point(y);n.push(v)})});const r=new Wn;r.rotate(-pe.getAngle(this.rotation()));var i,a,s,u;n.forEach(function(f){var h=r.point(f);i===void 0&&(i=s=h.x,a=u=h.y),i=Math.min(i,h.x),a=Math.min(a,h.y),s=Math.max(s,h.x),u=Math.max(u,h.y)}),r.invert();const c=r.point({x:i,y:a});return{x:c.x,y:c.y,width:s-i,height:u-a,rotation:pe.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),sh.forEach(function(e){this._createAnchor(e)}.bind(this)),this._createAnchor("rotater")}_createAnchor(e){var n=new Zu({stroke:"rgb(0, 161, 255)",fill:"white",strokeWidth:1,name:e+" _anchor",dragDistance:0,draggable:!0,hitStrokeWidth:z$?10:"auto"}),r=this;n.on("mousedown touchstart",function(i){r._handleMouseDown(i)}),n.on("dragstart",i=>{n.stopDrag(),i.cancelBubble=!0}),n.on("dragend",i=>{i.cancelBubble=!0}),n.on("mouseenter",()=>{var i=pe.getAngle(this.rotation()),a=G$(e,i);n.getStage().content&&(n.getStage().content.style.cursor=a),this._cursorChange=!0}),n.on("mouseout",()=>{n.getStage().content&&(n.getStage().content.style.cursor=""),this._cursorChange=!1}),this.add(n)}_createBack(){var e=new re({name:"back",width:0,height:0,draggable:!0,sceneFunc(n){var r=this.getParent(),i=r.padding();n.beginPath(),n.rect(-i,-i,this.width()+i*2,this.height()+i*2),n.moveTo(this.width()/2,-i),r.rotateEnabled()&&n.lineTo(this.width()/2,-r.rotateAnchorOffset()*G._sign(this.height())-i),n.fillStrokeShape(this)},hitFunc:(n,r)=>{if(this.shouldOverdrawWholeArea()){var i=this.padding();n.beginPath(),n.rect(-i,-i,r.width()+i*2,r.height()+i*2),n.fillStrokeShape(r)}}});this.add(e),this._proxyDrag(e),e.on("dragstart",n=>{n.cancelBubble=!0}),e.on("dragmove",n=>{n.cancelBubble=!0}),e.on("dragend",n=>{n.cancelBubble=!0}),this.on("dragmove",n=>{this.update()})}_handleMouseDown(e){this._movingAnchorName=e.target.name().split(" ")[0];var n=this._getNodeRect(),r=n.width,i=n.height,a=Math.sqrt(Math.pow(r,2)+Math.pow(i,2));this.sin=Math.abs(i/a),this.cos=Math.abs(r/a),typeof window<"u"&&(window.addEventListener("mousemove",this._handleMouseMove),window.addEventListener("touchmove",this._handleMouseMove),window.addEventListener("mouseup",this._handleMouseUp,!0),window.addEventListener("touchend",this._handleMouseUp,!0)),this._transforming=!0;var s=e.target.getAbsolutePosition(),u=e.target.getStage().getPointerPosition();this._anchorDragOffset={x:u.x-s.x,y:u.y-s.y},this._fire("transformstart",{evt:e.evt,target:this.getNode()}),this._nodes.forEach(c=>{c._fire("transformstart",{evt:e.evt,target:c})})}_handleMouseMove(e){var n,r,i,a=this.findOne("."+this._movingAnchorName),s=a.getStage();s.setPointersPositions(e);const u=s.getPointerPosition();let c={x:u.x-this._anchorDragOffset.x,y:u.y-this._anchorDragOffset.y};const f=a.getAbsolutePosition();this.anchorDragBoundFunc()&&(c=this.anchorDragBoundFunc()(f,c,e)),a.setAbsolutePosition(c);const h=a.getAbsolutePosition();if(!(f.x===h.x&&f.y===h.y)){if(this._movingAnchorName==="rotater"){var p=this._getNodeRect();n=a.x()-p.width/2,r=-a.y()+p.height/2;let ce=Math.atan2(-r,n)+Math.PI/2;p.height<0&&(ce-=Math.PI);var g=pe.getAngle(this.rotation());const j=g+ce,T=pe.getAngle(this.rotationSnapTolerance()),V=W$(this.rotationSnaps(),j,T)-p.rotation,ie=j$(p,V);this._fitNodesInto(ie,e);return}var y=this.keepRatio()||e.shiftKey,S=this.centeredScaling()||e.altKey;if(this._movingAnchorName==="top-left"){if(y){var v=S?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-right").x(),y:this.findOne(".bottom-right").y()};i=Math.sqrt(Math.pow(v.x-a.x(),2)+Math.pow(v.y-a.y(),2));var w=this.findOne(".top-left").x()>v.x?-1:1,x=this.findOne(".top-left").y()>v.y?-1:1;n=i*this.cos*w,r=i*this.sin*x,this.findOne(".top-left").x(v.x-n),this.findOne(".top-left").y(v.y-r)}}else if(this._movingAnchorName==="top-center")this.findOne(".top-left").y(a.y());else if(this._movingAnchorName==="top-right"){if(y){var v=S?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-left").x(),y:this.findOne(".bottom-left").y()};i=Math.sqrt(Math.pow(a.x()-v.x,2)+Math.pow(v.y-a.y(),2));var w=this.findOne(".top-right").x()v.y?-1:1;n=i*this.cos*w,r=i*this.sin*x,this.findOne(".top-right").x(v.x+n),this.findOne(".top-right").y(v.y-r)}var _=a.position();this.findOne(".top-left").y(_.y),this.findOne(".bottom-right").x(_.x)}else if(this._movingAnchorName==="middle-left")this.findOne(".top-left").x(a.x());else if(this._movingAnchorName==="middle-right")this.findOne(".bottom-right").x(a.x());else if(this._movingAnchorName==="bottom-left"){if(y){var v=S?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".top-right").x(),y:this.findOne(".top-right").y()};i=Math.sqrt(Math.pow(v.x-a.x(),2)+Math.pow(a.y()-v.y,2));var w=v.x{r._fire("transformend",{evt:e,target:r})}),this._movingAnchorName=null}}_fitNodesInto(e,n){var r=this._getNodeRect();const i=1;if(G._inRange(e.width,-this.padding()*2-i,i)){this.update();return}if(G._inRange(e.height,-this.padding()*2-i,i)){this.update();return}const a=this.flipEnabled();var s=new Wn;if(s.rotate(pe.getAngle(this.rotation())),this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf("left")>=0){const p=s.point({x:-this.padding()*2,y:0});if(e.x+=p.x,e.y+=p.y,e.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace("left","right"),this._anchorDragOffset.x-=p.x,this._anchorDragOffset.y-=p.y,!a){this.update();return}}else if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf("right")>=0){const p=s.point({x:this.padding()*2,y:0});if(this._movingAnchorName=this._movingAnchorName.replace("right","left"),this._anchorDragOffset.x-=p.x,this._anchorDragOffset.y-=p.y,e.width+=this.padding()*2,!a){this.update();return}}if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf("top")>=0){const p=s.point({x:0,y:-this.padding()*2});if(e.x+=p.x,e.y+=p.y,this._movingAnchorName=this._movingAnchorName.replace("top","bottom"),this._anchorDragOffset.x-=p.x,this._anchorDragOffset.y-=p.y,e.height+=this.padding()*2,!a){this.update();return}}else if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf("bottom")>=0){const p=s.point({x:0,y:this.padding()*2});if(this._movingAnchorName=this._movingAnchorName.replace("bottom","top"),this._anchorDragOffset.x-=p.x,this._anchorDragOffset.y-=p.y,e.height+=this.padding()*2,!a){this.update();return}}if(this.boundBoxFunc()){const p=this.boundBoxFunc()(r,e);p?e=p:G.warn("boundBoxFunc returned falsy. You should return new bound rect from it!")}const u=1e7,c=new Wn;c.translate(r.x,r.y),c.rotate(r.rotation),c.scale(r.width/u,r.height/u);const f=new Wn;f.translate(e.x,e.y),f.rotate(e.rotation),f.scale(e.width/u,e.height/u);const h=f.multiply(c.invert());this._nodes.forEach(p=>{var g;const y=p.getParent().getAbsoluteTransform(),v=p.getTransform().copy();v.translate(p.offsetX(),p.offsetY());const w=new Wn;w.multiply(y.copy().invert()).multiply(h).multiply(y).multiply(v);const x=w.decompose();p.setAttrs(x),this._fire("transform",{evt:n,target:p}),p._fire("transform",{evt:n,target:p}),(g=p.getLayer())===null||g===void 0||g.batchDraw()}),this.rotation(G._getRotation(e.rotation)),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(e,n){this.findOne(e).setAttrs(n)}update(){var e,n=this._getNodeRect();this.rotation(G._getRotation(n.rotation));var r=n.width,i=n.height,a=this.enabledAnchors(),s=this.resizeEnabled(),u=this.padding(),c=this.anchorSize();this.find("._anchor").forEach(f=>{f.setAttrs({width:c,height:c,offsetX:c/2,offsetY:c/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(".top-left",{x:0,y:0,offsetX:c/2+u,offsetY:c/2+u,visible:s&&a.indexOf("top-left")>=0}),this._batchChangeChild(".top-center",{x:r/2,y:0,offsetY:c/2+u,visible:s&&a.indexOf("top-center")>=0}),this._batchChangeChild(".top-right",{x:r,y:0,offsetX:c/2-u,offsetY:c/2+u,visible:s&&a.indexOf("top-right")>=0}),this._batchChangeChild(".middle-left",{x:0,y:i/2,offsetX:c/2+u,visible:s&&a.indexOf("middle-left")>=0}),this._batchChangeChild(".middle-right",{x:r,y:i/2,offsetX:c/2-u,visible:s&&a.indexOf("middle-right")>=0}),this._batchChangeChild(".bottom-left",{x:0,y:i,offsetX:c/2+u,offsetY:c/2-u,visible:s&&a.indexOf("bottom-left")>=0}),this._batchChangeChild(".bottom-center",{x:r/2,y:i,offsetY:c/2-u,visible:s&&a.indexOf("bottom-center")>=0}),this._batchChangeChild(".bottom-right",{x:r,y:i,offsetX:c/2-u,offsetY:c/2-u,visible:s&&a.indexOf("bottom-right")>=0}),this._batchChangeChild(".rotater",{x:r/2,y:-this.rotateAnchorOffset()*G._sign(i)-u,visible:this.rotateEnabled()}),this._batchChangeChild(".back",{width:r,height:i,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0}),(e=this.getLayer())===null||e===void 0||e.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();var e=this.findOne("."+this._movingAnchorName);e&&e.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=""),zs.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}toObject(){return se.prototype.toObject.call(this)}clone(e){var n=se.prototype.clone.call(this,e);return n}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}}function H$(t){return t instanceof Array||G.warn("enabledAnchors value should be an array"),t instanceof Array&&t.forEach(function(e){sh.indexOf(e)===-1&&G.warn("Unknown anchor name: "+e+". Available names are: "+sh.join(", "))}),t||[]}Ke.prototype.className="Transformer";yt(Ke);A.addGetterSetter(Ke,"enabledAnchors",sh,H$);A.addGetterSetter(Ke,"flipEnabled",!0,jr());A.addGetterSetter(Ke,"resizeEnabled",!0);A.addGetterSetter(Ke,"anchorSize",10,le());A.addGetterSetter(Ke,"rotateEnabled",!0);A.addGetterSetter(Ke,"rotationSnaps",[]);A.addGetterSetter(Ke,"rotateAnchorOffset",50,le());A.addGetterSetter(Ke,"rotationSnapTolerance",5,le());A.addGetterSetter(Ke,"borderEnabled",!0);A.addGetterSetter(Ke,"anchorStroke","rgb(0, 161, 255)");A.addGetterSetter(Ke,"anchorStrokeWidth",1,le());A.addGetterSetter(Ke,"anchorFill","white");A.addGetterSetter(Ke,"anchorCornerRadius",0,le());A.addGetterSetter(Ke,"borderStroke","rgb(0, 161, 255)");A.addGetterSetter(Ke,"borderStrokeWidth",1,le());A.addGetterSetter(Ke,"borderDash");A.addGetterSetter(Ke,"keepRatio",!0);A.addGetterSetter(Ke,"centeredScaling",!1);A.addGetterSetter(Ke,"ignoreStroke",!1);A.addGetterSetter(Ke,"padding",0,le());A.addGetterSetter(Ke,"node");A.addGetterSetter(Ke,"nodes");A.addGetterSetter(Ke,"boundBoxFunc");A.addGetterSetter(Ke,"anchorDragBoundFunc");A.addGetterSetter(Ke,"shouldOverdrawWholeArea",!1);A.addGetterSetter(Ke,"useSingleNodeRotation",!0);A.backCompat(Ke,{lineEnabled:"borderEnabled",rotateHandlerOffset:"rotateAnchorOffset",enabledHandlers:"enabledAnchors"});class qi extends re{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.radius(),0,pe.getAngle(this.angle()),this.clockwise()),e.lineTo(0,0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}}qi.prototype.className="Wedge";qi.prototype._centroid=!0;qi.prototype._attrsAffectingSize=["radius"];yt(qi);A.addGetterSetter(qi,"radius",0,le());A.addGetterSetter(qi,"angle",0,le());A.addGetterSetter(qi,"clockwise",!1);A.backCompat(qi,{angleDeg:"angle",getAngleDeg:"getAngle",setAngleDeg:"setAngle"});function Gb(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var V$=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],q$=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function K$(t,e){var n=t.data,r=t.width,i=t.height,a,s,u,c,f,h,p,g,y,v,w,x,_,S,C,O,I,L,D,U,X,K,te,ce,j=e+e+1,T=r-1,$=i-1,V=e+1,ie=V*(V+1)/2,W=new Gb,Y=null,Q=W,oe=null,ve=null,we=V$[e],Ue=q$[e];for(u=1;u>Ue,te!==0?(te=255/te,n[h]=(g*we>>Ue)*te,n[h+1]=(y*we>>Ue)*te,n[h+2]=(v*we>>Ue)*te):n[h]=n[h+1]=n[h+2]=0,g-=x,y-=_,v-=S,w-=C,x-=oe.r,_-=oe.g,S-=oe.b,C-=oe.a,c=p+((c=a+e+1)>Ue,te>0?(te=255/te,n[c]=(g*we>>Ue)*te,n[c+1]=(y*we>>Ue)*te,n[c+2]=(v*we>>Ue)*te):n[c]=n[c+1]=n[c+2]=0,g-=x,y-=_,v-=S,w-=C,x-=oe.r,_-=oe.g,S-=oe.b,C-=oe.a,c=a+((c=s+V)<$?c:$)*r<<2,g+=O+=oe.r=n[c],y+=I+=oe.g=n[c+1],v+=L+=oe.b=n[c+2],w+=D+=oe.a=n[c+3],oe=oe.next,x+=U=ve.r,_+=X=ve.g,S+=K=ve.b,C+=te=ve.a,O-=U,I-=X,L-=K,D-=te,ve=ve.next,h+=r}}const Y$=function(e){var n=Math.round(this.blurRadius());n>0&&K$(e,n)};A.addGetterSetter(se,"blurRadius",0,le(),A.afterSetFilter);const X$=function(t){var e=this.brightness()*255,n=t.data,r=n.length,i;for(i=0;i255?255:i,a=a<0?0:a>255?255:a,s=s<0?0:s>255?255:s,n[u]=i,n[u+1]=a,n[u+2]=s};A.addGetterSetter(se,"contrast",0,le(),A.afterSetFilter);const J$=function(t){var e=this.embossStrength()*10,n=this.embossWhiteLevel()*255,r=this.embossDirection(),i=this.embossBlend(),a=0,s=0,u=t.data,c=t.width,f=t.height,h=c*4,p=f;switch(r){case"top-left":a=-1,s=-1;break;case"top":a=-1,s=0;break;case"top-right":a=-1,s=1;break;case"right":a=0,s=1;break;case"bottom-right":a=1,s=1;break;case"bottom":a=1,s=0;break;case"bottom-left":a=1,s=-1;break;case"left":a=0,s=-1;break;default:G.error("Unknown emboss direction: "+r)}do{var g=(p-1)*h,y=a;p+y<1&&(y=0),p+y>f&&(y=0);var v=(p-1+y)*c*4,w=c;do{var x=g+(w-1)*4,_=s;w+_<1&&(_=0),w+_>c&&(_=0);var S=v+(w-1+_)*4,C=u[x]-u[S],O=u[x+1]-u[S+1],I=u[x+2]-u[S+2],L=C,D=L>0?L:-L,U=O>0?O:-O,X=I>0?I:-I;if(U>D&&(L=O),X>D&&(L=I),L*=e,i){var K=u[x]+L,te=u[x+1]+L,ce=u[x+2]+L;u[x]=K>255?255:K<0?0:K,u[x+1]=te>255?255:te<0?0:te,u[x+2]=ce>255?255:ce<0?0:ce}else{var j=n-L;j<0?j=0:j>255&&(j=255),u[x]=u[x+1]=u[x+2]=j}}while(--w)}while(--p)};A.addGetterSetter(se,"embossStrength",.5,le(),A.afterSetFilter);A.addGetterSetter(se,"embossWhiteLevel",.5,le(),A.afterSetFilter);A.addGetterSetter(se,"embossDirection","top-left",null,A.afterSetFilter);A.addGetterSetter(se,"embossBlend",!1,null,A.afterSetFilter);function Mm(t,e,n,r,i){var a=n-e,s=i-r,u;return a===0?r+s/2:s===0?r:(u=(t-e)/a,u=s*u+r,u)}const Z$=function(t){var e=t.data,n=e.length,r=e[0],i=r,a,s=e[1],u=s,c,f=e[2],h=f,p,g,y=this.enhance();if(y!==0){for(g=0;gi&&(i=a),c=e[g+1],cu&&(u=c),p=e[g+2],ph&&(h=p);i===r&&(i=255,r=0),u===s&&(u=255,s=0),h===f&&(h=255,f=0);var v,w,x,_,S,C,O,I,L;for(y>0?(w=i+y*(255-i),x=r-y*(r-0),S=u+y*(255-u),C=s-y*(s-0),I=h+y*(255-h),L=f-y*(f-0)):(v=(i+r)*.5,w=i+y*(i-v),x=r+y*(r-v),_=(u+s)*.5,S=u+y*(u-_),C=s+y*(s-_),O=(h+f)*.5,I=h+y*(h-O),L=f+y*(f-O)),g=0;g_?x:_;var S=s,C=a,O,I,L=360/C*Math.PI/180,D,U;for(I=0;IC?S:C;var O=s,I=a,L,D,U=n.polarRotation||0,X,K;for(h=0;he&&(O=C,I=0,L=-1),i=0;i=0&&y=0&&v=0&&y=0&&v=255*4?255:0}return s}function dz(t,e,n){for(var r=[.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111],i=Math.round(Math.sqrt(r.length)),a=Math.floor(i/2),s=[],u=0;u=0&&y=0&&v=n))for(a=w;a=r||(s=(n*a+i)*4,u+=O[s+0],c+=O[s+1],f+=O[s+2],h+=O[s+3],C+=1);for(u=u/C,c=c/C,f=f/C,h=h/C,i=y;i=n))for(a=w;a=r||(s=(n*a+i)*4,O[s+0]=u,O[s+1]=c,O[s+2]=f,O[s+3]=h)}};A.addGetterSetter(se,"pixelSize",8,le(),A.afterSetFilter);const mz=function(t){var e=Math.round(this.levels()*254)+1,n=t.data,r=n.length,i=255/e,a;for(a=0;a255?255:t<0?0:Math.round(t)});A.addGetterSetter(se,"green",0,function(t){return this._filterUpToDate=!1,t>255?255:t<0?0:Math.round(t)});A.addGetterSetter(se,"blue",0,$k,A.afterSetFilter);const yz=function(t){var e=t.data,n=e.length,r=this.red(),i=this.green(),a=this.blue(),s=this.alpha(),u,c;for(u=0;u255?255:t<0?0:Math.round(t)});A.addGetterSetter(se,"green",0,function(t){return this._filterUpToDate=!1,t>255?255:t<0?0:Math.round(t)});A.addGetterSetter(se,"blue",0,$k,A.afterSetFilter);A.addGetterSetter(se,"alpha",1,function(t){return this._filterUpToDate=!1,t>1?1:t<0?0:t});const Sz=function(t){var e=t.data,n=e.length,r,i,a,s;for(r=0;r127&&(f=255-f),h>127&&(h=255-h),p>127&&(p=255-p),e[c]=f,e[c+1]=h,e[c+2]=p}while(--u)}while(--a)},wz=function(t){var e=this.threshold()*255,n=t.data,r=n.length,i;for(i=0;i{const{width:n,height:r}=e,i=document.createElement("div"),a=new Vl.Stage({container:i,width:n,height:r}),s=new Vl.Layer,u=new Vl.Layer;s.add(new Vl.Rect({...e,fill:"white"})),t.forEach(f=>u.add(new Vl.Line({points:f.points,stroke:"black",strokeWidth:f.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,globalCompositeOperation:f.tool==="brush"?"source-over":"destination-out"}))),a.add(s),a.add(u);const c=a.toDataURL({...e});return i.remove(),c};let vP=null,yP=null;const zW=t=>{vP=t},Cz=()=>vP,GW=t=>{yP=t},UW=()=>yP,xz=t=>{const e=window.open("");e&&t.forEach(n=>{const r=new Image;r.src=n.base64,e.document.write(n.caption),e.document.write("
"),e.document.write(r.outerHTML),e.document.write("

")})},kz=(t,e)=>Math.floor(Math.random()*(e-t+1)+t),Pz=t=>{const e=Cz(),{generationMode:n,generationState:r,postprocessingState:i,canvasState:a,systemState:s}=t,{codeformerFidelity:u,facetoolStrength:c,facetoolType:f,hiresFix:h,hiresStrength:p,shouldRunESRGAN:g,shouldRunFacetool:y,upscalingLevel:v,upscalingStrength:w,upscalingDenoising:x}=i,{cfgScale:_,height:S,img2imgStrength:C,infillMethod:O,initialImage:I,iterations:L,perlin:D,prompt:U,negativePrompt:X,sampler:K,seamBlur:te,seamless:ce,seamSize:j,seamSteps:T,seamStrength:$,seed:V,seedWeights:ie,shouldFitToWidthHeight:W,shouldGenerateVariations:Y,shouldRandomizeSeed:Q,steps:oe,threshold:ve,tileSize:we,variationAmount:Ue,width:At,shouldUseSymmetry:me,horizontalSymmetrySteps:qt,verticalSymmetrySteps:Bt}=r,{shouldDisplayInProgressType:bn,saveIntermediatesInterval:wr,enableImageDebugging:Ft}=s,xe={prompt:U,iterations:L,steps:oe,cfg_scale:_,threshold:ve,perlin:D,height:S,width:At,sampler_name:K,seed:V,progress_images:bn==="full-res",progress_latents:bn==="latents",save_intermediates:wr,generation_mode:n,init_mask:""};let Wr=!1,Et=!1;if(X!==""&&(xe.prompt=`${U} [${X}]`),xe.seed=Q?kz(cF,fF):V,me&&(qt>0&&(xe.h_symmetry_time_pct=Math.max(0,Math.min(1,qt/oe))),Bt>0&&(xe.v_symmetry_time_pct=Math.max(0,Math.min(1,Bt/oe)))),n==="txt2img"&&(xe.hires_fix=h,h&&(xe.strength=p)),["txt2img","img2img"].includes(n)&&(xe.seamless=ce,g&&(Wr={level:v,denoise_str:x,strength:w}),y&&(Et={type:f,strength:c},f==="codeformer"&&(Et.codeformer_fidelity=u))),n==="img2img"&&I&&(xe.init_img=typeof I=="string"?I:I.url,xe.strength=C,xe.fit=W),n==="unifiedCanvas"&&e){const{layerState:{objects:gi},boundingBoxCoordinates:Xs,boundingBoxDimensions:Mn,stageScale:Fa,isMaskEnabled:Qs,shouldPreserveMaskedArea:er,boundingBoxScaleMethod:Kt,scaledBoundingBoxDimensions:Dn}=a,bt={...Xs,...Mn},$a=bz(Qs?gi.filter(Qx):[],bt);xe.init_mask=$a,xe.fit=!1,xe.strength=C,xe.invert_mask=er,xe.bounding_box=bt;const Hr=e.scale();e.scale({x:1/Fa,y:1/Fa});const Co=e.getAbsolutePosition(),Vr=e.toDataURL({x:bt.x+Co.x,y:bt.y+Co.y,width:bt.width,height:bt.height});Ft&&xz([{base64:$a,caption:"mask sent as init_mask"},{base64:Vr,caption:"image sent as init_img"}]),e.scale(Hr),xe.init_img=Vr,xe.progress_images=!1,Kt!=="none"&&(xe.inpaint_width=Dn.width,xe.inpaint_height=Dn.height),xe.seam_size=j,xe.seam_blur=te,xe.seam_strength=$,xe.seam_steps=T,xe.tile_size=we,xe.infill_method=O,xe.force_outpaint=!1}return Y?(xe.variation_amount=Ue,ie&&(xe.with_variations=A5(ie))):xe.variation_amount=0,Ft&&(xe.enable_image_debugging=Ft),{generationParameters:xe,esrganParameters:Wr,facetoolParameters:Et}};var Ez=/d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|W{1,2}|[LlopSZN]|"[^"]*"|'[^']*'/g,Oz=/\b(?:[A-Z]{1,3}[A-Z][TC])(?:[-+]\d{4})?|((?:Australian )?(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time)\b/g,Tz=/[^-+\dA-Z]/g;function Ut(t,e,n,r){if(arguments.length===1&&typeof t=="string"&&!/\d/.test(t)&&(e=t,t=void 0),t=t||t===0?t:new Date,t instanceof Date||(t=new Date(t)),isNaN(t))throw TypeError("Invalid date");e=String(Ub[e]||e||Ub.default);var i=e.slice(0,4);(i==="UTC:"||i==="GMT:")&&(e=e.slice(4),n=!0,i==="GMT:"&&(r=!0));var a=function(){return n?"getUTC":"get"},s=function(){return t[a()+"Date"]()},u=function(){return t[a()+"Day"]()},c=function(){return t[a()+"Month"]()},f=function(){return t[a()+"FullYear"]()},h=function(){return t[a()+"Hours"]()},p=function(){return t[a()+"Minutes"]()},g=function(){return t[a()+"Seconds"]()},y=function(){return t[a()+"Milliseconds"]()},v=function(){return n?0:t.getTimezoneOffset()},w=function(){return Rz(t)},x=function(){return Az(t)},_={d:function(){return s()},dd:function(){return Un(s())},ddd:function(){return En.dayNames[u()]},DDD:function(){return jb({y:f(),m:c(),d:s(),_:a(),dayName:En.dayNames[u()],short:!0})},dddd:function(){return En.dayNames[u()+7]},DDDD:function(){return jb({y:f(),m:c(),d:s(),_:a(),dayName:En.dayNames[u()+7]})},m:function(){return c()+1},mm:function(){return Un(c()+1)},mmm:function(){return En.monthNames[c()]},mmmm:function(){return En.monthNames[c()+12]},yy:function(){return String(f()).slice(2)},yyyy:function(){return Un(f(),4)},h:function(){return h()%12||12},hh:function(){return Un(h()%12||12)},H:function(){return h()},HH:function(){return Un(h())},M:function(){return p()},MM:function(){return Un(p())},s:function(){return g()},ss:function(){return Un(g())},l:function(){return Un(y(),3)},L:function(){return Un(Math.floor(y()/10))},t:function(){return h()<12?En.timeNames[0]:En.timeNames[1]},tt:function(){return h()<12?En.timeNames[2]:En.timeNames[3]},T:function(){return h()<12?En.timeNames[4]:En.timeNames[5]},TT:function(){return h()<12?En.timeNames[6]:En.timeNames[7]},Z:function(){return r?"GMT":n?"UTC":Iz(t)},o:function(){return(v()>0?"-":"+")+Un(Math.floor(Math.abs(v())/60)*100+Math.abs(v())%60,4)},p:function(){return(v()>0?"-":"+")+Un(Math.floor(Math.abs(v())/60),2)+":"+Un(Math.floor(Math.abs(v())%60),2)},S:function(){return["th","st","nd","rd"][s()%10>3?0:(s()%100-s()%10!=10)*s()%10]},W:function(){return w()},WW:function(){return Un(w())},N:function(){return x()}};return e.replace(Ez,function(S){return S in _?_[S]():S.slice(1,S.length-1)})}var Ub={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",paddedShortDate:"mm/dd/yyyy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},En={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],timeNames:["a","p","am","pm","A","P","AM","PM"]},Un=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return String(e).padStart(n,"0")},jb=function(e){var n=e.y,r=e.m,i=e.d,a=e._,s=e.dayName,u=e.short,c=u===void 0?!1:u,f=new Date,h=new Date;h.setDate(h[a+"Date"]()-1);var p=new Date;p.setDate(p[a+"Date"]()+1);var g=function(){return f[a+"Date"]()},y=function(){return f[a+"Month"]()},v=function(){return f[a+"FullYear"]()},w=function(){return h[a+"Date"]()},x=function(){return h[a+"Month"]()},_=function(){return h[a+"FullYear"]()},S=function(){return p[a+"Date"]()},C=function(){return p[a+"Month"]()},O=function(){return p[a+"FullYear"]()};return v()===n&&y()===r&&g()===i?c?"Tdy":"Today":_()===n&&x()===r&&w()===i?c?"Ysd":"Yesterday":O()===n&&C()===r&&S()===i?c?"Tmw":"Tomorrow":s},Rz=function(e){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate());n.setDate(n.getDate()-(n.getDay()+6)%7+3);var r=new Date(n.getFullYear(),0,4);r.setDate(r.getDate()-(r.getDay()+6)%7+3);var i=n.getTimezoneOffset()-r.getTimezoneOffset();n.setHours(n.getHours()-i);var a=(n-r)/(864e5*7);return 1+Math.floor(a)},Az=function(e){var n=e.getDay();return n===0&&(n=7),n},Iz=function(e){return(String(e).match(Oz)||[""]).pop().replace(Tz,"").replace(/GMT\+0000/g,"UTC")};const Lz=(t,e)=>{const{dispatch:n,getState:r}=t;return{emitGenerateImage:i=>{n(ei(!0));const a=r(),{generation:s,postprocessing:u,system:c,canvas:f}=a,h={generationMode:i,generationState:s,postprocessingState:u,canvasState:f,systemState:c};n(mB());const{generationParameters:p,esrganParameters:g,facetoolParameters:y}=Pz(h);e.emit("generateImage",p,g,y),p.init_mask&&(p.init_mask=p.init_mask.substr(0,64).concat("...")),p.init_img&&(p.init_img=p.init_img.substr(0,64).concat("...")),n(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Image generation requested: ${JSON.stringify({...p,...g,...y})}`}))},emitRunESRGAN:i=>{n(ei(!0));const{postprocessing:{upscalingLevel:a,upscalingDenoising:s,upscalingStrength:u}}=r(),c={upscale:[a,s,u]};e.emit("runPostprocessing",i,{type:"esrgan",...c}),n(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`ESRGAN upscale requested: ${JSON.stringify({file:i.url,...c})}`}))},emitRunFacetool:i=>{n(ei(!0));const{postprocessing:{facetoolType:a,facetoolStrength:s,codeformerFidelity:u}}=r(),c={facetool_strength:s};a==="codeformer"&&(c.codeformer_fidelity=u),e.emit("runPostprocessing",i,{type:a,...c}),n(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Face restoration (${a}) requested: ${JSON.stringify({file:i.url,...c})}`}))},emitDeleteImage:i=>{const{url:a,uuid:s,category:u,thumbnail:c}=i;n(ek(i)),e.emit("deleteImage",a,c,s,u)},emitRequestImages:i=>{const a=r().gallery,{earliest_mtime:s}=a.categories[i];e.emit("requestImages",i,s)},emitRequestNewImages:i=>{const a=r().gallery,{latest_mtime:s}=a.categories[i];e.emit("requestLatestImages",i,s)},emitCancelProcessing:()=>{e.emit("cancel")},emitRequestSystemConfig:()=>{e.emit("requestSystemConfig")},emitSearchForModels:i=>{e.emit("searchForModels",i)},emitAddNewModel:i=>{e.emit("addNewModel",i)},emitDeleteModel:i=>{e.emit("deleteModel",i)},emitConvertToDiffusers:i=>{n(pB()),e.emit("convertToDiffusers",i)},emitMergeDiffusersModels:i=>{n(gB()),e.emit("mergeDiffusersModels",i)},emitRequestModelChange:i=>{n(hB()),e.emit("requestModelChange",i)},emitSaveStagingAreaImageToGallery:i=>{e.emit("requestSaveStagingAreaImageToGallery",i)},emitRequestEmptyTempFolder:()=>{e.emit("requestEmptyTempFolder")}}};let Hf;const Mz=new Uint8Array(16);function Dz(){if(!Hf&&(Hf=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Hf))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Hf(Mz)}const Jt=[];for(let t=0;t<256;++t)Jt.push((t+256).toString(16).slice(1));function Nz(t,e=0){return(Jt[t[e+0]]+Jt[t[e+1]]+Jt[t[e+2]]+Jt[t[e+3]]+"-"+Jt[t[e+4]]+Jt[t[e+5]]+"-"+Jt[t[e+6]]+Jt[t[e+7]]+"-"+Jt[t[e+8]]+Jt[t[e+9]]+"-"+Jt[t[e+10]]+Jt[t[e+11]]+Jt[t[e+12]]+Jt[t[e+13]]+Jt[t[e+14]]+Jt[t[e+15]]).toLowerCase()}const Bz=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Wb={randomUUID:Bz};function Vf(t,e,n){if(Wb.randomUUID&&!e&&!t)return Wb.randomUUID();t=t||{};const r=t.random||(t.rng||Dz)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let i=0;i<16;++i)e[n+i]=r[i];return e}return Nz(r)}const jW=dt("socketio/generateImage"),WW=dt("socketio/runESRGAN"),HW=dt("socketio/runFacetool"),VW=dt("socketio/deleteImage"),Hb=dt("socketio/requestImages"),Vb=dt("socketio/requestNewImages"),qW=dt("socketio/cancelProcessing"),Fz=dt("socketio/requestSystemConfig"),KW=dt("socketio/searchForModels"),YW=dt("socketio/addNewModel"),XW=dt("socketio/deleteModel"),QW=dt("socketio/convertToDiffusers"),JW=dt("socketio/mergeDiffusersModels"),ZW=dt("socketio/requestModelChange"),eH=dt("socketio/saveStagingAreaImageToGallery"),tH=dt("socketio/requestEmptyTempFolder"),$z=t=>{const{dispatch:e,getState:n}=t;return{onConnect:()=>{try{e(ub(!0)),e(ns(Ae.t("common.statusConnected"))),e(Fz());const r=n().gallery;r.categories.result.latest_mtime?e(Vb("result")):e(Hb("result")),r.categories.user.latest_mtime?e(Vb("user")):e(Hb("user"))}catch(r){console.error(r)}},onDisconnect:()=>{try{e(ub(!1)),e(ns(Ae.t("common.statusDisconnected"))),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:"Disconnected from server",level:"warning"}))}catch(r){console.error(r)}},onGenerationResult:r=>{try{const i=n(),{activeTab:a}=i.ui,{shouldLoopback:s}=i.postprocessing,{boundingBox:u,generationMode:c,...f}=r,h={uuid:Vf(),...f};if(["txt2img","img2img"].includes(c)&&e(Of({category:"result",image:{...h,category:"result"}})),c==="unifiedCanvas"&&r.boundingBox){const{boundingBox:p}=r;e(S5({image:{...h,category:"temp"},boundingBox:p})),i.canvas.shouldAutoSave&&e(Of({image:{...h,category:"result"},category:"result"}))}if(s)switch(wk[a]){case"img2img":{e(D5(h));break}}e(Cm()),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Image generated: ${r.url}`}))}catch(i){console.error(i)}},onIntermediateResult:r=>{try{e(C5({uuid:Vf(),...r,category:"result"})),r.isBase64||e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Intermediate image generated: ${r.url}`}))}catch(i){console.error(i)}},onPostprocessingResult:r=>{try{e(Of({category:"result",image:{uuid:Vf(),...r,category:"result"}})),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Postprocessed: ${r.url}`}))}catch(i){console.error(i)}},onProgressUpdate:r=>{try{e(ei(!0)),e(cB(r))}catch(i){console.error(i)}},onError:r=>{const{message:i,additionalData:a}=r;try{e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Server error: ${i}`,level:"error"})),e(cb()),e(Cm())}catch(s){console.error(s)}},onGalleryImages:r=>{const{images:i,areMoreImagesAvailable:a,category:s}=r,u=i.map(c=>({uuid:Vf(),...c}));e(b5({images:u,areMoreImagesAvailable:a,category:s})),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Loaded ${i.length} images`}))},onProcessingCanceled:()=>{e(dB());const{intermediateImage:r}=n().gallery;r&&(r.isBase64||(e(Of({category:"result",image:r})),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Intermediate image saved: ${r.url}`}))),e(Cm())),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:"Processing canceled",level:"warning"}))},onImageDeleted:r=>{const{url:i}=r;e(ek(r));const{generation:{initialImage:a,maskPath:s}}=n();(a===i||(a==null?void 0:a.url)===i)&&e(L5()),s===i&&e(N5("")),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Image deleted: ${i}`}))},onSystemConfig:r=>{e(fB(r)),r.infill_methods.includes("patchmatch")||e(M5(r.infill_methods[0]))},onFoundModels:r=>{const{search_folder:i,found_models:a}=r;e(vB(i)),e(yB(a))},onNewModelAdded:r=>{const{new_model_name:i,model_list:a,update:s}=r;e(rs(a)),e(ei(!1)),e(ns(Ae.t("modelManager.modelAdded"))),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Model Added: ${i}`,level:"info"})),e(zl({title:s?`${Ae.t("modelManager.modelUpdated")}: ${i}`:`${Ae.t("modelManager.modelAdded")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelDeleted:r=>{const{deleted_model_name:i,model_list:a}=r;e(rs(a)),e(ei(!1)),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`${Ae.t("modelManager.modelAdded")}: ${i}`,level:"info"})),e(zl({title:`${Ae.t("modelManager.modelEntryDeleted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelConverted:r=>{const{converted_model_name:i,model_list:a}=r;e(rs(a)),e(ns(Ae.t("common.statusModelConverted"))),e(ei(!1)),e(Af(!0)),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Model converted: ${i}`,level:"info"})),e(zl({title:`${Ae.t("modelManager.modelConverted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelsMerged:r=>{const{merged_models:i,merged_model_name:a,model_list:s}=r;e(rs(s)),e(ns(Ae.t("common.statusMergedModels"))),e(ei(!1)),e(Af(!0)),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Models merged: ${i}`,level:"info"})),e(zl({title:`${Ae.t("modelManager.modelsMerged")}: ${a}`,status:"success",duration:2500,isClosable:!0}))},onModelChanged:r=>{const{model_name:i,model_list:a}=r;e(rs(a)),e(ns(Ae.t("common.statusModelChanged"))),e(ei(!1)),e(Af(!0)),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Model changed: ${i}`,level:"info"}))},onModelChangeFailed:r=>{const{model_name:i,model_list:a}=r;e(rs(a)),e(ei(!1)),e(Af(!0)),e(cb()),e(Gt({timestamp:Ut(new Date,"isoDateTime"),message:`Model change failed: ${i}`,level:"error"}))},onTempFolderEmptied:()=>{e(zl({title:Ae.t("toast.tempFoldersEmptied"),status:"success",duration:2500,isClosable:!0}))}}},zz=()=>{const{origin:t}=new URL(window.location.href),e=gd(t,{timeout:6e4,path:`${window.location.pathname}socket.io`});let n=!1;return i=>a=>s=>{const{onConnect:u,onDisconnect:c,onError:f,onPostprocessingResult:h,onGenerationResult:p,onIntermediateResult:g,onProgressUpdate:y,onGalleryImages:v,onProcessingCanceled:w,onImageDeleted:x,onSystemConfig:_,onModelChanged:S,onFoundModels:C,onNewModelAdded:O,onModelDeleted:I,onModelConverted:L,onModelsMerged:D,onModelChangeFailed:U,onTempFolderEmptied:X}=$z(i),{emitGenerateImage:K,emitRunESRGAN:te,emitRunFacetool:ce,emitDeleteImage:j,emitRequestImages:T,emitRequestNewImages:$,emitCancelProcessing:V,emitRequestSystemConfig:ie,emitSearchForModels:W,emitAddNewModel:Y,emitDeleteModel:Q,emitConvertToDiffusers:oe,emitMergeDiffusersModels:ve,emitRequestModelChange:we,emitSaveStagingAreaImageToGallery:Ue,emitRequestEmptyTempFolder:At}=Lz(i,e);switch(n||(e.on("connect",()=>u()),e.on("disconnect",()=>c()),e.on("error",me=>f(me)),e.on("generationResult",me=>p(me)),e.on("postprocessingResult",me=>h(me)),e.on("intermediateResult",me=>g(me)),e.on("progressUpdate",me=>y(me)),e.on("galleryImages",me=>v(me)),e.on("processingCanceled",()=>{w()}),e.on("imageDeleted",me=>{x(me)}),e.on("systemConfig",me=>{_(me)}),e.on("foundModels",me=>{C(me)}),e.on("newModelAdded",me=>{O(me)}),e.on("modelDeleted",me=>{I(me)}),e.on("modelConverted",me=>{L(me)}),e.on("modelsMerged",me=>{D(me)}),e.on("modelChanged",me=>{S(me)}),e.on("modelChangeFailed",me=>{U(me)}),e.on("tempFolderEmptied",()=>{X()}),n=!0),s.type){case"socketio/generateImage":{K(s.payload);break}case"socketio/runESRGAN":{te(s.payload);break}case"socketio/runFacetool":{ce(s.payload);break}case"socketio/deleteImage":{j(s.payload);break}case"socketio/requestImages":{T(s.payload);break}case"socketio/requestNewImages":{$(s.payload);break}case"socketio/cancelProcessing":{V();break}case"socketio/requestSystemConfig":{ie();break}case"socketio/searchForModels":{W(s.payload);break}case"socketio/addNewModel":{Y(s.payload);break}case"socketio/deleteModel":{Q(s.payload);break}case"socketio/convertToDiffusers":{oe(s.payload);break}case"socketio/mergeDiffusersModels":{ve(s.payload);break}case"socketio/requestModelChange":{we(s.payload);break}case"socketio/saveStagingAreaImageToGallery":{Ue(s.payload);break}case"socketio/requestEmptyTempFolder":{At();break}}a(s)}},Gz=["cursorPosition","isCanvasInitialized","doesCanvasNeedScaling"].map(t=>`canvas.${t}`),Uz=["currentIteration","currentStatus","currentStep","isCancelable","isConnected","isESRGANAvailable","isGFPGANAvailable","isProcessing","socketId","totalIterations","totalSteps","openModel","cancelOptions.cancelAfter"].map(t=>`system.${t}`),jz=["categories","currentCategory","currentImage","currentImageUuid","shouldAutoSwitchToNewImages","intermediateImage"].map(t=>`gallery.${t}`),Wz=["isLightboxOpen"].map(t=>`lightbox.${t}`),SP=Fx({generation:B5,postprocessing:$5,gallery:x5,system:SB,canvas:_5,ui:bB,lightbox:E5}),Hz=Yx.getPersistConfig({key:"root",storage:Kx,rootReducer:SP,blacklist:[...Gz,...Uz,...jz,...Wz],debounce:300}),Vz=ZN(Hz,SP),_P=TN({reducer:Vz,middleware:t=>t({immutableCheck:!1,serializableCheck:!1}).concat(zz()),devTools:{actionsDenylist:["canvas/setCursorPosition","canvas/setStageCoordinates","canvas/setStageScale","canvas/setIsDrawing","canvas/setBoundingBoxCoordinates","canvas/setBoundingBoxDimensions","canvas/setIsDrawing","canvas/addPointToCurrentLine"]}}),qz=a5(_P);function Kz(t){if(t.sheet)return t.sheet;for(var e=0;e0?en(Ys,--Ln):0,Gs--,Ot===10&&(Gs=1,rp--),Ot}function Kn(){return Ot=Ln2||Wu(Ot)>3?"":" "}function oG(t,e){for(;--e&&Kn()&&!(Ot<48||Ot>102||Ot>57&&Ot<65||Ot>70&&Ot<97););return ec(t,Sd()+(e<6&&ci()==32&&Kn()==32))}function cy(t){for(;Kn();)switch(Ot){case t:return Ln;case 34:case 39:t!==34&&t!==39&&cy(Ot);break;case 40:t===41&&cy(t);break;case 92:Kn();break}return Ln}function sG(t,e){for(;Kn()&&t+Ot!==47+10;)if(t+Ot===42+42&&ci()===47)break;return"/*"+ec(e,Ln-1)+"*"+np(t===47?t:Kn())}function lG(t){for(;!Wu(ci());)Kn();return ec(t,Ln)}function uG(t){return PP(wd("",null,null,null,[""],t=kP(t),0,[0],t))}function wd(t,e,n,r,i,a,s,u,c){for(var f=0,h=0,p=s,g=0,y=0,v=0,w=1,x=1,_=1,S=0,C="",O=i,I=a,L=r,D=C;x;)switch(v=S,S=Kn()){case 40:if(v!=108&&en(D,p-1)==58){uy(D+=qe(_d(S),"&","&\f"),"&\f")!=-1&&(_=-1);break}case 34:case 39:case 91:D+=_d(S);break;case 9:case 10:case 13:case 32:D+=aG(v);break;case 92:D+=oG(Sd()-1,7);continue;case 47:switch(ci()){case 42:case 47:qf(cG(sG(Kn(),Sd()),e,n),c);break;default:D+="/"}break;case 123*w:u[f++]=ti(D)*_;case 125*w:case 59:case 0:switch(S){case 0:case 125:x=0;case 59+h:y>0&&ti(D)-p&&qf(y>32?Kb(D+";",r,n,p-1):Kb(qe(D," ","")+";",r,n,p-2),c);break;case 59:D+=";";default:if(qf(L=qb(D,e,n,f,h,i,u,C,O=[],I=[],p),a),S===123)if(h===0)wd(D,e,L,L,O,a,p,u,I);else switch(g===99&&en(D,3)===110?100:g){case 100:case 109:case 115:wd(t,L,L,r&&qf(qb(t,L,L,0,0,i,u,C,i,O=[],p),I),i,I,p,u,r?O:I);break;default:wd(D,L,L,L,[""],I,0,u,I)}}f=h=y=0,w=_=1,C=D="",p=s;break;case 58:p=1+ti(D),y=v;default:if(w<1){if(S==123)--w;else if(S==125&&w++==0&&iG()==125)continue}switch(D+=np(S),S*w){case 38:_=h>0?1:(D+="\f",-1);break;case 44:u[f++]=(ti(D)-1)*_,_=1;break;case 64:ci()===45&&(D+=_d(Kn())),g=ci(),h=p=ti(C=D+=lG(Sd())),S++;break;case 45:v===45&&ti(D)==2&&(w=0)}}return a}function qb(t,e,n,r,i,a,s,u,c,f,h){for(var p=i-1,g=i===0?a:[""],y=$0(g),v=0,w=0,x=0;v0?g[_]+" "+S:qe(S,/&\f/g,g[_])))&&(c[x++]=C);return ip(t,e,n,i===0?B0:u,c,f,h)}function cG(t,e,n){return ip(t,e,n,wP,np(rG()),ju(t,2,-2),0)}function Kb(t,e,n,r){return ip(t,e,n,F0,ju(t,0,r),ju(t,r+1,-1),r)}function Rs(t,e){for(var n="",r=$0(t),i=0;i6)switch(en(t,e+1)){case 109:if(en(t,e+4)!==45)break;case 102:return qe(t,/(.+:)(.+)-([^]+)/,"$1"+He+"$2-$3$1"+lh+(en(t,e+3)==108?"$3":"$2-$3"))+t;case 115:return~uy(t,"stretch")?OP(qe(t,"stretch","fill-available"),e)+t:t}break;case 4949:if(en(t,e+1)!==115)break;case 6444:switch(en(t,ti(t)-3-(~uy(t,"!important")&&10))){case 107:return qe(t,":",":"+He)+t;case 101:return qe(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+He+(en(t,14)===45?"inline-":"")+"box$3$1"+He+"$2$3$1"+ln+"$2box$3")+t}break;case 5936:switch(en(t,e+11)){case 114:return He+t+ln+qe(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return He+t+ln+qe(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return He+t+ln+qe(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return He+t+ln+t+t}return t}var SG=function(e,n,r,i){if(e.length>-1&&!e.return)switch(e.type){case F0:e.return=OP(e.value,e.length);break;case bP:return Rs([ql(e,{value:qe(e.value,"@","@"+He)})],i);case B0:if(e.length)return nG(e.props,function(a){switch(tG(a,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Rs([ql(e,{props:[qe(a,/:(read-\w+)/,":"+lh+"$1")]})],i);case"::placeholder":return Rs([ql(e,{props:[qe(a,/:(plac\w+)/,":"+He+"input-$1")]}),ql(e,{props:[qe(a,/:(plac\w+)/,":"+lh+"$1")]}),ql(e,{props:[qe(a,/:(plac\w+)/,ln+"input-$1")]})],i)}return""})}},_G=[SG],wG=function(e){var n=e.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(w){var x=w.getAttribute("data-emotion");x.indexOf(" ")!==-1&&(document.head.appendChild(w),w.setAttribute("data-s",""))})}var i=e.stylisPlugins||_G,a={},s,u=[];s=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(w){for(var x=w.getAttribute("data-emotion").split(" "),_=1;_=4;++r,i-=4)n=t.charCodeAt(r)&255|(t.charCodeAt(++r)&255)<<8|(t.charCodeAt(++r)&255)<<16|(t.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,e=(n&65535)*1540483477+((n>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(i){case 3:e^=(t.charCodeAt(r+2)&255)<<16;case 2:e^=(t.charCodeAt(r+1)&255)<<8;case 1:e^=t.charCodeAt(r)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var kG={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},PG=/[A-Z]|^ms/g,EG=/_EMO_([^_]+?)_([^]*?)_EMO_/g,AP=function(e){return e.charCodeAt(1)===45},Qb=function(e){return e!=null&&typeof e!="boolean"},Dm=EP(function(t){return AP(t)?t:t.replace(PG,"-$&").toLowerCase()}),Jb=function(e,n){switch(e){case"animation":case"animationName":if(typeof n=="string")return n.replace(EG,function(r,i,a){return ni={name:i,styles:a,next:ni},i})}return kG[e]!==1&&!AP(e)&&typeof n=="number"&&n!==0?n+"px":n};function Hu(t,e,n){if(n==null)return"";if(n.__emotion_styles!==void 0)return n;switch(typeof n){case"boolean":return"";case"object":{if(n.anim===1)return ni={name:n.name,styles:n.styles,next:ni},n.name;if(n.styles!==void 0){var r=n.next;if(r!==void 0)for(;r!==void 0;)ni={name:r.name,styles:r.styles,next:ni},r=r.next;var i=n.styles+";";return i}return OG(t,e,n)}case"function":{if(t!==void 0){var a=ni,s=n(t);return ni=a,Hu(t,e,s)}break}}if(e==null)return n;var u=e[n];return u!==void 0?u:n}function OG(t,e,n){var r="";if(Array.isArray(n))for(var i=0;i` or ``");return t}var NP=be.createContext({});NP.displayName="ColorModeContext";function BP(){const t=be.useContext(NP);if(t===void 0)throw new Error("useColorMode must be used within a ColorModeProvider");return t}function DG(){const t=BP(),e=DP();return{...t,theme:e}}function NG(t,e,n){var r,i;if(e==null)return e;const a=s=>{var u,c;return(c=(u=t.__breakpoints)==null?void 0:u.asArray)==null?void 0:c[s]};return(i=(r=a(e))!=null?r:a(n))!=null?i:n}function BG(t,e,n){var r,i;if(e==null)return e;const a=s=>{var u,c;return(c=(u=t.__cssMap)==null?void 0:u[s])==null?void 0:c.value};return(i=(r=a(e))!=null?r:a(n))!=null?i:n}function iH(t,e,n){const r=DP();return FG(t,e,n)(r)}function FG(t,e,n){const r=Array.isArray(e)?e:[e],i=Array.isArray(n)?n:[n];return a=>{const s=i.filter(Boolean),u=r.map((c,f)=>{var h,p;if(t==="breakpoints")return NG(a,c,(h=s[f])!=null?h:c);const g=`${t}.${c}`;return BG(a,g,(p=s[f])!=null?p:c)});return Array.isArray(e)?u:u[0]}}var FP=(...t)=>t.filter(Boolean).join(" ");function $G(){return!1}function zr(t){const e=typeof t;return t!=null&&(e==="object"||e==="function")&&!Array.isArray(t)}var aH=t=>{const{condition:e,message:n}=t;e&&$G()&&console.warn(n)};function io(t,...e){return zG(t)?t(...e):t}var zG=t=>typeof t=="function",oH=t=>t?"":void 0,sH=t=>t?!0:void 0;function lH(...t){return function(n){t.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function uH(...t){return function(n){t.forEach(r=>{r==null||r(n)})}}var uh={},GG={get exports(){return uh},set exports(t){uh=t}};(function(t,e){var n=200,r="__lodash_hash_undefined__",i=800,a=16,s=9007199254740991,u="[object Arguments]",c="[object Array]",f="[object AsyncFunction]",h="[object Boolean]",p="[object Date]",g="[object Error]",y="[object Function]",v="[object GeneratorFunction]",w="[object Map]",x="[object Number]",_="[object Null]",S="[object Object]",C="[object Proxy]",O="[object RegExp]",I="[object Set]",L="[object String]",D="[object Undefined]",U="[object WeakMap]",X="[object ArrayBuffer]",K="[object DataView]",te="[object Float32Array]",ce="[object Float64Array]",j="[object Int8Array]",T="[object Int16Array]",$="[object Int32Array]",V="[object Uint8Array]",ie="[object Uint8ClampedArray]",W="[object Uint16Array]",Y="[object Uint32Array]",Q=/[\\^$.*+?()[\]{}|]/g,oe=/^\[object .+?Constructor\]$/,ve=/^(?:0|[1-9]\d*)$/,we={};we[te]=we[ce]=we[j]=we[T]=we[$]=we[V]=we[ie]=we[W]=we[Y]=!0,we[u]=we[c]=we[X]=we[h]=we[K]=we[p]=we[g]=we[y]=we[w]=we[x]=we[S]=we[O]=we[I]=we[L]=we[U]=!1;var Ue=typeof yn=="object"&&yn&&yn.Object===Object&&yn,At=typeof self=="object"&&self&&self.Object===Object&&self,me=Ue||At||Function("return this")(),qt=e&&!e.nodeType&&e,Bt=qt&&!0&&t&&!t.nodeType&&t,bn=Bt&&Bt.exports===qt,wr=bn&&Ue.process,Ft=function(){try{var E=Bt&&Bt.require&&Bt.require("util").types;return E||wr&&wr.binding&&wr.binding("util")}catch{}}(),xe=Ft&&Ft.isTypedArray;function Wr(E,N,H){switch(H.length){case 0:return E.call(N);case 1:return E.call(N,H[0]);case 2:return E.call(N,H[0],H[1]);case 3:return E.call(N,H[0],H[1],H[2])}return E.apply(N,H)}function Et(E,N){for(var H=-1,fe=Array(E);++H-1}function mp(E,N){var H=this.__data__,fe=yi(H,E);return fe<0?(++this.size,H.push([E,N])):H[fe][1]=N,this}xr.prototype.clear=tl,xr.prototype.delete=pp,xr.prototype.get=nl,xr.prototype.has=gp,xr.prototype.set=mp;function Xi(E){var N=-1,H=E==null?0:E.length;for(this.clear();++N1?H[Ie-1]:void 0,Pe=Ie>2?H[2]:void 0;for(Ye=E.length>3&&typeof Ye=="function"?(Ie--,Ye):void 0,Pe&&hc(H[0],H[1],Pe)&&(Ye=Ie<3?void 0:Ye,Ie=1),N=Object(N);++fe-1&&E%1==0&&E0){if(++N>=i)return arguments[0]}else N=0;return E.apply(void 0,arguments)}}function yc(E){if(E!=null){try{return Dn.call(E)}catch{}try{return E+""}catch{}}return""}function Mo(E,N){return E===N||E!==E&&N!==N}var ul=il(function(){return arguments}())?il:function(E){return za(E)&&bt.call(E,"callee")&&!Js.call(E,"callee")},cl=Array.isArray;function Do(E){return E!=null&&_c(E.length)&&!fl(E)}function Dp(E){return za(E)&&Do(E)}var Sc=sp||Fp;function fl(E){if(!kr(E))return!1;var N=To(E);return N==y||N==v||N==f||N==C}function _c(E){return typeof E=="number"&&E>-1&&E%1==0&&E<=s}function kr(E){var N=typeof E;return E!=null&&(N=="object"||N=="function")}function za(E){return E!=null&&typeof E=="object"}function Np(E){if(!za(E)||To(E)!=S)return!1;var N=Eo(E);if(N===null)return!0;var H=bt.call(N,"constructor")&&N.constructor;return typeof H=="function"&&H instanceof H&&Dn.call(H)==Co}var wc=xe?gi(xe):ic;function Bp(E){return uc(E,bc(E))}function bc(E){return Do(E)?Ep(E,!0):Rp(E)}var nt=Ro(function(E,N,H,fe){ac(E,N,H,fe)});function et(E){return function(){return E}}function Cc(E){return E}function Fp(){return!1}t.exports=nt})(GG,uh);const ai=uh;var UG=t=>/!(important)?$/.test(t),t2=t=>typeof t=="string"?t.replace(/!(important)?$/,"").trim():t,jG=(t,e)=>n=>{const r=String(e),i=UG(r),a=t2(r),s=t?`${t}.${a}`:a;let u=zr(n.__cssMap)&&s in n.__cssMap?n.__cssMap[s].varRef:e;return u=t2(u),i?`${u} !important`:u};function G0(t){const{scale:e,transform:n,compose:r}=t;return(a,s)=>{var u;const c=jG(e,a)(s);let f=(u=n==null?void 0:n(c,s))!=null?u:c;return r&&(f=r(f,s)),f}}var Kf=(...t)=>e=>t.reduce((n,r)=>r(n),e);function Ir(t,e){return n=>{const r={property:n,scale:t};return r.transform=G0({scale:t,transform:e}),r}}var WG=({rtl:t,ltr:e})=>n=>n.direction==="rtl"?t:e;function HG(t){const{property:e,scale:n,transform:r}=t;return{scale:n,property:WG(e),transform:n?G0({scale:n,compose:r}):r}}var $P=["rotate(var(--chakra-rotate, 0))","scaleX(var(--chakra-scale-x, 1))","scaleY(var(--chakra-scale-y, 1))","skewX(var(--chakra-skew-x, 0))","skewY(var(--chakra-skew-y, 0))"];function VG(){return["translateX(var(--chakra-translate-x, 0))","translateY(var(--chakra-translate-y, 0))",...$P].join(" ")}function qG(){return["translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)",...$P].join(" ")}var KG={"--chakra-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-sepia":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-drop-shadow":"var(--chakra-empty,/*!*/ /*!*/)",filter:["var(--chakra-blur)","var(--chakra-brightness)","var(--chakra-contrast)","var(--chakra-grayscale)","var(--chakra-hue-rotate)","var(--chakra-invert)","var(--chakra-saturate)","var(--chakra-sepia)","var(--chakra-drop-shadow)"].join(" ")},YG={backdropFilter:["var(--chakra-backdrop-blur)","var(--chakra-backdrop-brightness)","var(--chakra-backdrop-contrast)","var(--chakra-backdrop-grayscale)","var(--chakra-backdrop-hue-rotate)","var(--chakra-backdrop-invert)","var(--chakra-backdrop-opacity)","var(--chakra-backdrop-saturate)","var(--chakra-backdrop-sepia)"].join(" "),"--chakra-backdrop-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-opacity":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-sepia":"var(--chakra-empty,/*!*/ /*!*/)"};function XG(t){return{"--chakra-ring-offset-shadow":"var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)","--chakra-ring-shadow":"var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)","--chakra-ring-width":t,boxShadow:["var(--chakra-ring-offset-shadow)","var(--chakra-ring-shadow)","var(--chakra-shadow, 0 0 #0000)"].join(", ")}}var QG={"row-reverse":{space:"--chakra-space-x-reverse",divide:"--chakra-divide-x-reverse"},"column-reverse":{space:"--chakra-space-y-reverse",divide:"--chakra-divide-y-reverse"}},fy={"to-t":"to top","to-tr":"to top right","to-r":"to right","to-br":"to bottom right","to-b":"to bottom","to-bl":"to bottom left","to-l":"to left","to-tl":"to top left"},JG=new Set(Object.values(fy)),zP=new Set(["none","-moz-initial","inherit","initial","revert","unset"]),ZG=t=>t.trim();function e6(t,e){if(t==null||zP.has(t))return t;const r=/(^[a-z-A-Z]+)\((.*)\)/g.exec(t),i=r==null?void 0:r[1],a=r==null?void 0:r[2];if(!i||!a)return t;const s=i.includes("-gradient")?i:`${i}-gradient`,[u,...c]=a.split(",").map(ZG).filter(Boolean);if((c==null?void 0:c.length)===0)return t;const f=u in fy?fy[u]:u;c.unshift(f);const h=c.map(p=>{if(JG.has(p))return p;const g=p.indexOf(" "),[y,v]=g!==-1?[p.substr(0,g),p.substr(g+1)]:[p],w=GP(v)?v:v&&v.split(" "),x=`colors.${y}`,_=x in e.__cssMap?e.__cssMap[x].varRef:y;return w?[_,...Array.isArray(w)?w:[w]].join(" "):_});return`${s}(${h.join(", ")})`}var GP=t=>typeof t=="string"&&t.includes("(")&&t.includes(")"),t6=(t,e)=>e6(t,e??{});function n6(t){return/^var\(--.+\)$/.test(t)}var r6=t=>{const e=parseFloat(t.toString()),n=t.toString().replace(String(e),"");return{unitless:!n,value:e,unit:n}},Jr=t=>e=>`${t}(${e})`,Fe={filter(t){return t!=="auto"?t:KG},backdropFilter(t){return t!=="auto"?t:YG},ring(t){return XG(Fe.px(t))},bgClip(t){return t==="text"?{color:"transparent",backgroundClip:"text"}:{backgroundClip:t}},transform(t){return t==="auto"?VG():t==="auto-gpu"?qG():t},vh(t){return t==="$100vh"?"var(--chakra-vh)":t},px(t){if(t==null)return t;const{unitless:e}=r6(t);return e||typeof t=="number"?`${t}px`:t},fraction(t){return typeof t!="number"||t>1?t:`${t*100}%`},float(t,e){const n={left:"right",right:"left"};return e.direction==="rtl"?n[t]:t},degree(t){if(n6(t)||t==null)return t;const e=typeof t=="string"&&!t.endsWith("deg");return typeof t=="number"||e?`${t}deg`:t},gradient:t6,blur:Jr("blur"),opacity:Jr("opacity"),brightness:Jr("brightness"),contrast:Jr("contrast"),dropShadow:Jr("drop-shadow"),grayscale:Jr("grayscale"),hueRotate:Jr("hue-rotate"),invert:Jr("invert"),saturate:Jr("saturate"),sepia:Jr("sepia"),bgImage(t){return t==null||GP(t)||zP.has(t)?t:`url(${t})`},outline(t){const e=String(t)==="0"||String(t)==="none";return t!==null&&e?{outline:"2px solid transparent",outlineOffset:"2px"}:{outline:t}},flexDirection(t){var e;const{space:n,divide:r}=(e=QG[t])!=null?e:{},i={flexDirection:t};return n&&(i[n]=1),r&&(i[r]=1),i}},B={borderWidths:Ir("borderWidths"),borderStyles:Ir("borderStyles"),colors:Ir("colors"),borders:Ir("borders"),radii:Ir("radii",Fe.px),space:Ir("space",Kf(Fe.vh,Fe.px)),spaceT:Ir("space",Kf(Fe.vh,Fe.px)),degreeT(t){return{property:t,transform:Fe.degree}},prop(t,e,n){return{property:t,scale:e,...e&&{transform:G0({scale:e,transform:n})}}},propT(t,e){return{property:t,transform:e}},sizes:Ir("sizes",Kf(Fe.vh,Fe.px)),sizesT:Ir("sizes",Kf(Fe.vh,Fe.fraction)),shadows:Ir("shadows"),logical:HG,blur:Ir("blur",Fe.blur)},bd={background:B.colors("background"),backgroundColor:B.colors("backgroundColor"),backgroundImage:B.propT("backgroundImage",Fe.bgImage),backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundAttachment:!0,backgroundClip:{transform:Fe.bgClip},bgSize:B.prop("backgroundSize"),bgPosition:B.prop("backgroundPosition"),bg:B.colors("background"),bgColor:B.colors("backgroundColor"),bgPos:B.prop("backgroundPosition"),bgRepeat:B.prop("backgroundRepeat"),bgAttachment:B.prop("backgroundAttachment"),bgGradient:B.propT("backgroundImage",Fe.gradient),bgClip:{transform:Fe.bgClip}};Object.assign(bd,{bgImage:bd.backgroundImage,bgImg:bd.backgroundImage});var We={border:B.borders("border"),borderWidth:B.borderWidths("borderWidth"),borderStyle:B.borderStyles("borderStyle"),borderColor:B.colors("borderColor"),borderRadius:B.radii("borderRadius"),borderTop:B.borders("borderTop"),borderBlockStart:B.borders("borderBlockStart"),borderTopLeftRadius:B.radii("borderTopLeftRadius"),borderStartStartRadius:B.logical({scale:"radii",property:{ltr:"borderTopLeftRadius",rtl:"borderTopRightRadius"}}),borderEndStartRadius:B.logical({scale:"radii",property:{ltr:"borderBottomLeftRadius",rtl:"borderBottomRightRadius"}}),borderTopRightRadius:B.radii("borderTopRightRadius"),borderStartEndRadius:B.logical({scale:"radii",property:{ltr:"borderTopRightRadius",rtl:"borderTopLeftRadius"}}),borderEndEndRadius:B.logical({scale:"radii",property:{ltr:"borderBottomRightRadius",rtl:"borderBottomLeftRadius"}}),borderRight:B.borders("borderRight"),borderInlineEnd:B.borders("borderInlineEnd"),borderBottom:B.borders("borderBottom"),borderBlockEnd:B.borders("borderBlockEnd"),borderBottomLeftRadius:B.radii("borderBottomLeftRadius"),borderBottomRightRadius:B.radii("borderBottomRightRadius"),borderLeft:B.borders("borderLeft"),borderInlineStart:{property:"borderInlineStart",scale:"borders"},borderInlineStartRadius:B.logical({scale:"radii",property:{ltr:["borderTopLeftRadius","borderBottomLeftRadius"],rtl:["borderTopRightRadius","borderBottomRightRadius"]}}),borderInlineEndRadius:B.logical({scale:"radii",property:{ltr:["borderTopRightRadius","borderBottomRightRadius"],rtl:["borderTopLeftRadius","borderBottomLeftRadius"]}}),borderX:B.borders(["borderLeft","borderRight"]),borderInline:B.borders("borderInline"),borderY:B.borders(["borderTop","borderBottom"]),borderBlock:B.borders("borderBlock"),borderTopWidth:B.borderWidths("borderTopWidth"),borderBlockStartWidth:B.borderWidths("borderBlockStartWidth"),borderTopColor:B.colors("borderTopColor"),borderBlockStartColor:B.colors("borderBlockStartColor"),borderTopStyle:B.borderStyles("borderTopStyle"),borderBlockStartStyle:B.borderStyles("borderBlockStartStyle"),borderBottomWidth:B.borderWidths("borderBottomWidth"),borderBlockEndWidth:B.borderWidths("borderBlockEndWidth"),borderBottomColor:B.colors("borderBottomColor"),borderBlockEndColor:B.colors("borderBlockEndColor"),borderBottomStyle:B.borderStyles("borderBottomStyle"),borderBlockEndStyle:B.borderStyles("borderBlockEndStyle"),borderLeftWidth:B.borderWidths("borderLeftWidth"),borderInlineStartWidth:B.borderWidths("borderInlineStartWidth"),borderLeftColor:B.colors("borderLeftColor"),borderInlineStartColor:B.colors("borderInlineStartColor"),borderLeftStyle:B.borderStyles("borderLeftStyle"),borderInlineStartStyle:B.borderStyles("borderInlineStartStyle"),borderRightWidth:B.borderWidths("borderRightWidth"),borderInlineEndWidth:B.borderWidths("borderInlineEndWidth"),borderRightColor:B.colors("borderRightColor"),borderInlineEndColor:B.colors("borderInlineEndColor"),borderRightStyle:B.borderStyles("borderRightStyle"),borderInlineEndStyle:B.borderStyles("borderInlineEndStyle"),borderTopRadius:B.radii(["borderTopLeftRadius","borderTopRightRadius"]),borderBottomRadius:B.radii(["borderBottomLeftRadius","borderBottomRightRadius"]),borderLeftRadius:B.radii(["borderTopLeftRadius","borderBottomLeftRadius"]),borderRightRadius:B.radii(["borderTopRightRadius","borderBottomRightRadius"])};Object.assign(We,{rounded:We.borderRadius,roundedTop:We.borderTopRadius,roundedTopLeft:We.borderTopLeftRadius,roundedTopRight:We.borderTopRightRadius,roundedTopStart:We.borderStartStartRadius,roundedTopEnd:We.borderStartEndRadius,roundedBottom:We.borderBottomRadius,roundedBottomLeft:We.borderBottomLeftRadius,roundedBottomRight:We.borderBottomRightRadius,roundedBottomStart:We.borderEndStartRadius,roundedBottomEnd:We.borderEndEndRadius,roundedLeft:We.borderLeftRadius,roundedRight:We.borderRightRadius,roundedStart:We.borderInlineStartRadius,roundedEnd:We.borderInlineEndRadius,borderStart:We.borderInlineStart,borderEnd:We.borderInlineEnd,borderTopStartRadius:We.borderStartStartRadius,borderTopEndRadius:We.borderStartEndRadius,borderBottomStartRadius:We.borderEndStartRadius,borderBottomEndRadius:We.borderEndEndRadius,borderStartRadius:We.borderInlineStartRadius,borderEndRadius:We.borderInlineEndRadius,borderStartWidth:We.borderInlineStartWidth,borderEndWidth:We.borderInlineEndWidth,borderStartColor:We.borderInlineStartColor,borderEndColor:We.borderInlineEndColor,borderStartStyle:We.borderInlineStartStyle,borderEndStyle:We.borderInlineEndStyle});var i6={color:B.colors("color"),textColor:B.colors("color"),fill:B.colors("fill"),stroke:B.colors("stroke")},dy={boxShadow:B.shadows("boxShadow"),mixBlendMode:!0,blendMode:B.prop("mixBlendMode"),backgroundBlendMode:!0,bgBlendMode:B.prop("backgroundBlendMode"),opacity:!0};Object.assign(dy,{shadow:dy.boxShadow});var a6={filter:{transform:Fe.filter},blur:B.blur("--chakra-blur"),brightness:B.propT("--chakra-brightness",Fe.brightness),contrast:B.propT("--chakra-contrast",Fe.contrast),hueRotate:B.degreeT("--chakra-hue-rotate"),invert:B.propT("--chakra-invert",Fe.invert),saturate:B.propT("--chakra-saturate",Fe.saturate),dropShadow:B.propT("--chakra-drop-shadow",Fe.dropShadow),backdropFilter:{transform:Fe.backdropFilter},backdropBlur:B.blur("--chakra-backdrop-blur"),backdropBrightness:B.propT("--chakra-backdrop-brightness",Fe.brightness),backdropContrast:B.propT("--chakra-backdrop-contrast",Fe.contrast),backdropHueRotate:B.degreeT("--chakra-backdrop-hue-rotate"),backdropInvert:B.propT("--chakra-backdrop-invert",Fe.invert),backdropSaturate:B.propT("--chakra-backdrop-saturate",Fe.saturate)},ch={alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:{transform:Fe.flexDirection},flex:!0,flexFlow:!0,flexGrow:!0,flexShrink:!0,flexBasis:B.sizes("flexBasis"),justifySelf:!0,alignSelf:!0,order:!0,placeItems:!0,placeContent:!0,placeSelf:!0,gap:B.space("gap"),rowGap:B.space("rowGap"),columnGap:B.space("columnGap")};Object.assign(ch,{flexDir:ch.flexDirection});var UP={gridGap:B.space("gridGap"),gridColumnGap:B.space("gridColumnGap"),gridRowGap:B.space("gridRowGap"),gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridColumnStart:!0,gridColumnEnd:!0,gridRowStart:!0,gridRowEnd:!0,gridAutoRows:!0,gridTemplate:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0},o6={appearance:!0,cursor:!0,resize:!0,userSelect:!0,pointerEvents:!0,outline:{transform:Fe.outline},outlineOffset:!0,outlineColor:B.colors("outlineColor")},lr={width:B.sizesT("width"),inlineSize:B.sizesT("inlineSize"),height:B.sizes("height"),blockSize:B.sizes("blockSize"),boxSize:B.sizes(["width","height"]),minWidth:B.sizes("minWidth"),minInlineSize:B.sizes("minInlineSize"),minHeight:B.sizes("minHeight"),minBlockSize:B.sizes("minBlockSize"),maxWidth:B.sizes("maxWidth"),maxInlineSize:B.sizes("maxInlineSize"),maxHeight:B.sizes("maxHeight"),maxBlockSize:B.sizes("maxBlockSize"),overflow:!0,overflowX:!0,overflowY:!0,overscrollBehavior:!0,overscrollBehaviorX:!0,overscrollBehaviorY:!0,display:!0,hideFrom:{scale:"breakpoints",transform:(t,e)=>{var n,r,i;return{[(i=(r=(n=e.__breakpoints)==null?void 0:n.get(t))==null?void 0:r.minWQuery)!=null?i:`@media screen and (min-width: ${t})`]:{display:"none"}}}},hideBelow:{scale:"breakpoints",transform:(t,e)=>{var n,r,i;return{[(i=(r=(n=e.__breakpoints)==null?void 0:n.get(t))==null?void 0:r.maxWQuery)!=null?i:`@media screen and (max-width: ${t})`]:{display:"none"}}}},verticalAlign:!0,boxSizing:!0,boxDecorationBreak:!0,float:B.propT("float",Fe.float),objectFit:!0,objectPosition:!0,visibility:!0,isolation:!0};Object.assign(lr,{w:lr.width,h:lr.height,minW:lr.minWidth,maxW:lr.maxWidth,minH:lr.minHeight,maxH:lr.maxHeight,overscroll:lr.overscrollBehavior,overscrollX:lr.overscrollBehaviorX,overscrollY:lr.overscrollBehaviorY});var s6={listStyleType:!0,listStylePosition:!0,listStylePos:B.prop("listStylePosition"),listStyleImage:!0,listStyleImg:B.prop("listStyleImage")};function l6(t,e,n,r){const i=typeof e=="string"?e.split("."):[e];for(r=0;r{const e=new WeakMap;return(r,i,a,s)=>{if(typeof r>"u")return t(r,i,a);e.has(r)||e.set(r,new Map);const u=e.get(r);if(u.has(i))return u.get(i);const c=t(r,i,a,s);return u.set(i,c),c}},c6=u6(l6),f6={border:"0px",clip:"rect(0, 0, 0, 0)",width:"1px",height:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},d6={position:"static",width:"auto",height:"auto",clip:"auto",padding:"0",margin:"0",overflow:"visible",whiteSpace:"normal"},Nm=(t,e,n)=>{const r={},i=c6(t,e,{});for(const a in i)a in n&&n[a]!=null||(r[a]=i[a]);return r},h6={srOnly:{transform(t){return t===!0?f6:t==="focusable"?d6:{}}},layerStyle:{processResult:!0,transform:(t,e,n)=>Nm(e,`layerStyles.${t}`,n)},textStyle:{processResult:!0,transform:(t,e,n)=>Nm(e,`textStyles.${t}`,n)},apply:{processResult:!0,transform:(t,e,n)=>Nm(e,t,n)}},Su={position:!0,pos:B.prop("position"),zIndex:B.prop("zIndex","zIndices"),inset:B.spaceT("inset"),insetX:B.spaceT(["left","right"]),insetInline:B.spaceT("insetInline"),insetY:B.spaceT(["top","bottom"]),insetBlock:B.spaceT("insetBlock"),top:B.spaceT("top"),insetBlockStart:B.spaceT("insetBlockStart"),bottom:B.spaceT("bottom"),insetBlockEnd:B.spaceT("insetBlockEnd"),left:B.spaceT("left"),insetInlineStart:B.logical({scale:"space",property:{ltr:"left",rtl:"right"}}),right:B.spaceT("right"),insetInlineEnd:B.logical({scale:"space",property:{ltr:"right",rtl:"left"}})};Object.assign(Su,{insetStart:Su.insetInlineStart,insetEnd:Su.insetInlineEnd});var p6={ring:{transform:Fe.ring},ringColor:B.colors("--chakra-ring-color"),ringOffset:B.prop("--chakra-ring-offset-width"),ringOffsetColor:B.colors("--chakra-ring-offset-color"),ringInset:B.prop("--chakra-ring-inset")},st={margin:B.spaceT("margin"),marginTop:B.spaceT("marginTop"),marginBlockStart:B.spaceT("marginBlockStart"),marginRight:B.spaceT("marginRight"),marginInlineEnd:B.spaceT("marginInlineEnd"),marginBottom:B.spaceT("marginBottom"),marginBlockEnd:B.spaceT("marginBlockEnd"),marginLeft:B.spaceT("marginLeft"),marginInlineStart:B.spaceT("marginInlineStart"),marginX:B.spaceT(["marginInlineStart","marginInlineEnd"]),marginInline:B.spaceT("marginInline"),marginY:B.spaceT(["marginTop","marginBottom"]),marginBlock:B.spaceT("marginBlock"),padding:B.space("padding"),paddingTop:B.space("paddingTop"),paddingBlockStart:B.space("paddingBlockStart"),paddingRight:B.space("paddingRight"),paddingBottom:B.space("paddingBottom"),paddingBlockEnd:B.space("paddingBlockEnd"),paddingLeft:B.space("paddingLeft"),paddingInlineStart:B.space("paddingInlineStart"),paddingInlineEnd:B.space("paddingInlineEnd"),paddingX:B.space(["paddingInlineStart","paddingInlineEnd"]),paddingInline:B.space("paddingInline"),paddingY:B.space(["paddingTop","paddingBottom"]),paddingBlock:B.space("paddingBlock")};Object.assign(st,{m:st.margin,mt:st.marginTop,mr:st.marginRight,me:st.marginInlineEnd,marginEnd:st.marginInlineEnd,mb:st.marginBottom,ml:st.marginLeft,ms:st.marginInlineStart,marginStart:st.marginInlineStart,mx:st.marginX,my:st.marginY,p:st.padding,pt:st.paddingTop,py:st.paddingY,px:st.paddingX,pb:st.paddingBottom,pl:st.paddingLeft,ps:st.paddingInlineStart,paddingStart:st.paddingInlineStart,pr:st.paddingRight,pe:st.paddingInlineEnd,paddingEnd:st.paddingInlineEnd});var g6={textDecorationColor:B.colors("textDecorationColor"),textDecoration:!0,textDecor:{property:"textDecoration"},textDecorationLine:!0,textDecorationStyle:!0,textDecorationThickness:!0,textUnderlineOffset:!0,textShadow:B.shadows("textShadow")},m6={clipPath:!0,transform:B.propT("transform",Fe.transform),transformOrigin:!0,translateX:B.spaceT("--chakra-translate-x"),translateY:B.spaceT("--chakra-translate-y"),skewX:B.degreeT("--chakra-skew-x"),skewY:B.degreeT("--chakra-skew-y"),scaleX:B.prop("--chakra-scale-x"),scaleY:B.prop("--chakra-scale-y"),scale:B.prop(["--chakra-scale-x","--chakra-scale-y"]),rotate:B.degreeT("--chakra-rotate")},v6={transition:!0,transitionDelay:!0,animation:!0,willChange:!0,transitionDuration:B.prop("transitionDuration","transition.duration"),transitionProperty:B.prop("transitionProperty","transition.property"),transitionTimingFunction:B.prop("transitionTimingFunction","transition.easing")},y6={fontFamily:B.prop("fontFamily","fonts"),fontSize:B.prop("fontSize","fontSizes",Fe.px),fontWeight:B.prop("fontWeight","fontWeights"),lineHeight:B.prop("lineHeight","lineHeights"),letterSpacing:B.prop("letterSpacing","letterSpacings"),textAlign:!0,fontStyle:!0,textIndent:!0,wordBreak:!0,overflowWrap:!0,textOverflow:!0,textTransform:!0,whiteSpace:!0,isTruncated:{transform(t){if(t===!0)return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}},noOfLines:{static:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"var(--chakra-line-clamp)"},property:"--chakra-line-clamp"}},S6={scrollBehavior:!0,scrollSnapAlign:!0,scrollSnapStop:!0,scrollSnapType:!0,scrollMargin:B.spaceT("scrollMargin"),scrollMarginTop:B.spaceT("scrollMarginTop"),scrollMarginBottom:B.spaceT("scrollMarginBottom"),scrollMarginLeft:B.spaceT("scrollMarginLeft"),scrollMarginRight:B.spaceT("scrollMarginRight"),scrollMarginX:B.spaceT(["scrollMarginLeft","scrollMarginRight"]),scrollMarginY:B.spaceT(["scrollMarginTop","scrollMarginBottom"]),scrollPadding:B.spaceT("scrollPadding"),scrollPaddingTop:B.spaceT("scrollPaddingTop"),scrollPaddingBottom:B.spaceT("scrollPaddingBottom"),scrollPaddingLeft:B.spaceT("scrollPaddingLeft"),scrollPaddingRight:B.spaceT("scrollPaddingRight"),scrollPaddingX:B.spaceT(["scrollPaddingLeft","scrollPaddingRight"]),scrollPaddingY:B.spaceT(["scrollPaddingTop","scrollPaddingBottom"])};function jP(t){return zr(t)&&t.reference?t.reference:String(t)}var ap=(t,...e)=>e.map(jP).join(` ${t} `).replace(/calc/g,""),n2=(...t)=>`calc(${ap("+",...t)})`,r2=(...t)=>`calc(${ap("-",...t)})`,hy=(...t)=>`calc(${ap("*",...t)})`,i2=(...t)=>`calc(${ap("/",...t)})`,a2=t=>{const e=jP(t);return e!=null&&!Number.isNaN(parseFloat(e))?String(e).startsWith("-")?String(e).slice(1):`-${e}`:hy(e,-1)},eo=Object.assign(t=>({add:(...e)=>eo(n2(t,...e)),subtract:(...e)=>eo(r2(t,...e)),multiply:(...e)=>eo(hy(t,...e)),divide:(...e)=>eo(i2(t,...e)),negate:()=>eo(a2(t)),toString:()=>t.toString()}),{add:n2,subtract:r2,multiply:hy,divide:i2,negate:a2});function _6(t,e="-"){return t.replace(/\s+/g,e)}function w6(t){const e=_6(t.toString());return C6(b6(e))}function b6(t){return t.includes("\\.")?t:!Number.isInteger(parseFloat(t.toString()))?t.replace(".","\\."):t}function C6(t){return t.replace(/[!-,/:-@[-^`{-~]/g,"\\$&")}function x6(t,e=""){return[e,t].filter(Boolean).join("-")}function k6(t,e){return`var(${t}${e?`, ${e}`:""})`}function P6(t,e=""){return w6(`--${x6(t,e)}`)}function E6(t,e,n){const r=P6(t,n);return{variable:r,reference:k6(r,e)}}function O6(t){const e=t==null?0:t.length;return e?t[e-1]:void 0}function T6(t){const e=parseFloat(t.toString()),n=t.toString().replace(String(e),"");return{unitless:!n,value:e,unit:n}}function py(t){if(t==null)return t;const{unitless:e}=T6(t);return e||typeof t=="number"?`${t}px`:t}var WP=(t,e)=>parseInt(t[1],10)>parseInt(e[1],10)?1:-1,U0=t=>Object.fromEntries(Object.entries(t).sort(WP));function o2(t){const e=U0(t);return Object.assign(Object.values(e),e)}function R6(t){const e=Object.keys(U0(t));return new Set(e)}function s2(t){var e;if(!t)return t;t=(e=py(t))!=null?e:t;const n=-.02;return typeof t=="number"?`${t+n}`:t.replace(/(\d+\.?\d*)/u,r=>`${parseFloat(r)+n}`)}function au(t,e){const n=["@media screen"];return t&&n.push("and",`(min-width: ${py(t)})`),e&&n.push("and",`(max-width: ${py(e)})`),n.join(" ")}function A6(t){var e;if(!t)return null;t.base=(e=t.base)!=null?e:"0px";const n=o2(t),r=Object.entries(t).sort(WP).map(([s,u],c,f)=>{var h;let[,p]=(h=f[c+1])!=null?h:[];return p=parseFloat(p)>0?s2(p):void 0,{_minW:s2(u),breakpoint:s,minW:u,maxW:p,maxWQuery:au(null,p),minWQuery:au(u),minMaxQuery:au(u,p)}}),i=R6(t),a=Array.from(i.values());return{keys:i,normalized:n,isResponsive(s){const u=Object.keys(s);return u.length>0&&u.every(c=>i.has(c))},asObject:U0(t),asArray:o2(t),details:r,get(s){return r.find(u=>u.breakpoint===s)},media:[null,...n.map(s=>au(s)).slice(1)],toArrayValue(s){if(!zr(s))throw new Error("toArrayValue: value must be an object");const u=a.map(c=>{var f;return(f=s[c])!=null?f:null});for(;O6(u)===null;)u.pop();return u},toObjectValue(s){if(!Array.isArray(s))throw new Error("toObjectValue: value must be an array");return s.reduce((u,c,f)=>{const h=a[f];return h!=null&&c!=null&&(u[h]=c),u},{})}}}var Qt={hover:(t,e)=>`${t}:hover ${e}, ${t}[data-hover] ${e}`,focus:(t,e)=>`${t}:focus ${e}, ${t}[data-focus] ${e}`,focusVisible:(t,e)=>`${t}:focus-visible ${e}`,focusWithin:(t,e)=>`${t}:focus-within ${e}`,active:(t,e)=>`${t}:active ${e}, ${t}[data-active] ${e}`,disabled:(t,e)=>`${t}:disabled ${e}, ${t}[data-disabled] ${e}`,invalid:(t,e)=>`${t}:invalid ${e}, ${t}[data-invalid] ${e}`,checked:(t,e)=>`${t}:checked ${e}, ${t}[data-checked] ${e}`,indeterminate:(t,e)=>`${t}:indeterminate ${e}, ${t}[aria-checked=mixed] ${e}, ${t}[data-indeterminate] ${e}`,readOnly:(t,e)=>`${t}:read-only ${e}, ${t}[readonly] ${e}, ${t}[data-read-only] ${e}`,expanded:(t,e)=>`${t}:read-only ${e}, ${t}[aria-expanded=true] ${e}, ${t}[data-expanded] ${e}`,placeholderShown:(t,e)=>`${t}:placeholder-shown ${e}`},la=t=>HP(e=>t(e,"&"),"[role=group]","[data-group]",".group"),Ai=t=>HP(e=>t(e,"~ &"),"[data-peer]",".peer"),HP=(t,...e)=>e.map(t).join(", "),op={_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_highlighted:"&[data-highlighted]",_focusWithin:"&:focus-within",_focusVisible:"&:focus-visible, &[data-focus-visible]",_disabled:"&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]",_readOnly:"&[aria-readonly=true], &[readonly], &[data-readonly]",_before:"&::before",_after:"&::after",_empty:"&:empty",_expanded:"&[aria-expanded=true], &[data-expanded]",_checked:"&[aria-checked=true], &[data-checked]",_grabbed:"&[aria-grabbed=true], &[data-grabbed]",_pressed:"&[aria-pressed=true], &[data-pressed]",_invalid:"&[aria-invalid=true], &[data-invalid]",_valid:"&[data-valid], &[data-state=valid]",_loading:"&[data-loading], &[aria-busy=true]",_selected:"&[aria-selected=true], &[data-selected]",_hidden:"&[hidden], &[data-hidden]",_autofill:"&:-webkit-autofill",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_first:"&:first-of-type",_last:"&:last-of-type",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_visited:"&:visited",_activeLink:"&[aria-current=page]",_activeStep:"&[aria-current=step]",_indeterminate:"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]",_groupHover:la(Qt.hover),_peerHover:Ai(Qt.hover),_groupFocus:la(Qt.focus),_peerFocus:Ai(Qt.focus),_groupFocusVisible:la(Qt.focusVisible),_peerFocusVisible:Ai(Qt.focusVisible),_groupActive:la(Qt.active),_peerActive:Ai(Qt.active),_groupDisabled:la(Qt.disabled),_peerDisabled:Ai(Qt.disabled),_groupInvalid:la(Qt.invalid),_peerInvalid:Ai(Qt.invalid),_groupChecked:la(Qt.checked),_peerChecked:Ai(Qt.checked),_groupFocusWithin:la(Qt.focusWithin),_peerFocusWithin:Ai(Qt.focusWithin),_peerPlaceholderShown:Ai(Qt.placeholderShown),_placeholder:"&::placeholder",_placeholderShown:"&:placeholder-shown",_fullScreen:"&:fullscreen",_selection:"&::selection",_rtl:"[dir=rtl] &, &[dir=rtl]",_ltr:"[dir=ltr] &, &[dir=ltr]",_mediaDark:"@media (prefers-color-scheme: dark)",_mediaReduceMotion:"@media (prefers-reduced-motion: reduce)",_dark:".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]",_light:".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]"},I6=Object.keys(op);function l2(t,e){return E6(String(t).replace(/\./g,"-"),void 0,e)}function L6(t,e){let n={};const r={};for(const[i,a]of Object.entries(t)){const{isSemantic:s,value:u}=a,{variable:c,reference:f}=l2(i,e==null?void 0:e.cssVarPrefix);if(!s){if(i.startsWith("space")){const g=i.split("."),[y,...v]=g,w=`${y}.-${v.join(".")}`,x=eo.negate(u),_=eo.negate(f);r[w]={value:x,var:c,varRef:_}}n[c]=u,r[i]={value:u,var:c,varRef:f};continue}const h=g=>{const v=[String(i).split(".")[0],g].join(".");if(!t[v])return g;const{reference:x}=l2(v,e==null?void 0:e.cssVarPrefix);return x},p=zr(u)?u:{default:u};n=ai(n,Object.entries(p).reduce((g,[y,v])=>{var w,x;const _=h(v);if(y==="default")return g[c]=_,g;const S=(x=(w=op)==null?void 0:w[y])!=null?x:y;return g[S]={[c]:_},g},{})),r[i]={value:f,var:c,varRef:f}}return{cssVars:n,cssMap:r}}function M6(t,e=[]){const n=Object.assign({},t);for(const r of e)r in n&&delete n[r];return n}function D6(t,e){const n={};for(const r of e)r in t&&(n[r]=t[r]);return n}var N6=["colors","borders","borderWidths","borderStyles","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","space","shadows","sizes","zIndices","transition","blur","breakpoints"];function B6(t){return D6(t,N6)}function F6(t){return t.semanticTokens}function $6(t){const{__cssMap:e,__cssVars:n,__breakpoints:r,...i}=t;return i}function z6({tokens:t,semanticTokens:e}){var n,r;const i=Object.entries((n=gy(t))!=null?n:{}).map(([s,u])=>[s,{isSemantic:!1,value:u}]),a=Object.entries((r=gy(e,1))!=null?r:{}).map(([s,u])=>[s,{isSemantic:!0,value:u}]);return Object.fromEntries([...i,...a])}function gy(t,e=1/0){return!zr(t)&&!Array.isArray(t)||!e?t:Object.entries(t).reduce((n,[r,i])=>(zr(i)||Array.isArray(i)?Object.entries(gy(i,e-1)).forEach(([a,s])=>{n[`${r}.${a}`]=s}):n[r]=i,n),{})}function cH(t){var e;const n=$6(t),r=B6(n),i=F6(n),a=z6({tokens:r,semanticTokens:i}),s=(e=n.config)==null?void 0:e.cssVarPrefix,{cssMap:u,cssVars:c}=L6(a,{cssVarPrefix:s});return Object.assign(n,{__cssVars:{...{"--chakra-ring-inset":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-ring-offset-width":"0px","--chakra-ring-offset-color":"#fff","--chakra-ring-color":"rgba(66, 153, 225, 0.6)","--chakra-ring-offset-shadow":"0 0 #0000","--chakra-ring-shadow":"0 0 #0000","--chakra-space-x-reverse":"0","--chakra-space-y-reverse":"0"},...c},__cssMap:u,__breakpoints:A6(n.breakpoints)}),n}var j0=ai({},bd,We,i6,ch,lr,a6,p6,o6,UP,h6,Su,dy,st,S6,y6,g6,m6,s6,v6),G6=Object.assign({},st,lr,ch,UP,Su),fH=Object.keys(G6),U6=[...Object.keys(j0),...I6],j6={...j0,...op},W6=t=>t in j6,H6=t=>e=>{if(!e.__breakpoints)return t;const{isResponsive:n,toArrayValue:r,media:i}=e.__breakpoints,a={};for(const s in t){let u=io(t[s],e);if(u==null)continue;if(u=zr(u)&&n(u)?r(u):u,!Array.isArray(u)){a[s]=u;continue}const c=u.slice(0,i.length).length;for(let f=0;ft.startsWith("--")&&typeof e=="string"&&!q6(e),Y6=(t,e)=>{var n,r;if(e==null)return e;const i=c=>{var f,h;return(h=(f=t.__cssMap)==null?void 0:f[c])==null?void 0:h.varRef},a=c=>{var f;return(f=i(c))!=null?f:c},[s,u]=V6(e);return e=(r=(n=i(s))!=null?n:a(u))!=null?r:a(e),e};function X6(t){const{configs:e={},pseudos:n={},theme:r}=t,i=(a,s=!1)=>{var u,c,f;const h=io(a,r),p=H6(h)(r);let g={};for(let y in p){const v=p[y];let w=io(v,r);y in n&&(y=n[y]),K6(y,w)&&(w=Y6(r,w));let x=e[y];if(x===!0&&(x={property:y}),zr(w)){g[y]=(u=g[y])!=null?u:{},g[y]=ai({},g[y],i(w,!0));continue}let _=(f=(c=x==null?void 0:x.transform)==null?void 0:c.call(x,w,r,h))!=null?f:w;_=x!=null&&x.processResult?i(_,!0):_;const S=io(x==null?void 0:x.property,r);if(!s&&(x!=null&&x.static)){const C=io(x.static,r);g=ai({},g,C)}if(S&&Array.isArray(S)){for(const C of S)g[C]=_;continue}if(S){S==="&"&&zr(_)?g=ai({},g,_):g[S]=_;continue}if(zr(_)){g=ai({},g,_);continue}g[y]=_}return g};return i}var Q6=t=>e=>X6({theme:e,pseudos:op,configs:j0})(t);function dH(t){return t}function hH(t){return t}function pH(t){return{definePartsStyle(e){return e},defineMultiStyleConfig(e){return{parts:t,...e}}}}function J6(t,e){if(Array.isArray(t))return t;if(zr(t))return e(t);if(t!=null)return[t]}function Z6(t,e){for(let n=e+1;n{ai(f,{[C]:g?S[C]:{[_]:S[C]}})});continue}if(!y){g?ai(f,S):f[_]=S;continue}f[_]=S}}return f}}function t8(t){return e=>{var n;const{variant:r,size:i,theme:a}=e,s=e8(a);return ai({},io((n=t.baseStyle)!=null?n:{},e),s(t,"sizes",i,e),s(t,"variants",r,e))}}function gH(t,e,n){var r,i,a;return(a=(i=(r=t.__cssMap)==null?void 0:r[`${e}.${n}`])==null?void 0:i.varRef)!=null?a:n}function VP(t){return M6(t,["styleConfig","size","variant","colorScheme"])}function n8(t,e){const n={};return Object.keys(t).forEach(r=>{e.includes(r)||(n[r]=t[r])}),n}function r8(t,e,n,r){const i=typeof e=="string"?e.split("."):[e];for(r=0;r{const e=new WeakMap;return(r,i,a,s)=>{if(typeof r>"u")return t(r,i,a);e.has(r)||e.set(r,new Map);const u=e.get(r);if(u.has(i))return u.get(i);const c=t(r,i,a,s);return u.set(i,c),c}},a8=i8(r8);function qP(t,e){const n={};return Object.keys(t).forEach(r=>{const i=t[r];e(i,r,t)&&(n[r]=i)}),n}var KP=t=>qP(t,e=>e!=null);function o8(t){return typeof t=="function"}function s8(t,...e){return o8(t)?t(...e):t}function mH(...t){return function(n){t.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}var l8=typeof Element<"u",u8=typeof Map=="function",c8=typeof Set=="function",f8=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function Cd(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(t.constructor!==e.constructor)return!1;var n,r,i;if(Array.isArray(t)){if(n=t.length,n!=e.length)return!1;for(r=n;r--!==0;)if(!Cd(t[r],e[r]))return!1;return!0}var a;if(u8&&t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(a=t.entries();!(r=a.next()).done;)if(!e.has(r.value[0]))return!1;for(a=t.entries();!(r=a.next()).done;)if(!Cd(r.value[1],e.get(r.value[0])))return!1;return!0}if(c8&&t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(a=t.entries();!(r=a.next()).done;)if(!e.has(r.value[0]))return!1;return!0}if(f8&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(n=t.length,n!=e.length)return!1;for(r=n;r--!==0;)if(t[r]!==e[r])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,i[r]))return!1;if(l8&&t instanceof Element)return!1;for(r=n;r--!==0;)if(!((i[r]==="_owner"||i[r]==="__v"||i[r]==="__o")&&t.$$typeof)&&!Cd(t[i[r]],e[i[r]]))return!1;return!0}return t!==t&&e!==e}var d8=function(e,n){try{return Cd(e,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};function YP(t,e={}){var n;const{styleConfig:r,...i}=e,{theme:a,colorMode:s}=DG(),u=t?a8(a,`components.${t}`):void 0,c=r||u,f=ai({theme:a,colorMode:s},(n=c==null?void 0:c.defaultProps)!=null?n:{},KP(n8(i,["children"]))),h=be.useRef({});if(c){const g=t8(c)(f);d8(h.current,g)||(h.current=g)}return h.current}function XP(t,e={}){return YP(t,e)}function vH(t,e={}){return YP(t,e)}var h8=new Set([...U6,"textStyle","layerStyle","apply","noOfLines","focusBorderColor","errorBorderColor","as","__css","css","sx"]),p8=new Set(["htmlWidth","htmlHeight","htmlSize","htmlTranslate"]);function g8(t){return p8.has(t)||!h8.has(t)}function m8(t){const e=Object.assign({},t);for(let n in e)e[n]===void 0&&delete e[n];return e}function v8(t,...e){if(t==null)throw new TypeError("Cannot convert undefined or null to object");const n={...t};for(const r of e)if(r!=null)for(const i in r)Object.prototype.hasOwnProperty.call(r,i)&&(i in n&&delete n[i],n[i]=r[i]);return n}var y8=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,S8=EP(function(t){return y8.test(t)||t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)<91}),_8=S8,w8=function(e){return e!=="theme"},u2=function(e){return typeof e=="string"&&e.charCodeAt(0)>96?_8:w8},c2=function(e,n,r){var i;if(n){var a=n.shouldForwardProp;i=e.__emotion_forwardProp&&a?function(s){return e.__emotion_forwardProp(s)&&a(s)}:a}return typeof i!="function"&&r&&(i=e.__emotion_forwardProp),i},b8=function(e){var n=e.cache,r=e.serialized,i=e.isStringTag;return TP(n,r,i),RG(function(){return RP(n,r,i)}),null},C8=function t(e,n){var r=e.__emotion_real===e,i=r&&e.__emotion_base||e,a,s;n!==void 0&&(a=n.label,s=n.target);var u=c2(e,n,r),c=u||u2(i),f=!c("as");return function(){var h=arguments,p=r&&e.__emotion_styles!==void 0?e.__emotion_styles.slice(0):[];if(a!==void 0&&p.push("label:"+a+";"),h[0]==null||h[0].raw===void 0)p.push.apply(p,h);else{p.push(h[0][0]);for(var g=h.length,y=1;ye=>{const{theme:n,css:r,__css:i,sx:a,...s}=e,u=qP(s,(p,g)=>W6(g)),c=s8(t,e),f=v8({},i,c,KP(u),a),h=Q6(f)(e.theme);return r?[h,r]:h};function Bm(t,e){const{baseStyle:n,...r}=e??{};r.shouldForwardProp||(r.shouldForwardProp=g8);const i=P8({baseStyle:n}),a=k8(t,r)(i);return As.forwardRef(function(c,f){const{colorMode:h,forced:p}=BP();return As.createElement(a,{ref:f,"data-theme":p?h:void 0,...c})})}function E8(){const t=new Map;return new Proxy(Bm,{apply(e,n,r){return Bm(...r)},get(e,n){return t.has(n)||t.set(n,Bm(n)),t.get(n)}})}var dh=E8();function W0(t){return be.forwardRef(t)}var O8=MG({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),QP=W0((t,e)=>{const n=XP("Spinner",t),{label:r="Loading...",thickness:i="2px",speed:a="0.45s",emptyColor:s="transparent",className:u,...c}=VP(t),f=FP("chakra-spinner",u),h={display:"inline-block",borderColor:"currentColor",borderStyle:"solid",borderRadius:"99999px",borderWidth:i,borderBottomColor:s,borderLeftColor:s,animation:`${O8} ${a} linear infinite`,...n};return jt.jsx(dh.div,{ref:e,__css:h,className:f,...c,children:r&&jt.jsx(dh.span,{srOnly:!0,children:r})})});QP.displayName="Spinner";var JP=W0(function(e,n){const r=XP("Text",e),{className:i,align:a,decoration:s,casing:u,...c}=VP(e),f=m8({textAlign:e.align,textDecoration:e.decoration,textTransform:e.casing});return jt.jsx(dh.p,{ref:n,className:FP("chakra-text",e.className),...f,...c,__css:r})});JP.displayName="Text";var ZP=W0(function(e,n){const{direction:r,align:i,justify:a,wrap:s,basis:u,grow:c,shrink:f,...h}=e,p={display:"flex",flexDirection:r,alignItems:i,justifyContent:a,flexWrap:s,flexBasis:u,flexGrow:c,flexShrink:f};return jt.jsx(dh.div,{ref:n,__css:p,...h})});ZP.displayName="Flex";const d2=t=>{const{t:e}=lB(),{showText:n=!1,text:r=e("common.loadingInvokeAI")}=t;return jt.jsxs(ZP,{width:"100vw",height:"100vh",alignItems:"center",justifyContent:"center",bg:"#121212",flexDirection:"column",rowGap:4,children:[jt.jsx(QP,{color:"grey",w:"5rem",h:"5rem"}),n&&jt.jsx(JP,{color:"grey",fontWeight:"semibold",fontFamily:"'Inter', sans-serif",children:r})]})},T8=be.lazy(()=>bx(()=>import("./App-af7ef809.js"),["./App-af7ef809.js","./storeHooks-5cde7d31.js","./App-08e5c546.css"],import.meta.url)),R8=be.lazy(()=>bx(()=>import("./ThemeLocaleProvider-7791bd91.js"),["./ThemeLocaleProvider-7791bd91.js","./storeHooks-5cde7d31.js"],import.meta.url));function A8(t){return jt.jsx(As.StrictMode,{children:jt.jsx(Y3,{store:_P,children:jt.jsx(Ax,{loading:jt.jsx(d2,{}),persistor:qz,children:jt.jsx(As.Suspense,{fallback:jt.jsx(d2,{showText:!0}),children:jt.jsx(R8,{children:jt.jsx(T8,{children:t.children})})})})})})}Fm.createRoot(document.getElementById("root")).render(jt.jsx(A8,{}));export{rW as $,Vf as A,Of as B,yU as C,D5 as D,lB as E,ZP as F,xd as G,tW as H,oW as I,QW as J,YW as K,KW as L,wW as M,vB as N,yB as O,CW as P,ZW as Q,As as R,QP as S,JP as T,fW as U,XW as V,iH as W,JW as X,FW as Y,eW as Z,Xd as _,FP as a,yj as a$,aW as a0,_W as a1,bW as a2,lW as a3,qz as a4,sW as a5,gW as a6,vU as a7,vW as a8,RW as a9,Mj as aA,gj as aB,Ow as aC,Rj as aD,kj as aE,Vj as aF,Fj as aG,mj as aH,N5 as aI,vj as aJ,Aj as aK,tj as aL,ej as aM,L5 as aN,Xj as aO,zj as aP,Gj as aQ,$j as aR,Lj as aS,kz as aT,fF as aU,cF as aV,Yj as aW,Ij as aX,R5 as aY,Bj as aZ,DW as a_,yW as aa,TW as ab,BW as ac,Hj as ad,Wj as ae,jj as af,Jj as ag,Zj as ah,NW as ai,Qj as aj,VW as ak,dd as al,O5 as am,wj as an,bj as ao,lj as ap,pW as aq,xW as ar,hj as as,Tj as at,WW as au,HW as av,SW as aw,Dj as ax,_j as ay,Cj as az,lH as b,nU as b$,LW as b0,IW as b1,uj as b2,MW as b3,iW as b4,qW as b5,hW as b6,dW as b7,Ew as b8,jW as b9,D8 as bA,VU as bB,Qx as bC,z8 as bD,G8 as bE,U8 as bF,jU as bG,tU as bH,eU as bI,X8 as bJ,UU as bK,eH as bL,Q8 as bM,lU as bN,uU as bO,Ef as bP,va as bQ,PU as bR,xU as bS,wU as bT,N8 as bU,B8 as bV,zW as bW,GW as bX,pU as bY,oU as bZ,sU as b_,Kj as ba,qj as bb,$m as bc,AL as bd,pe as be,Lb as bf,kU as bg,HU as bh,WU as bi,iU as bj,DU as bk,qU as bl,UW as bm,K8 as bn,_U as bo,Vl as bp,gU as bq,Y8 as br,Cz as bs,SU as bt,H8 as bu,mU as bv,V8 as bw,Z8 as bx,L8 as by,M8 as bz,dh as c,I8 as c$,XU as c0,cW as c1,Af as c2,ei as c3,zl as c4,Ae as c5,TU as c6,ns as c7,F8 as c8,EU as c9,EW as cA,uW as cB,PW as cC,dj as cD,ZU as cE,aj as cF,nj as cG,rj as cH,ij as cI,sj as cJ,Hb as cK,OW as cL,AW as cM,BP as cN,rH as cO,NP as cP,dH as cQ,pH as cR,E6 as cS,hH as cT,ai as cU,cH as cV,nH as cW,a8 as cX,Q6 as cY,Yd as cZ,T3 as c_,rU as ca,aU as cb,W8 as cc,j8 as cd,tH as ce,q8 as cf,GU as cg,RU as ch,AU as ci,FU as cj,hU as ck,dU as cl,OU as cm,JU as cn,MU as co,IU as cp,zU as cq,$8 as cr,M5 as cs,Nj as ct,QU as cu,fU as cv,xj as cw,Pj as cx,Ej as cy,Oj as cz,vH as d,XP as e,W0 as f,oH as g,sH as h,uH as i,jt as j,MG as k,jv as l,Ur as m,s8 as n,VP as o,mH as p,zr as q,be as r,DP as s,io as t,DG as u,fH as v,aH as w,gH as x,wk as y,_t as z}; diff --git a/invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff b/invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff deleted file mode 100644 index 0306d1d7354d2d3dfd20d493443b8bea57e212ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131292 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 C5`pjl diff --git a/invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff b/invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff deleted file mode 100644 index 9245b8f0779ad82105f58ef1132aa6f65ba1ca46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137016 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

2)YMmdo0(!2$JRGhL=i;- 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%0Dsn-*4U{81v?(+%argde)A+Y(k`H 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 Ql`ng-Tz|d#XTq|70qXiJq5uE@ diff --git a/invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff b/invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff deleted file mode 100644 index db0f8d1c3e8aef8508c48833d5a9efb202a0f25d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129252 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:pNEhwkd-ntpgnWg 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 a_rzl_Zwe?QAX};U!MBHqpsFVk5B>{4H7Mx- diff --git a/invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff b/invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff deleted file mode 100644 index ec2c08d3a3ea2203fb009c7e073237f3c6d6007d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138892 zcmcF~1y~*1k}iP+g1c*Qch?YtYjAgWHtr6=-QC^Y6C5@YAh^4```gL6_q==V+V z!AYQjC`>>mJW)AW1tn_R_eNtdxbWC7iMxhM!`xz#B z_MpBzAJCZhe``o4mafL2zOP_!IMcwui6_iOZ!JuX^bEn?ERll7u>WdwJ$fRhpiWSq zCg?K}sF4y}V|STaIk^C zg-edoFIgaLGTFn)CZoCxr+3@$AoDYgpCz~!)GN(o*Ae)`-&H;%3Dm4^Al`^R&A)_q zEwUz$752cflNdLuF{X`%-CMDh>uKm~EWT-*%i)})|3>D7U0H2m*P#`Kd#uf?8?^!L z4l}+`=dzMHAbG>AUDtH(NGs26Y=9v|yS7;4eC|INe5Y_k(T>$tT>tpZ(?_6{@Lcwm z;$`#Y`xZTyvHd(_R#||OCVKfvsR5k|EN&b5aC2cL)$&L~_F~Ho=a{toLf9*^_j#AD zn+~|--TH#nT_=blf(nQ-67`1gOQ;jzo8-qCkA&q1-jCfG%{H-dV8!st_ZY{ zwzu0l;tjCb;x7@IT;4-~4-E7hlSb~YY|O0!lhPyD9Mi21+RWIgBc)~SobdF%GmqJx z;#pN|j^_$$Y#-nx+MO@qviVa3(sD~%%(R;#S0@hR5s z)V|OT7q2ak!j>1+!U83!dRhpoS$*9~8L8qwV%c~81g9*;=eNL*e>eob^=Y_?EfwToaO! zP@mJ5y|0%}vP>MmNNGZA-&Z*AQ3tcABt1e_ozG^j;f)b%M)6(MtXgo;v?|NQ`MTV; zhq)wnc)Q&~w)$lIR{H*+=#=HD?&lgwI7ek1h8DV`T_tT&y&WYM){A5KvVIiN+ zdnXD{H+UgJh6meb5LHdb(Q2W@IqtU%hm{;v5jfj#Y0%wt0__wfrKxL|W-aQ%`0Z=C z=+WIW^ylksc9QwQ*83K4y#$1ScmB>uNR7KpH^k!>m>JQfm|_t69|c_~4qa=5)K9Cr(bN6YUiYO+~o$7jb8 z^UNQkDb*=PFzHdsKb;OpbSQL_pY_dGPVkfeVOYS}CNP_ZP#`on)&aa4D@ZB&nceS! znRZXj_a$`xD!0}~ol_2mV=*3lh67QR9X(oY*}QX_+Ga?@Ir0SW+1A=j^O`OKs3D1r zC-l+uXr0AX#g3Bbl;)fItGBhBnStE`oFW$0wvkcbwm|&Ac2!U5S>Zc<4Q^G|MXRVoIG$ejd#u(Pg8zj zUTN|mme(v4(@tS1GOSNOH)>0dJFFG59){o|joK~|a6JLe6EPGwrNgFHQbVFECn%wl zm8O>F#g`W0P|C8&Lnu+QsgBB*{KRt>LqtKsi~?YSF(5)TV4;U$#-GZ2&%#U+%EZEw z$63dOE5S%%pG#`b!Xd%LaGA?`$s#aZO$3`m8&>^(xDG2U2VAn6l)9D`n9U5V0WYm3 zx5$M&tVS@e<i z34q|x$7`}@Ah#8`HQ=^6gET(-K&Vfibp~yG{!T}aT_9yI*+f63nNvSDnUqs6HpP(B zOg=fB)2KELyjfo&HMZGgI2F)r0}{WBsd1}(Kt-Xbow zUD!+|bzIouDz%BxLN;>1-Znb2-q?0LvVYR{II>-EKFQdWGyxps)mCPpxpd=d*Bseh zzC5YRz8!Jz?*>mq2;aQ;#%V#C-hd)gzd(KcB=IEC`&2eZ!x+^8vHsNI`a&8bAWjOG zc?EZMS+qH~81=&1yco&%EMq&{jX_N3g0~RV>JM3NDI3?N6ujpUuHw@$=P?B03C?;F+9SeEKE6w0xn$ zQU4@bs*h>uK!f3i{PU6OcESDo(d!FTc#c}tDji|e_~DWD&C%G&$k@o(5k2DEINZ)T zsVr00J3(dnG$Ni7x?@vWDDKISF+2%O=A%uOe!3iG0N@kd?I_T1L@Wc}qGM>7h{mp( z&3ZkOh=r064&Du8*?22E+hpBoH%Wye9lK4oor4k>i1cV#%^z5 z)w<;qYtpkCm0t!bgi9fV7mP7mCnHX-))*0X-^y%}%Iu)YY_rPj!j0u~n5=iLS&pr1 zj%|9-uYIE5(5GLQf3U^&Y)PlBT$8BWFt1!!uiSKdn8?y-iCDz$)eW+Rx|h-=j!Pav zD`bw?=lup}%p5j9qDPN-fpqDTEb0|zZ-|sWvw}-Frb|qcONxq10(yHt zZu^jga!qPOxd9*U+#vaiK8uD+nzKt%*EzvyT|(C-BLA8Y|Av9lXo6;+`bN5fD zI^|{Z2uWI^98FbKlw#7h4Sk1xg62Vbdb@M=j5O>Td>5L<2+$lf`y5b1JTt>9 zQ|f{#gAa@hwK3A|M*B4{ZVe5Pf!H;gj=*}q^f}rbo!-p%b<@)G2ZcxR8a+qxi`_@r zI|NO(nl38k9E(j3;+D<($l=5)ycdC}$-Rn&fm#MEbXk3od}O0ArxK~7co;RwWb0ai z?)29ho7#6k9QV6zIlD}h!_gbMB@|q1x3_tN4Kkg!;Bm>r^=Biw8knn8;&mxK#29s? z>GI99&%`vxR_JAFJs`nk!V4Sp8aJM?pPun++!Kw26`pX;NFF@{Dhv0RP66a`yMu`K zJ?#Q4?N$Hx5r?Zv#D{HB3AH*b+52~h;hiG>glb~FGuSUyt==C_>zB*o; zu!Gm)+Kquk1EjD5p2|0Hw0HT{+gK3{bdxA>W8z}a_9)bLUdaiJ+<2*HZpkTUDQB0q zruq`e3CY8Bg*Nb__04AU6WR>4V^BB9uV0LPMLVu{yk04 zxV)Wrvz*huVY{HcyZz_uz~w-Mp*<=G3uU|3kgEHxN5A!b`2Nj@sAD#7c$iCho`4j= zyj-d;E;}~cjf?{mCVf#i=ux`radgGAYVk3=Ji|;} zS&qHay8`NQq_Ki`aX7RAfn%VxziFO45jp>;Ub?2S<7!T9y`Hg0*&NfF>=4n4tPjKK zp+Tn;{dJoNSdOnla%eL96{AJSu6@CzfuuxFCLgO0q{Mc7n)6<7DQuZLxYF#KeKeAB zWx}#jCMAk1B~qSYB~!vP+(scofJnd~bW11R`Nh*PT5lN~S@}}M2sDP|$Kc!Ij+-!d zK)HHXAEgYmM38Hj-ng3kg8hWUMe-de@^BPzk9Gf5~K}mWz>4EQC=i5pgt^i&Otui17F&$?a#+o5!hW2-D97 zsXyY4St&9w>hsZ|0F1#uQrYVZ@Q?RDigMfi{&IJ)&)DDKm&DjP>{yy?X`1YK{IN!m zf&hf5-B*L3l}k`_&$S!M1BCWJskBaHyu7e$a{9%DZ}6W`B-w>iME(7Jy!Q}L_cP9j z8P1viSbiKXaS7%6Y!+$*ZtT?{``Gt~?V;BdCNHHndJ3aS$$m0^$W#-Dhdp8g^ zP*Qc6IkC>loeQrXBX49-aEZ`R6o5U7)z2Jxz7;e6mYkVtaE0rp*Pts2hmqiM*}NOC zW_*e3hL(uHeWS(%T2iea(Aak=rd8`8OY3yapdij?q@*6qgTIV8+AD-064`&pY(10!wa|G8aXJGf99C^QzC- z_wKUw;op%+fTV%Ub`O2O354g%^Iam3z?W9 zyL}yf$r%y~H|nXi8fL?%w9;W)s~J_L((Z#jbY3b1D;1e*v$Lr40^YOTmrovTs%dp6PxsIqZpaz%I`SJ{d5G{QKs*glb!LFb>(Xbs*i zuXWPW@OrSp!;^7|Q;nV||Kd9<5!w?>Ly8U8&ddu$psVm10;3e9%9*M$mIPMx2DDA!{ zkp9v&6^zA2^TG}w{-RGBBL!1}md8m(DNZG!5L6qV$7`mTO`K3Hgy$CrsxCIkFWi#IaH&jGTd~g;xq_bM1Mu0PndY-48L*alz$IrIx1&O9A}CG zXTlU`1`B80O1dz)i9NzDfMD1D4JH5?(;hl$G8niA+%~j(rvgA%v4@`p;LlD)y(|q| zEsgy`7d*e=L$6^WV}hB~?i*vqIJFUD1bf%$;N*cG-tIi!{!QNRAW-9hamG4+Mmv5E z(uiJt7)ht8f41Mw&HwB6J4^dq1{B5o3NheJ-jZPVc`nJ)Z(_+3{5?+CaQ1H3eGt~( zFw$OE0>uC}XXG?$edaT@k=K^GBxx>Tqn7JdE9+V>{qF7K$}eLAcRq;sU!(kk78lb% z_8P-MMw3Q!fV}Zs=m+D!FxZm?yxXoFZun|3`?|E2|+B^?Ot+T@l6aQCHcMry=&dS@Z~X-c&1({d>0&6R)CC6R#<< z0Y)u;FUJG>uQdI8bsGl6V@^o({F(UoDCBF? z-HgTlb*T5gvBWw@Fi2$jp4f)!lD4}xh&78%!B1Y?Isqzuom(`WJGh@TRKYdy@*{c%P< z`eCyP!kO>z;#^iXC4O$dYSXEO!R4!~@WQji01;O!Cmx<>M1%(tf=r1tJ^?foR7hij zo(6V}1Kr)^0nuaA=aq+Zh8y|2-tEX;m)Z@ROGLP-0+&p*(U2}_!sqjn{ceiF4yujg zTTKy`pqf7ePMC&QDv%@Y#yfsZ|0PJXWK_~cb!|i1U%JB6h%}eg0=mE$(PHOUcnWh} z@+Fb=Akg(DDT&uVh1OBTvSuw#j6M&$N41|RllLO!+h=lg4-`53K z`ZJFoel9Br?;{D$R6rqX9@l<-HdzH{v_EIEkf}88!er!)LpDjq9^TH;KJfh{ElVuW zw4X8YPf$iXgWD2N;IVg0c+Qk{MwNBWrE^B6bKdX>G_r(dSvD~iza23JeM^hZ%%}7m zv^Lebq;kLZIrOXBu~#ri49i3g<~S3^xB@-n;blGLVOzk&CJygY-RdKjV)cDeXL*hX zJPL=#u2oBoXnF+GMyg0fT4}Ot*GutnE7_zibLwB$_giiZa6693shrmNG<%OX*fDWXga_ z{w`(Al*TpkHytdNFGTAcLn@;zm*DQmPiBZN4)btLF86Dxp}D)a$z_dzzxHh6dAgBV z*Xq8zEq?L>1SahyybZ)vgoj)P{z81{E4!#qTJBVT?W2X34fCcUAG(hHK(YOq z!6=%=F*k)9sWOou)RmM}fY zmZSWNB#e46XP#rL?ow^;5>M|kt)4!<(ZeEr_gRc6hLR~(j66^=^h-KQeEvUso#_%m zX`G2@#cbO8F@r*AC66WlRbFXM>R0yF(k$Hp=%B)X^ygK0v$DF1ztXRLozbfLpj$z$ZYp^ zjsYB!I(FX$i?ngpX=UtNuebk;#Tkq5q^#ZM*C5_Mcc?n`kM8kb&}gb7l4XKrdaE^? zd!s~NeH^bhHx*qjIEDk`(;vo!GdG9q#{l}C_r!bXkN-3mKWM0kK7s!m?FX@JlmCcl z%Cc2#0{}8sWq5~5Tkq?B%BlR&NplB-h!N1&;k3}XK-am1U%kLzt&1R}Byu2!`0p>@ zjV6yIKAbLst$o6AxoE5|5gSGoDzA)G*n{3vlM_Vc&wus5RH`+==SZHCyTwbITqE&3 z?P_ALS5#S8rxwHu<>%1f*0Y+JUp}GYYKc<2BqXlqdkt+@v)_x}{u~%2O4mYyPFO;X z(#w%E?Z&ARDMsYS{V(r_Unaa#?l@3}pX)jaaeFrk+`MPMgF$W_y+!T;4{Fm=55w>D;`>%soM1)P-$TcxH09prUs=?rz zYUHMi%-Uy}4MUlAMVU>9u{9~TxS{#?WiZ2zDOABP_J7C*Z|EZAuvwV`a~#$+olke| z_%UriVA?Sy*;08nhj(hqV5n4=>k4l?_@RHX3qO$+LdZsrF#DvCI+5<6{v%cyZ%`0# z`a`E?j3edFPvMb0$1xPSDGwo2+Kkw18w?;18J6k>By3>s}V}9 zI#j0kWq6e#N=!P_9*)P?IO->Co3~l>HJRs~B+kTFv)-&ezDExYi#cBQ6eldpLQXT0 z7XQH#%u)YOEJ1aGn^U=)lVzv{YXK%miYHm}OwM6VQPZBgyieYEjRlY`B4sxN}T-~Via zPymaKb}XH-2|d%YrzE}qAxU#^Sx*FnJ(!4NTDe9f6EMNK$S;HdfUV#)-Th^*e}X)m z6fqzYqu~BmF5{nxr(dM^QF`+`*{1! zoE_@0i1$Zw=x=$C?$Jr&XpFQx$9VA|$0byC1sm+e5;y1BTj*KA)K`_~2iimuh&%`5dh)Pjt#eM_Mhg4BPNawQXT*JwYydBv7PXn5D+T^ z?5-pJ^BP`@MbA?_6(koPVyik0PBq zmsbx=jCnXcH?h?|bmicN1^6v>9OG8wf zniRVBQ65l$&Tl(P7uNLNtuLzuzTOkHyDj%*$jR-cv9ik*QU$?fk}aujs;+rqddS{Y zLc@w*l1>A|xUCQ%e}asFxx<{ww9^q5S1OD|demI_bMq!kPatEHu8Rm~u8qqb7`wW0 z?Qv%b0NhzJij1kFlA@4_pbX_lOZg6Gqib<@@w%k?wY62duJbAM&dKR^P~u3B?of3clD#&hX>J5#Wd|Qb zb`utxc(wZ}+?Qx&5mXrSd%a70wQB?~#s&y?(D`17^oMUh z`;nBplJaqdYU7PE8QRhg*zpSSX}KoZVtJDVx3vVjV~@QTVIH36qLe3}RCD@L-b4RhPJhq5I~4Hn zafbifcc|;Y*W$7JcjiZs$Bjh;hF|gvt>mer>K2ZJGG;4|n!N zY>hA{WC8|WUsSG;IIchiu81ivf0q4GHA4XVt}XpPpchmQd)OxC|1=S2N1qo(eNMpg z%qe?@_9p@OE5-gdlC2t)We26P8L81dHSXwNd)z%tyL2pS-l|_BqcAoivyh|FP|#Kx zWs#SQ8T|r`FWOqFVQ^NoyY;r^&V|Z9Xm?V*KHb%?#Ii}8Ht?xGnVlTgj#%OcC z@c8>W#T{0+DwH(SE=o)Yj*b_h<4 zI7zUEify&>S%N16D;@HFO;!)rKMm*l_oDn02>y{MV`S7UYS+M&F2qtQ#;yzlMXuRm zCysO#lIlGRwptfRg)C`gV+x;iS(j3|u&Q|6g*Mn;+c3ug7 zMm>`}X&m{V2^~K3X%gm>PQ$!Xn01|HPr_LYi+_YsM-;a9qBZKx@-TgG8Wt~DC@ZR0^E ziP+gIxwxn+H+|#c47VzBrw|vk0ND6GYvp_XxqVj_itjq z{}J;uk|VhN59!IzF4DGtwHXv|jr>rbcm7&h67ydQ7xDy}0Ju#oU%$gaAG~vZe~NPZ zmlZ&H#RQ4^Wc=SQI7yeIQKk3r#Z>!l(LVO8u7j<8U?v+t%Jw5l=r>*HmL&P8@eiz6 ztz+5yvVUa%t-rU6@#%TuR13g!`G~M0*nDM0X8)7E@cpN_0ii17ZzTBdI-B>A`4plP zVR>9ZaFN@bk^iyo=HCg&{|T=p@^F7ZXKx$~^5GG_`#+YqtjV0{|HVv)J~po|68{rH zy>)gn_}?nk!J`lR1;SvM{{&%yDm_*)pbD8o5Zzo3mlgRd+X_mf&eZuvSZ>g<*9A7Y z2H(yPLwR8R3;|_YJ-UlL`gc9PCwcVE3TC`@%wYfw%z2I2c^lZFve)$gNF(~SRrzq1N3rY;o zOZ-X<1f8XRUUbrFqO}91bhB%{QmiIE>&0UYt+P#_>6za-)FV>%ZzOI*mZ(I);}D$>wf2_V{HFWK>ydF=M}KU^K02pwtZAm?Txry|691 zEn;VC$87$Xktw3l$CQLP8xt`X=?ltrm%_Bn934CII_YufESXH8!g}M@J#GCMsCK7! zHA&qjWg9pOZ2OhaZtF2}V{a;e!;ED0CcKTa@M1N1vMRr~3+Fga6|)j~v|a3+Spgk3 z=EuwTSBra1O#rd7!p?n}k`oE#xotUTg1s-n$&S&RmH{oa`@2CM) zVMevb$vTJs1%!)d?AB&%{W};L@@o;e?eOWgdFP_7XR``xd+fM!K4X7;=YDqHltJYo zk!pDee{rj~mE85K;^nb9>o;)^s-KwZ8Noko%fk34rY+}o;NK82|BA-_L@(_YU4T_^ z9$$!dP9SUCjhy~%=xPU4+yQQ_XU$3XqF9KRvKP`(oL)!rj(OuW!Cio#z4waoG{C*e zb>I=mRkOP>-T~Yf;Fres4y_qP4efuciP=apU0p$h(xo4}spC{5Yhj|%b{T24Ghb*? zG1xYGUPWO|SW~Bsedrk3MYG%b(85r7&n0c}X(4X2^bt&m6^1d~_^(Lb#zT)Y8uXeTAEAXf^co$>*DqwvACSQ99w|3`k zQKwAS`eQ*JPIaPDQ`!8D5LJB{1RaKE^(c5!1@#)W4?RRK!GVub33G9%Ukv-_rV8Ub@Dv1kz37ydK+SS|*nrLwDK^73&T*yncAB^LVe*dfY}3K7BoW zijI505S5-o(Rp{4OBO*pIjJ+*t*5kN@I96dtMp3T+ME5Ri7v5^TaR%^qwyKc7rDwr`pyzY0F&eQOK zyNJ@AZ{e|Agz_~i37AAO@Jfr7cagp=oQ4qX?}*N$MYQ#`fk4{rZG_VjNlvkp~3HSKkfc)X%U`J{agErFvduW@-6frj_8u5Sr*wO zUx=s8JvX|)ULPf0Df{}k1;3Iu;qlEJk&Qyt5o4}`xZ&~B5u2_-`vDt@D8VxLz=))+ zRGq_ivt(Zy*h}J6g8e~zOVs91U+fAG#3u$Hn>uh4UJPSn;OzyZvRvFbI);OB%+1I2 zhU+9xMu#Xpdu}mz`x8z3r#pOLk0QGiSsz2evUlg4)_$mDJMCp++sLQlHxPt3+fDxIx--J3 zYd|}vHC~5nUCS0Jeh1|p7paaI^>ehTAr(jcqS&dfvT8Mgq>{yCmC1#Kzh1V2^K5a% zm18WGgcIR=4w(-`SHB7hYuYsed;LmIykNV6m)g03OsyM;3 zsWGcr`_8rF~Z?b&ZTzuJB zkK~5Y7gDM)X%Zoow~|!PoYz_$cCMcEU*(RpU-OSE4b1GgtsK9p)9&}?+zQfq8ZtVV zbv&c)d?DesUCSa$)IEs~x8W|Xo$}>Mrh6n9H7EumZj_m|b62cX_{biT*fv*8DR@t` zyf%GvE(J8+zgNGS7_)mj)($RXA-h$$*7n15U|)7`1X>hpQhuYFKNLPJoGrO7UPw|5 zyIrme1?$^4uY*g~JDb*fg8U~epWW13tmVFT>nK!Q*ddjd z6x{J?*LZtvAj=m1j#j2i=kiNhUBPTxzqrhoXnVym*USP@q7M3mn3*~B-In*d_xU=& z^ADbxn@oV=%rj~B?&g#cMO8)%ZPa7IbZjuVeQl~lR>nCKSX$W|X{^R;Ni`OLIcK#f z{Nv+|Qs^VcJIfu*R9 z_*W^>iN=de3g6p#Sb|#o<;~l}BP5EnPJ%A+bF|rk@wqZcG6_GdW{xSoA<$ODzwGQ- zwZWqnVcL7eeV)yojq_pF&hn9haj|a~TKRnX^|p5rxtGJJBdyTG2PG}^jf6gRS}J)- ziPb?eYhmZU$z;l#oiHks&Xm)g>U*=@v^=LAE&atgqnqku-Ka&NQ+kJa)#Ch(lh4k) z4f~IGh?!b&ur-ovB*j`GNbmJjNLafU*xpB(I`Qcf7cNIO51Ke<6TvKKm_`!Zus>vX zd4_$T(-qK1Z6xMz1nu3}L?FnSqK&vOxcKe9UJVEyNkJeiXHIkAK|<4G99^SIvRafT=``Lb|gDsX0nF@{ODfL}I; zmeqW2)eKC&R1f;iY1-9#3M`R->%jTJ)?aaF1M7?7zDAX4m zExT7!g*6w%m;$S5PW*vFo1@e~Eon|-)hoZCm{wEoG(k^W=I?+6+{eNPUT|v<)aA==zt-1zMAo5pY%1GV# zkFNQj-u?XO_EYg~b|NvKd0tI3bSg1PYEBgQqh7rOTz?J{xh^$8FO`@@S&!{gjRn>3tI3M1Ga6YPqn_$--*fhBa4-5U#XE+n)o_>+~l#X7Jz4 z^tchtxv6`9UIfF<9{GqHHo`tuNE|0!XC`JeW!35uL?_ZrS3|bY@-s0sXr8^Wc@hiz*uPF7QhI>62iig#>r!_9&X~t8X{cK zrwVDPHuDi@m?v7H@(UsQHlCYGyt9~weX(({9Tp`NcEsDrbu6p_01C4$v&mNz0C{>H zr$!1_dLEyBi{ibJX5{QBUu8DZD;GdhIwHd7TBj zd7US@d0jR!d-Eaf2oeOmN4#PD(Zh$Az}tNp2J7-Bz(tVZ>syAcz67duvY79Zu4Y?T z%-RTFv{!&V?S3k9g}EwdDi?{vO&9cHhgu!D@~+OOzH+DgeA81v_Yik?8>^E|p}rmu zrJkv@SJ=;!9f(cOxZ#OrlywpAV$3Ns{ z-NGKU@6GmcJd<}nC$4^C<9e`q+sunUy}jRswA=OEbaEW^`aCYjmAs1+An5SIu=~*8 zIEs)9xsfXWNmbZ#vGEv#8Cb_ac(Ot`yQxck2V2=ESe6E zB6g7?ReMa8UyT0xV*Vi*PbpTiQerUg^Jt zDI8SkBjuHo6AmFFMaFeIs~0arx%k5sWwQ zK2mcZpm2$8vSUxL*hiN1Fb?0e!*hau_Raqj@3|q6Wju5@5c7E_LB*uw-1ucpD8}QW zM6vTuzP&+i_}REPy#eA)HW7E2MxT?sbsb3cDrfFO8mw4EP>Uk0G<0Ijc9t$zq&z{@ z8h!dC)Ttl+&;%L3s|&vWpe{t2vmnB`o+|nlSzQv2X+egzrn49M)EFGvnml$-5=H!k zG_D*rKRP$8Tt5M$E_GUc7-uH=SmhFuJ(;6+!V+i>-B>=A=y+n%wFU--9!XbbHdng? z)SNM{v=uIE>35{tfaLIK8Isnqw$sq4_8e`jN;G&hCu^*_q<2Oi<2!M^_JL9#5F#*# zh;lLX8Zo$J(WVYkX?MD$v&lGhIR!%TCktGTK4lQ@=sW>lcA^-(?=57=r0vBhgn)y@ zl7~a&8Z1L(v+1IlUGLEDG{iz$!kI^N{b1;_V@L5RQGSsU8!z#P& z6pr;a ztk=)JysLza??oJBmtgGT;0(3?O)?nl$GzW_KD|Zc4ah-c=mbwDIXvEj8 zcI_JL*}j4=?C|(M%9d{!TiMpJyPRwpc-Y&X?ieT%z^f79xA3IM9EFS(B0B5L1Swc0 zPnq{5AIdrfeKFZ8COs%2EmcJ6qYbGjPt-Ez822sq%^=M!Ilv2am|bLJH(Oyh?%EcHh=LKLbPH;<^zB5YeD$O zHM)}~HRxw0XtwfzTh~j$vkwPQgf-~Q=7Hc1pWrptSx(0N$M0{-)-*C#YjDF`bBOOU zmUVx^V>|UYSvx`8j;#@eAAGMRh$PnIc!DoeE+%}kAW_Awg9M-UQG$P4?)#>?^bO5p z#SugNbI^@WPG;w&w@v#sO;WLr(KQ`Bt~>F`L0pKB>IL9@pBC zXaQde@rwdawQ(IDUM6KbmC%^4V)6vWb#QoRCL89~H6>knHI%56&68zpl?3|Udmy^Y_qB6GtH^}@y(ywFrz z(M)uX-_~m1UaC)D)W~E2+V`||x5-gY*ps<+ejZQQyVrI&8R!}KLOpB0?Z&U=9kke{ zO*g9%%n- zDS+-1vnP_v6S5*3nzk8wc?p(0MLQm%6RP7Ew>K}}o*X(wb$`6&9Qj0FxVnn(yfC~^ zR3c+8Ct0LH5?7xyqpYrBmLXw5Q{g{VFB4_qsrQM=$jN^zXbUo)oP&(xyq&ED{W^9r zc2SNNcsK+Q0-kQW>Hq|6D7jbplX-j7g5!c)2*n9}xkm5Qv2BdnW6qT;HCnW3XK5xS zrzDZZZWUWKIKd#HyK3#iA?(4xX@h)C7mpam{u1(7E$)xXaP=Qbrb-}@<-)fk=CvJU zwk8qi<}IW)CRSJ+wp7!nhi&AxXnhLd=LNug0EDR%2N%;QhvDc~gi|I0ivd_^ZUO1k zk2UVQLrj1-ZBC)>)B?k(7j;j>S+xe2z}?bp>O$sHl%*IG6(vP0C9&!4c=>Ct0wp0f zxrFnKW^H z9BnIS6Cd7a*#6-YJ`ZV>`vjieUrZmQy?Rr@7HrcW?Xw^+gti~Ux5pM3D?ef zJ3NJJ1NpEq>chAK_jT9mo0lF0QP}C5FOY53gxhw}3h2RhaMQLS3c#-I;s~B}HM>cHOopni`XAY!pB#_@?~`7?*0`?3^=5Y)1K(`V6TEoV`Rj*kq2 zCI-?TSB&qZ>7a2~d9yf5$^y+Z!pefrGb+V` z+Qz3hw+Y>&J&tjc7GX?+0BC534feb0{U((LAXJq^0tX}XV)%%s!2v0M+W z3a}d`ZyK^&E^IWj>p=}#%w$};3|Q~ng+{c5T6`153)%<&xX|gMPq8rMVqUaR;-Xiy zxbHHwG}2Ea3%xQ&=LEa5*mgtD-+V<+!ry91&(X<*`*rnB9Y9^LoI9&a136uKEdNQ%)us?C zoYag`y(L)_PziC~Cen+K4{?%W>CRUxXM$selhW*{okZ}9U_>;-q1B9*xwkKFuT{aa z4cIMa&;XfjL^^6L__q+Aft7D7IbkCacqdSMo3pL^P`M3KVa7(U-oeR8j^Qecq3*&OLtw+EM6?1dAhsFy_b0evTkqe7) zGrZz6@iLM3~T`9JC3ny9+Ivz`ZmZj2X1Xm06D>!Ujb?h80pqKTAI9 z1@c=zp*~s`Qb|9%J)9O=iuPs=bmm@6-8C;tn(n7sN)dd!F?r5kDor|c8!|{0FTx(D zN79QarKmhywZD8Hemx?)YVfZqciO`IOJswxWL2{3ldhkhb0W>*d=UimvrAm0`bta! z7Ch{!3K+d%?0P+FU?~ykdd+H(ED_XtoonDv5ukf@Y$n#s1d4vJOTQn}rT0L86je>GF$ya*`LWLhu3H2|ziV@2v*2QK_3l?Ko z6TK?rDA7;2;Q;#g+Mnb(4N1R>*}Y;(*gY4-SQ)Mrc~@(tis2@7B-C9qw7x_r;v%ZG zNR$JZ6}Z;`%>j4{t(Jdz%#m>8N2*O!H26x%c*o$)(X|UcmMoh6Q!3PDJ5B%S_ng>e zHZ;&==Y=NaY6wF$B}H?&}>7@sAM@#8&en!1x zs=ijrNyMz~g0mDz=~YBkdqvSsWToGnj_E?g-?yjLw_Spa`~1Ul93^afg!2{hnY_+o z%&SXAt3OQvibEXWk#MxJu4y=6MrTY^R6uTfp<`SU!8h%wfNU1@)R+f1dq90uisZ|f zn>4$}c?4>FQiv^Q0v-C9IZeV>yP`doJIhXNhOB(2dxCM;PYEk~2VM%ejML%9+)de+I zlu-wd!hSXcMxn78yhbcbezh6oM)XsDpqcTF=DfW=PmD}{BNK~T%sj$=gm~yGZgjd2 z&RdtJGq84mx$<^j7yM$5hnVLIsr{wlBiPCL90oS=ta4gvr}FF^ti@F-Ph(Cj-L+Gt zj-rnRb8f3hY&C|(N$IK?%SKKjoox4E&!BYEkP58p4{*h(k=IC5VYfOE-)Lj${_2BM zHL5`4{RM`m*sJJ1F02wI>g+4?&0VcIZ^W*}tG6q`N&(Axh$bv+K~DWY^KaFiF?Ox~ zGXRfT9w2uO+o48&FsT3*(~4Aq-ZEdmj~OM+l@&AZ7jx7SJZl23g&z6XjdQQkDs2na zxbr=-CK*_iX`L-MKX7lLg^C~_b&wjGx;(q#@e6<-HHro}!gp8Ta*)y~kw z5Xgnq17JswaPaU0PAEgKVE0YQcH&2}L`*f#nbRd}HM1}mnb{~E)u0vOD@!d!JRs{4 znl}IL=zE{$eeJedWl7JY!}L(z=CE}0oVA+TH6g_0UYQ&|(we882V?I$F`vA-&>~3l zq0SpIB|n8ueGg_aCPC=zpy+<%&E<>z3I+AVMw|brN%F)+BYYJRn>$Om zu{~IhpL1nhu7?}!B29=PmN&~@>ka9jnT9G&yw=0{a_B-6I3FP1;;Xl^tG8&`KGS`} z8}k>L4?1pwg?r{t_*ezRu*sc-N}Q~*wEU(=WMf^fNWK|#$)v5oOUPGQXHgM(lY?W~ z0ipt~2+|?c{q>s*Cmf0{Y#lV(5*x638&bAZPO6cr11GWY(t~b`$b{Lz!$`gl_|KFK zp(Owbt>6w4OTngtd`;ixAs(AH7#wC6_mrOPqT91f0Z(F%e-ud|xE_!HLsR_kzQled zfUur6o666^RH{cmpgy2_kaPu(pmr4_KeX!Ujq%R!d^3|mwvwnn1*qN>I7eE(?)lqca z+K{Zt@ZC(yn%4HpBOuWM3zNNpjoocj5L_8|xeII#A9FDkX*vK{aH8J$ak_ zO+<=NsNYo9;uUdA4sQ=TQd^;&)Y#SCqmSriyEYCY3GEqd9sBHT!Z7kX!=7mqZ*H<( zz<5C!CpW-_&4ncD+}Cy^iB~^V6x46{CNI&~XO;FD`9g64)%uKg5x+0R90pTt zr}_VmySrv7PUkz5DRJBeEnDY1`3179eJ->PYg?XN6AY+)?46ww>Jfm8#JTa@s(|bT zVU_2_j~xo#Gu4AYK_!TNHco~Ga1NQ+BlZZbA)c%JI-Bj_e<9boA>|>s%JZS=H(d?hdu+LwwUQpcms{QvKLgLE7$?v4aE{-F-cgrH;R}vG)EFjmh7Ice+Eu< z`mhfOjQrPJ=~OJi&5d>+C!H(m_DYzj_!Wj&4r;CcsMCCU5sWys$~xHud{hfSHmDWJ z*ips(xYpE0qIG2#v#gyGPbXpmmS(IxwLOpg3wW2I(JXlty>GVrdi%ZS zI_LU*XP0Y{DzcWoSvGTIsbr;uo@bHCTiP%xy%A;Tm2@(o$UKfJESaf@1`WC&o_v8L z)mU9cfYJsPnx=8ac!nL>{@1SqKv-B97&0`9)5*50xFP8mdFcJM>kRj^&+|4U91z;? z0gt_9X6N%go6VFNmo$)OYe`K~%B_~mKm?VAtKJssb-C@Quv=1)OkFKKX%IZRDi%zx8<&BlZM?v~7xZ)d_VPFLW9;BcB zAeju90!aQph6pk5eiFd^1P+!1gC&Gc_#^cIJn7~ODgBG!1x9G(9&|lx)wmm%$*b=M zW^va4Y>QsUf2n8V;VAGn#CGbbepAokP&0}*_p!%$#Mk0O{?HbSH}UZ^?UuNYX;;5z zbjdw`y>|1){t$M$oue`5(tX2`G4$D}yNvFf2HWPi9;5MEP%-w@o1L?tChZiavyh1Q z?-kw$5W({LMBjX0dS7#2(h;IimDXm1Ekp#!WR(G>G3MAf--ZUJS%b!rxjXM12`#u= z-sT40n(1ZZB#7Wjowns{ndC}ZxBBoB_m-t=xj~a17=ijp6^=`9MN8@<~IR5H*W>pB|E;&o1C zC0igdn;=@2Mg_?9kMWrTHj6QzjMZ@ZX@@ZS3*ZuwaoZIu`4(AiU<{iDAuNX&F^?3w zDPn0*v%3P4gbtcnLcS^}uT#-p>=h^cI`q*#m@CBbIH#F5Xx9CUiO4zXhrnW+N_$*I z!3xdCZ!SVaE$KjE-OrXafX}a%Fnn)VEpC8@bdyLI(ZYeYBP&prju0r_GO*s=y9MY` zru58`>7J^##=#rcY2Oa4B`;8oLY|RE52fXiXM;>l z%A-THRh;E?M)1$&sx=~yWkhpjTDA|#&*n#6pQNu~U%^|p+@E-@Us>AbyTN|mHZe_S z&G*ueTxw7IrA0ccxvYmA|JvxGnrED80vZxJK&26Q&{PV(7GR(zR9*@4zDFuag;{I zTI7lj$yEu=cX+QYUXm({O_WH9_r?M|w6I4Y>Hyt1*rP~>S1Jgut{)OP9+J&()z&4e zEy`A?(+8ym!XHvi3!Co(xM;l?p+mMqc`wyJ3RGFCd}u|62!6BP6@6rK5r5H;{^tE{ z{wnJ(@+p~<{FQQI7Am18(7k(tZ`Dssrixdgc&XH>9J^7-qx{z*ccT`eEYLy@zLIuX z^-mZ_#mG_{M>)w7ma~kuT$0`8s&qM|g~s&HJOXMbx*+n1;|a z!^Ubc$!fvOYLSm?VdwSVmZf6Vf4LUJSqJN?&-!FQa5W74f$kHMdq{{ofQ&ml_(IAR zGI|S^1JY82trGIgRxA^^c%9M)nr~1#mF<8CL7H`B)6V(l;yGlnT_#xbu<9ARiyl$n zuT5d&Jf33<1oyL(+m<+c^$fpjq9=LNeEE}r&HxrdjqAqtrB3;MvMY_&bEh;} z?Hdk3(k&g+)KmwL0OG5n#gip}#I-Iax@($mvS_|rXM-c44i%|asJgMVnRZtP9iI3^ z$BtMeZid%!AKor6osN1iu>=`iEKcAl((y%RGkA66_X{f zT&NXArL_Z-G2U}!TnnRQbmth)5dFaqW6S6+_btUZaXdIQx!fE|vrTBy^}M%6TMWOo zS-~L*AjY!yZ~#c3rgQH$Aw;%=RBn)4mf8vEA&9-%#QzzS9Yia`JRvS^W7Lpwl)AJ^RQsDb1I~2?* z3YD;k%axM*?X}AnN+}eCt&o0Hg6Bk+-PQ1<8h8&$mWvu2R&=GR8_KRLR>7xrW46Ui zbrxSRSORwVxl^6FPF9priX=>i@exzbHzX7t%Z`nP@S7k5*EQWFubW4A1fc`x+3ESR zYnnHz?Gm338*j5Z>qdX-#bT8=o_95NXuwlp{ECh{j>kx#DS<()WK{V~ph6tu19GEc z6(OC^xco8q1lz#FvS<0|Ere{^{=thy%Y&+$XzK6RvLLne3llh!2apYc?~MkU0Z(6E zS`9AaEIR`Vr0Ya-Jo_-;)NG(w@{6lJh~gIqUUt+@_)e@2(ZrG0D}|qzZVw_mhp(WD zd`^lbKmSh-)NUMaq;9ls?A-sOOw?a*aoC%@k`*Pl0cp3t$(Td+^1Q%S1Mb*p}yHlqGYN zWxkO~3?@lOEc?7I(_J{oQSuoIq2%`%9`EGnw`$-x$qlh(i>6S zOID9+)oPQ?5{p~P>Wg)SS0mnG47= zna?ytQSU}n4_H+3rx;1I)YWpcCxK&XWxXgGafNllWqo8#4xIJc@#=%5Xp@xaErX{8 zF+Vew>?cc(3U#@dr@=5e)nQp3RM+b9&~amjvZsZDyCFo@flbzdRMtVz>f`P7L39OE zuZ6hQfnMulKIsvB27|H%fq8vLFoBKQf#mL?&FnD(_HldoU~VvN5J1EN;l_ff!un|A z;0fu-+{S{r#zH|};9>HiBJ#l`^5G`(K`8cJ%K|LQ{59GjoaGSV=b%>ep)>NqZTKjg z_&K+N5Zb`A=fJn;K)da5-tq___7H^hk*)@i;0B?h2DpC&+Nb%6rv;d|A=0ZJJ(Ecg z@$jRf-IFp&%9`b*m}j?`$D;6r&qy4zxnw0L4o|&mO`&TI!fy?*I;M5D^O6!=+R>J# zmA=UO49&i<*WN)~zlaDByTWL&lHeRhr?=wyo$(PZ}%Q%J_5}> zt9gMVxFxJv*ZDGS#Ljzy2-wrvl(aT7wfz4C=eayj>b4>Vc4aZ+imS6>pMTCboysOk z`cMcfm-E7xoHcENu@J&#rjg{2n{0d&_D5owjbyHyw62@RWGo)v`d%~FBR{%CSrx98 zv9wED!)_e7gyH>hU0tVlsbZW}zp%1n;RwwpGTH{eVsMS_9N*5@nBP9Zx0fwfaiVQo z-Qui3-xlquk9)*HhTQvUw8&v}1Ab8gp+$O5Jn#6Jd{4GsN76 z&nmAPienFJGpgN|+99(Q_7xClAPi>XUe@`ccW|)4#+?~^o1K0t%Xz>aY{9?cpV15kntbYlwqIg>0)0? zMrFPyML-=V5sG}e60akn+(75>Lh?X8!zC>Xo-_Ykb1QkDqPB9ISWEx)*SXyP8MSYC zSxHDMsW&IL|8RJWANmx_0*HSgw<#>Joo7X(c!@;5o^##5Q`=Uh6GJaAYH9rZXfT(B z-+4R~(mZP|`e-Wr-oBcqWjT*!Iag#kuVgvLWjW7eIWJ{7JB$1xnZ^RR$O0HLh#eHU z#gV`1xfkg<#7$4RvB*}Dr`hlcUE`fVjsIj4w-gLDvybfEWjL$=VP zOH9o|Qlg8S*I%C{y=^A>>SW~8D2+->&}_i@WS)+6q4v0?_V}sxc&+vXvB6XDm36?I zb&#QUASZUhOc%Uc1E5@kI9>&F`dTCe$^>GKqv-;h&29&q@thWXQxd``|X7+#8>~Yxa)8OyX=j;>j>~Zt#Q~K<& z;%tw!KwCRVX3m(@w_5?f2QGU6rBFry1HI`y^=1~ih&KOUZ0(Pwo$}uAgY>JlKYMUB z=?_WVdhmO3CH=_FxCj#ws^!HN(HnUwmC|M^mN%To2c%P^c#Go^BYMEmhj7?b)SP9P z62J16UT8iCbPE_cBCk$qAoRn2#OxcOiG7ybzi0Wy5jpuz3u}`Dhd0-=dtd*`>rst!*o8E9|Px zj0@?Qj_mQ>iuxKq zuJ^co_!vJ1cu&Een!+&rNiXy8zQL`(;dg#Z`s_*aqk(;*2@oRnJ+|S4Ie^*#@ozo)h%VjngCZVxf?lZ==pE*P=6 zOWP~XFR@5VdoC`*u^3J};rf%u43gW6WT9dX5!(xEEw*59AwLg+-imP{&kn)fN^~J# z4?*6Fdm--*A>K-UAb$aF#el+pCJn_WeRE(2W?5XR8r7zf0dPa^^4?@nmXP4>B=Y#p ziWfnuMR2m9pDOK2^0Uoa8Ao|AX1tuBwjD7FS>^iJfr9hma6pCgf^cAq^AaZWVU+9> z`IyU&NrEBfcBCQj^y@O=Lk8qq0a*c+S7mPD2i*>(!(ZrMw88suWMDwT^SkArovst# zb}DTzuK8Ux8~w*mzOK zDQ)JtuZHkEhPvBCXWf1vo}uR+Qg$E8e&pw(B#ZeLD@j0*WiQanVI@cNPn3T|$E4)i(Ox2UIg6;N6Lob8?e3@zy;wBl zKF-TIBM!}4WM@C#nwho7bmE_BtBbT-8P*QCr#WQMaw1keNT_UsN!6ZSZae75A5ccT zr>pS{615vF0%@0bLeDkcnuou#BeTdT zxV8N&VWMWxiYkM94*McR`N@S|kCqPTgIrQG_0YYa!_=rVoy|quV7Jhu@F~9mUTL>W5Z^io!APZ*CodYh7K305|dWCid zVBLMdbZ8ZdOj5t?Z2qKW<-WZlIqrCJAZcJOC`4ewfGPMHQ+r)0C(Akl()4uuhrQzD zPg4o6{&3DNcOxpz)j|pX+a~*H<_d}JC5mn4CeEdkrSE8u%<8M}#bXo6tj6Lxr>AM{ zMRK==uWjg`Wkf7;hH`Of3Wa!z@<}`_atb0M;a}+G2@$@ZV`A~*(iRIH;ZaT=RkeeR zrrq;X>1R{%{4J?BNOCQ)0iuhE8YHq@d%-(H5Or!pG1>f}k>AmpLMYLpkmapA06P`R|*m9Y-6 zMH~oS=bpJjc8P89oN^I_rznTtSf;kElRy!q{?j{kMeIVWv11pUQLCXt4t-qfNK~t4 zHBCmd4DUQc(`XgVD$`GdG4gul)GJHV|HNUgZZp=o z@#w)Afep&HZA0FI)TS4r*rR0yMT*%XnN*dfy(LXvQm#-W2; zA?4eb(fwQ?)}4YJ*RtP&NIsb!JEaNFWxut5+yQ^u7L-G0WlWWeZy}hylV@d*te5ZI zBR+CgM1T$YmW!4FSb!Ow{07d$(Nr+<)b`?=Sik~ii*>CrC=1O6Iqz`KZ!ImJaFD$-wv z;np=e^v_HXb{g&*Lu=~I;&-;!;ptojh->a=4dWuOn9tG!j|5F)FkUpL>ElRg&r14x zY{N$$(iEm!njM2=wACuaRzSB|5=JOFr)QpT@BkWRRvXp;&qTZF4 zHv7+VGQFDR!&XkV16Mkd*X*dlzbqs1pFlr`-~MutRO%YnRUoK1_f=r4Edy0j=qckQ zP53J)${m2;C-aqKktu^0XXGj6crf@$VZ@C?Go!L|e~QT;#-cHPiiy-w*i6Oa z>LtS(8Ss@Ljs0Furb>X6E``h;*i)QS1Elkn`_+pz_$%<-hzoMRI{Sz@RC52xbUlb{jt}bulkz~I6%cu^I)MvTO4YsuU;=;noE(2Hy&!(2L<>~Tn=LyS!~Mix$X|O1aTANQVa(f%I%Q#u zm<~{B)C}(L5QA6wDvFDA1@so6l)9nm;a3rtHFn9n z?(#ORF-v;e&1Ir^iSW6J%w<;T{xBc>!e|Kk$d@X^{Sz8P$Q%XBIAFmu>A<6fxEriX ztg#@$@v2544v9rJ&LE*OhP_VF`Mcl)V-fHt>~9RrCc-ArrU-R!?OSXyTb~~p3@{MX z&JHbfp3_qIIw>QaPU+}=&vWwXnSI-}*O9Xa?vHIE2;Bi>2 z*6IckI4{17cXd_e>Im#d!}spY3JrATKkE(u5qDWPPSyS{2LCIrAByL)rXTwEqN+kg zIQp&L^5puTbnV*zFX`7E_5Td=jko%D@qb$UQ$_zj7yqZlKUI8ORFo?Ve5$igwj7n0 zE6Uu5pS1qzuT$??^WU+uD!&JxrgWK6{uVq&e|P?GyU*on`$dM3-^K+~XaJb+|K$2NR>2eXW*DyTe zN|umyPSJc{zI(?6jg9 zPtKeR;Tx5Nkc>L{s+VR?xsZ6z@-ukbim&4Lp$#KkB7y&vMwb$u zlAZFQ@vH1-J{f4I(L%HVV$Hyrq&@&laz*Z9Phet7z@i6N2*Bs3%<-8~3BfuB2M^%y zqf3M@5COZ(+bdxx3qQ&WF8yE@{yPWN1Z*uVI*;xI$<0qYZ<>YcY45lN{X77AL&k+a zI}CZ_jT@Sag1R3T4Inlb7diNak0K@@Mx&6XM7%6+y$~7&XdJU>2)82g920g(*COUA zh=&C9o4agek!PD{sb>Mt@R@>}rZH{|w^!9j(bQ7TG0!m%FpoI*Upllp>DrNoMGh|? zVAzMY$#Ma5kY>X$htzJvA-Py&k!9ORHyYQybCrgb^$+GW3sV2f6{%Whyvb7mi=C+;&n6B zO{jD`K%n$dn0}Qz5G|xi0V>Bt8iFraD0WFJ< zV3J_OhKr74rK=cND9+V(&kjkBA?9A4aNs@~b#fzd5Rh2Y*rV8ku&^;vPNZ>x^3YQX zn!A7|46)3Gf79QYxuf}Yq_bngE&Tcgd8goEQ=KgZJ1|VPQj^X)-@G!4G7N<5=AwlwQ50}SSq>t^d9>jvvkt5655 zooKh?vCKy`|Ek9hyXznp7K#s{RlMlP;tls5N*{ar>rC=ecmH2BJ}aUYbWz|zLj&Is zzjz1ByXf&8|8X?q5iLRNUEDBQJ2ey~iFeES4`2-2iqu-RRI=J=Q7S zEZ2_~i}yu$FoNOH8|&96FVz=PuR!0O6hoEQmP(^3{SOmE=OkW4h!*iLR4_!K1R#1O zpu`yy65Idzu#Wft_qZ#WV_fDPf!Jz$Pgh+s=N_*zbEvK-@LTdYd2{AqH(uvTdA3m2%X; z-!g$kU4Y(PHsgfKthuMX7np+BwJOoE+r0AFp*VW(P+f7Z1-YHS_!!RPJZ+qGwJcu~ z%Cn-4{kx*Gq9){+gjh5O1Yo4(Hz99mAs}6jm0hIhlo9i0pOqtNCr&dg+#V)#WY86r zdJm&BzWO`FNf_)CScK|F0U^&s0lG#ZyoMg$iXo^9n8IFXP%0FP{6N?l6EvlvQB_pp zegk8iLW?|`P|3|l;;)}D$)fBPes@a9=w&Dr3ernYgL2Ush1AV_oEG6vOE7q4%p3}2 z0cIcp=D!5YPz218kLO{giW${}P3z-l^ii`%F*^K?e10J~sNo)ou^Ae(BiPt$Z5_L{ z9h&Zukd7G7`1NKXf3YPZoeas+P{+4L2^}|}1bd3%;{(v$>Xd#HDuje-iXqh|>*XrXts}C|3>Leom7Dh zE-xYo`{fgzT~eWhQC!Zmd_yF+i2L|B`PU2^=S7V04wmr@8}B5IEt*ngIKv*{W4}gA zYv8qgCFflNxHrC39FuqDKoU_$kJF8iHaY%o+IFw9A-i`>op%RPlR>gZo+%`|p-MkT z!xu*nlp2{?$dETX@t`PoICw~22uXWLg@#n#Jy2>dnjxNb9I!)`=pHH6PZtqHhlaIZ z{u4!xZe-C&YHy5f@`xB)HSUyWEMYH=KmvX)u0-!wb@ODFdfLEG4s-zl8=5mR7%pL9 zfJLCp5=QnJO3S>l)ky?OAf>nzK1H&7n$mtXLvrgl6GCzemnOs-dZ$Dr{ccTuigqi` zhx&{>Q&6$X=|D0uhHCtpmhyoebND2yF{{m9>cfCdr+F(GkupEI%s^yOa8~Q4OQ^(+ zey61OT*9D!En2Dpmx{!#_qzYuXG3p9!3w;w93C@O3w4XJzk>gQe}g~6TA+POe<(!D z%XwPxS(<;d|C0|&%>hS^y0+I4saK!v$4w(~X|5q&Rc=xXxPr(ZF=}#B;J2bh1X_RY`|FjaqT%DQgKDCX?3de|cM%t{^4epr3$5?dE5b3Q~p} z@{uzN!n2#L7jO)zg1MVSQ&1Y|MQ1gAy31It^Na5!A9Hx-cs5qQR$M+y!PnU)_1iz( zedl%WPP8;vrz_MgH1*F0xLQb3RLS0>?|2DgD&*P`vbx8y4Im$iAn z*5L1aKUBXaeH*<#^Q@bsKcjHW30u}#)PN~ZN7{d4UW|0k+axVN#D1uMO-0)q{`JPR zkk$^TVKRU3zp2SyijdU`u=vI^2-^H2L}O9q00s9}NiS z`dVuAzixV$h9|6l&~58Yp29!2U$I}SU#3PEG%tUza;{I_9gQc=X{l0=TDbhxWYCsa z&CrgZhUNeovaB!pJR^D&GLH`>I|bn%$t!2p9W&@|MerdhggQ}=57uJS&}PTlpV%-(4Nw=UGWBJ-rbFS9yKe*Dti9Tj6_pAoFeLvI*R z3DR)zp^Si{G#Rc26P9OkXh$6zP&~upJ{b~=bP~IgabS0a$%#1IRa(Vc_##6A+i%dq zkN8Q$*XfqVc@fiAc=ZDgddnUlWKhH>Q6ykd#P4CmCn6qOy%uu0M%=#^-Mw~Vc>ol1 z048Iup0#SRfQ$KnMDxc)tDkvmhz1wCJ8jfY3)ao5HW{|Z7_V|{)X`aPhd#H?TN>4S$M5+z z{shMuZ}K)3wim8%L_S%eh>Z#=8xwZK7p)C#qle82pMiK+p1NS^H)v7ZHlf`|OKf0! zbfp8x8o`TA5TwD(}=b+1sw?m%zG1#()7yK)*9!7#@&VJQku#v(|lk zxJ~o!2ZYdJhFh4-CRu4e6WrmNg-LpZhn@koBqTB~hb28|1UD=RC!L&Y9!`~4+z^*C{!4?bcfmnjiqwc1 zFEKewYsMaieU|(P#5AEZOa00oqkUHW2>2vnHcPX|4*zvxSh+2TB2~$b9Nvy{daRlm zwRL`KOQrEft$N_Fi9*y2HfAXWx44>3L-RhCBhGh$|DzG%Sl0>at3uE{MrOYqd+MGk z=){uDcJ-`F(DX(od%V*L<9cP?ODXk^UVDVpnK^fX*-Jz921|R=)EO^#HQI}x^_F^j zkl+Evcd7D2ymlM~e(|wGRY9ytXx%Nx29>NCP{foFv=AZ30bHC4WE}T%f=nX)g?3`< zOAg~Rwc*Y;Df+8qpCLtLj18Oo&^$>hZ=NB3WDI~!nP{FRl~36aSTiAGQ>xzHZE}c^ zkF4!wFZCB(_@Zg1CVK@NVO&qM*uE|6fE~cSPpHNjP$5rD=G9&foDP%+ziyZ zNV+M#Wlm*7WRo6lkRF7H9;T2U!te}ZyM)sz^=jVRgAef)>sX%$Lyr(cpFTyeoM*oD zO)B>s*1Np+fjL5xEJO1LhbG&IdQeJ(*oT3~`HZ`x5my_UX}?g1ef^mZE(u^2nD7^1SQC{)i=P%nT`uQE(8qg2mv zRj+tauLx8t@ovxCqs#eNud)~`km4y|Y#(FbAIjjL5a#UhT%7>p8^Il7MNjshu*C*{ zOxlUiMZ|XvLUxUcj_(|M?;H&p>E2V<+>p0AU?Ms~KHr(?neOrJx$Qaa3DjxSiPXv0 zLCfp`d=3!>kVEW*ensFb(xEFdLOT9wzFdW5R<&%F!_hQtw922ZA7+_N*`UxoJlHbN zPHC^b%6z}VpQweCs9dTjb+jl(l_1Y8Y44TDXS#~?+?Q!j=c5`g#&G{x2mEtqN6SXw$t*aRX zwBvjfN=tEiT)K9WNxU82G{wGBhV%drQ)f`KIRf&plD#CK}l!tx&RZzdEHMBpPnnGUG&82T8=QR#oOPl3Gw_{h(ec`G}KdCfy zKa89FUq;OYZ)F!m4s`RPhkGS5!@l7E<^~O)aiXjgTuZ1W^pNgry!8ZCo>iw`L>^Iv`2q zK}jj`Ca&Ut7gq~;O0{FrCc7PXiVt!>GYIz`)r8a7rKQDV-#)5?2*-i>pa; zlkAWfh<0iY>O8}S9$jcgsVO=KR0*z1w)u11x;PaEb)J$yn=VYR4fsg3N_3HLlbC>Q z)9m|n2o4}Sl@4{zYoqYwcM@+2X4~OzQ{H+w zR>O6TI1ExmC$)zl*rS>`WTIgkwU;lTe@J*)KQ-3UPc2m)rWLFW*UivLwd3d}^ilUf zbzP%8)xND=^fa(pcsJl!ghb(zC5ZTf^al9L5=h>Vc>nS*mL+ye_MzZscuNOUK0SF! z*beX^=4X6k?lHE_+ZC^i@S&}Lcz}fVDdjydon@Sz*Bt_!)*4X#l^(!)aHXG}g9l$)B5?$Kfs0mGR&XZ83*AWXY$Sl!xpsUO@O@4E<+8b;wdeH#v{lTe{2S z!5MmEj&;aVW;ZF1+FP;<oFObJZWo#2qL3d2rfQ~6$~hr^LrZ=An-3iNvk*Nys|+ww zsGJ2-M$wAtxl!t}~ z&;jRAEBJH@11mn03tySnH<(@6KUmHu8mbf!m5>XMLAl1`(CB(|iV_+;RfEQ!vo|<& z>T>Ho0}EGK2uF!7N*uzGCY8JpihIza#oY>&Vu9ce#a)Bj;rst{F3$Vp>b=NCGPBpLHM7@r?eb&UOzy3l zm+Vf`xleAfX-;mHb*~Qkj-dzH{c~%a1ByJodn`O% z@KGX1sA-nN9J>wc^7cdUkrix`nkcqNjG02yGiVhk$hFM)Z`iFmw0hFtYHa+`>S7!< z@#e=%n&O>+;v>~n;vv^G65KtQh){XHJr!154V5n$qHrpoKW`y*R_ll?FW~qEkryJ^ zD|Jr+t8o&fp>IZZ@%piEK9s|X1zrxbF(c+nxA1IS3r~BCD6S)I>QgIf%64pKw4vzW z=ppdYYzOT5V-X>OynyfsB5@^Jh+(i~3Y~~Q!;06PUT_UU_pEqgj44fC%G2UEfGDfP zQgr$>In8iyR>R$oaa-W7QhsCC(@J;pgjrZ7@H_b3qjtOJo+eSdQXrW##iK&-Aj0r$ zW^%R9BEL(l71H$=Cbs~^SS?1Y2V_k~JSOi9VV!ba$h;n9;|Hqq< z=gb5?zW1%!tI}@MEtK?xIOB`Q+MBbgaog-{FO3HZgf~z1B%rTa#ggO#!(Zj02Vu?A zu*e{)R~cyYDHz&f{+D&uWv=Ez*3E*X*Oa;vs754f*NW8h;rAxH9xdGWj!a z8tgoHoZ(dKv-u+Z?dq-&%hYYMq|j}`XR=Wa8{p{9l6=4pkc40|gv{*Lorn)dogDv%M;kdTus45?g6vDIL*91<$}x}BY7G{`ceGzc@pHApj~HHb|kH2|6Mu}+yPqNY zd9F+u@;g!f$~z(h?^au4(1}KivHO4INB3O8(LTq32$sj(Q-B2Ir!w88 zTabz61Tc7Tb}&Hh5oL3Rdjd76d+s&rd$^FM5+Rr9<%E?KFHaw(b;n(Eh)}_GUmWzh zA1@!j&!zyMxm}i4#Vb=X*Oa{4Ee*nlB-BWt6JH24-f6boUmn* zjFIFxvp|SI@QcTyD>W?%OyfJ*&Lk1ckeu;UX31}z3~(ugJ|v*1S_J{{H;1n7Qd&h% z2r-MQt^Qu5>P%-z*rifuKl{g@K8MBMGFQnTHmA-nF!3vTvYv=mZjxTYmui&mtcJg! zPiaDph*pL#+EKbr8Ifj_yemG+^3op``}$=?o4-UJAIuHWENtlykiSs&LmB0`;vHqZ zdNm4!bD2m(Gwbu_-0Q#3HPru_gVaaL$Ah(ND8W269Cj`$eu|(-2~|+kkp>9Dr3M1I zMWzrgW~PvuCZ!Nl!q2Tfutz?I7?9kvRHDIbp9>q9TIC%=PO{{sr3ie#2e85Y?+9DJ zWTe^|o>Km4EL`pfYWONMa2;_$fM8n0$C83aW-0~D$Y&~Q_A@fKw7#|%6f4SSWTH}` zt_D&wuPDBNSf*RW&FG%j87&+OMy&S3NK90veafxYD|weht)EMcxEep3`>EP3+>3Ho zZ3oW=;u!)XdsY`!YPWK$x=G&^KLd^5!pu1dy55-YF7+~;-H$WF{5eT!ZPIV>_rC5R z8$IhBgNJ?i*rSL9*6H| z^TleSm&1?AOd-b!MuDw{pZQufKV!FATA}VDvr^)%6GY$_M!3XC#L%S9efIf1AD$%K z|Ic;L4&t6?%OseQ<6gUw)%WKGp)xgr$_$JhY;Z>(l|v1mH-@KTRjQxyI#@iAI`Axp zA!>*e`SLx-8p=ItNccpXl_m6=DMRrjx>Au=xjtBuq%AZ6*vR`RbEte*fYz|9Nt9J6 z6}_7C1ierAtNKh(&HbqRFoFQ8Y!(KBKC?YyKD&5vKV7d~*b3ujxxFLGhVrnY%bt}? z3Nyg&-!!aCX%c&3IIkP;Sc|j5?e5xd!gjHVvh#tWWI#wNXeZ*hmt$SOuv*nEw3B69 z>aNwRcb76QLMR)_8DjaplPlmuMjwyzeqVyx11EormoNDBnb^dSwK_gg)ky|wB4r?4 zC8Nii>`nGg0@nQL>sm(E6-92WmEx8Jz+%GKe8>Y4P9Azz2V11NjV;Ryy9J&Ai< zL7MC9{%k%r`eHh+Ju~^YJdw#Md4gOUX0paSN??&4-l6DuRSsc8ZFozZYH5sVX>eI{ zv^|VkPf1-|k?YH2kF<$W@SFOoxvct}3z7ZkJ!Q%~`VuK+N|i5Bf{MiAea}p38mok+ z$(f}&a+g1Mg4u`bhFSm`#-LBafu-RqG?Kh!+#CQo%gbbd4O;Y;ZSG<aba8LY@aq+fTOwva9{+%w=+%1Kvv#72=FdOC)_r8j_SA2(!Eb5uUe3Poz>TKpE zJB&F=ovF>YvwFX>iWmszeke*JD$fG`GJ$Hl#m+VDnLr3kSv@GtfpCm{CYteBBKk%Z zBK$p@vlkSAk$!g1=@r}oefG5I#@oU05CvMLx)Qf#r~Xn3-g2u>dVQZ&{mT-HjQA$M zIv!%>3zs80%8y_^LzP$$72c=%!vj$q-+*BWuh{!ch{WrzR~D6IV+%9F>3j^JC%YnN zd=nSY3*}Sl4mJxXAC+JxM6H+iE-MjJkzpT)LbdAmLa8sg6 zXj4CTi6_$n=tOm0$ww2qjOb+QEWpp=_uBP~Rayt+$M>fcX!ZeBbECNAq)5AnAJx?8 z?^#64-yD+C{V&9#An;~Ch!w$hlS?V~D@iV~3vBytUY;)F}z zMa!>FSe{YN>W4mY!^!Rg3ii!9RHd0%_OYgev)o0(j2i>R2t|m#$D;xdCI|oHmy^g!)OgELwoa&Ye zAK;W(6{ls_qt0mZv~R<9*?xzytH9+-RZFbcksfuUVv zyX(h4c-}|n^8Djs|JcJV^|7~2?@v&y@1L-ytQbt+>lpkK(R8H7lXQX=FJ8jKH9ns9 z>rX^;eYQGY_bO9aMs*>cKh%o1voex;7Zr=YReBePHifF8w_T{=p1e-S5Zp~CTOsGA zK3w3FXixZrG56C}(JSJwnte{S2wyw%C$hN@wgz6#e?R{U96kJUoh|YnJ5%Hzjks$M zx1eipw%2wLuETa%+ujJK@5~7P^^`GEW2G^{aYY@$p;_IpIZInY_%9pn%g3MFR#4l~ z_5FL-QD*tY4Cd+U)C>@0g&!1c?wUe)WS2tfyTi#UI>ia}7&n&T|7om!SWuU^%TiZ6 zH*G@-*Rs*CX&SYMmW=FMMPv%do2Co&OA0wawt)`O)YdbEkCro}_d^w|qU{ycDS=lQ z(81ww``hc!On2>{D^db?SfJCx#V;?MSxj0#S9uI%m_}A{o0e^T^x%NcSvxfNjW{v- zw0$m5iJw1`_f0*TKIdr*0dLn9%o*CS!pE#_YuZM*p+&=0_W0#3nY;V7Z412)$Min6 zhi^T?=0OPSdDBDOx_B_Gwt9}O38fvRa~}^Vs_i;Wm6d8^=wvo3T?rchaol{-`Kdx3Ygj$O%u4QT!39fFHPVa1K zxq?Ho!_?{Jz6so9OH{z`sMW&Futf&fa=?iM*T6}qcPA@Tp)1*R>QrRM03N#~DBuTc zF?ajeBIoCtAf_Of(l+HLa6%?wd`x)4=UNShf6etWOu1K(O2F)+tP^K5i4td8$=vz? z*WV;OyW)(G`ojpdEj8*Zoa$$fy-_2%V?TE5N+xSzZo5cKRj6 zfsvj{-r7rlFA{gxE@~I5wmG1Xv2y#{8XtAUnYa1U!Ff1%>!P^%-xe2qbjQ(UY*-AM zKi0P1nR+d+nS0$o3Z#u}lzi-e1ft5@<_4{krO7~B#@@RCMhM`mwx!L4Hfi9qi~MH5 zHY0p_`=g7}AS<+Iv}CZ4kI7_Xf4R9)gKhWOnNdS8--WJiD{DLFn&q$7 z)~n)f<;m{LJnjd*osEkGR}IU5epMd{hWR@-8GnfIvKu{mZK-*C;2Cni?c^EjgYo^@C zn~5Bl5wG~wn^v&xvZc3b>sgZQy4>rrlMM1_oi{hAa<85Wx}O&kaOUuAAwD^Nd)>Nm ze9VD=4C=WCeSV>g`2cgSe0+1pd|LD9%l6OCtununS_w0S zpT9f(A@h)GC4I>HgWaaP?mTHe*E@_?c<=IkCsz@FH2dtEJcP#i!@~&6sS@&Bi3`5#dQvja$mEWQc@4?Jilwj+#3oz-I zRS(T^`*n-F>Ha`jhdi>Kv5AG3V%S|P^#ZFtrx_FM?}9&x@uDN+_IH3NA-)lUWP!|% zTr)|HGNvBB3wRIWEr31m=5LSe9a>Oz1cTYgZ7PE3EO!Fb-%yYWX^XVrej@b=yFo{& zLOdqQnHJQlQ@~gqic4|`lbT|Ls7vbPLBF|*b9e0F#h&^)tVjq%uHsB+DDB+uc&M~{ zM5G88>kCvo>3htIFUF7b4U>$-%hH5W_xr$i`W^Ftk(o-Ce<%;R5bEutD@v<9ZHMLv z376=-`!$}%WT@r3g9q*%Zl|?j{%W+Cav*`{k0-X2Jc<6ONedzy_{zG*xa97bq&j9K z^PV)06(u!GCmA(2w}w(AXd+=fYEnBE(ah%+JP)UiJ>w6%ZWW`uY ze4wUYL5yp~Xy<)~4_CG7wX=5N19L$FWgI{ct|pl6E<({W#6n3kslRdr6E}SpaF(t= zlQ=R9rZgta%_4|g_7H+KaR@vtZv;)vZ%IxMDS!Dx`n%FO#`=!A-ujTakotl-)cT~G zr~0~^5B1SE^!4R8lJ%K47WHj6LG=+g$OxV@squmS>jKS4TKQa(XGVY32d%sMn;gWO zGylE1b>GRIzW>N>U_vKd0Jp!kAD+L8AKzW=O)-M>jCiknoppS+&oHk#`b1`xAXj6R z#1hiU9DwIf=@%dBch@l|d>3LQ_^ADv_vmekoG+y4rCZQakAGKZJARhd4J(*@m+c<~ zBYBZ1A=&wMR;*ybuXC7tW;GDE&N=>8EzYDWjCe;V+H$1&A^9>xV~7)A<4GS#e+<~~ zdsI6 z284?Wlu<_ovEym}p@IN0wN=0(NQ!t-vx`Vf+BTZH#I>*ak6TcU0`^Q`D)&rcs`N~F4R|#C{3e^R@rM)HHQh2J;q^~No|@RHo;lOKA}dO; zZH;<;+nkN4TFd|_b~yS`lOuYx_&U0>Xt}R({JLlCvtI6T!YNRKNic_oEK@c<(t5nW zDruLeW)IO!eqFoG(wLnh=Y7R)BF7*(L*^VUrm&hM>|C(*2J89Evb!vD!(}HepXi2s zASa=FK)5p*O>)-Zqt$^OO8>2br3uRD{300pH0_;s#0mps5MiJ)0&P-Zh*;r+SR~F);w82xd;HjZtWRR1EzCYcyZ>-k$YcrC462STSM-JA-!qC*e4J}> z=nrNOvmY~QoAQDldSdpKsqs~_69)y=sgzTF5Q z@c?*nKN(}K|`91HrHOyr}Z<0pyMhvA9qph=x|(8R?0NwIa` zv+QuxiS#gJtZ1trP(s=_09H7&oKPh?DoE}J6zKP*LiL#!RLfQB6AexvYv!M6zT%Ud;zCZ;y z73bOwYmSL^Pc1-glQ@dxK8yw%x(tJbAkC>qanbkRSeOiASeQGLikY+%L{+|Wi9VE* z$0upb%78knwWdIyKH1X+yTJJ*x^c>=L!0Yw=+_#G89a~kT0)=M2dzajYh8$ z2`xpU3xXyE|m$a)G zTTnnLw7>r{a?zWwZb8@1%n5I<9pfGIfP6`}r*YQ7b;q?*3ShHq|*yAhBsCVK!#o6>CX11nhtydU- zTw}~s8}6QCmGJvsDoP4(+j8ktKiMxRl#$e0gv+liI0R5A|!-P`-y?27rpi|c%Vbw-}4Gj)!wq7;z6G+Y4W*udL8zu8sz=z!7RuPSS@jf8@ff%M;$trPNRbUc0c8PEKE z)d9(M8Be2igJXvZ0{<*hT!9CXM_&;z{ov;hi0krji%BjQ{2AykqPX2}>#~TnKBC3&%duS(Sl#aNMuUZO`+~=iADp zp9B*~3Q`B91H0ax6L(nMS!0U`X-_Ml&fr8!2splh4fP0&pNXZ*N#+Jq<~1-j;w=Y~ zUnhJxlPWJhdSkpY{Lqu_?r<(8J7YeH=}d)azEG0W_4vttpGu7MZ_l6PzKe zne2hICEWLSi+7s56w2!yt7%=Y8;7q;s{eg*Z1dj;~OqKY_oucRcR$ z)9G;*f#v(zl0Th39=1=u|I>2~Y?8o|_}>VYQULxy^fO zylnkLddQeJj&Z&1U&)7^aNN>|oE~2?+)H^}4$dd^)#bR{e=_l3;Xa?1L)n+jo#JAR zNdcX-&chtti&x>XMj~jHdYzHlatln6ERba zCYH7)e099bG`IH(z2gUg&vN-CEj@TN>bD`q8FD^Lz@Ya;zui?c$aoXkj=(4#z!8II z=B)6E6qq-T2|dydBx@jF1mnNlKkXPkAN29wPhG^f3ZM?Cmre}w!=wJYiYCoQ($Ogc zH$Qt+x(X`}d8W6Sb4q$1O?oLYTVJIl4yk>*-P$wM$Eh^zWvuAb>h1C|?ja(0JN3%H zck|ydOWH%(>?@KKC`L|*z?;9G8;TD*77QOF0g{#<&ZzYqDQojD-ooXTRzeI7_{G7m)Ny8YP;=kqe@zJ}&yLC>rNIsViBn447__b==ERM8VfK@2YUVvP&U97GGRw_;uFPAj!MO)7Utd zBIz6Dd3Sho?vC1}!w(H5RD_JtC*(7yD1q?_y} z7Ksn>$Dk>4RiT(K`vjU0j~9Qa!bcgWV96wloEpDHwms2fr3eYEiy^f2(kvC3m|(O!1s>>VE!p$Wym7 zK#ZjNz(LHDWQQ?taJY?`Zm4=#zR*Q)P*9>yi1g#pUYug>7@AB+>8A|ZMCh>=gyibt ziXG&{g&OkP&rf!clP4zk5htu6C%~&h>D1Jzq2o^7eNGkh#939v_RJBLy$&FGGt*#R zBG>EZZ}p*QL6X_;?PPcqua#ZCzW4`Cz{luwnFp=hH&x#`o_ zg7)h8QbOE5G;uIAzIrNuXiY@yBj0HVE~R#Vi0Q?SrvV-WS!&~l_yf{);JXu%eK!y6 zvXqW?=xsy^kkDC$P9D6M|ErtQo**Y2f@OjlWT9($vqVZBK1S6!>?hqqbz zF5Crc<*=OW>Fi`g!6yk5u7+ci&X%H=MD@w}`6@7}XsdwtLCUU8bFu~!?IzDmYHu9d zRg+;7*zB;G34gNa*;=Ju9_ifb!UCow-wraDhvcA(foCc>hg4sznC%Q+s;d?r4wacN zu)2x&xwgzZds&ken^eNHb%`*-g_bl?=sRthe>bLWY$5(}!f)~W@aH2d{M0nYaUAn> zJFidJLv{EXYkt)3#}UZ`#OEQNJK`$Bf149~E9;V%ZIIgi05GNBuBF8;I2v03qdOFo zpeoyTF4SzFal{qBo<@LJ^+pQxwW>>#(^mC617b9WO@i2HRz1|y$to~I7c_zAUH5y9 zbNPP)qA{ib)4IB9-%{tvgamYBg&9CYcJkCESCW}BZ>eobdVc|AdF!b!w#t&M$o-Dw ztZ`|w8~tZoYlc87SHeoh*#XV{Knl3)XG`y@T~&hvxKsVblEcon>>8w=B-19HSw2hf z`*#%V5^897gxSMnYu;mfr6pGX8h{_@{W{Ec?IL*=de`-I{Lbjt`T#Z{faFDATkQoH zicv&r$O?|X_QR!HEhMhO-DPaN2~gZnLaMN~&U>H~TxQQ!x^dBY`U&%_-J6l9eBepU zK&~xxIV0POrU5^&eLLdk0BRIJY_xSB&hffS2AwmniruV=uBzP*iQ$Q@%v@0bxV1X# zwIg8;d*Yerny*THDrnz{$-dfhScXvRg`9eBZs`SbZyj9pD42z_b!^J{NNmhc{QQX( z-77K!9rv;Z)`h5b9eBpOKc1?`mLFi9Sc5jj@d81^fv?_2)hWml z{2QC^$nyD?Q=_eG&v8x_U&qGU1^FlVl9mrYOkV39*&0i(b&(uJ6lg(g^y9|I37YgK1s5n` z<(l#dUsRewfwOhe-`6PbeBU7bqx8m$9dLSV9F0~q8^h8$$JyP8YSzW5WV)O4HX}^k zU;0UloTfRH_(!4SN$!Tgz`|``C=`EOcnde#(fbxDp^S(z2<%CvLs@!!2Xx6mB zv5>tlbo;IgML1q=UBFwU(wT)eB1$P`AbycL$oEzE%#)hyr}66#-%385^phl2o~93m z8?HGQ+5Rmy|4=Vwe4?Z8!7gyi+NN0km{%JzsiD}ynVEtD1ctzvv0>OVrRO7VS-OsJ zw7kDQqB}MAzt*A#O1sFt7bcmiZWhbM^i#N}}0fbA z-Ow1tvnoJnswvR4SIx7Yh8Xd7Vs#;3bq^uB$xrMMwX~b#?o#&AS_i}bCcrcMjBkXj z!wUZJFIeBowh8+35o10`+I8UE3U*cmL}HY-2efqMV}ieXQ0x$odrFH42u<~HdH;Sj zjyg14_e}%MCw-=Qv?qkT1Q3QD{L~kcJAl&p1E}Sy0VuVdL|^!_{`{KyuoCGn<({X? zy7>LEYoXP_i1k?6m&Q|wg^Vb0J^ZFUQuObSf=%#v%NNzxu6-bbJwCrvgxn#0r_}i@ zg#@KK0a*%w42pGATvB`cvv!_%l_?IUf_u^Z;MgO!?TY@PY)EZ9?XE8EwKmF^|CoXB zY(h*12&TKm9w)|bI?uq3ozhkoupv7Pq6oY^Y45#UD~EIXYnQeaVRl;H{3Q;ID9aER zx2AJ%*3~i(4;C8f+J{WZwe9CE9F~RLVRd_p?(l#U89(v^voyz92;2P_b_UsCMcGEe z&TH^2RxC`fRDlJ}hWd@M5gaobt2gU^=}OKoxFqUvbbxQuQ_xyZP5b+QSMx~UvQ;cc zQ2Jsbe(qaDb3Uq`P;OY8A*BGwKMpwc+x0Ea1+Y5;euMm!W3{&48t!1U8%}dnOpF_s z*1`uKG+}sxi%&c%9Rq(aVz{#?rzgjj6H1tr4!kqOwe%mdZ9i~#4n)=IW?QXvD~wpf zh{wO8V!}4GgM*Y@B#Cllto?D{lQ$9f9ga7AQ{;DjrtgX=OrP%#S!r7`1BDce@pdN#-(j^yZ*5CSML~IS1i4#Z-jGcBbnbjlDeOd)$V z9HScW&Eji`q0Wb^ntq{`6y>s8Ai(!)`i(}RLdKr&*K5>o$~Oi?@MF4Q)*IBcknhzy z2W9S`qP>r1UTPJ&lbWx6M!w03@0|8(QAt1Ww0q*PpZn6O4ZuEE=4%`>IBFsPb-$D1oevNkr3)~gtx$T!W zF7w6pgH-xliQ~`1^^Sr7$OIqTJMs3QYNlJ&Pts7SWPYJ!3Eifl?a2DG`#YEdTl2rn z(RL0!O*ZWSvd`&4M;!?Cf2fpW`($RT10G9a%KAUO$g-}zzL=qV*CHZi$qsZah8dL9uP&z#L1`NI@sN~apD*RVKD=*B@M7Ce8n#c&iu zb=m2Nyz!g9F-*Tw-qD;%sp2l-o&UwY6hgVmXSFq*S|$~tv>Qp|EgzRP6Tev-TV6)F z8?Y&MM@T7AYv6B4TVc11=*f_zde>E)1j2tkqe89fMW2%p%MV}So-90DF&nk*Z#snKMx*S2&3(08AhU6_!K+av@3%2bthRcY%TE1 z2yI~AbZN|Oa0ktDo=Y9w^^#0hQcj#W9$DUr7UL9}`CpEO@}SS#5twIHN`V_OWAlZo z6FI^+`)$?|?G0@<>yeHCTqY?SY$4iw#q!xT=dZtTm(6bVt1Sj5&Pd*PY|wU!h6m1t z6edLci4`Nybk^6m`EGOIl~VZygarGKAo%Ta|Gp1($TU%CwU6O^)gd4LmV){jMaXc0 zPo!Kx#K0WJ>J=qov?nSvXF9i#%>DRb66u90ef3)`ffFu@L_|?RlilJg=I96hRnk5Q z<{ah_W8}4z$L(9}If+EbF^3)}>j%8(Aq~Zo5{(Jg+}{)y(a1vo6!26GSpV{KF1N#@iwH{E?`S9X<{+L~#Wu?KEwJzur85J>>9n=BmA%%My1|TJ$v?DX zEz1_JhX^>4N|pXC%O6I9DmGi*-TVqcVQ(;P}39RkU=sPS8QhFFs!{Hq=&jw ztTKjP13%B_KLeBw`tsKIPUOphzGj{3YIUs9c69cr=?I~Nb%axRGl8YHOFeD8EbYlo zOW|z#W@0{!;jKy9Mbtin5p*TNCP9+)^|zN>B^LVVmaAn@A=5V`!4JC}0#n{vT6Ce) zwv=RkqX|xdhuJ<}M&&$w3^3fm13>m#|CS8DwNlfh1+5BawDyCW2OAu3HwuPBmUrU zN?Gntc4B2+0e#KeRkZ)q8{uYHbFFGQ!Ols6=~|f|FK{(D)z-YE!Y4j8ep_6{OAZ(~ z|I@F`t+3SZ?dDp_#>AU^lpVXQXL@te1>wUl_c9}KaC`@H8R$SZ&vCB9K>Tr{Bi#>(VA+yhf)a6R3%<=g>^rsWUijB0JkAzq5 zO}Syh1YOtnJv*YdYUCbX`!{kQN4orrxy{2buFQL{$W9Eroy}I$;@cXHQ*M}_Z1?Q- zJg$TJT%p6W*G>}N%44_L3nMmTTU^KT|4bKdc9e-W3vA!Dw1K;4MD~;Xxt~77eRdst zLPNKBBv1AgM-dVa5>KV>E8)iL5HAdr_vr${x+w1hvR3VW%ve1aP6>>ToJdHIHX_Ux zltc`il3y=st}ihQpnM5484$$JoPL`(<&5%rkN@brFgWDf?zuOHugpM=wN;d!VR{@; zIOkS*YN^{z1D4@rBebIG)SfQKmDsHn}6}@C>7~{C|&SB zC_S~>T_8-06)5|%Z9{}M42rY$0^0n4yZKj8cl?uYN zKs6M2*wd$ir-^p)mNqBstW?pF7EXPEQ&`p_r$ktI*2|klw~Zz8vB3$$aG#1g( zTjmu|8KM!@yG0f5xGc}uoe9GFvnl89RhyA1>n6llcZb8rfq&Mz))Ot+Kl|%de z!KlkCJT-^)k-=AB4^TXvo^BO0{ABA#pNNOO@bHQYKymvzR_lijZeW>S5`AD4KPd2z zMzrqU>h1)`>u{ldkrHQl)L=!VM(;yp93FM*cdSp!`i8Gu}{z(uS{O zxdY})UjXa;pt96J?boBIeB1EXh0`2%HPOTm zEZ(_5!pFn+nDBw8ZZwur$p*Q{fU$?yqhSpHeQlb8yW$5=Pz(+pcl0)w^f1RFrwRsM zv0V2N0k?Ks9{Ozu>2hn86!9cCI@kD%r8x;7w<&vIJZvdzQ`IYE60EImy zGeEIWn%3Ta$6eY#%w!AR=)oFDG0p8`BDaMsW-82Q2W7rdX~^rm!rdhN!l-W@VCQQ# z?W^gIEUfvW7`5(a8BWY1!umZwyy39!H1c!L#zy95qPZnUd!e{Y zh^-}~d?WJS=EMT@v z*T~OSo!s6CcnXw4^l&1)OZ8C*AYXp@u983BWShd!F3OlD;+h8OT;dH_rM1Fl zxm2TANfdQ1rH0Xp#FR;QAY`Rdbs8T3Pz4OD=^w|~%u1NKLMY=l)~##3x@N!dVafPqfeu~mA!oZhM<|&{h2)PfSIypCUa$ln z@`jP-@Y8ZXz(~@Wr{x=a%)TTHhdj|jtjIEzk*tL%Pk;Hhp`74_?ypZSQGnXSFs zdK$t4lka6bT#AciG2--d-ONLTpY|BboPAjC;-CDNu_&(OkY^i=|%fx^6 z&b;Ge4!gGu(lWZ1#Jle+Pv6^UuZjRiu?9zV1S`h@AD*nk=#EeT1_qz5)ql4a;qMF_ zHWPKdH=L@CH?X<+w|bEMtK{nb>B8m4V2^zRPeEgTcD3@PIrLjjbenS(O`zRYjHBFs zvdaY?R?~`k_P{NsnrWw#=2o%<#FgS#A;@=aryS=rMX4DwMg8Isf>I5xTH z$BeY|!Y6*Mc4Jd5eZ}_pR_MY!pd}fZV(YlHxaHk+dBN61v-5!W83PCdxa8oP=CL;= z{dH&V6-NSyS4DzmD^Z$~u#HA{e27~tbXH0Y&D9@KrA}%@aXu|ua5MMq;-X2vRMaI-R( zUwd;xy*U%dt&x;K$`)B-)-es=7SFzK2i=CHsp=d$D-<~{4e{H()mtyp71pHpW8LZY z7BAelze<srh29^6%D;1bDYN&l){>txcfKT%coeeid z7{%s@9qn}v3|Y4}W|Un@eiA1rW^+`?p6DBr?Nr2el8(EeA_GNqZ7>Wcth39zHWgvk*3-Y58=%js3|+ zg%@3TE8+w+IcUf<`030q1|P$4H<&#)`*v)QCyc9~G=%q$x&%??7azs=sX5hBoy+Cs zU*p4RY?X%MChtDq;}_T&RL)ge>$6zQ`EAugoaJxt9G}Ynyo%+E^d|q_xT|ga>%J-K_SnCxKi)gF7aiB%LEnZT$E-OrmXXx0AvbpEH7UTV1P3-WwV!r9;IEl93YZA1(o5JA!u@)Nr>{863x9|FQPiXwEQi`i&< znxqz^?EPB2#@1A6N(DRh^Cy0F9F@@St~x)Dv|!#}-M8=0g24fj6z9|3Kk0ALPfL%d zkoO--C}($I#y6kz@9O%?hNyIdoZkg~A^V>WNVCHl`j5Kk4fXFY&2I7`%$jqz(#(_d z_QgBzAExoH0WU@l{~PYJ|1aD>{7<->avB6J4l4B6OU`Egy-Yk;?AS-&r$uZeZk-L( z9v8(61e^MzNR@fEED%`SmfR{=cB6nw~yPVyB#n0i?d!&*+^l#JX6+JZ|Cu zN?~vXLD{@c&#}jOjAV~&&lYNHJgR#Fn40)rd;A(hCs@(MSjeAyGIvz|hy5=|=4mD8 zv+{a2JLU9Msqm-kb;i;^Gh8>Ygs^)nc718oE6rTjUxBM*J1}AC!?!8lf1-B%cDT4W z%c#awtGrhZjn&)%2BdWE5B?TuVRH81?UL8j_1ATXJ1vpX^uAkZZo-xb&9{mg`FXVm zRQ=tg^{uYV52ydrpca?}10{7K)rkO*8n*!H;^TbU*BDyYRSUbn3F>z@u_o zdw`W!aDq+qUn0g~b=lAFigEX!KbhA(81Wm%J4MV=$d}>S9YECdr#D_U=_%HUCrJI- zJS#K~NDoYoa(%iX>fsbv^fNdQ7P@&iL=${-7A2fBsmxMy0lYad_tmb;y`qaha=P)j z&5o857iG8tt6on9<@{ZBWDGDn5+k|4N9BK5+za#*^|>4w$ZV3xo^8ydS z7%_>rY(rxO8n?)ULrb&eye*HvPN&`tdKmujiRI9;WUgv$o%PG%SMV-d$+E zeZZ3UYG-A1dA1Vc(-SqW*x03bW^{Fxqwme%1sMs$_^f;XuQEFEHtMawC8)$~R#63S zZqY|ohsPFO(NV4pxvwvx;jhvEX>@Di{8v=D&061nGO@TGKEmYb>VF&`lsNzd>?EPT zF;gd7dR|o{3w>x$g^|^QtD|QuIn(78g%V<5=_y*RF=s68a;X5E=y}|BW~^l8qWb35 zJA4!90wIsO-+`Cj(Ff;ilWA3(-O|yI8{^v(7 z#(k5ml0>b1-I9lRZSvO8l=(#w>}^MGS%uP~OLu1}`H#DnoVBH$u1ZQ0eV{9XNe!~r zuzpmZN&3%%gm2{nEIP@!OJ0$o0C=C@M!qu~{LygqW_tILj_wN9M3zS9NH6jVE~C6^ zOiNCt1uYgbf2kDf?cojP(FT)@r$0v7d~T8k(*xs$JKoP;`@76(``Hc)ZU%ljJEl)w zY7l3$6baw#c|v}~8%ewO&JDoS=5NHKnk%x~&>(ZDd)NLzZol9>-d}l^c{kE2US&9_ zvv^)9PD1rF+g9>JnuY@Qk4cz63UaPA%FfRTGXt84FEDPkT;Bg3jaZ(#^=6f{G&w#s zEi1ywb3KFJnj#U10MV!OX}(#Kzb+{E+O%@wHf9BpWs*L9e)=Ka5$P3h*Fb#;9jxZ$ zUFP&NB3rZ+lmD^|F}se}Yl8G`?M%Gk9mls&lqEq*P)Z69IM=|jC&0UVjXY?VpsZAH z!b~Y#p%i`=c8^Fx<=(0$fmCD)SyLV3 z6~kcZ$xeYq~&V+vuoccWkp`+qP}nwrv|7 z+jjEAwsrD;|2enkYG1Cg$5?At)vQ@H-Gf|0aY9Y42^8kwmsppOk_lw;70NqrU#rHx zxp=!lJO&IGp9U!*L!;QUJ#f&ev|)PBo`GQJK@632L==ox*{$j4{}R7Sj6-9h64 zEN|D0pa<_c4nt7PoTaFA$>o&QNls}I@z=tTa8>>Qo=Zw1lD#B*B!$*{a(>me? z?)h_LHk~-jGMv1xAz{yp{|RBN{UUwjlkF_S%Ex?zHmz8cT&I|uh<(``n}U(t%4=`u z9@hlqg}1pJb?ijhsP9Gn0?v+f0ATU|WfG-iV;9fpY5lDx7yikNL z7rsKD(7Ik$?qPnKqO6xx6A-pe71rUe0X$7mX-{~57+C$IV)VZ})4pN}a_E>w&N`eO z-5?BW_O`Ef`jUw0JAS4?<$7>1pOdCl~O+st)`EqI8n)r>!S&phL3l(~XexIMyD<9Yo-=x>$#WNTx~ zx!UmXw2>+x33-zt{WD!&=WSbPE=(rymL%IB1a{1qG(3CXUA%nFzY}U9RVY7&9SHC; z`S8KaAP9MXmqzRs^8wM>@NZh_W-~p`7x8XF92{Z%gH6!@4jaKs;ogepqOvJZzTs~d zr+JiiFN{`=+zt9NV5L;XIL7GU&{R}bA_TscXUsz|+CFa_7zLLFaNq+Wl-D~zw-nyCTdm5Yj zuhhrxc84s%w9J%x%iR|*Vyp$2aa?LYS`&k2#(?s(YbE; zZS?7%dj4L9ckM?#EtCV{;nTV<-2cn9^#5x-F>hrCQ`TT?&yUqU^ z8gFpueeOW_@E($tw$*UO*q8ZRu1lryqO!Nj!a1~?9Cc6E=`UwjvimIvXsN4-Msh`z zlBRkr3tug1^`B@Ax2;@XG&Lv+e4dC3cz@BgNoMadiI~|_iF*A zRI2pFHm=1VeT~nMuC7lopCUxXmc#s;4~akb`O8ywev|zrpY`OCd_J=nCuv$mmr^8u z;VYi>J)1Tu$5!O|XF(F5oy+-{<=VQ=Ygqi0Br5h2_rR5Ll{smC zEr#}yD7wmGKP6X;Y?5Gn!p3p^hmmfJQBVYEu3ryKa&k)ynuOj%{AM6I}J}wbN%xQ&EMSuBTzEo69&qi&aoT>?hs$~)R!RAb|TNVA6oIGM59{-g5BtLPG zWcFgR@bHIk^WV`wWMEI$CG>_1yZd1QKn5A}4*io;DKPa={p3VqOmtb`Xj{;)xhuN4 zsTdd{KF9@t#eHL~R(uXdpDslk>T!6IfrMRfC@au`<+XtbLnb~JEY<~9*i;sIZM3}< z2_6s5CM*`~q&qXL3Y8l&Quw9&7oc;A#X$Cm9`+D>goRpk-N|Z-RqLzYQkQ&a0VqEl zvkVByG8L6=-%AG0-xs3l62@ohApm2HTm&mUM3y9EM6pF`{l*gr*Bi(!$6F8_A&N<79N|MD_bo_msGOIMLCn%eS zte>tj`rf=`KrZ|;47CDh{r6H+*sxvWu)F5Tuec{e$4A#kh-5jC6xNJwWk=yCxyk1&4CSV>6t+*6qhhsP% z^Yf^TH6H|lr7c}NF_&uiJT%djG&vaEG&ff-KXYBpP!?BhB@`K1MIW|#I}2wuCjKZJ z=a^~9o+}Qq&%QXJtht&AdKbF}WYf7fOq)}fLCLniX=h5N$;=^r<%QZo0)=Vx&q-6D ztme@Gp$MJkSie1{KtOGwoWU|ssF;7YIG`?JEK{;I1~mqt55dAFjX%9J9{AhcH*|OM zYQG89z!m3H`4Kd*^AZ`OM@TDnNk`Vd(|MsUJ)!)T3uus3(<4WXV^v&!^yuWu%!8_o zG4L&KU{p%0Az4dJ!~C2if67KNvxYcD-MxM=-ldJn7ecWL&q}lz6?Gq9;2;-@-nZB@ zB3C|xN&1fhJ0XxQR7MYM4^={=mG$lL%oUvokfI&@W6UCh8Pi1z2B;j@Bl;t0PQp7f zk#yVdUGIQDng^zX;mR5ET@Y(&u_E=kpAql|$ImVltG>#X*M!oKO$w&(wRB;RQ&~DB zc5w;nT+Vu;P|U{;q3xDy3Jod!WVYW;;mT5!InH@7Cz>39N04yAuDljNP>cU%3Upn`wX$&u_!OPYL-1A4Fl! zP8FFZiBDxD3PzUORrpOfi&i_Oj#rCYZIopQxt?va=*vfBh)AC;%jp1fui zOK|Y=_$~OWER2Beml*crKX)+KbCbTaEpvs8AeJuAw2J;D}jJGcrT$3AFx>URs^{?C;v(UNb{QVZ~Yb8ajw?Ux<*Dg0r+j$co7&#|_8=f+8iL+&`3RwdLg6A#CBy z902SN2Nn#L!T<+@YSv^oRoRVmBq=wvJwy19G#v1R6w5PIo|QAS85Y}Pt$W9329=9L z_tFc|X8CRxf0pv~#F1!@v|zu|U0A>#2=Z9NUX3Fw()7OB!P=Dal%I$9ghG- zZ}>y8uYYHu5UvMndV|V6Tzfm!rvpzbM7t&(F?COe;m3UR%la8&C;b(rfWSC_RFRy1 z0Gz$Hj^C@!W6wYMsa5!JK)HJ*rq0!<5c%;00bXl!3nEE8=n$^E`I4Yu=kYkQR>`=l zQrfdx7|e7j^o|&s&<|lj|3c-*B^CTC(*d@O+XS+Elq_)i*LG5bL%2 zwR5yGstIsT>!~F+Emn}-{{obK7O`n_$^o}>%Pn~MH3_{B!PTXQK*j2OVB6r(TR;V) zrIWJGHxd&K&}Rjieufy!sdDwI$W*i8z3amJD}>UbP1KkTba7@RdR&lHNMw+dL z5E~Q-)UIy-!VZ!cy>6`gcjswy=Te<}k9PTvo9cG)D?xTR%i5ikLaSTiv1HbMu!G3D zF>#vXS<(v>4Ru=&U5}KsROL~&XLI>hsn`mCRx7M>R2HwL&BOscKr}liv&qm(NEIYi z%3`}z^Bx0FuDDgRC){@^%U8@9liPr!Q11@=kYuY|8Vv7`SS7@9P0VZ+x6#i zV!OMy$^~NRfLpNMbb9wejKl3Qz5j3~h2FErVCdfX0P+umD&x1E9`t6n5#D|><9sB& zU6)4c!6#rIQn4cXSAhrthq#>pi5E4rirBs?$eiVw-;osy%XS5gPcUHHu=vdoc9MSd zXQDm>KG7)P_2je~Z?;?4`+d}It zzOmlVal6~yqJ`br59K`e;%-AWv|HineZ6Xb(Bs>>x&OL`yIKE9eXwvqY<@)A0~*Up z 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%0D5D$TmQR*jfKSRBPnlA z@4G_tgb5W~oVRjT3khYQls|npm}1qr-r-^9v8`-9J!Dr6x+c?a5q@r4 zJiEttqJXSKmSq#PwZuA=suBnJaHb~xq4!C(EuojM22C^ zxuczfnIJN-ncCMz`Pb(UPBG@2b|lf8ZZeZz zZHwdFh2kfP(@fvLrI%lh?&Y7pbh596#feW}2{Ny@r4PC<1#$C3_vqfjTIu);=eH=PT zh#RFWY^(RQ58Pxg-C(BnBKPXHVfRj7vne2SdZoNUV7$B^LfZKUV&dbns0YIkz-KS< z70;47zO=eVaGvwC>U#Ll^ExWe4)EsTv{5_xG5kT{ggVfHz*n9;7ENA3R$OebR@3#E4F%8TIWZg!AN{i&Uo(MBkO|1~SBJh^DXPH! zzQ&-i0J&KgOm43WZmu@ACo3@7lqPeYo`GObq^rQ-AbQP5d-n4rE}%ifTB|dI1Kx}g zha8~#SOc&QMetiF_K@`3+2)`7%42Mm8SZXs^2B!jO=q-{mgJag+tZaywHM^5;^0Q2K)W%QTNZuzX;>t=DcE?lVMZE=iQC-%Y~eO z^S&xOf1A`{nq91cKa&SN#?AJts+@r&9by{b$(>;?S-6R)Je=eOSLR9?J*1+~)`~UV zGWIVP^!G|l;R(>MnbhC{1j-8&szXWET;^9b(!qQ}6r|H=62qG23by%oq@ptVE#j^9 ztd?6E2*g!XY%zO!hgo0u-uBmk)9ExZwA;X-%Nra|H^Zw8)0exwie z%+y?+Il`tArh*>a%)p<9FMvZRQPMdc0EJJ3=YHgE(8EoD#Jam6cyYEs;^?&&e5pvQ zLQbm9cV0LBDamk4atR=#QREc5;XI_&+y&_T=8^|{hAsF+P%^Q3Lgg1$)4%W4`Yh7( z1``|B!PG~UfUgvTvgW3#K~2lm5T3%4r%`s64oktglasQby>3A+>9YnZr#jh>vb{!` z(9rCh%QTGbXrxsBu#LarjfzZ3^(+faFEYvS+2KL?09DE;JXtIYekkTcDJbu%OPDIE zr$EtEI+}Gr0(P9Y)n}p62Fr`UMg7IaE08-=$t7a{^M?zNnD~$7DV}S!&Y-cGH(c*X zD*)O&Tam;9TUmge$o?ZTx-!>iRsL{yIUUATZqIgif(ZYA zcv5U}xKrhCnqO~rZ+mB2p!z>NnZvLCP{(n@UlcA_`kNs4`@EQc6i!_Z8F&dhdLzjw zc4u|IfkCL&p%_wmVtLmiA9l-NAoY?xnZ-O>NYxK{d%w1)1wMlb4%g8J{QwS-R;PFN z>Zk~M{AFz2%0O~pzq@$#mp1dE(s~)V0#mlb=ir9Igy$=SUyJrjo1d<81UI#Zs6LsM z4yV0J{D06W^*?BA`G27?#DQW{vT}QvbK%TV<9S4BeVDIAf;L%!&9c;D{k^oI zX~~zWa><3hJbJx63Dj3A`Grt_dS2o)7`H1vX*{yrm!=UehNx)o!V%uoG>=%EinOm; za!zTmfSWNLVJvwua7fVl%pjjW8`PZjC{K1Kf`We&eu5^+M9T}f$MJ)`r{05hLGC!^zvEV(5!0)`1y?8Jmh z=k<6DQ8{miUoNF4PiTb(C1A(s$L=`?Iih(aAPr=$P*;9&WUk1;3-zHHb2%Dss9x=7 zQS7WruY7%`d(;L#%5=fD%l{g0fT^RFfm!oMOy& z9hITczRPoWIjG1bOr14sQy_9mVK7D#D&qc`!`Z^58n~gppn+WH@#DNubOrYlLv2cu zYXq7y^hlq>liJA+Il_B|1d%8F3qA8%{$~pCEJI>2t2;xt6=^nA^vJCwRnyR5aF9Hu zY#%Nj6NG!D)=aJ2fUre8H9Ji|St%9B8yH61%AZ{AFho}jcK+NxY)s3K{ADLPWzMvU zH=gwmsC(U5Il9G~c1M3FH&_-157npcrbUq3M1vmbSW2N9ddc!IdBd{8i6z0y*wO+` z{PB)Id#jAA+L+j=GSq0Q%2g&>hvB6Eiz)ScIFzj_Sfz9zWlhE@v%{O*0c1#h^GwDg+5k%jvF8cgx9okytE*a**ZebizatMo%eyA&?G z>11|lumN(B5*YU+N)5oK(a(3ZG_2jc=op*xnelnjVKr7u*Exi>yJ2NnXLYzaU)3qU zKj)pA3&Ds;Rc1IapVMujdPr4~cHtQTbcq==W^*IToKxF#L>GnW3k$`$l_ok_9T z$37RmF|=eyqN){5?kOM@b)vOG>1_OzBA29Ec1iv}FwsZF`!u&Opx$$cl2yVYT3R&%URgI3O^>a42w2%QhJ?!>E@9KlSL#_n}F33H58u|4bXnq2?7)Dq+S z=XzWPV!2I$>bs^`=PohUz-kz|kkNF5aLId0a9xg1Wc_P>rG*R1`MH(S-_J0N6pimt zY=RCs-R!R{^=bWIP|>P32UR2ek9%bqK!t7_$oi(myknZ8l>I29*WnSKR}YZK)0Av> zTbt{3*TF%t%qGd9<59{fxE*KF!cu#U@?2^A<5S#yhvM$*67&9TlX)!D55-edvaQ#} z01*Ol;!WiUh<9R0d;*GRme5RBe1&v_NTKb>WV5f@>JbyXrhRuK!Kh8+%WKuIu9(SO z>3L9Cl!vNt22szdYg+5kjab@?=V^j8eb4!f7{8`Ua0>?hT zAU$iiF%l#Bsx_*zn2xuqYL<J4|jtcsU_^PP3dewfe!BkYbvG zBMgAb9v4LV=->nbG=KMa_uhVH+m1F}RM`UN9|ND@p{5Xz(w@MEaPQmisaHbEh-^FgK?f zBgNj;-#Ke>__#kab`3^f@1a^g3I6$KEUwXuU#dg4czmS|ig(qAr*(d}Rg}PDU+b?} zzDP1(o?e=haY6XsB}%r-F1O;Q`hfT1(EMN35y|j>q16EHf1%Z=1ckfzXvU(Fy~t#ri7RuS&;X7hImX{DoUJQ1MzREiPIK2-bh z&e67KvbQV3J1+Ee-TI;DPRz?$gxn~i>aTMF^MSjljp8e_{vo6R(FOX)iaXK|!fae<`a!_G0}1rj2&0W}hatMM^)l ztt!Wi6zlAm9iKS6-Y-479KPkn{W&?L;D^Ph8-|O?6Lsk|9ZaoOitzS#_KwdcgpJzip1|Y=80?0 zyNtSm#C)%3)HGTxcF*c>J%uI)LPE$loAKw}#pBQx%&}_^75ZpVH*c)vE6entvhq1v z#uLj#P^X9wHzEiGlo@Kd|BCA?*j03Z%{>l72mh9tKkg*ipTw=;EU+&bM+nEVwv+Wq zTooN-PgE=avdT1Pn(OeSUZ_~kn$z^E1>Av{pw^gL%)>q#AvA^2doib;YW2Zv>D5B% zfqOj=Pb+ezP~qQ(L6`&m0Yx@0MumE{Kp;-{?{~q1a2?2ZhuRF*7i8FvxUW-3>cJ1f zt%I24B1-;SKo5GzMJ6JStXlv}xx8{)WW8R>nwmggu zWqxM*#QV{vd&^>OBqWT9;D(2|WNM?u`b$i1;E#+|va}4vr9%#q4S)^gFE6&CAd<9u ztS$s;_e@NzCOf1-om|q3>cJhj9g_gb)IChkBN$Cu{1v=RHg=2d+_=gb*}rEfn*NWk zMBKlt*{iN_Y#0(C=m;dsSBM`hGm~)=#CD6|<3Jn#!D{|9?7}$)$S7WKzSa|MG8dnC zvZmAkG$Y>{XKw5)CyNP>xMNB+6c#$dtuMh-?+MR@t6%W|;gR^4a%)NIs+9XidM z00@h?*pDD|<@y+I`-{;X7XODq{A#j4n^sc~L=G|=37^c*QIkXb^%SAhSYUwNgyM20 zWfTULlF-Us&tDJ_iBi8r8JX2zej~J^`x-Fbr za$NYCg;oPv7#R(&X&Yc$jjP?P!CSnUC9M|@GhGCPJNC+2HYE0ZqM|BrI#s$%9A?qi zy%mfTZmUH#uSb0&w@C89oqPfvX_;!@S&&v6+U1)b;oBAdV8JXQ-SS1K2k&_#a-E7X zL)wF^Sjd9p2B{FU8Z7Z`R#8z`EH^<|A}=XNnqp$d=kg-C#+6f{IwNklHL+e~x%l3y zp1JFW;U~BV%w4mBGoGo(lVFc=z2>#R1We&8)*Us~(T2_vUH%}!*qFO1%@Rgcj#y1i zQY;~At^2$B*yT@{d%sr6c`DDcwy^FG6-!sz`0~FPxSl4>HdMb#!%4eYP7q(^h%&8@ zP5}Q$16Q2@V&HnPY@{{@V1!<<3kdhVW0EG&Rvyvw5HnLmS5AsUQi5O|9Dq7tJr$Sl z6G#t2{G`>ZC*f}F2mJEyInSqv9g-0mIg1cA5F!4)bdw?N5)q*Z|1-kRcsP@)MhfsV zTD43UenC!URWYTr)}JUP-~U7{_ZXW0OtE0VBg)KXgl>Js3&d8Q9R7r!KKnG|IAvqF zPtmuYriC6rtU!M4Pdq-#}59t%9r7tA=wA zLy^nOZI?Md__^QeTN7?W%Oy+j)!Uo!$3;-bGt+a@+JOVt!U$o8OdtBh_K!F;&*LgC zxYXtnUU4Oh(BeLG5J2v$m^KM77vho6pCb+hk{D~Dyb+ZECdl&p())9G_+PF$zo0z- z3163Wxq%NA6@lZ8o6v>0gdDy(cej__@vmdl~;@L_9V`aN&;OhxH2Qr|u03*q7!t z-NzUj)?S0ZZM=(*Y}^bEHw&TKM%M57^HVj$a;JP)zVdTM=P}MTXWmUZ3!!hGL(rM{ z`v}lFa@4(>)NPB9g|Vq*?L)RDnvp6&^vNLBKJq5yiN861H$I8`KZ!awWA>#nhw-Xs zxAC4Gli%ezgmfN#D1Q3Q#1MD)(5=wp#QiHU^5OYHkS|i*u z;m}%sd#WDE3rJJt$V$rsS<8HsUZ<_L>*nP@@V@8QNm*El%eb>o@UEgQ;BX`D^WiZS z9oc*szHwaA-VreRSgPmD;JQ$^;bvUQt(%_v5Db(}k3!)4w-9p1a~HmQIqYFfaah9f zv72*mjcFaw$7bT*k)qkJK+Jx5YW8dYzc>5+?^eIA2=M{D5xrJc6MjeIt!n0~j+s@n zN#a7+R<89-b(%J8+r2Ihz=y;LT5Qks{N6QmRfw(X>|8O2Fm;X!@soAL9KPf$5@ z$;qvWhIB^TH<4IjAWdvXw)0Bx(R*2xv};7qF{zzS1zac^wGD6l@EjK%&;>i46uI2F=GUlIR&cHV$#gZqZ{ZdIdgE%)>j(}~DjG7qZlj-20n z;DVr`~bMv_vHS!GvpRJ4m2mzaSIUS}YgxDd#`D!y-A z4C&1hqKBwBmSy5PE563T>qo+RCKp~pe_=h3&oR#{e7O}Bz6w-Pl+0bM*v2_mv<9x? zEN9#D%o#lH%o&1mCqlfJq8>$VuJ)b)@nuN7JuMuFKHXS-MS$GGPTfM@wtT8A77tTe zuy=7?Q{E+5h3q;QG4&N2!E|+2NkK1T{6N=zj@zI`!$Fs+1-cNUTt4Y+rvYrptoH24 zD^O>4z}j0AtO8QIxvoTj9E3xht74cGFM}LoYi*_U$+3s69r_+TTW-wW#*hAa&~ji4 zqnbmFJ$*iY1dv_nl-}IVqZo>R6J z`>cwhN<|hvfqky(C{(Fn$sNbv@OV)4#AV_KV$c|b{4FJ@@hzw9i|HPu{Ay#5M$e=u7egohhP=++A<&TWoR`!uS=J_*~F8XsqqGyXJ+E-iZuMWip_AB zk!cpLjt@OjhqdZA`&`QE$LaOK(AX);*)_6*Wv^B*qgQ%O|0nl!xpKVn)NN>P=h3=h zTYbA)VS~btO(f%1XVltZ-mAmJ*fjb`iG{v1aD04 z6@755W3Q1N+IqF?+}pBx7t_S`p;Ir8y|}lu6#A4WdJV3x;J)e9@+nSNM`w|%B+iPb z>XN|uPsJ?OWsm^l#jZ14dAmos7bEI&+HqcJ|*myOdC z+8$z4xHI?*RAKEzf53{{qGE)vUDGi)sjlqW4CM=*AcK{Q4oFCgLO$u3Ps66h45OCnpmd;x>^acN+D|0w9sw&>jke`(zl zU?JmKZX$anzJ#jyJYEmb%*7V!J2?WZ&s%Vifu8Jgd`oULD>m!hjL2&XJC6@(*1z5O z?tv48fuDqs56U*mSDh0=&D(UI)HggXZr08>V-PEPy(!vAjW^WlZ+$7O0NCg&+LS8f zrQ~IgpH#dzz-QnuPTx>wL>SJ+zxbn5-`h6+?}DtkyB`;a`Fsx2*~;}I)X<4iBk z2NTkE>JVv)G+}N;yZG5Bn6&!->Fa|x5_kF)P-pv^vT3fuPS)ZsPARc3bh<(lT7Qb!yq#8mdLO`UFaYsHkKdqtIhi$jNZ*+=_>@7w?9BmN@GIi; zUu!eDj4IF&+SSf{fFG~LU$Ni&50DQ!1yJ{K7A2CrI6`SyP)-=3w6L@s7Z%xuEDV5! zLUGXd7y&-puu9^dn#!gU_x>w=T=q@&Z#3ese)@S z`!596^mCpmvR#k-46oBG=)IHAiG_^xJ^n=95Kq!|;u>N7RHirnwJr z$zoiJgGx$Z2`H9;;lo8-G*;@E#P0IL^EmXie_U_VGK0YEk!?3(5-Az4-(VA*9bmAu zbp4R;%k7YjrE0%)exqh;(;L8L&oN}(7_{RByt{CHt z|4Ir62#2bZ5l6I?E;O>KzT~$k28kg0iJcUvNgULmFD`mg%+CfaaT&E@<(h}9`tYC4 z#v~otP&Rq-NxyXb^l=(~j1O)902d!TfxvIcyYU)fN~`eVX&2wW-W9)nLDrVoXjCItx0#eylTrK|G9Glun@d(K@hOLI&^Xx;wWGE`H(EG z1bP+5-p2Pgv=@!lW(eyS_g+5RJMCsl`&pl}=iQ4c7o)eIQh6v2^A8cLo@r`DT;sc= z89FBFkD4M(YWpDNXI#$eDe%p?6I?UB@O5ZXqu#gz|9K~D^y((>9F=-K8DAfi)Fm^Q ze^@$BK2!Nf*@b<$Y{sDF(Mn$)z3MW~X~C#26Z(%YKdv-opN~qh-%jWeBm9K&2vt+t zXPMSCAvLO(WjYe1OR0IY7i>5%Wq>b1a12??E-`h%nrSvJ6s*g!ibu-N!gHoh{J08+ z(^Zy^naHY?@L5SJIDwFSAg_t6AQ=FP_q`Z0g;ru0cnop0V?CwxU#ReIVX>R(87p@t-Sk6$34OFm`jEcr1&qtRJV zi9w!1(3j{KO6H)Zb~8JPB5{_Q+1tov{U1HT0goODru-P?4J_dF^VcBu%QuL-imyV( zKg$;VGb0_UoD$|LY803(8^$rflFYiE|jCB0w#wmPpL#I_jvgW@@7;8<8#2@~C-K3+fZfAD+3hb}I!r^X?8b znC+YA8+WKH1KUD#W_eFeg=%uhKfn?q|E$>Q!W%PX4; zIvXbWukicFb#7qt1|o#zE^9EeEZN)`zFTDvr zIql+G2tUyfO5qN;fHT}8D`!)@4R67gWl#mOAw>oL#W(~{QX#x-2LkaXSoXsAc!%bo z59|eerYf!pDysXO!H1v;xR9(zMT>eu-Cs0Br}PL+aucfbUuNXuCiXb9BXVvZztth5 zS9;;w8=%F(!(h33(3QP7l+As}To}J4-#d7LoA=7md!g3iMYwEL^d0==0QRhbzo}HT zA|ElFnM_YT!WbQ7_y6^%O$^E2I$)p#^$o)k53dbxc$Nz1}tDs zxhw|HQP$MM63c}!}d##>T!8QX8x{r80^U$Ko zwXB%p(1`uIbYJDrRsHVSJ2cHqPH=Hi0M>qZ?)n0PD-9NRYI6!@EP zw1dl5eEuX+FGOn|Us8ETDsY-edyaoY0#gU~VC(){G871Z1D$VA|2s9SRFC<=q_fRX z8#)&ni<3e7w25KK`tr+Ry!5=5oih!8yEQ5N3^dqU4E46u!WaMAmG!6sYS=D59KIFI zHf+I%ZpQ412rV8zWMOpI@V)gIzlRVHb)hQc!(Z8R@QRcbI2IQSPUyZ7UpjUSAK4B3 zxMOiKN1}VgF7_OIY=U@$5h3lAdiIzBH9`l_Ws@qt%AAx__?I<62fr&bP=}=A-RazE zg}TtrW$eYfplusBCZFn7sb!D}ulB#US0AUE@Z{p?AAhoOH*xVEfKmI#E!qXJ7Mkqe z3zq8u_AD5?JCc0h;_JzKf=Pxwv2pt%07mRf30^uBV93&tuw`BV-plG`0k=B!?tG)F z7I;hW)2%h3b%WjW zA1Ohv?czhDwh-N83v{_PelO{o7_XdY$M8LhdJu3QXW*Ck6ZXLmv*)N*PcDFI;P08( zV-r{(Jp!F}fU1A8f#=Dv77A{Tp;d_P9#BY66 zEc-W+n^@-t?2F);K;_ou@wFj;7ui=P>%y=T#QPf0^YWYTOPc1ZF z{q)!n%s@IIlZ}?V0}wONjlA1?D^R(!Y}>bz@dMq*k9W5pYNt|(IAqI3 zrC!z=i9BvC-Pe3wC}V>8suFH;Cd?A7WQ5Wh?3ix2xDFUkcN4L@iFMcy70P7W7(X@c zcHR@M=GWpkg}do`+?`dn zd^`R!s9SJ?zaBeQIZKPfh$S4mOF32*SyAe=Sz<_go9BPSK?8Ac*xDEp8^HRNY$;Ha zIom}f6RhQH@mtD1iA=1l!|Q4WqL8l_aiXxBNa&QFA`1zj<@v;wY*6G;=}>`PC^6*A|jk2OvPUU!4w8V)YcMs z2`eV!FTzv=(3K#%LJ+ApJjQf2?aIu>vtTUt)cIEO?MVq@G`Uz*MSX0_N_p8UxZXx} zcJ}y-7v*!MB7i)xC-Xvsm>vQ%FN8>fc9z2Vt4@icK0z$yk`RlB(S}l9Pk6dfotwG; z;)N_yD#4-vi4-H$6txt~knJhGm)Teyovb=TFa8w|U~I(z3G|VRsB8qRP47ATPS&_o z8>__U%4-qR8&z|^B3J?lNb<)jllqirWAjDCcBvTLegf=Zg?;mJk zqwpJc@Pe87_#vgGXXa>#a8C2L<-Urv;77}6WZU_rIYUHbW)Ed5eh8+7k@JPCx{c&# zkPGrfVmLG;YIaBr@QOsGLmc;NPbf?EjhXg#^h$ck9ms&jC8J?r#Q}+=i#Dn=bR!{I zGBjXhx%dn=!@JgPfWB}GTEJhh6Po8V2|t}bC_k!d)ml*-qm#~L_V-+HBqFqEe2r>f z2RaWO+1xGfDgL|YJ)WsbO9viOl~K3WHtXeZ{{5xYWxb(aUc#7V0|B}(60WX=-f#!3 zp$Wn6T(ljZz+sP<;;WzLvaHoe*N!7P%48wCl(|`N)(2Iq+Q_Lzl+tg&=ya%gI|r)W zUFta>zs1S#%WyI-oo3m(#@+hu8nKQc7nkJh7%+O@*tqMH$wF_cl94G`!N_IeGO>vW z-)I6+P)H{=1iBK)6$m=_e%MS=uq@^t;4hdn_d-6Y6#T&`PJ@sU8ftGCpSb_-)_8^l!Ioen_zRPz@cSB}lSM$oga{@?H;bl=_OT)Ovu@VMTh*E%1`Kct(@5ee0?CRN z3<&(4_+qS-?m8(-Pj=m}^)P3I2qICl@Hw5VuMs5u1oMz{XP;Eo!?`QRu}`o7tV&gx z#_%#XYVeDghq9FKd1Wc(DeAoHG`ZvVG`VBxA?>s(=zCff^aW|^plP&@L1G=y24cAt z+)H|%Pp#ZEx+2fKjypAB!l}6UlM^PKgxJb&@dSz(t%7xbEovz_kBBSb4`||p=gtid zo;UADbcg2#kDN1SWbj-B5XEfb0@W4VP|#$;;^=BR6NrrmK(;r9#}C z3eo5BE}$ZV|Gy&G3drSDpLbi)Q1{27oA0S>5B#P7;NJ|ZoAVrKLmnAzyAl_;SIt9CA#e5$E87e{U z637_}877q)$V72tWpfC`M}&xO@Uj%fOwj@9QYUov9ZJT=vmK+IvpRdqQVtE;x1n>` zkR#DYN#1s{UT{W%#JuqRvJE)Xg=FqHSb+`=+PlFa%=5_jqonc7FF^Szo_W%)8$Bke}2?8gyaSaq52t1U+LjjXdMx=v1N$D{D zffBP{iDHCbiTi;}JKT#s0f=xUQiaRJT5WMJI0<5XVJe|aBt1)3jj5p~T?}fN)dy?} z3Fwn}Yl4`_wW7pFQzD}oQ-suTet-sUN#Qh|bF55PME;U)Nz-XQ-Vgm$IS_@Jsd2Rs zY{c4ss5^$1iTR~&5pGH0G@arGw2iw1r4mk}gM(ra^z`8Fu#J^>NNJMF9-*bBmrrl%gy$!XuL8r-f#~Knz-HEJ7c_Q-gOEC1)>D%%m(m$^ zH6%|}RQsoj*x%P`|7-P}FM+7PiWm`QJo!vDMvMOmM*JNkqun+MBaz_rstC%@ctUd( zRO?5M8fsVY1A8Y|*6|~sSsMb?)U%f0?MeEHmnD3Yc*b}`BEu7&X@1M@kl)Gl_a>4* zhS0&wQk96VX1f?qP81u7gv@gygquPrH&R2m9C6B$G85Hh7_lwe(LHvctPpWXhj2?g z;sr3X1$H3*f+OHBNWm%i5oFzCyvUwW$TDKQNTH3SQ2)w8_CWR*^f+xJq`+S|LbT6; zEd1ym6JaD2a_59XBT_M`NH&?2X)K#g2gY=!H60im2|R_uXHfVIrY&724Nx1t8(&AP zL44p1_Qsav-9TooY@wsWUSoDXWG3T_xT`^PecTOS_^AZRDz`Nu?|irNOYAjWU1bZI zHM3Jlgf?(MzqtV%gw{eLVn`uxQm8FrQ8me5M^l+tRAw!{l+n7n>}+q~8OMjP9e=}di{0XWNG*!_w zzPId{gho<0Wz#EC_j5_~ZT~cG;sNrFd_6#Du8Ev^2WqKZ1J#pSs5Mc@to;5%tcc0- z7(d>_b=)}Dc0=vPd$^4q%dQixA(aJcsK_)6ogKjz2D!qib14I8Ti5YdwaOPiYN5Igh;#Dx71X^$atZ)EVQ z@IGE`2M%WhcFg{$z`{|zJlYNjVub&Y#!lLFGicC|PHkexZMZ$s-M5qVs6-*_R~Q0x zpQ+7{=X%hm|Nn^+E^^ZI4UNh0zVp8r-dq|k2VPkaGf+LI zxyE)w+lgO2##2W1g zg>in|CHV<@TtvgSR^HUj#P#VT`~%CN2`t0k@Y$O9g1qZUA)O6Y<}xb;Ur{w>Q)D{o zi)6r1W@$kzj#(Sl!bBz`PjQ)OL%d`Z#N+f)5M+4U5Q0YGbci2?ml(1su=?47!-o$% zgVoqu{SAAIixeD^>F|z(j~fxfj)+6E;2wXTK6j~&TB6RhanhE{+^o`NpJ>H~=B(jw z_vnobwD;)DJQ!m)s&D`3_PG33qu#yEGNI14{Tr&R#`o_fCf7}5veCE3)`dDeOCTv)aw|CC4uxvx%^s}DNT#mmjWxCwKlknf7XB;$yq&s&Z z8O&A!ti<ks0>BPOnFyDWxN3c8ZQ+{IC>kPu|A}iXxq%Kz{fJLU(3YDvD~(lsg`CE1YlH06(PL~hL1Qe*kZ5d2&QOib z33GVfq-JG+SPRjPN=*kfsG6CcJ*(RQr~bBG-NQyR%z~6jnX@|f>D~jt+SWZPei7)+ zKZ}oNUb~)&kDZ$@s}mb#+qR{Zg;kYm`jH+1Q2=A3?5v6flGccqM~qb!R8y=d?9;!kL2c;|nVLL0us~LaTS1{L;JPpL%%G@kzcB{!>W{ z_bVBS-NpV+neTqxIl$lL_U&PF2MwA#?3a$GucUwhlUxImT&8%(=C%qOh%Khldylu$v0AajPBZXbdT=h zI~PEHYto)}8{M6P$$K|({bzS^PVx`PSZ&3wJ{q*7jU!JlXafz6r6!6sO7Q|o2G(YP z`_SO`Z;tPHP`&2Y8U~%u#Ey0z)NY(ht-n^xUcIB_J(myHJiU8$Gn}#W;C}4tnBZVN z8cyU7>(tKCrccA=-6pM{wP-aVp^z=+!Uze}*3VGgMx^e~hR9G|vE(mWIR5thhXCVl z%zuQHALHX<#*L4QiIXh}&%Bp}OKybEzB3W@z%e{w`SOJD*j1vpUL=PgMdt!lyO1~y zw0HMOpJLm&yS2A-bK?-_SaFCu>S|}}I>4^IGXj)AV4&!ajMN8OHc~idWAdF61EW8^ z)HPobx#ZZV(LO%0{9<7Q=eX4?`0Q4pHM2T+T%7o91|ivDg%l}8Zh6p3(VK5?{bvx!>q1BqJ8Ws{$So?Yo_NtXq}gbFWwU- zLQSTWQvh0v|K7C+|Gh>~NNDC`f0=k$OE)x7q(#dZLDqm3pM=XLeT9g7(YM@Qy4Taf zilxt(zmGrGP6Ue==kug6xtCtn2)~J+}1wtB!y75L)S$1Bn z+xhjYb=9a(#DW0lX#vJuw++Dy&x}YZS&=%O86MEXr)%wt#(hR*2lk&n!kF*AYGmrU z@#(LXwcB|1u5;F;$;e)A(ajDUHx587N{6O8FJ-I97 zq*awRTMi5>DLW)5O%+)tt9;x|{zW`=VlZc-_b=*T+O}5BR*eP&yFMS}i@ld#iH$zE zsDqhJ&Dw2E+b`N5y#kjn8M5qZvHNrn-=#g8JDAk!YU#Mb*JHZ7yq(+BfsW%wG;7(T zMs0_t-Iw_foa!c9)h)DLgAVoU+nWuVy%;N(#$L`F(lyx5tYiK9olNaUbjt-<{)CH5 zhX_XpPIdKgY}&t}>3~LE2D@drk^d$=nl&42VBW8(qlfEM#Gr?wRU@^$YfV{TLLctY zaJux;A_I-Hwq&bD#)fp!mleZ?#oTbIJ?Bb%z!o11?;|l1@ms8eH@V_+9Q;PSqrvnz*c4$r?&yRDDOZx_ z16n?=d9-*_`FuQ+Xd^|ZqN+i4wp1gcd+A$vgKEAE$NKZNcf?hD_2 zO^q4L509-qo0*t+)(sdYyt5f;Z&oL`S!iHniLy%73SM_qG=CCa2Vd2sh)Ap$rI=nT*_P=I%>>)ai$P{}3J2|iyU>f@Q;N72f&o6lwGi8b1$qs@ zKDjR6gBp@IMaYEgFyS}47%LeR%8ALRXcqY{g0B~$JhTcwxcj z$QjS3N>LcjD3Iho1~zg46LZnE(+0qN6w~ZcOFRMQG`!;q({ZHPEyh~7afc&JC{dOu zU%h(8ny`i?N~9EpQGfO=;e1up5Vfvc+o+k2BD0N(irEkb_wJ9hqvR9%tQFn(z{dKoAqnnPV6|O z00D9#4ERVGP+xm#mlO)x%1V`jX_tL3Hum0v1OHTgQ8jEx-^ebV zqnw;3RC`(NE&Dd(-QvaXGAY!W%djNxjF zBvbRM?-TzQR#8I`=ui`onX<1zHF?s!9X7HN%bBaB)d@|Qdss^v) zp;0yTe^oU~bj@>P@{WCq^zljLhYG96@G2iXlIR*^m|&`FNSe;utqY063(n#oVx)B2L|QrB!=*vPEf zRsUKUIlJg%P(LsK*M0+B!bPrZ9uyoh#4B{i8o`xG_wkAH5GFG-+ylq>2(vZnVAX%E z4w63N5LE{?T|_5JLxSVqY4q(E+>4LDw;=0YT-?1Z=TYt3N4N}#Xy1Mm`*zB^yu5c) z)b9tpbNu{sy}fh&{c^lX9f?c|=RoSHsbR{`a!mh6IhOd3j&Z*jPqiHLjOk~r;3h^_ z$}uKImQqZ_SnQh(t4flH7!$6rDf9PGIW{m$oJgcPV_KaBb<6s7{z#%mOV)hUF>)F2 z_FdLgdsjkdj9S<*DU6l%kaiQ_O46nnqq(~VXZiXs6r~OA2&Pm~4H;iJ9(`*qW>;f8vrbgCo;2%;f~Gm*S|3B}^RPAa9joZ{yLr9(t=WH=*^1BKg_k{7p2!{WrwbBsYJ|9!HM7? zYY6*HeV;Liduj39z#IU&UOJEQ6|k?keFuX*zM()k1L80UDu}_;832_?Ei;Bvt6wRr z$yMN#X3?k}s&{ZUv2z<$rw+~{wClV94u>?|$c!=4Iau4&r6*Tg`43y8B4NxT1fq~+ zw@BA2i!KDB13Wp*h-9i@UA7L^XBZAGV3sIOt`J5mjv)pGv(LG7#XVBMM64X?>yaoV z;`qm)~z+pe}y)C28Tpq{N&B>~k0h&B>oL-hr>;E4b*w?VC4m-MV@GE+J$T zhnR(mb7~dUTxM%wqYvwK@LA~of{=Ls%(JT%ZArE`!pyd$`g)XJ2S%#Wyltb(IW3nH z`qSZVSMOG7e!+<)z@MLfVQh~%V_q^&L;%6UcHV>Ac=(46*?KLYFwA34miIB8(**Nq z_5(MRU~Z|FM3y$vsQ)pW3tvZd|5tDdu6d^WY)j4QZa3i~q%iV(>KEXxN ziHAoW>J;qgFrs6}(4Ow%YB+#H><9J0F_Z@IdZw4)%PtoVkfd^*)8~~STFVlGhm-!T zk6NG(n$<>o8&5m+w`-4~`ls}Z@tya4^3wE(sj-(PPq{Q9Jv4q@`pfxF##J{)D%ogj8?BTT^7EzA#SOk88S=3OF_4CYo#e?1*$`+=KRJ4eCAp zSYq1gxN4saVh7F4(rK|LDrP_7?t(sJy3LB{Grk+kWhx$ZCCpv;b(7EVRU`X5-#_R+ zJb3HagoC3G6YlyZcNx(>Fc|?VX6`e~btcdONi4%{c!pYOlTK!eCrx_UGu)wTMAw&- zCh<+b!it@~_!T~!yBr_H@4dDGjbTK}H&K@dBZioJ7>K9j3~7e}(;6P4)9KhIjC-x!;E-(+7Jvxa}&{ktn&$s|@KYnB$@=LB(=w2mR8j~#g zQWjfL{1X>%68-26^YAM7^=g^uxUr5K$hDDgmmbPV=fI5OvT&K5$_-@wmCL~C{CR?F zoh*-Q!-pYOy&Q3El(BpmNny}Y?h;p9ZbwmQVuc)KJ(cTNPd@D2IUIaWv>fS=XR-&F z4UAlN8lm!h0-1_uaZc=K0y!f>#O(pe^O4!`zuM~HnZMiWkm}q?b;h*1a}oihI!;bW zIxj)m;(TU5*M>kYNDy~HpQ}ytT$CUQIG^Jwo=XxW66Zq-XGI{F)ezNn!5oq)sqCNLT*qNF_h+p%!dD^Vu)w{Q86U7CJLsU1FiK|B^L<9 zm_lxUr;I6OHWJ7ksq>sk=j~-S{2yyeFyp^zON5x#crG)W%_79ylZZ*cS*()D7d0P? zf1&yG`dRTINLvuz*I@Dq()&`ITjG4#R|Zr~N<1XbaEkej1PLV&Z(8cD1SuAhnB|-afs{xP2LfqA zA@3x}1tEpm!_^~@_Y$Nrf#_4n2MI!A$&>lzK_LHBLQrR}4d@ccM`?^7RYh^N;l^(z z3h1gO3d!cBddW55T-6Gf>`w|;$43|g`|uGk7(a@dJUJ>deM&880aZaqjGv6ZVG@D# z;QoC(_U+xd_W%Mk3?asobEFQ+mHJks4*m+Y9r_|7sOw~dN=o{AAY0yxYWrvSuIwenbU81v(VDwjg zU_TLzElFGcM_N{sDd)$*TSy${n>cxNaIjB8sHevS<`ENpBq4rZXliJBX3RxB&ul-3 z0fV}9b1NLsrL&u>gYP^Kw;6+nB~;hZn-=6VZ=mRAgAiATw3{kf_C(1tRx4SyqLSsw z$d?Vrh0Jw4mAk#am^oL0+w*((e|2NZC_hFM>K~B84GH!CLc?k>@o*&jgqz^*mz?Tv zA6oBvC$b56-AHCWWkC3*kv49 z^*W}UpH~Emc?YICyUxPI@Qrf7h!tYL)f~Zk};9J~uivCh}n1gae~vLMJSU zyE3I~P`eZ#hv3eMBith+-3LXC(sQ5b6_BH^Fq}DPV4AaY+Q30G4HbqteqJ-(3!C+6 z+0(a~Q>*U7;Q8Rr4ub|cbRJ9?=}idyLK)dY(x&K*K>tFSs^zmj!-a5i>l4Ds;C{)e zI+lgOl#^3B2X>q|yhpGd%O-LjA}>jd()kCcb?$y-73JmV_5R!24z_oR?BLZxWF~e( zh}*4D+Y5mW`7KL%U!Ed9iXy_n3(w;kFy)M#C(9jPMwWEO(3QcBn+=(Z_qqu z62u?pvY#lVp#<^7>$p0!l(_^MP4YaTkVchx2;?6I6NrTb=}9oprFj}lkijHR1;uPB zLA(j%3oX?|g5;_OvX>bL0_jc!8if$W^)fUikRAlGoS6w+IQc(Fv{DO}au;E*V+I3lbRbR@!0!iqzZxDr`Je%zo1&7^|< zED<*fDsJHaT->l9{+qlJ+07Aoqi__vM51XlON5Am3K94}5F+e{KS~j?dX`8Lg@@SN zQuRGKGON|RH2is1b4Z%k;us($D=0H9#ggI}AdoKXka z&#h(N2*zN1NEDp8vIFd8KB-c#W-lvG^GPIyL7QY%*u8SAA6LOmY&GR4wi-YB&>@_6 z@E}33l8t2|6uUGV5w-KLxDQ!5cEbHmfgS7uy55hC=4%l@vAIsSgh{bw4_xPghv>yY ziXyS7v!o-A%doJ_w4muPI$xzf&4@FiS zW5d`(WGEtWVoH!O_7Ho6<}s5X{%jHZi9#Am5Ks0HSBI7|mms4_o(B}tNRy|Cbd{0V zRT88p!917dX)HkolROm^v!w*_CXg?*RFg^y5z;xK5O0}j%932DG2a0lLWDX|UlG$) zA9RfsjufuW)qs2wT19H5^1;6;Z!YUk)BO?BZLQFw=^rTubKZpBveyaGmJ$4kQu$Z3 zyaO$7!Ox`SJxOJEq;xY{u0uI(t?GkLsv6E5qU9WEIZIhaCEYr&e?yn0sF_LiuK!KF zmVA+#Zj!!3L${dTNlM>C!)m=%-5?-cxWnVe z9T_Knj6eJ^!gJWS$<0r<9LCGlX|DHMj<8;crh{MSfHxC=Od1CV6 z2+BPF0RLdv>RU81Wrv^dwv>rmhaU|M2=EUI^dIpD<|*3wY)MQx93FN+%zZ2*Aka_D z{dMC1F;mOe{h@?#fO4Bd{Z%ikc!}x`wZm(NP-Qe(bFk52Y~bJTo%4iUOgNtIi!+`; z@f+BM3u$A>?zHOALA}FzI&YgXPuf%Kjr4FI)y;X6dQUCO-?$O`v9Zdj98!`$kuv7R zzu0HHs6JN_pBOckomC4+t_u~A3VAp1qv>y}jQCADBc=Bz>2+xO0F6L$ziBCbn3yj6 zDsNJmuDkk&bX!`U=ih)I0>+X*&-GX2(#6uyjQoBL9q}3dJel|g zg_x-o*h3RMNAP$D7Wh2B7*^q-;)~>1$Dd~}Ncc!*<^etn9bZZK0G07Y%veQwrMF+1 z8#LX`7r_nO3^6c(|A$j5T-3WyZToyPt?vx#9TwKR--r_+6sQLJcUyUNuPW zGyEQIr^12OOO5$xJhq<}6>CpH1_O#wUefrzB>&@@sSD$EV z+tjOTwKWH!sco~t1lL@}SuRO;KqW4F5tn2LDB&73Yz zzrH_v=G_;s@X(sP4z9J|v-`6)k&?Pw7WdP~!bwhH7 zlfZ}Me|XN2dAZIj|kD}PcemMbT6Ums18N^C+BOpldy3>hPzvat80c^Cs)@_ zo!nd%Q#Qo8r4Ja8?&daSz#{h!9o^kKb{P0m?~^fW4CY`9PcNK@8aTfUFIPm0PAN68 z7ZlbYoIS!9%RF?NAXaJ}8RRmF8zNgR8h`)JxE(7ZmvE)uC7DbcHl$5y7|bn zVICgcrMs_h_ijUncIi3Xw^w&>aeC8HH;)b?CizB_mB?U$h;5kr7?FT8W7(0T0meh8HH`Q5^2#e2H1Ft?;3 zzRm61(7=*H!?%hsFMtFuohNSq(gyIm&&gV~w6j_@CqB@ps!COUmEVPDkP$5B!^$v1 zgn*9(lC9`Y$28dknb?zItt4lbz@EJV9G*c$TAabXd-^zCrK&LD_oz6911TO}?jmZp zN*x{xsfqvsiK_5H`XtXV{uXYilS&|C%3mNW1j2sVK-CEOQBfkW>N|H>+r{-e5AU|o z)cUXL@}mux9@^OvAlp zaFi-lG?9^!uG8+jgf9`tGtPVBgc{<*-Lnb+Y`k9 zc}OzOk&$9GObbc0YU%4N1Nj9<^FpgvnJ&c8PhZ6WXhi61`P6!7*lPwD!IS6b^WH^yQ z#_>7o5=qj8-mC7JU9CutPpg@o>Z)IVdU|`hXS%x81x7dAgHdmv;_Cw?=e|*yZ=LN% zWuNj?)ZravSZ3t>^&oF8iWnvx(N(`hHoy|ewQ^}Lz<=B(%Z|FN=0o+dTOo(7MD!K3 zXGQVQnKxQ5#;fz#L_YA9LsO<4eCd?~e=j)j@}#`H$@tNU5vTsUnW*0y7tyi%_Q4Y+ z2WJ$`I9MWfWd}|Q;q22SWZ*ESIh_te&WQ(FJeOomGh-$tBvF$ISi-0rX+_C z6vc6(?Jyohv^G=3Z2fXpX!X4UZocpuZ{D0&x*L?|*Fm3E=Ds1HPJ9w5pE|yFDE;rC z8i<*7>)pkBp;LJ|blO|IiC6Atol|)KTkgC=S@z&y{y0n@aF+;`3>@($cv1yR6`&)C zTvygu_p^#>d#0Aua+FR^WfiQV%AUzBdzNDnHR4 z$KgsVFHOagfd4^DG0(%c0MWi{=>kOkP9iL`qwOdt4FuqSnCHyp`m1mv(oP%(;!8UV z4!{WHlk1*Ay5!#r)X%EvL#^nEJopPcI(<>)V? zd8j|RDyVG+)l{&z<^C!L|sTt4o3NgL=TDq~grBQY@r1{yV;(!L82ql@|-5F~h< z9z%Nk`B3&qn&*N+zAnu1HCa`Lb*?QAeWhr$VcI8xW;sO^qok&k#fR8^_9RJnVF zxsXyr)ogRYO66W_spvPLepgo?&$bu7*NLY`S15N|OR1^`D4bZS46_Y`#9Y% z;OQb~nBLVeDa$bztx)cvs%99rGHj(eU+ND<{o$@Y7BvsX{V>maE6hbKhZ<&pYLP3= z1-7aQCRjd>V+KS8%LWK^K?#)itpZk7ZGWhLYJXVG%B+HFI=rbr9UjHXSXq_*Ast?2 z6$t4tdw~NKcg1;uqHb;lI=1#4KnipST@o1==3W#pljYWf<+fw%b!m!iQ-Xb2)~V${ z^g&kWB4PR&rCItwvgh*={Y=ouvDs~WMAur!dIE{udVU`OALC`%q07sV7z>E+fmmg| zy1gQL*XpvvEA4~#&?G=9TbW&@ls?& z6STegYah*9laJ35;JW1#R-Sm#{75ibW~b64l!KDDHa~w&9NG5-69=EKM)$|ZOf@MjRMshz^pA{l6Q_oSU-yc@t1_HtYE6NJ$(H0Ow9(N=c zB}mD_R*BbWGqP)LtMTrOt9epo#416l9uf=1{Q zEiTHHK0k6Ilgy_xw`HPW^!P zj9eVQ7iKL=J^@3yw$_Yb&(`rM<;prUhEU4LPR|l8-(PT+C*Oqj~0`R4dK8^?9h^tebN#J5;~T%>ddn4?DF^hA%#loB}L>JX#aZO2{@S}aHXCIZ@|+lNk? zH1zgK^ln-~AQT=hs=2eoeyjRz6_rhB7;ZWu|H`OxRsYQ~;|aepG8{nsmUO4% zDyLV|bvGa}EXCud;YOslh^5P=77#65Q;usAeFzb(ktkzJHMzcooUJoa&YszU4tV>6 z58hTE7hB_H_1>PBT+-8+kK2$Cw?HoG*_uRH7@2q(fP(K6sJnqq(n>U}sn>y=z zbJ(Bm@+ptEx#_cWxMah=w`ZNlC6F>+6A|T=&m_DoBFflotW*am#HdmIs-GyK^w8{* z-V5}L?Ui;V%~pHkekC1X{nf6N$9_ky{Z~k7woxOF=m06jJswLrq2Z{A=n48|yR7T1 z6xI;*Z{Q0->k8`%qMy#gT^avU!6((L;fH=My=2>!;O8}bqtYwr9s2M(Jiby*)i?LiJ9P^c;k%| z{g62^WjidL1(mb-W;%io;Mw@y+`ru#CuG*^bVQL9(f%Q8MB49vBonO>Bl8hIE1@Io zdAwN~;8-c^J%N_Z2M94-Cd9CG`*!$AiitOLrlG44I^Q$S^EaK>H^1Xdl>9 z*i@4>sB5=Dd>3>b)UE5FteQ;&2!v5PE3tEvIH$8fAP7n|?K?TI8Nrt(k9!FbAC?G! zAGOAggez~sgz?gcW8En^w$5px0Q#zrl!IpS@_wa$ciQU6T^2Uey2O>>m z4ug{IMMc|78XBB^>9%4RU9_#VbZb%3*3u(KoITFk&)+HDR+=%oe?$K<{rZi;-RKPY zP02ixF{)p`Q5hLy`nuna^c`bg1f%&o*A#CbmL5JV_Y!b!$+psxZN;e5 z(181I`yy(;F^Jk%`SNha=)QeNXM}H!EL6xC)2{&)=$kN#09>jhdfwIB$tIcXK*2w& zSSHKF@HZt9zgZiqC^qxpQY!SE1-WH(wyT}2l^8vO7Mcu!Hd8`&j7$%FsrT?i%5{)? z5h8n1>Te7j?!vNI)(q<^>nfHdVu*96hsO{v$=!f4#L2IP#SklgYc zxjoq`qQlvGV4BVC7Ul$tgCFz6@u-nB*{$#ZTE=#BrU577i6Egku>-ar@iCw?@plT$ zu4Z>vTldk!khTvBpmX_L{v9vdx0jdk@5+Hq*#jNsmP3d7DTVd?XU(j(7FEOJ^st~@ zE;RQ#n&r?13ii(BKh+l&)iat9-!M<|-bA92Idgvff_e^me^J6sM@wyi& zcPZz#AXhGwkpdESh$&oYu;&nk{F{)-5ur%|Vvz@c+jIsG^oqsXt@4AVF~d{Td|Zoa zIc_VS4;EYc;>E0au|gELRc#YKqLTf$(v(|dOAt3-;_4();>Kcy@AefzI051*Vuq!e zZwe@c#9hlNEt*=k(sE3fqXnQ+z*#YJ!{;%=i1SR{mmNN7dG}yz-<|R9EAOLCvptVC z&sHC_^d+oWZkFgSSHr=S(1eneaE-oM#}>4_b0CtJuGO`sQ;M$Wa1Fe{$J2V{67y^E zYzgALhh*>4jUM(=CMS&U?o1c=yeI>oc%oYZRvqgOapF4LaX>^*(M00n8)0o>!a%|S zPB%ugPH1+d)l3u!v`I!=&jgy^l);-l(GVxD>*HtaScTq8`>9M@wftP^k3Y0yvwyul~RcOB{%_8c^bqd<*S>a7Xr zUVEhFCG~Iefi1yD16kUn5L4!6tJ+r(HETH?r+y7{1XVLlIcQ!6jnd;8mNIA1Bid_` zG{5;t^=mqg!yK74!i2XI=Hgb4^mgevtrs-jOOYqUI(&~yUv=y?yBdi75B8e+CC#^I zn5P;W`4w7aOE!D2u~EPTHX%&A5R5oy2*Y6`#d(JV{e|X3PGh5eRHFR5u@Q41!J2x( zWf4ykj|YEl^1aF!t0wx}2tP_ZLPDsOW=)N_26Z};Yn^2koOKnPg%yZcHH#1>73K1~ zD|dAiwvcbMH}Fe&`KC=U6279?8G##c`xT7D1)0nFrI@-AI>1SIA9~E6&$sgjc?ACn z|9tpu$ASgW9aBzOQ_o`_a$&gI&>lMA_B|KzA?`!GpIt;erCh7V_Y08>hByMYV0a4XaqS z-JW*6JAa({h8O>&W@o2<_>z*7^YdKO;qu-4zUL$d2c~3ar+oOFoYP`x^BiMuI8M_L zx0LQu2GZXy1sN>4AmgMX$Q=yLbZR07$64 z0}?M@5UoFm)*nRc4^k_sAYQztPNG1x{vcX^5UoGRWmqBq>kp#!2hsY2X#HK~fBiwU z{vcX^kVqOgt^auttv^VtM1sW09uTcRh}It@5ywF550Z>`)B1y?!fyOue-N!dh}IuO z>kp#!2hsY2X#GL7{vcaWwxVo9*$(o*{vcX^5UoFm)*s|w{fD=grusL?U&^jJKB^=M zclDE*WJAa#88izC?r;QM!{HV^EUe@1?vf>j!!C;jhb2w~cXy&#vJxXKfs5df%yi}Y z^_vKC_QzPy`*nZaU0q%MUR8azM5W<^=LPGFd7Pf-x zK1T-MzKpGm1Yfa)_4w?_5zO8W@|b;tmtWy62C?nNnVQp^zLJfSys&6hQ4!elAI|o@ zdAYDx)iETS60ICf#@0q6%Ek5Sykh4%#{nAg4G}gmX%nSjDriJwE-dHX z=p0%G4}7X@bR&|Df>669t~8N~6LNcMRF@rub^FJ=vDZmkw4R@FltT2 z;0Vm!wF_J#eu!8-vLZBh-;|0u+wcvJ$jybVVB88W>6_nt%zL^L8A#8aM{F3?A{;}C ziZCqPbL58M&f8vxe}ixjx*=X@n9Jk`;kV{&`AMCKJPp}Zyb*N*y2i&tyTcfBF^1>V>-lRy zwuUl0;NUl74^K;ohd$g<`#OJJg9Xy<#kqTUPSRzTQ15NMRt_Gp?(6QSyKk5>=jTpG zeJ&$gJRitaFoCP)WXV<;{4{wZUkbUJNqvi6@^Wr-I#vRYZb*U4U zUY!yM9|fHPmyOTqawl+1XRTcwQgB_)NxblA@nPu5afx>AC(}BHl>+Z{Fi{Q9Dz@8T z)bZ3-X^Bf{t=1)YY|^5qW;7V>Q}L(!$1yH-&ROtEW9^jNmP^zx@(^b4SoC<8f7UAF zgd{wDc=03n{A3PHPH}Lh*V6Hs6PxvXBj%n8!k2+lt}fL_MoHD?UiwXF6~t$xiJTEI|I(8JgB;5kH!19>na%=|=nxAxj z$>mLjaFQ%V|dixgt73l3f?$ET1=|{%bXlzP&N+^jhdSLig?M=#y zobEMk3B1jsNwdrU2JFCdGGv_);KCp6S0p`q;PYr(m3iob1F63Q}X zc-VB2w4GI_58r^n;1`bZSH2wT)pdB| zX=9H}0qM`qQ+Ii#+`JN={rCmWi^lmzvgq;Nz0Z8l9PnGQo%O~i`05B2tnAmm<9DCC z-l)0c)Z!CI`)?T=6spFgruas-uhIZ|7S9q>LO%26YsyqxlKbqbx! z9Qe@s5hAa$$rq_DvZ{KRh&613(a?p*LzbXHrWJz zr(F2nD>pHN4Rpp7C`XUEXud&Gj@4BqR!L$+AxTA9cB+z7vd^|GZ5y-~{|=>VvYJNp z`_7`|C63fiwQl?#Pe{qkNg8Y2$nsL~N>C8AzSnO0oaJ8ALpKasw6}Mkz1{=YhfW`~ zeD>6m4zXR@BB6tMXoBli@Ve`M7rd?-9gIZ|_VYSE4H!9U)W`rRPh=jJ z;A}W!%oj6Rk<`^wq`L4II8oW7*aC5vox#b*8RDdwD7BpB&=)UW$ac9n0t>MKN95(f zRxp4HTXQjfC+3BR3j@V9EF7G7!UNWr-ZI#;CN#<7gvYQxV{i|;!QUa7F|3D2fq+-I zuulkvg@wUDj_oxciph4!r_P;xszu|2r@?D8^HJf?wOj|9EGhY^nxK znyx7+Djm-jbqrG*yEhvWy<_EP?fRXJ+}w9VU^FY7*2MF1*OAy{&gLz%SBF6PO;`{V zi8(uWf~!0%3S75u$DF7jEZhK&AuHzw2HJgnw0Vc-9lKZlTi`nWg+=siJHpdvWvhu_ zAI2w#&M~+1M?=GCHI}K3{u-#BOtbDn^>z3JoYrB+UFMdI8Eg2AT-UA%3q5+CW}Q2v z+lqE=?C$Z&sVbgkc<^{DZe1BX-tP(&i$<9;Zv1^NZ;-KOVP$aUeF)aXLKhinJ^bxg zE-rg?>p@^8GSfyvv`O2_ zQpL+b+Y~SNlyHOo5RDPmM%4cllv}+5*&*x%r+nx8tmA9v6isIJl!SSA1AG(bJ`3pE zZ-u4lhb!lOEUvX>aZB=KjDTq9&xWwM&r@%M~}avJc0+7 z1AN(U?BD*g0qJAHhK~pu#VZ`mf(>Y_M%=gv*U~C)rKuK?wcm*n4-;QVrj}x5sg&>I zpuHdxkGd|-fL`g)9WG|);}>`?6B=*WjyJM`Uv6k8xAC!D43s~cY)O%C?t*5|SL1PZ z0=?IvA4|em@O%h+;p1PRIb1DVfr$2WVg~yO7tyiVY#RY`k{b|%xkjun+*YYcSd=!S zw`B_(ak%t_HN0B{ok1zx`R}?QB9W|?1#Uf$9(Mjnv0JQ2T@m?06lCc z!2QDV&0|@HhB`PfiQSmQ^!TaCg_Pd4I7iu#?+<)}U>L6`dbJ@080>0k%EZi#L<+UHJvm6RxaJ z3v9BjdNkPeBn(t(eKk%WkMUY7s zjMIf_(24)(A|lW3y!E?|_FDk|v`91IxANoLd_f~Yly{V%FdR*SzeOlXY583YzX-ik z&!7Ke+&J?m6>AM{9uIamG1M&(nmhi}AAe6;?mbFULA7_pf|u4=Sr{8A=pf97 zrN-6#n;Y@acd^=HC`1}I56LzXLLCTR(Vw9o?x$xTLg$c4ajS>1)c`lV_YdkDz6^iH z2xU2QgQ4`1VHQ-v?3F9<*~Rtuw>4}84qt5^IyTU&z!A;L%)+fE-t|X>828z|B6Vc5 zDx?Z7K?sqwQ;YIYNqCFa0l>gt92|{-L>R#$k75KQw>Zior3HAF4w0saM9KjH{Ouw8 zk{%%n3FP%_JPH-~99I|g?S%UWIq^5`jBe(Y>5pO6idw~QHv^9`8YaRZx^FkA$A@F& zp)>58x%&oz%q*87ijIaktlCvzq z9r<)sDeGecpwsMo3QP)r$tv4~dud`Eq_V&Uar7$sSXH_O6AW$MT-BO1bUyipNIi=P zkRi;K<`9+aA;j*eZA>&58?#XHHd9r3zllKW;{kYGC8DLISV-e7#nNlI)M}ucF+u9d zn0!#{;MET|$z|{a+oTQ`_q?cn4+0(#@~`5)11@T$jXO`Wn_UnUM8JXt5wIW%2q+@b ziy+c_7f?AwM8u9*0TnAMq9S(e*sx*my?4*<*~@t<$Zlr8nIx>}o$tM0|LKxsGJPg9 z&phS-kZ}C@4d7QiT3qqcXcF#6QJO0?)>?f#Nd$b4!+mmz;vGhzWwd&`!bRBAR_QJjG`4@>|qoqe@XBL1OyMk zpj@U;^dglR$G{x@ftX0Y;BbKO;D9jpFbqP)Fw;3I))D_GTG^akiOMxpVh$kYAYv3K zjX@hmpj`B4Y(Q94Y;a%r9YDBgvspu3>v{^U#@zJz)_RIv2 zu!xyHvj$Ar3QuQ-g?S{*@}CizG_&s#pQtFGgoR-T=889A3&|OjX(K6+>633)fVlw7 zG}hIn9b;bugVOJzRFFPTWZJ+SdZ1E+spb}=4B{n?v5;()nF+~sZ2*6dU?Y`ok}%wS zdWeF9h4c`~lRZ#~R4=)YFn3qNV|?EG%3em_G|%9D?P_gbX64WMfQboF!ZI<@lWaxl z+-wP>;OJp6Px2)CB>)=E6@lb&!mhv7nqhb^cnrf#dmXzM=8@tn6Q46}=s_@>R2mKA ziYcI`sUEU(*`_?yC80~|d~8}1FbfMt&G#fsTwR&6n030$GJ){31tWn7Fg6o?W3Z`tNVz}nOn#uY{-h6>k4+b#{Vt1g$1MnI z)+DH8Y|dgg&Ii4*@1m(IYuhQT+ky>D&)zRk$@#&@p-K6`$KYGJAMHkOdr!PIapJY{ z8518(pZ|$lAaNS*D|z2S=l8E1;05_CwNn-!pB8uAl)gAyRnAR zQhr`bZf{CL`M@FE^)-yP^5a^%Gmgn^`G=SkO-;g!jX&=G);#-3RBLWx(3&QzqK)XA zjbEuvcx)-Gc0xu14$Do_~uOyrSzCE9+?I2kb2*`Ghr`Z z;!o}YorkiSP(n)9wnJY;k7V}pXe_>PpeU##bNRyr)}q68|2t5Yz+ADl)%`9RAi>Pd zN@$9a*e~CFjLw&ChJeonSF@9DY>K|0A3UJkX>elbpse+2-NV0yC9WRey=2_@GQTZS zNfCN}_6)kX=`L&q=UDKCkI*z~{m7UtnQd&Ic4!x5-XkjaF}k%rF%xmY>&A{hn3{TU z{GNlj=I7Y85)b)bgvR(8aK(gtuOWYaym;}$$C!-tICQJD`lamp)b;D9I>yEZfhPLO zXHfpj3>a%&oWX}nbs2nlS-nhlW6JvVQ*Z`>Vg}c71`Zkpi}df?AIIiZWCqc#7Fr1R&+NcQo`%Bte<^@&Nywym#-TZ? z3^lWz=;DfdV(sN;?dcwd&$w~$8EHXxjMsUd+~K_uv9nNyhUItQr+WJ#qjng|vdYSH z?|3Y$uW6_9;(`YRhsOcLva{~2@0XR;Z`jsEh=_Ogi%Rftk0lm(Ttmre)#$qI1@A4o z#N8S_uLk`E+jgBrs@VOo70pHC=rpbfro7~eaH=dWKvK-u)gcs_0a@H6#mbc@ndoRV zX%j4>kJZk~l4jPnpks=;k$9Aza~Dv7D(Xi#o)9z#Xbi_AMbo(pFs{kHdpc+`ZtFvK zCMwkMpc)V)r~0&-jHDwRZ>3g5|Df>5fc_CJjvWI%RCoc+lW%a1h<0)g3!A@gT{CnM zy0ySrVQ4EfPvbQu=d-FyUO!L8tFz~zDVlZ`MtMm%Aw&@613C9jv2;xn#5Q#9)WnlCp$aiSS2htL*y+%>r?=%^~6h|6lbS2w4C zie)3^`{kkh7irp_uqh?joTNRO@)85N?HqI&9o(=59YGH#EgcF0u;|7MSP9;7Y-C7g zj~+vVv$D6u$8X6d(4JheY!%s3C2s`copB`uA-xLs*3FK6pfrz5Erv@VE;k=HL8wgxXD|fHBX;HRM{rBUB_-F zvqldJ3D6)`z&O_?8i_d9*6R8I{~=q@KYhrT~a_t^87stlTpSyVeRqOSR}R= zHw-IPiLYeBO9p!n;v*c#|4AgpNbtl_K}ku2xN>=hpx!RxCE4k4<$Z?vZ0_X(@(jd9 zpR9CAjk_`)SPBr522pE;__}rRZFJW1(OrLzO)1$(S}q^J*AeqEm7wK;Lo~Q*B1K_a z&~EZcd`>pqMQ}9PnclIMTg^MuY>Qn{8}m%FeM{rZapXPHU^-YH&#zE~C^Iv{)`$8A zklW1HL%R{Q)zC8U(nuQY{1~L8hGgU;<+a{;*1wVlb5n6DnXFb}$%}3(a6VCW)fWqu z=~Osn`fhe`18FeOeEnlD=b&2LJEpjIF4pyqBh6P)M`;SUxtr`=r9r?%pW20^Umb_O z;oJ`}^CZEN1d0*Bjt?-4n0c2j;TMy*GAX7yd9xrQT{Wr`!0P-gfYrg{)l#v}FOzP1k66O?{=^d0c zZ)@GkD+_0`3^~)Cp#?u?dORQ*W=Y}@^I(T7M)oGq;zHb>4L%M&vloWk#?cod9XLpR zA)SY1NcbMz{=ym3&nQq1VpZHB`7z$w4sT8}1J3UckV%4B73l0Zx0FyAQcsCD9%)T} z3)fRmOr!6&^l-;vzMCDL7^=^3-_5<<13M~0iwv%Sq} zu*}HJu#&hK&V7|X?bUq4vRA$2?8NJs#9YkoR&~b6hcY(n8(B*krIEZub+*ACH5MWm z!LMM=xGZP`c4!Go^%ykB!+XF0sC6GS$i44?0h*(DTlID+uHFd=-mWQiS4=C^vS-j* z%}fHAM)Lnv-h?Zn*x-?x>cJ!Vi8rX}D{#PkqBB1O`oVny9*DEQ%C11A8qN6Z+y1!K zn$){jZ+5j;!}|wBMg#*{UXEt10zv6zXQ*`g67E_oui{&T*4wT-zCzyPfQeT zxOS}p*@~OOeD_y8e56G?Vfs6evvT)Mo@bV_f~Xt0N)4^`tncEMjz31p#d&Y z-y3j>AVA{$-^%|)E3~M88+CI2QLOkGzi}{zJpCJlBh&cmRg$r+AzGnn_`jU7tl>Xq zETK+v$E5-6KdH3gtcakBmZ3wECd!9Qi86&TB64w-sy;4v;93)|B>e>M9qoYdfbQeA z&*j_R_{R#8oRqtL)6#r>($ZiyX=RF+R|@%&O5mh-*+0;1jjtk`4@a+`9N`pj4=44( zKaH=~t|>nb6p|05XzCvIl<7`a*MrT+)c8F*0wp}Bjj;*nVY(?t*rxsz)$l4dGc#p~ z0?Wpsmye)a0S{%?z?eq6Eo zb6)RZ{q$$v%Q**w-~0hdXU9AMw_1uN^xr^=l6T?jyiKSht4-l>1t`ly+(GRY=+v|v^y)#*;v_s1#tYg7xnc#iL<$V(%HDI_Pp|- zj>u~i4_6=)l$S)XaR-Sd82wlsM&*Bc`;60RulCM(HWZRJyvo`WtRdygH_d=-5+_)R49TjCETdEkOE%V;Cj?+~TA3Y+AHW>~!M+7XtauW=?-z zQ1E>E%x8H}(=*0yR7meQyHV1c3%>bG9m=wtRs)dKu)C%|$;*2(z2Iqn{!`y>@!qLJ zEaNWGSy5mzP6F(1N+GT|kzdTON| zjB6y4aRvlFrA}l*uH?tq>_X30tpdZHpap$&(G{J!g&3q9AgD+(Nx3Z&U1N4|ZJGYc zZA|#PmC*LU?Ss%}1*%2WMY9I&9CkmmGL>8S=bw_5wL_%yxw9WW(6)aPHM$$BcXSG2 z#7iytbJrT~8QY)5&yu&_pXFF#l01_WAa#kSh4*v&*hwrUD5e?^bxlDqOb#l-93ztq zOx3QlMbGPkh9~GrJ^*)pD@bM!JcAzWAAX~Jz?Yj7?^ZZN#R3%U_xrTOv;iw(ChW+t z8N7eYRrsh}!cup*soJ{Bs+WxacqG#*fHD7p{IYxemO;+DJx=L z)Ari9hC6W0V_9CW$3$43e%9!$zk;!`n#a(Q6W38?)e>lNfV(I8rd$H=cCWvdIAniz z`i=|@{VmG;CD3GB8OYXYY13JcP<3PO^y@*JQZkqNyG@NF9B!^uI-STtDcqSn_%z-y zbVYaGMosxj2pmVjJ*lyswUy9sm?3!y&$P|NmsC6Y*Ry?H_1#Jv5h zKTiWF1g2siG?c$+1n) z$+Q#J77#r!>(qVaxozD|(^F~Z-~|KPSTal-chB~*L%Tvln@-Jab(k^Gv{BKuLdB^orGCrXp_`xarJ8Kh^~+Z2o{yc6A;8=9E4=rD5V2K36z$yPro)1HVwxH6Vz z@m5Js=Zyj8QIupkOVrl)h^ossRV@gYhJ?#Y#Bi2PYDAH95$=vzazkD-hXQdk7Bpy$ zY;C_Ejf{ z3t!DRhn3fZ@t<=5981?yjJh;N)C0n^=U>Z|Y*40x<$o?0HoSZZ{{N|Lnp%Nrk1SbF zvdEK<%|b#ZSZk?X-2z}Fh=9n9mUQ)6R)UJVnUTJ}x>IyXufK>0#m!v+umD|su@ikNk%6T~Y2lnDz3fX` zq5V={pwFXC=ZemvO+3$_V&UUqMVMtk@8o>xodnb$t9B)7?4nu_29|Ce8jv=P*Zm*5 zUl*^z+a(`QuYHiAsCBg)IMB!>A!=Y~gK*Hr%mlM7kLK2tY(h$O{$b+Mu+7o)LzBI@ z6z(%FVL2`#6Pp$^;~_oORE)LW4**0wNYEfzW_b(cR*Fa=CGxS51~6qHZ81K@JP9bRQ~6WK6Q{e0rKN2sChzCrk%K$*AbL@m?huZBEnhE%D^m!tEhPegV7?t6l+HMUQ-kIP#XP+ z`Nlk@SZTmoLe^ZM%V|dm%{x7>cl^B&9}$+25Eh=mgm@(NDU)`tX^ zb;s|aaxs)>Dx9Lehg0hCAygT@g0e4X&TUeak#nEax;|xWYNPD?psksV3bO9*}F3+H<6Wo)@bB5VOu(jzvSkUGu(Fe6dwGMisiDwWb4C&UnzH|bTQS}lTf61k&%73%rF%! zGb9FlP&>V*o~Mp3QN$F6F09eEQh5_P$u?G+!qpIA$oJj{m8{( z+b_`{p1LhqTeszHf_Whn~{?YR_t>E zZ;-&qv$jLlKAz2Fl*DvIuMlFgfZ2q~(5K0-kIwR|4J+C|09t~CzzVaSAX|=yMNs*N z>}T@9+!4ADW?x)oJ0WxY%1j=l=)()Pf|QlKCe~cG6PJbG;1C7kL*{Uy+;G(bA*9-z z0r4j?1k*vmh|laX7^B}|U(aRj79JNpy2{QaD8`S@}2Bz6Q&`d)Ja;0*>4fws6eUjMB(mf@c0jeErDhu*0D9ap17j$%AZgbxU`evBn#Eu%~M%dZz?SJ`ZGr?i*=&ZTPIxKBF(@O0J;2Rii-nl^8UN zi0cv|hyFwd3!+s$qeOZRmq7=UcAeo)vOUS3%j8jY2f~zk2f}USK!|e)Bl{PN*|Wkv zY;D_uwlktBpyzQXz!BDHXDtXaVZn?+578eirLf)ycF+o1uRx=f@6lqF3gnWzbU$(w zm5vS}Ij-dP(y6KvzW*2_pi`Hj8=#wl+Q4JpG~h97NX~VP4Mo*G6GDbO6GEnwz`H!m ze!=^m3F&APOaS1XY(%RGSe`=EG0~~F0fJ!7#WZw`H3c`DqLVof(Dj82z~YZlCl*?w zDw6>&GZxwVFPFrigXkROy)ZI_58Np{4rE`ndH~6nJ%+n;hc)1xk;#HTXIL$`H%i*P z`Y>C$0)`OXqDpK7x|QFGd+=)!vCtJ6sMdPgl(Fak$LeN}r+6$|bj_I*hD^NuU7@U}Eh^hiSK#DA8Zfy+?Z{jj*1CF0oA!T7zD0 z%)B`H=xdNxqphfD+{N0Q3h4d05FwxoKciz6IkgwZK^g>9BgN9H;K>&=H$t;DL~xC( z?1#tJ_?OmZ;tnTV&Vb4Mq>(G2{p`%tQfNO{Q5If2rnASryrrLK(z?t$rS5{_g^S2_ z(L&+6_uF{$Fz3X?@!u#3HAWS~%Gfb#V>7iZLl+O5nXO2*5c>lwUJpvm)n_&%B}kC6 z_!c@+0Z;*bZry@D6&2{nt+{)Na`N7}_!_>K9mCzGJ1BIy%XBvsd>WG9zK7&fr_hr3 zZ_$#|K+XR=Z~m8}qA&C3eV&i&GXYbXk9mW38_J0a<#8_cc{4GAIgKS1`gIl(P~W)B zTI?5I=xr-}XXF^nBr> z6`LV$<7xn;TD=ji*tBxtA`*^!dkV--K-_VVO+D`0Gudj&Oq(H*wDTS-Co5;4X4WOM z@eTf_4q!fOKNyF<$Z+W6aN>2(S+Q6+n%RYd>2J-LZ5*V9B-vfldz7%8rhWc0%8W8=&!_lpSdIla=Vxu~cxk8(bWpuqf5ec2Mzvczmq^C;DyMj}Tq; z+gbE@XWNfxb=9D=(B@X#QHSz8J@XEYYCGa!L0|9uL$$G*ZNEIC0CXt|zR5nTsmyPG z$UfI-$v)%OT*VdcgkPD;#~maz<~Xq8*?3AEUM%}e<8U{MGLs=yABfuF zgXAhP>pI|A`-ODZ1q-GP>HzED7I zlX}puI9!t_5}FDI@!Nn3btv*3-bYRy%RCy9+Iv$~2*py{sby?6dyFqs7aux1Q+D+V zxBX7R)fe9D)Vr^5WJ0$)EpfmeQI4OM^r{Vk*zkz>_=xaW`nTAyu*Af$u-LjQost+H zmI#m-7M=*5PD|WQE2{WEaNH{)!OJr?mb>nmkl^W_kRWX(-f)k^SGcRTA}xB9^e#TU zHvdWOia0qIPbp1VSl!IWL%T7w)zs>2(NIO%McILElwIHm$VOWAHL}<~IM^=ACMzf~ z8+XMcZa8a?*GqlMTmT&)I^MVx%%YPL#~=Cztpzj&i=Q-aK)tfoktxzsNa0hMv{=r)O(JY*=vW2-@(-=qNh71L*7{nMQ?Ar%rh? z+i2L)YzkD*;3{J!aVLtDjG0MmS}khCHE+()TDooA`)PO4w(OK(H6+)oIsM_yZ=+WQ zX)>?$bQ8;>a6e3y)-uM}l_P_*Xe9^>7_}?adY)7TRPWxWp*8xN#`{wpv&DZ}phG}_ z1OCa!gA^&a@vE}><@l~1-fx1>T)!T6{lU+!M}G>aG-);D%Uef{=x-jZh^UzJdd6`}MQM zxk#%EeC>Ms6)qb)stD&W0Ov4)&!LdyfLAF$E|p8g<`y_l#gppcKZF!2-jEOi;n8>x z54wOCYyw3m+aX*vH}Jj#Pc&RvXMUuS%E!ATgv)}}W=NI1SyHp_J_Y&b6T*8njEy?J zW>P&6k`r|GKbk+`cp9i)yh|kB&l`+Tp4O4S)nCTfUwp4|R{dT^-v7#+O0MFcjn&Um zb@@17x>`steP5SeD^cAaq}*V!TpxA6H2PkDF+EL9R6S#+%ZXQ&rsCmCsw)aq>keEV z;D*j13uxzRJZw>*rfPUR`C}K@KNcl^b^~LGOcfw!E5{BJ*V!Jp|<@o!7?Yt;3;?!Li*<9&qszy zPAcQ$HfQDTO&M~0a!6saA$s0!E6CY4$I!A5Z&C5t&^=&!IrUNY?$og-Gq*0eHOw-> z+j{(dVlOS0O|x>Wz*F~3j&0vk#!prrqe$-rvz51rj$U*Sl~;@T7>Y@s+s~t6X+iE_p=Xgqck{`TMptY22xE zLif=#y!E7S51{?$?cbvEszcE4M#$ru#qGn(26|7c%CyhDGBzc2mFJ{D&a|fgguTf$ zeNxXbWqk@J__iRa%0(4KHRKr<#`Qh!N`H9bJeF22Tv)j@CMYNdN$TB87w*}!Feof6 zNW2oOM=WC<#LHNd3@L$K-azkf%1<(){G>MN-YC5Piw~F1q6lTxUo}qUAtw%_DF%#T zU+tQu(kOX{>R|aM3TksO#q>Knk-P=`7X7YFIl(MuC)OO3^`?M2hn!`;)L}w9U=NJ^ zzjM$?G6))cn{XKAz$9)WMJr0V5bmLBj!0whDj?Q2ic;Dc4Sdgq(7m`5u;A@m-m&u= z=_0{04s--bu!#ku-tFp3lSIRPY#O&VAQr&47h0QKSs1twAH{b;;}R@al9$aaT--Zq zSpuX@C~}>&n|lKi2YXvbt?*XS#eb}gJPG~J5hnG*su_1jM&xfyYBk7g@%;F?@s^l> zIgd-@UaNBPLabX`sVu;an97ae?yEM4jUcvSgyB>3j9X8;b7Sak+~uv;uHkrVa6D!G zcxE`BV$I_#w5K{6E})iMf`YKTS*Gz&(MGuk572O=DV@yAp09|O0AEzKI6RV~q)U0B z`!+mq5-J#TElT9kyj;VCvJq{O#gk2)WX06xXYD5`jzQHkr;Zoi$pxnPyFpUdF(1gKI~o2Q+NVC>xjz zyI6?)+4$-@Rj85C-}YinEm3caD6C)|jTE^d51ON^=B)5~NdF9^!XJ8B;rnGH8us}u zp_>v-yqWWO{zG6_plADzqTg47{kGy+Yr=zkVqn~djm8dcff84wXll^lD1<#~v;5g; z^a3ek&!8v8E1=CGSdJ1lovPZ+Y@aYJX;k~d2RTx?HtxI;c%gradCW~HeV&bA#QRZH zqk`cM!`*5p)=k~3^iFi3Z*F;vd9ZPlu1&E&6lkd2iMuh%#n`#2*$}U^O-a&wS2I@+ zw!*+)Qkhv)|KH!e^Hau)y+3^>_B zH3JT>0+<0OeC=a+VEex8KFU_JglL%l%Ih*QzU6fP$@B7dL1TGeJu7hNXwxYSuJRho zw6cYKr|KK8a4o7^*DJwJZC(Cd*?R2BZIc|L`UhC`@PeaIG07v^)5pfvQ&hQjkd+wSo|EF37;oRH57#2hKOhQg zOGgmSvtK0PL(BG=q%5$q^0GEfT-wdj4ca7~g=N-TR&im=V@9GC0iE)>p&S zH73T@H8#Gt8@WbCZf`uWG{V%KNv7^5G20jQ`UOsZ@0cA*Pr1eSzDQaTOZoz~-nm2A z8kl!?irFc!H5AztD2-W7E=v9vZ`x#I#d8M9N+go~bHF9qs56*X1);94Z(-xi776Pn z?}hf|>(GO}Q_B-t%w*<8?JmgM9vZ%FT7G4WVn3J& zXfQ>|zG7V}E#C7W1^gBxIvbOcGk^Q`b(p9IKPWO95S>pR^?}#@8VGLT?pe17ZyqT1 zv(C>&Ds+DaFgtdG)*QgYHmz{nB#(j=XaP+CuohM&cY^LyFbj28 zWoo(MuU?_zSFebPCYLPVuZky9VQ4Gpa~fH-Z;w|wi9|9Ty+=dQqrppO!fxpI5E4Nv zZfY>Pi=w&Yq^-k7Mo#RL)MMn}ir7CkEN_uIi7 z+Q{AiC>n?EdLa(kp?Nh#8;dLFDWVqq_GM$+{<|i)kud0ji!88fO_OOXk?P<$O>i8r z`wW9WWFOf*Vsk9oMo>qufYZ)OvQ;(yis3m&v8it~2$#AOLd(qbGd0TdS zPYTsy@$9r+*{BB_xXt+ zd*@hwb^M62_P=>Ax;OIM?--@+6KE7$pfhL#3Ja`uU;k{$q^-CPo4Mm`I_@7rm61<_ z|9&Mh9r45FtuWHjz5xgGOVGz59@{Tx9s>8%id=MvJ1#p_usJ9r37R-WSua5MZ_^`q zOkbA;PpGJk%u!fhpz%^{spw|s?{>|_HuTSYUS`@!wyL< z7ovA(ucIe(=78bV^PpE)y}znz+qT0PNmjSR*zqGK7y>07^Xz^g(GwR%W^9`~5OMl6D!<$24qA8m zG(^<2IraYisWvA+d^j-rSmwB)rOKiUX#EAt3uwc|`CRGHF~g6Jl$@M~{=9SpJu57P zme($W&a@8)_w7A&c>nH$!1SD*n_txVFUi!}T~}(-(rT{kteqzLt8-C)?(CkFlq$j! z?mRh#$JiLJ-o2=P{}EqA4KKp$PKk2aCfK5Y7T_yQzGL(XU#~{qT=Z#Q-o?3LI{LF} zD))ibY_#8PN$$EG&GaJ|WlUP+tn3Kx=#H|%9B8nw@>`+4PT1UwdHc|(x!~?xJaO2< zNPX>y#TmIJ?u^{<30iqN^#tf|@_Gd!dyk+M*kESf>--m+RGB*mV#w($>{a|-zcqXd zaYy!|jjy~mq1Pu;PeUv+oc%I?;Lc3d@XFNu*QD9pag98-DZgoTqIwe!73k<1>FWG9 zjgtO*2T6W20?ih+&;GSlvMvACLHJv02JO+ann%(O|JJg3|JFssaEGF#OXP;Ul?VlD zt0lE0@Fzv-S&_3A_iEE`dRpNM79EwAfnMbw(0xe>I`<+BbkG)h#?+gmF9)xg9<+9H zIY{vA+<5LX*55r3`rHV51}<NalI6ttiIN)!j+H6InI zOWYyJ43!V*N~s#L;^75i_&WI{%G-7Owie2TT*CZ4#P*Sd$^(BSe6kLn3&k$G#KWJ$v}S~ANmqbwF_FH4!w%k zA`WGg&+U_i6IE~*>9sf!KI{IdLTuOcJB?p4_qU{l3zL4Eo9|-P*~6o=l?&RFJY`Dq z;E9t4Svosgc5`+ny4nydv1W_}UG3UDJk@tfLnNzY?TC7>^b5*YslZ(tz$j#`amZ*{ z8k)i**>8|cR&}D9lOEUq#{)I9?=%F?2y>713Fu+#eLkQtyk}HUxQ%VUo7yR*;U?Wo z0~|F5u820pCq!Im2;C6g%X?F1(s8O{x-BKc*V*h5+}0x2ls+LBb=-7C?3bb^PiRa0 zq6PN{cw!zO!KjH*M-!Yc;2*38BcuhN*%)|=THO($dWyJF^a)kb_Z*Gua>OqTxo0@P zpCSQ{WP~HZ<7eEZdeIoFoSQ2dtePTN6p4I4(SC?2=FWD0&K!A;0*@R4E7TDFB0rq> zK5mpGQp{VOL=wq0@B9qeV+Vzi+%uYx!V9=^$tmh(UFK4rsR(9Z1a^{B%CXfT=RPi_ zH=!C7y*e0^2@c%nG!zeINthjShngz@q6S z*Q5k;gIj$GGfz%vG@+XPqC))QsPl_(?i*pKxX1YP?_ukECSYc$Z)QecYhQI>cfYzo zTW{I#TK?laTbs3VveN1|&bw<@M@Z538|%@^q*ZS#4ZrbyExX}Ecb zM*BcVbjyok6l1ssh*r;e-rfgnz`#Hc?6?Mt7o(xz7W5}d_v0GS3@YCVEe3Df2?;|e zP-5+TZnE6?M-i_9R`%g0k6OQel!G6Dp93o`8j-zxVyI(}U>?TF9Szg47h#-?1%9-# z(0BEDd}vs8-)21V~0IInz1@Nr^NocBoQ{nHTl52#f;ssYGf348tjlr+skd=JM8-*1K zsXfm%qDJEoGx?iZ9*tlAio@MQM99)=E>+%=7a_kUAyhW&4IgD&C>c9L5-*RUK#|88 zb01VCxSbT(nb{ebSeY1NFavR(nwA0w&Zzy1_({Z1x zXDLbTR_-_SUbO~yt0C2im%ynd^TMVeiU*{14{w$C=C2t_;Sv3-ro=nZGTQfu~L0|o1z2z%9eDVZ3RK3OO zOUIdq-sVsLaJWF;AaL0PAD`T10j6QT-7Ncs;+!tYIxv=mauXGmEx(n@DWct_yo4ym z65Yn7V!Gz*Z9LOe94lF({)+hc#8d$PWXz|UhO7eB&<&SzVIYSUE6~`&LNo)$_J=O$ zng^a`W7&bIi$*r3Cnybfug9S!Du)Kx@JrV~Z5}UTz4BiL=hwsD-sQm7S<^OYH9pax zu^!Cv>Thq`v7dDdgHZ#A&)l(A)&hKcI&|$UPtM2W@R@FrU5talXQXQU8;?3`Wbs5k?-XAge4<`uBMNuaw&%+C+3UiimnWBR;5I|Cr+o-<;jc?!@HZHwo($KCQQ@X`dv~mcW#r4&kDZ)tLt<0=Ghu`st zw!KYvd-Bsr@+g0QtUV48z{X$Sq`l?l?M>S2ZedMp~W50O3U1 z@wHKFi*cdHmT0>bE*V*P#IaAbpA4%IaB_&3thiLP0ZyVGLH&o}-pj)EYmMtCxaSqC zM+UAw%BCHjkIH*vm-nmKUA#`RhjDka_aX?`UiQ8E%Jwkfxbp^Y8Q5&;leO6v{*EaQ z&G65`!h4h_o?t0#BI=;IgRf{iv8pn4KVZREBiam?V52q>!{Jnz;jV-8D7c zb9?$k=xD|I_yzdOG@12^BTeqDX}s}vcv)J%)aBvJBKl7bj+~fM*C|=3IWCK#bVYv< zqM#e!@*S=8JW}pBYyRlj$9i~1_tV^=ID$=}1D0P|vKe{7p1|YWg2O@m zGZL3xU$haqz~MmuVR&-2!;|YAU!aayoK*A?#FwIccC-W<>saUq1$j-L++N5J_BLpc z9Jh>!eyiAYE>F{3Y%~!c{%G!I#^oWK2`AgOZ(=NOWZz-<0MN)eg!;hyWMkzR*{Yb{zzD<4h0j{cf7WQNs5^p|WN+$WZ~s6Bc@*HWNZjuU0#L=AZC zJ8MSQ*i2@u%P8}6a-TkZ`)GQ>qqk2r(w{v;`6%b@TbKl+D4MFKC>A3g|9I$O+bJHo zqY6nOF)C$-^G8OS!oox8Vjd1wUqqDn!H$k3rr)6bJrW$6cGGPaW*)v~vM;?wi6qJW zBF&`CZJB1bfvdBSk{3)!sF}Fr13&v%BmYdqD|-NaQoKQ*nC<91v*X((*>z4rE6LBC z)QESlCZWoRZqv`%)c?mEN0*s)wXdc6h*N$k%>jf6zRArwNr@Ep5gCbCEkkNnf+xS z3>*EwSAVAY0tu*E1FFl95=q_q27N!fw&JnZ=-&C_zIbTz(#*1 z0!g=+SkCeiMBT8u4$+t9A#P*d?uD<%Tjji3P@J>q^Q?OHX-8T7$1V`HicN5ToAQ-r zS==2`pJ}mt$@9il$j~L}I%vY1tuI7ZpI4$k7tgpQ9dlitg7X?0wdbR*C8jKl$9XvtXSS#gfWY!yk>8Y@i+g$<4 zT-<$O(kS(jHUvO1{bvn@n51UmJseGvK&{4($3D>AX1*Xn1M&#z*M`?p1ER-4<=tzW{zWKmtRL zpG5^oaU1PDPS3l2av5~Faq|Y4mu-7?3%ZrPMq%jDRrCOby<7`cYAsW>^F`@6dM6W$ z!{_1fQG9ry7#>E#MU(RqwSjty0$07ZNJgpTb#@YZe{=VQIzIdh10_vQavE{)V&#y< znFC~dh@FH>-)7zOR^S^-UcDLl(tTu?d1A36Wk zD@yC)S1(&OEx&ZBqpx@G7dXbW6*$zZH+y;L+_^(-f`XB6=Dc~CJ%WR|W+cQmFi?qx zE|`~T8ybpS@GE>1&R$l>5mRwgM$!CX_!aK4C){cHBKyeGEkxV38P$q+AVRzgS~Fl~ zXJP;*Hg;0tEJGKt9X$>M0~rpJ>gh6eAXBDjub-Akcg_Pi5(AA!AM^0!HJZp-& zL0U94&2LIOl;_7ErhVafG)kJHQq_4?pjp}ZI`wAucivM*bJ4R#F--|RhNNTVB>btM zfqI))9!5I#JzUBe7(28sE_labD~i}yoWBmv|2@vX zftWv^pKu73;sbGuIh#`hbWFr>sQS3}HXsrdqUj#Blao%B`TWkz~y`O!b zpg#D2L`ciH1t9=^f*b)HgZcotgg67V((4-2sj7YZ0K1MB&9ob8HEe>37URYZ8fr9^ zWy;JPI+(O;q}8y2mbOuw)*TG>8Z^;rt%s@kY&JusE6)^ZYy&Vevy;luicIc&W_2bE z%#dduMh6c!I(+dkZoyo3rD_aOYvKKH*cssv+B6Xo&;fSk?URUrTyJAnq7pF*5c4+0 zXLJB!66sFFFUrZ=I2RY3i@rJ+FfvoP(5FEQecmZcy@?V}<6Nq7E~nMG=o!gstD!M{ zl>4}Yji{( zO`g=G9V$iXv>UUxfjl8;`4ynxTQ*xlwUale8j~H0t%recW7JMLwa3ZP=RSOfh_uvj zNjI5mNbt?|zQc$6;&iTTiRzt@jsO(mk4FvGj;uzVa!}5cm`9|hhSh#xOM*jgl2q$& z;*Rai#!I$fO=)5r$IDx={KQ8x0Nq!{D-+NoY!%f3?PwDXZPBA>V;~%;!_pA$yqxA4 z1H_-Ih`p=E<5QO8tdp@0vqo%>o@UXbqf^rs?b79R-bCM$={B*wrUZAj*4I3!XGSrK zNqBO9Rwb#q^Ng`B|06ocCo``O2UXVfOjHB$ONsF55&2VARz|oAT$CzPwT>5_SPP74 zfdj)+r$R-Py)R7b5oc@@8r-#mcjL9PoF&1 z8~4F^nz9{Ge|clUL_kn4uu`KU*J&&n=&5n<_4T<_Q*$dPr&0aJWF`-3-=vFihfek# z2F{w4l02-XK{vM2vQuYoCa>2}|D=N7hV`)Q)X}<&B!B9__H zm>*NvugaxoPkY#Sa?AAS$sVxMr>BFREIU8XeT=`YqrH9I4PFOx*m%s-$i|b;gz_X` z=ntGaJu|&}Em5=R{tIrJzg;hTm#QtZrfuHJv+wLP8XC3AOUatCeJy;mJ$;pd@F@#|7~F5F6Q!iAggTg#Lo zW|k>-5ts>_ja$)PY=tf5{=d==g04aKvHBaC((C6|3~k)Dt`)D-S4TyyO3zpwablf= zk1;_y_W!2_bRVd0z?MwytSyNHwq_EhU5^wu?Lj#L*N&-8$78%6w?Kkf{gxu5#jK8P zYWpv2QxbvGKXe@(+c1&T_yCY9H~5Krsy`Z69ANue*;IJNv1`G{{$H7>v?5Dt%d-I+ z3wn(*;lnZ$zB9Z3%ov1Ne^xOKxxRoh^v%=|^0qK!p z08x=ai33YDTNSn0h7@JJN9`FHy)-^`MTGB2XL(2O%y9qIDOr7H9L1cedgXTh?@KlT zGx)dCVGFYE0hj;15*{k5FG%ph8!qjOI%(u!Qmh>Tnyim#YsZ`LGXe+o7c5lej(%J1 zqRrE7;$jRo4cs`UaBs-`*Z~vVw6r`Y*hB_4X&4z69u_F=+sAcm_b&eabnlIv;m}#G z(DvRM?aZwMVmD>B8&)2(B-(FsV03PZc5*Hr6<6FlT{Jd{jAE=0BugRXqQ)> z>D$qD<>S&LajIrGm54@QR);}FQu4;jGTv>InVqm0lIep7k<4Y~8>E68c24eAE001_ z(RzTiWEOyJ)IihQH8rb?w1MWSCakk;@iIp%OKUEb={_YhAgd+a6f+iB2@JDO=;^4_ z&0MR2Zmh1OojI<{5!~mm@v5SyHW47(XMK7EkFBnrvU#{kNQ_lxY2;Mrr1&_iPF?yv zJbm`8d~JqdXM@QZ{#k*oQY`|UExH+U`@pRc+R0LYHsciboL3~hp1WWmQ&XYL)Djc|*bF^$eFEyZcO z;60MChz`;8C)t)F@@R`^ak*X%8hGW#&ReslDzKklpm%g5 zZ9G{eeUxDfn*=V;=$Ba*cwOuYP zpvzd7go;{rLaF?xhDqJ*l(HRr%e?0&xXZE!goVd@`u8Z@zjL}v53jyKF7_!$2d|cI zUpl&Ih0TbBRyJ|LedGGmJ!Xy{SCHcBWAEh?r)*NO8S?3?*wOHy}L3shd+zGs6zy5aep=>e9YdhwvbmAA<}#qMBpJG*S$m zbXx*&$KqI5BJDT-LY}3}#P|qm|2hx2MM~J@)X(}?qJ;zW@c(6`g1I9#6Q1Jcr zsx;+MBMIjv2(uM75L0 zcauh9GKe7(+yj@{7taNuU29 zYFsF7N5)D(JO6o{WMq%7XZ6T6JGp9JM0#xdNxY}bDj8XLw1<0?pV(PYB}#o) zUKFIhzM;c0CA}GM5+`xaqB17G%`prw^JDO>c*iJi&M69+o#HygaO_3;&w)oSjT>5M zI$&0qY&?8GSCK8=w3?u=_%C*p%gOOo2UWuv=t@a=%>Z-FnY{j97s~C|)@r){Gg?d@&5+e56qjg39|^|G_?haTjR<8;Kf?iQ(-`%z+Ku=qn zo)GD1W9iu2%EqxbK3AMxv+l%+b&>uAgbpC^Z}n6T5~lj?O^r9)DjhpeJ=GNE_LVa*O%E(_AO(s~++k+3YRoS@`ECAcI^*!Wf*EfQPVe~Dc6$vt9zF=Y zzwO`-n}zyx>*gC`7Fs&q+iQF&Q99#1(FxT$LFr8TKd*EaQW&CEI-3!O^~=1w^GauK zvGoJ7CR#*8f2?6<+PY6S&3-vp!^}ZNHSRygqZQUdv()G}-UsWP;il@d;i?vz0hnoe zxi*#QL`lB+a@y2g)e1EOngTmwPD>PA@eiY-TI(91S?TZoM5(oMIvG;YLT(9j3H(s{ zpU*S77T+L`%hjx$Z;`2IQM3yoG?vaqqrXu!q5GNpyn6>-UixiX->%vO?+$b%ssd~| z-8Hc@b|BF%Ya&=HSFv$5AZw_}VO!`?{T>rkx*W_*{vGGTN?Z|zpA{4(Z^2_!G{aPx z44To&6c3k9QEUesUQZK9Eg0`m>qonw>r4o`A+vw^@+6T>k{^NN#Mz&f-KR{2GgE!& zhVD(Un*eNqP3zV3n~4owhL+XNT8!>pU57S>4Y&;n$h_=BsbAc(nA8RRqe>*MwOucu zhg;8}d&?*O4lNecW{Pjd^NP45|NH!9Qtd*EP+ zhxi_2191`g&u0`oFM$0FltD7LsZ0K0mQq@9)ib62YmO7Q9~qVdumcbz)+q1U^n}|| z^KaIZDk4-W!QrsH2#Y0fP4MEd98Obp!i{BoxSJSWP$yB8p5w!V#PH*M_yyHFMwbsy z!{MyP@;hp5MH0%$#MozrTyX9i_}KYk_&h#*8wTI1;KP>*;Yn%D@-WIKOn_b#1#%_9Czy?r}lf2THB^5X6i6XQalP4SP8 z>@Z+KE7Ml)mL`cyTX$&XM$yzowwa_C?gc4tO{r%L7ywPLjz4W9=`|4@hW2PFI1CRM zVrS3#Hieyr8UC}f&4c^QPbALPud(_PCpr6L22Ir&I88!Fz!)ua$mG-a{agCithU5l zPKoJlh-(q%dwTk}Qk?q8GKZnQL+x$YuFYVtA@YGM!r1gIj7-N_e85>){hUQ3TFhbC zGTeZ}OQF}$e!tElhi%5p(P%*#@TZA?>~>NsAxnmxJ}Jenzq6Z#d9UdcQo8zj`E>5w zXKY;Ph;AktEjr;oHf!x+WrCf{c5LmA&L@X%wCQh^<(y1Vg>X6Z{_Aoy3P?Fl?p@3s z3MQmj^z-W5*_@P<{h!OhV$F&83mu}7DSn|cjiu;4RgTNQ#cDI3_^xVPH(FAHHp%Z| z%qKEfX555o>)sieQ(4buu*)zzJ3X?nXQIO~ocaz<{rQ)vKMSdItF3wu9sUog@8V(V zC8idKNs3oKAp?5sVlYF8(e;d}Uu}ETjZ&LlN5^NU$IR$~lRw1Coqw5pVqNlS)&H1W zJ;EA%&#PBCyXstxPp;7#rLfZvL^Gk|s z74d|H{)%xCmJph(ALLgrd)_H`q z1-lKA*MAj-y1{DG_9BoWKaBi1-uS9-*&$=t6xsCbbccaqretmdncH-qzs0>19&1E>FuW#5h9W2c3ndng*c1zlJTromI=&}UTo5bZ$T zGnWpAwlMc6`*_VSzik^dsz-94Ns*&6w&FzvTsR~x#*H+?^&*&2q<*t&bBIeCRj}l` z?D`K5HoN~bdZXls@-{+@nesR>dl?WG8b?2i35$%6j|_{EU9ZlS=W?&y6BFG%5)u>$ z|M9>-3aIV$QCX_wKEM4M)B_1o+ug9QbA4XSAAaTd!T9v$zFFaa%*!}`q$)0UrNrx0 zpWLAIAkUsx`ec*qj|c+Nzjfa9pL%E~@|wAH5VV1LWxrJn9@!(=DK}~a?h#5t-KU02 zPfH`~DV}1P9Dp5QMh7^7nAvPYK1M8wNuI?Nu{fNh_>FmwQ)H?3!FyRGAA`h{k*i#e z-z>#>-51|XlPLMLzQUCqNMe#JrXpCvPGX%{>PJLRT~X)E6!!5}md9I4`f*STC=*x-0Wnyr*|ejJIce-4!=!lxiQ% z%0h+ikTd)>QSzFS3EiXa4k1RY7$a8tr*LH+P%^QbfLhB)V23P-VnmDF9au9vNU=>q z04A4WbGo^7D_(s^WJZ$DpgzB{KEsk8y6VgHx$p8<-XF#!bL%rQ1JZl0nh-g`vds1_ z-D>8CMV%{D1%+Rh72MDskmFyR-g(xV0J|lAIk==8eA0L*kEiS@${Ik|wh7MIwvO`- zyxso~dZ=b#LD!u-WKC(BVt~nk`;b&Nc)Gt4BnO8l`x-$|$8LI0PsGmf@GG$P@icFV z%9>f5q}^Dy_HrVG?m-XEqLnw8$;b_?PeY5-#qKF1$D|B;pQ3C#dh0a%;(cveqPF_} zy?s{tFr54PV`)=wj+=0OLJoR@CUY-Q9_&TL3-)llmHojVbg`+n$Y}i;af{c*eo(uB zX${UcscqeK%u+q)tn)zc(TzGhvZy2;Tx;mjaqLiX7Up5XquB>o8?7;KIzV8#e-ixI z5tii7fhIiUDvyw$_I^^Qerh0sK?ue`Sfn8#LkL~EEzX}%bjiat+P~$+Qutz8lAlv_ z(c3vXlFkj@?7d^KEzQy{I@em$wr$(CZQHhO+qTU$ZQHhO>&|!Y{e9=0@6U~Uf1ijE z(LFkPbX8?O{bY@-%1kXsq%56oD9oB}KuhlK$DPBvijRir!>vH))c)GfS4>BVCOMae zehbqyo+5f+b^3K}#1sdc-PN7a54{c9A*`q*PnfX`bT;C#j_LH{@o_{4=6sckBb?{a zM;Hu**)6@#cBJ!e$y22p^9GHBQf+C~SV z=T5mERW&x_oiR525lYo+@6`i}-erm2O4Ml@XkTT+u}I6rbQYQT9hX?0+*q4kZ*z&~ z;dnFPhV9GUOLyVd^p3Pf~p=)gzhW8Re;}E$7A9&SN^<>PRm6` zJ{!zYf8ALVH z$(ra9c7j%wmP4AF^7dwtR4Wg)4b4~%Zg!)Gb(?wZQZN>^SRQ7#e-v*JdyMAmi!d~^ zbNxkNW*$fYrZAGJ*Dt_tAdxr+=(1aPj-?Jd@o4?-WsE>zFpx97%)NJNuHal?f%EKA zhGM!Iq4V|vzE8zu=YpmMm*cyJ7y#5Ouq6;`uUI5J5@V0+%1P#G?7?|Jyo&-~?s(iv zJaOEdSAfFjREbMmX+bcue}#zQ%Au`_-stypnCp$8OFpbRg;f{kj#J@bl2lGw6AGPx zKCnXHb?nWjLY;+F7jg0pmYeY#bt7qkX|nWwIt~&! zVtU!HMt4o-6)Hj#>ryQ~KIFlFRaFl;pS9_W<*2IA#xI`RaBbE4;(*p7V=w@nL%Is`?-J6>bDv$X@D zX92<#9ku({nn9ijnvPBx*&a!2Jjc#W1APA~YBqUb#Y8o|ZL zh@IkZ^2z=5IPFMqaq+v1<3Qw;mjlyqMrG;@&44t?zz04 zyu_cY+`oh)0U5B%-)ZKEy3zk`d41+pfh60C7lnF@!++}P4)u#)4i`;~P7z3Gl;Q?X z0RN5kkCp-Ku8iZaWO^$7F4AMMv6)|^Ji17F}bENF_;PGk#*Z zgoGr{5t)0vWbFv=zb*26^zQE&QHG#w|AOL4_AM%7=qmUeMZiyj+tLJhrS!PodOi%J z8G@zof`sGn@ZY+=aQ2W}>zT)-hS#0I5?%mi4MNPE|D;>iFX5e!O+7rX&f<9Wl^nls z&;5=Fy6*8=4^trp{N#rDjON$&Tc;cE#So6t_P~F5;eWU}3w1a-#pje;YkLHRc;>42 z5m;#x7Z=_vE(N|n7|0#Wv@g-WLE%hKkLljiX}rSG=-p{=BgR;^sgHACiF!Em+NIam zHK|-WdH;&rugRn{H<2@u3+Ts~)n{!7;#~M_gaqF4R)2T_6X%tY8zL>)iH?iIXwhNw z*vnfF`kSxVzCu;7%^#38gX*%H(LVxz*?+s2!x=0z0~kLuH-GZ#4{z!N#>wt`KZ@4y zEG%?Ez0p-?lIs?tTT+HBs&?b(^nyRL3Z`zue^j_8a-Dwnkkg)qeJ>D`-|#(iUV4UP z3Apd33yGnVwGvFeMdj(&e90~Y9D}{z;^?Y+bhkrL)rr~f{+5hq?V(MA_F3i?_@nUTlcKztKJ2p0q+PGQF&fKvusIR*`Ahg73;3WVwm@#b4FP zrL-?73mQqWe)o=IJn!1+*3!a-PT}ij5gYh7@-68Ex7fX2p#;vLH))uOT%GtAh@^S2 z%=E4po4!UJPZ~fyk%l!f1&FGfu=FcUpZLD$utrd_OU zFqMTg><1d{Fj=7!6^WCITNGcod)IlDpyku*xR-%k$(?sW2iKwDj$~h^P z-;1B#@Zar{t~oW9i!W7%<7(b@r#Q(V%4R!~Rgk3JCA=i!b$}>eJ4k%PRfHJVOx~E? zHtipD;vAuPt#G7KUt(fd8X#bBYAhmbJ^ATBtcj`iD%rd*QN-=7 z{6#*o8)uq<4IazNPJhJMqx)J>bO8_D78S$5i-IN|2170c+WcZG6zFGS6>G2?o?%g& zP>3lL8TNoYH3>G`B&n=0kGUYEn*UqSMnR)oW{XWWmr>7S3(BkzhoX?n8Cv$^@b-48vX>0J!n&|)-pVkR5|>;Qg2rMO7oTV@ zQB_Tz(}_jW<#IGcwJ)X=_gwI~#mOR%*dnK8TqGhG)iUix1 zlswl%PVR%?Ge6XLU$omN)&pW_v7trPnA0G~4kwPC)=?ZVN>pqs^%x$FI}yiQT`~Vr z@JJ8gM$O)uG_(YjAdIGlX6t3=o;oF~w^g-vb+#IQ7@Q3e7?n2lcJ=2Qi-tE>eGLm2 zi-Ma)A6FCUi(M`|$tP2jh)6_~>aeP;pU{={;ej00gv^d3!H?9-1`@Z`Rpwnyd3ws< z$dsf}XLNM)8PD|hKiP-3ksjzTL34iBkUyV*CfHh8DHrWX34RrOU%!B+pO^jjGg2O&FMo`8EWA%9MKvKD^##UK$;%9QN7 zmMASgJvsha;*(^KkToYq(*84-+MX_yShjEtzsvQ;M?5Ie&So>BEVYN#12#qC@K?c6 z#vd;XtO#)nc1_UH#GK^s$oydH9sb1M^q`UbScW^R69X{chULJXTum93<0t8?^=GYl zpB-0}fWebb4#g}8cbGJLBD=7Va=rqYQ_2?xVnKoX0>7~16(c>(OMwSsl$1%k;jn!+ zasDO*s7N%l-H}qMEF$`$irKQ(e`yq4@Q0=cCEc)qrn}qKF3)rd$?U$xCh0tl*2v^2*j|YFt6aXChl+A7ZF%HFrp$q z;=E1A9+Mlv{ozlc5dDUHOiqq3Lu`t5-7gi6BRbor%M(1CtrrKGQ{}(E+sVYUhbmA< z!VF-4<*tVshL>Q$^av?N+wwuif~29L^T3&C?*GXeKTUz*Aye7iE5?s(m>LK%b#1d_1T(d&SpMUmWWkg?ZlADcr#FwhzwJ$-k1;H}Tv979EoL8_G#LcOmZe5?d7)-;9&xOI|Sbm#}pqTVgI`%?mHyw2FfjrTvyBfBjXTXvjm{7C8>d5Q&X9TKMCBVfvPk zDWrp6hjSIr`?`!lN8UvYbF~`4O`jqHmf)~#S~r3naQ)Hp;OwzZsXN12$8x#YprRR6 zqlh!U;0wooF@;M-WIfL<&e@H1J11+YCBgFPP>wzl5;rZg!Ux~x6WwHh;fldi^FdS1 zktQrIvZs|+rw3`sdM$0Y(R;bo_6TV;taR{!{GKFwGGwrBKfGje4MnWp;h^Ic>$ah^ zGvbNX5Xm6ygeP*9=$u?kZcF^wg5ku|peQ${rt&_EYm?1%`{YBH#jdNxoo&074uX!i zk?_gb5RLe^kYW$Xk%=h6I%de|k?oO+@J@bc|L~BU`R{U!L%PfO(W8cCyvq(lM4605 zwk;U~-p>$xr^EqCTj}i2mVvFP!0zB#c(LOHGDiCGJ-t~7dZ4=eC5F;tbBV^MGSjn+ ze)cWlOVdmyEUL=5zpGLhsXlQBCsDLlbGF72Us$Ui&TC!utZyQs-He%k@_k5tQ`)3e zypAAH?Qu&kV8kwq322g?-osNd)Ve&;E@|J&7lOdmb9? zl8sc~a%five@uFwWi{6*kky%XS!Ypu=rF{iiDVF%CT1{2ct>0QE~i86jA}ihdNuS! zJrK-x6K4!(LAeK8bQ6{>XHQ#bf-{bXiu(v7%%ap&f9%@JgnpmGETk@^QD6F9920xm z&CfHwBwse6fROc5?$i!08gvb``4l`q0(?qvwjuN~=(d&QbI@6u!j@h%o|9xcG>7t-L6J{Ci)Hlu&Rf@tUpr8RKyd!z z8FbYU`EJ6b%p+54uN_vI-U*u+*`V`;2i(MJv`yT;)oA^v3Jp~um4)XY=+I=`O;LOo z+|7+BN~T|KdYO>sT#sxE3iLB#qkUVZ*k%&hx)auC5^y@qVnsIoYkp=Z$$U{W$%S(* zA?awhMhS8cQZw9xgelX4G-0!E$DpX}zs-pVE0{(WMVEvLR>gC*z_`GY7Ld45refHa zO%eCqF=;y*Appd5fX`_V37irIYeI@m43Y%yA@Wj$uk|U3XX(8Op=QJ{#s_O>NW;%5 z0*I)Yk&g)(OpU}K-b+<4|Wc7PhdrO}gW*E0inQrF>VLvZII^TODM zS8ciuFPgCXI=RPJZD^eDF2JVXJenL<$ZhW~RY|tbTz65)WN3r+16x;KH5W`{)}z`$ zPq0M6w_82%X1{)k{a*jOXgbLZjemL&VXF~!ZFcXH@f}0y0Pwpxh;jb7POCgDzvm6j z?1?VWGYO6!BGx!+cvu*p`zeLb!3TyrCzx_uzKhUgmzK_`wI*9r&)%hPC>VPPxW6j5>;L@h3=3#3L~+^fvy>!t`3d z@gn0}mR&zu{trkJx^z$|Hu|ZkHC?UP?15v=Em}&oO>%>Wq zbBoAT4J*Qfs-#{wH_2#=-@{FmVJJ?) z7{ph#*t|A;8UB24ng?iHt6kxS=%XYwbI(Y@c0S_F>T%Md%o%l)i>c3~_h$(;1kPM% zqRC$H{gKnGApEb3t@1L5pqSm?c^vU00@h(N5=W+O-&Z{!a0Stf{7MGg`-; zkjIMITJu)xT$cUv`-DU3%LR3n2wqg_W2<9c*O3BJ(Tl)N;8%;wb{kuL1;Q|#6V8ph z-fxB9RDcuN8wTckaPI)=s7ZEAmNr_IBsPq)u; zq5zz_xfj%w97U9&)Yh;@W?gh+aNj{b)86C`&S?q~yn`<<23j8x>P^4p_7-uEB;Ggw zIv&JIJ{_YMbeRyznROd)oWFsOQXGKPv*=4~EQzv*1d9Gz&!}GL2YY%3lauHLv%&#> zE!Km*Q?6}N%~t|D+mXhP99zD?D4o36cF&RDF~e9TL}Bas0qN-n8f zQ8&79LW8K4y1|Qdo^bF8#4}`CzTv)uzCcktOgQW8bse1#9Wb&;`4?a|POIARR;M&%$O%IlHhc>pq z1bSFYHG|=AlLNy+*P@+|yib&CV}pnyPc`I>xpk+4RJ`U#aDvX3zZQURVteNt&4}Sx z+@8k{k&`bz<~R;SmwA_n)Nd_VV7w#UFCmCxRPmI|a2@afZ7GYHtq#F>q_9gs4{6h{ zP+G0FnU!$!f1DgfIIBP{^d4zV2_RX#Jjo*_P}>}QaDI6Fso!&;Z67*NajjQ2-oA2= zv$zyzI?lGtR~6-L&fuu@ZriyzSdT4iaj3wkoKXOEi73Q&KQlN~{uz5ZheFW_QR}<# zYQkwTToAy8h*kNxKzCw(FRj%LR#nw9yJGDN%}w)6$kV3Y-OJL2^g{fke8$gsYsD9D zgLN83{4{Nv&vn(A>;$=p{YjPx$<)t~{#o{wCxD_d`J`fWSysnieK z!M;q$85cNQNCb+}<%^pNt0^abxz|I}{AD1r0S^HDw}m-{-ytWr-Toc@qpK9|$q`&g zU(9BTy)nWD(?cP_LkjcG(M?91ImPp zr#}j+St%QAWA?eaLSP3XdFpJ@HPWwK!$<7%k_LaxtDAKI7t}(+a^k;NE`d*5cte`J zDWLYkl@SpN=rY`0%u4Ljv6b9BKkcnV8tPCR@;uU0=%#ek zv>*Srn?eXkcJg6bidwvT+iOVhduUO8eAGnasrwZueBYS2X-2*!?QNN!Bqf1x|pjV|?& zmh6?FbSQUWQU0Art}e2$^YPwkT+p>V06A4rK#G(uU0i3gzo0rXuWnFlNAo*!Imi@e zt{Mn%+aLp3mZ!F+M?~DgF~Ni7Y1@BufjI$*d&+3nsnKH(a0Tc3-7opcXw?1> zO(0h}?~2w`uX}KH`$}^Gh@YbMK5-uUXgCD~+6o`p_U3AsO4_#koD?z1bO{V>u zwY;C`Ae{+yL#lyI;!>6IY!!;TUi{$1Ze2aTpqoJ4351E>U|~=FqVd)n1&5sAKD(OH9^|sDf4cg_7J@Fmb2Eq8uH_$~uDBbet%Be%yAO@2CP4UM;>zRb zMu7YsOnrLXn-f~to>WFvYo*4;`bqxZL81NrBp6k0z(08Jm*m3pOzCMpG$S*;mg47XcA-B$;ID#$cCfyP zWfQCiDuPmOKhNb_vbf}mYE8~QW~f>zhP+EJ?O~=`8qOz4lobZxNXwphC>LcbIf=mw0V>9#59jP{Ok9mAOxP_{S%IE1 z+Dd9{iTg!3Uh1!aS)y3LojtE%fcQ7xSGb_^OaQ zUAI)>wRQLl4k6blUcK6r{u%8Z{$bVx3fT_W7REbk8z&{Lb}jY`R7zp zt4e*F`|xy>HTEd%vMH1fYX(R@?SIOGKLY@af00(=6+<{fOsvB{0Y!;!p}!r2UECAZ zKaX`b=vwv@n3o>|zhdO441!lj&4-drqtHgUU(U>I_(s|LkOBB^nB+g_ z{Ay4cTyk9_oc{w!ssanpQ)RX8{BE`0{NEpQmw0XZUM`xw?;5~?ozVB}eTF&t#I_Gi zyKeTgy={^JdW0pZ8(^Y0TshSLa5VGL1ue+5AGL4oVYlD#S*H3w8^8;kofqN z@ehpKpHMpiVPN{K!;53j0fOgS=rS@X17L=X&6VTXV=@VaH+ts1x)xDUY4SPty<3$toA2`F8iyzCQ~Nnfhnj> z>RF3)e1Trarfxj!E{C#Y?;?!V2Xn1FPwpsn5kVN4^5YcO1{0*dFBN!-BbUzvky-Y> ztoLRx=A$I24&oiWXN9<>5FX^gSD_A2GTVjg;BR@Qro1LIBIZGBq4vW+?QA^%r!{CT z)oHtf)6Zeon8Jf1ax1hk&1U=LZ31rB=xI?2xwE;XI!YrN6$0*#nB|w~%ETfvEwqSt zFT{?q62iP+T&X?a(7D(=U*VCE`tTTRVcFjYWZd`!L}nv|%6MHlT|+L0MU+yfW3t8e z=uS7Q44(Yv;0hU2k;Zld$2K$Jua?K0KEj^2zjnkn7&x*tiL( zgvuh?Jrly@|1+?K;TD*C=CBbVB6Ye@HOoE3Z$ZyzdYymYP@p=1y>b2i?v@~UkcZAA z^l?LIb4Nrr!UyyuLiiGkh{)>=?=8a~ju#vzKI4lmsS5-W+dlwvhetM(A_l*ICFY=z zwghR+oWT~wmB7_cVpvSOm)Zf*usUHjA#n?t6Pw-#*`qqP{F+Iuxl{8~)ccMIjg;?? zJFOoQW>1y^&qxL#E(nroFMx5aA3~@`I?3x#o4LSPsJ%9DW;}RIL1@GDPj*!Jo1Yz1 z&x{2)^IsN&*z1q%DF6UG=TTM0!^#FpbynFcVg?#g=2(& zFvdq&t<{re*!yYaYNr#VA6@F4^|I-0j(Us`t^FaXS&Is?zGIDgv<#~wa96iZpiJ}% z;p~pah!87&=#^=)tP7S^i3cUWsZfV7n{6}ST}zz#?-cxyANVBC91Q{QSBAu{_Osf+ zMyDJ~AKj0-+& zjc}Gnd2fbv!qkppQ<_UyeH0#$j zu8$+w=zZlFB7i6=lRyz}h|SX66{uV$g90j(qDiziUrj3xo9K<|J@#lQdM`T#>Reii3QblgaFwpE@ z1x7R>vat<Ai8VlQik`~4un@i1>)a44H4GAeMq!O^*%1a{^vtp;s zZ0#5V+B#f^4Ngnw-)Dd~L5qv-Q#9f}IvVl(yIq>RalrM^I$P$J4&IoHqo5jqj+qca z@%MNo+B3M7i8@+;A(yLvMq!9YhHx~?9om*z8LWhT zdGuR&b6t1qw%T7Vsd1Sb9lQkEdq&B1Ip=s2l9P^01xLn21StQ4i3!=etU*IY2rUVk z$}0d{dPe$(VlL2UY9D&EL5-Uf9mdh~t|%ykwjug=aP5sgXvExnPFdw40Lu&FH02bp z-B2AUm${hmn{Aj2T}w)FJ^+%Ln9mP~{@K`3sBESDGgu}D63mcNmAUil%*E|@{VnAq zT0e8N!BpkQV8p+MIYm-Bm}J+ekE;MTtz>rUzgpMEaqQanj8`cp2%TNRy@@)`&%IXz zyHrfXVwCz1JV^qbqS8jd2aLS1oNePn@GMCsjnwI2O;%Q7{X*x9{T+>guUcBEwl?Qt ze^kfjKC!erVM223nzAjhk{mt9SVH5l+K;uc_5_J|tO&}Ho%d^#&cT^mfI=7_q+MJV z!fib(-dhZzvLH5UJcMnv4w z=TV-!=+HWMkAR^aFh1XvBPSB`p|j8ie?Qq{9JgmB%QNc1LadA%RXUIeTOS46wjg4# zMzFV`i1<(wz&yX#CnJ1d_XSu-3PEER7f=bL4q8=ylfoFK4Um+U4ZD>FFl9p;F_XZB zw3yF_&6lRNP|yd+2)LGjSIq8jWA(q|bu0sM-F~iF!t4epp77ux8>)ih5Sc(4-whYU zUCW?5kOaz9@PEy)|1BQBwxU4Z;2ZHoIMtBZ6$6(#>KGu{~P7n;TX zN1A#Fse``z-A@M0wOhH+`lUVb(0Zgo2#r^A!PP7pkviBz%BcIJF=?o!8@o_@m_x(R zJH}nb&^u!j=I#(u9ir+GQXlrS1~3a`(E;3r-ubk&=yqhvaqr9qS)#Z45F38Q7a({0 z@M(U36mLS>=`ZM2DHlqMv@ zvMxp93R%ey2L#?=a;GR|5*%*~enFN;04c70%O4o|CUdbNCS_t2?hMJTmB&yA$E)#; zx*DO`6rwKHAt$fKk>IlsYCn@G>$_h(K_`QOhJ~<)ro1A+bYVo6`?M-7hjYgk1vJOQbDk02D4d9+9B}u3?-j`f3fb$6{6=O-R&mz#=--Kn7 z5;97ki`tbmA!=vy>tGq@6+4>?2)j6dUb4~l_0t5Gi=d7a+BQo|tQ$G~mY>fu!ZTMQ z7Oc9@|87C+r}ErnhA>!-^k|tMU!&QfwVkap8d6%8m0-wni z`fITqsHh9*0ef$aWGZ+J>*SMs*wM?h(JCT{oLz*+tTZX zluX*HjW)UHViz2zAmwpV(ClpfXOeG-!$Ld!Hb{UmJ)gQIX-pOJH(+ap2d-Lr-H-G2$xnE>Xt}J6I@zUR5J9VQ2>b95@K_k>4wX3a?ox{@5+N{({ zh6^DxBNa6=)^nDT5~BXW_>rRlX@c5>akL!_UB;5H-pKhwp<+JRyj%mrS$?r`aZjsp z)eh8#$CK+rD;r$aO4wSKMo2RyZ%uki)=;FtcPfquQhHtRr{-X!c5GB~>21&{86SqR zJ?ODE;y%zBZM;?J;hqWFi1)%rJg@bEi5aF0LzIj_VR6=W z9y!jfM5r>99`f6``C}_FiGC9^$6zTh#D}-mHEfkk53=VM^MfJbyxMd&tW~9e1uz|y zhb8&|Nvd4NyB&j|MmT*2k3b_65F62pPC1BIzcBV3W#}_kEY|W#C73Xnui1%r>dTJ@=?tff}Sxg`*1k~ z-z3^Fv!j58$7*Nu8E75RCNfTXq!n!AUR``&(&uO<+hn{5L-kP88&T5{5Bsnxt{7a;+C=IMep(y+Th}N>Z1=6c?w+xT z4KI4S*!It)KEBEwW9_98!?z>CcI5kJ)U-qCC?uN>12a9o$0 z%9Q=B+Y%B|zgwf=|X-o$q3K1Rj)}$>)=VPS$lu^6~pur(*Elia}`%u5CE% z83ngT&z~18J<4( zftUkNrV}Ce%tOD(gBe~tL?2{`!5J6@zlTVoe_hYm{cy1m(w4(zEI!J7zB^5LJ=vJAi*7bE_0O{x)~l!HUQmkA|`HXv-EOIaSJ87oObMjtTUvc_tW@5)gNt`jm@TntV29Boo3u1F%qZ#sY}9%m(0#{ z9jKbli+5JXJ}}oc1ZI6hy&bIDW`*~pSO6=*!3SnYc>D!zch1wjN|N-SJtiL$v_XC$dA@#FBLcvckdXk4?7uNx*PLRR_yPG~ zg|^prl67Z||8fxiZ7)8*vIfE3Fo1=#$A|8NK@X{OFY+n(v(C2Db!ZOD&|MkAmFjn1 zbj$_%p7>O ziYFCJ&Xyk-CfhT~*>HliNe-XLg)hXHh@f+pK}HAtn-UrN8^Y=1WDxUN|a2q**nob~Xm{@bm!blaxzuHCsbssEeLk7pao zZ@PyEzuTKYv=%n6FE9d@OuP}bZf`&$mQ<`Bv23nzJeEwN8MF27fI_xZv<|*#EU`ki zOuPxb>1@Gbrc|r}xoWNPe5OpI1-tX@0fW|bq!zAVC^CcAY^)Kj;b=mm)^xNUsbZ;e zz1D2J8LR#2g2VP?qz<8EDzn}8bgT)ZARSE%7DAf8ljG@q{)D52hTe>j`B>B+_G7mh?{ zuU_FXRztbCmL6-RBy2EFQ!^|zF2Fx?#Uw;IDNen0XDV0Uj0>@WTxFcdubL{mEb!LSruxp+e|`696tJcVRSHv7X- zm0a04eIoHBGL<~}By%S7#j@pGxddY>^(M3BJcSf%F89Y%7TuXxJp$nG-4(H2Nmz|k70}|;hHkaMGBnuYn&DQ6g*#r|B?M}Dn-T9Pj zAOD?SEU-V~RGl-)Vf&9`b4p#u^KsIJ=i_1A#^>X4+UM7AATVTn#Z+53e4#L80_99s zFnA)dWPGJ`M>Kk)(PRRZY)>F?Br@fE#WZ^)a-}lm0_7}sD0C*XrF^9fXDoK7)1?BH z9PdBCP-x8h3#oPp#8PR@21}W45Xe+&&H9V!P8iHqtIY<>*v>QN@@dP7G6xA0aOp>%GD@+tOH!Dn%c1JTz6f;&cOpmg#GfGsFc0*EB6f;s%RFZOHT2Pd*a#~Q5@q%Jp z5H*luT$FU6YFrSvuxebC_P}yn5HrzoT$FO*dRUOK@p@R4@%aPEIHD^6$uwb05Xm@Z zY7ogZ<%%H5IBKXM$u#N6Fu^!(=`g`G?Fm8IIHE5>*)(BKQQ0_VZc*7Z<&I(5IBKk6 z*)-|QanU$#?QzjG?G1wIIHD(l=`>+SlIb{RW|HYN<%Xi^IBKM#=``uYvf(&x<+9;4 z?FGa6Fk&FX`8eS~)A2B7Vbk$A<$>e*FlzFDC^-k$72s#n9smI2+W+!y|4Xu!KEFXp zV|zgHOLhGr@Cs%5AqXmM`yz1jMe!r>%T4nm@QPLSBM7Qp_at!h1mPv{%M9Zs@QM`W zB?zh<=f-ghB$0~C3#mOu3 z%gxIx@`}~XD+;RJ&n$BDgwZYX%Z$@4@`{wzEefif*Uobbq}k8&E3Dhj^GdYc&kJh2 z-!OD@`G7I>OZ9>=^a|yKF$^m0hB9>X#fUTX%gu^2^orGtGYqQTjx==hgpf7#%Z!pW z^oo>}H4LhpmezF(q?p(BE3BH=^-8py*9~gCo;Y@L1)w?hN)4hpb_*4xIrb|ZrrLM% zC8*o?$}OtfcZ)Tw+xM$It~_?~M6f;f%1p97c8gTBJ@%_yw%&INWVqk=Dr~ymcT04> z5CCBScz>kotNcFztMSM&l7s6L@PWX~>j#Jo$OnX=35pj4ua2r0grE%wCj_sCC?|xV z1xYsuuYqYdh@kTuj3{0eUW_O~6P&ClULD=6C_x(-%_v?CSyatxjqJqvJD5g181SzI@O$e%{ zIdu%Hrg?1;ET=g&6fLKDEf}uHISm}I$N6o5KTz~5umVsF8=wSH^lPXFQ4Cvv2vYQ` zhze2+n~)5X^y`=olMLIxA*kwC;3cRUHoz&W>etXMsv5R{F|6uWku|IuHlaB#>({Y8 zE*rLgfneFMz=>cvY=Dtu*{`9QWI1dBp=jB!BB^LOY(lYY+OK1|Y&vZJf#JGaL6G6P z-+-X$yj#Pt>Ac?p!ST9VMbYuP--O}$e3OCY#0C6^yd+vI|1Dl_ZmV9G8-x#FpMNvI zuc%!9U?>uaw!ffQe357pu~x98TK(Zj5{ZrvrV#&5IpFnUFD$`HcwwOZkWGa)%mcNiha+PY6@n*1;M)T!LlgYN9fJk%} ztJBd&kc3M0=3l4dtpE|3>`vFmqs?KThy_{uS zd%v8fY=6C+=Y0PL1c#>-ET!GW7Yv7|60T&ug(nn`rxYq@Jf$}ri>DH)=6nT5B$uxg zETcapS1gyW60TzZNvLN&S1DA%e97*3HdiH5!~F>iiB4}hP)fH?ESXMkHB`xVk4&jv zZ#h`bbk1zKR&O<2&GinA$!>o!P{wdft=VROIaI~*jLqqOcQIJOa?K6;Ukuy+-)mg| zKKc9?!@{e=@&O6_Uxxkv!LZjnd^Z39fInC;-TogG+XVxA|P2efGnbUJCMT5A4ZrgC_hS=!Y^J{m@KS*TA0EooMxCTq`YdF zA|Ty*kSwD8dZ5C~7lf!RC^v|x!Y@{os4T2@n5e=hl%%LEq_n80A|TbYpe&;GxUkGC z5XHD8s4&U6%r8;ZxFoD`*|^LnlI6H0q_XL_EFjbQuq2}M`M}b{8vw~XAlnbg(kEIF z$vmXGAIZ`ym>|hKs5mdl(l6OC!91*aKhe^|A3@nXAU{so(kEU~**v6vUfI$soMG8K zsJw33(l6b9(LAjEe&N!?7lP?LAUBNZ(kE7u={%%%oaxdll%nZ8sI;u<(l6Dr;XJJM zyz$&45X1R2pfJt(+$T}f@ie4y-SONjlH>U_sIu+(+%MDp@ieUS{l94TspWsbR^n$` z@GsE*(Ch!57W{vn7W@me7{EWEy%4tfKTKFEnn%_DZubeo3ggA7gA(P%sG=I@#ApH{ z=|?FeD(gq7Lo)40sbV_rMr(Zi!O1E^^TWxi1LMWXsv_&h$ZGt<$;&Fk%gf8EgVW8+ zs-oM@%4+Ss0u!X!E+ZSJ*slE}s9P_>E2>+s zf-|gJFQeP9TCe>=u-z`gO0wOqf>N~IE~8qu+^+v$|AK%GL&fN|QQK0k)KP|qr$ZRu z8Eso2VuZ+TC`R7X9CED7hbKp);nUxJ`hb#+CC$+33if}{ZQUNS^(G4N_7g5AzmF6+ zBWDv=d7{aH+H*o7AX~E9?#40X>h;|j-C!HdyRtA|u-fkRMS;|0LUBM}j)S;)qsc?s z^GH2b=?(iKpjdOh9O+zG*vkanGrOVO6J2FFfK3OUnT#&h2rXGf+C2C?CcPR$0%1UF zMsBmFi1}RYI}b@Ec6*0-|3Se<`-A@3)^U)8hN99R{YOoPQBt)Q?-?B)*(}P5kaER# zC%$2~CrG5)HyA99W^@JmIsVWidaq%>Ck&!R6N=+G%Lo+pkUFy@lB>SvzDS7W%ne&Q ze$zK5bPA?H@sI<*%o{TrDei1*uxDs*w*Xhsx*4e13I|=WNUVp*R%~%U zYM6O0SqtPllqU?T@`0~_A#5PFWPwe6bnP3^< zL3$U}u+^#63SoTUh2>{?lBzo0N8k|4F~(qf%gqzh=m!z=;Iah~Gx1BRI!NT|N8Aw1 zn15rxNOJ9XLLA!b%RZ%kw4eFcc6{Ac8ot%RMkKqBOUJ&yx7Gg3=9^7#H=E6;i-9}; zh%Le!F6tH@+0yg+H~K!y&oiz)Iz~E+SaKMyeiWI^0<)j;&(rO(@fu{hI6i50^fmhj zUIMz%APFZd7_Y;GEK%(|1eIpu;!a4JTL{IPYUtPQV7dZL| zY<9S}zqbEEY_~Q{vG_okrq=2f=n%jhJdZHCp&aX&O|wZJXR_QQTW+jpJdaqU*5Y2y z>t$1}k9Q2W?hiz%WdEZNZy1hqoXUp%fk_9+q8s`ekaK z?bu{UoM-JdU#CFlsDtA9^@26-INZLwW|_(;NpNeOH`I!H`gwug zq&z>7U&pXqUD@lq7VYM2?(3D)Y9zDX`q_{VG&feabFn_(in+%zT*I=yqEgD|bG#m; zyUAhBA3~$k+@L>KUFcUqj#=#XSdnf3Mf-BRhN^<^5?HdB)ZQoa_(;_&pEmY6#D$7wx(WwaCE@Etp7z}(;FGdg1BMr_Z$>sBPS;ab$~u;ywMePVCbVK3r1p<4HYln0*wr;IC)N;+%9)3i8^ zlUBCqr)Fhp4kl`@BkHlmB~iw&Oe_<(NYioGKt-mUGWUhV1%ygV8%xw`Ov4oe0hJ~# z%@j*S3{(;V#RWcE{LXadzu!6co_pW-KJW89@45G!-?j?zq${UelD1>hXUv$4d?J7J z!fB~Kgu8-IBBQMi+Vo!vmF6p9+BhQC$=y59?Yx?zZq0?-dyx@gXef-D^)Y)}MPi~7 z1Pit{apCa>(SFx8VZe{u3*j$-0)i4Dk+gHk;}|Vxr;N}Vua&x6dR|vJsv*HhEZ-kj zi>tlQd0*-`6w2mN0TDM^EuyiP%)Lr5yz>@Of=4N8_>U=3@dsz(&Dm5B2hL-#z0~h8cbhIC>9sb;l3^qYF_`B>`-~(a?P&D;X9>n= zu`dB*BP?!Z3Q8M-F9ejxdg8gc(=!V%Ia|V35X}22^#T0@jbP^_EkVcCj6~&uedG|V zo!C!9x~>i8|DLx|TNEPqI^REw{lE5I>iK((0HQe4lgrZIrb|zapU?7^?iJny1>M>c z^2}LQ#55*0mjC2i9@4d+$1L`*e^(H6B0{O+-3CW#zU@klb)b8PBAV&VlZM2-5k>D- z726AVVJ@;cz=p4+`Z=OtR_jZN`1Jq2ZHunPuKP1IWyxUEg(y7>h(Dr$XZ;n;r70kk zn<76HcA09+Z6ax0H zdL5ZtHRUUJf!nP|?q@l#m8Z|EeGnz{Hv+`Fnh!Szxe}_ke-;1Q`yP3pJ-XW5Vja4+y&+$hURjWhrnZLLY8|Hxbz-u z@)On4Y&<_(oYmSPd4}3Rt3-_vtQPk9DF@);2S!Qi5u60RE<7w>BXd#k?FlK zqo}g3d`(^kOd*O^cusG~U37@NLS5QZ6Ep}33^#S%5A)m2Jq~aDjp3J^U$E2!D9jc-`Yl4nkfv>W2I#$NlV;YMff%aPxG1hi!wPAz6QACWJ zO#;}$H;#IxSoVwB)Y+cJ(*;IMTK)mtb5@6&0m=0exU|ronA)#>+EAQl0tb&&0#Bs? zHXr8VbcVZ6<=rLMl5H#bCr{R8^u=BRyFAYsKWZ2@C$w_D>~pYw$HrIUL;l|bP6i@> zyg#pDd(%M7#eVO?$bU4izrvOUDu&SA+MXfZ&^ub2a$fMNk(WEYH`#5HaW?CR+`{vW zJx6@&rh5V>-P&Fla??dC=3=7ME6+!IJZhNx!(?APEAyqBHJ>EPWRxXIind6&*Pp%5 zr`3>#V_wv~=%){|=%CADe%SP&k+L|0DS6uJ3*HUhjxiHO4$td29qy_5ziN&#K-l67QeFRiso-B){w+huQy z0sjKI`QN>a(dS92M{HT8732@UI)0ew%+!8=0pz;J>`%wPO?UKanps3Ig{1&WI;syF z=Sv4j?bGctg+eYsD`pi6DTSn{k=FLKrhW8LEGQJK(Q+JPEA>uegY3whty}}WNF!;H zETZA(a_@?nXR)=8$MBjTg1fFAr@GCBJ$c?RQ4o6~0vgM4rd`?mFoDw1`tB`zhLN-H zAF=Ocd7D_+CWWt;<$ZKR|u`RXVJ@SV#ltX!?cC+rB-#TNP)&9+BDQ@ zs`>fkkCT_RE0)~q^q4=~fZ^kmVx)J$GGU}7-)gr7+8O!ZY@oZTL9iU^aoaIOW@}E! z;#ATM(?hU_+?bPDpx5zlt8~vekC3u6q*}V`UBIFPRjZCY&3o)POPW&bBaeswXd?fO z4l)e({nuXeILhSq7pCr6lbc>&?C;xhlfJZa=(HNdR`1f7Z*K%f)s3$o1V8z55v%vY zDdmysfpv)ozPo7z9Z%o7?{Zu)4ca7(s#Z{$*w%|x0~pK0w@S}SFmQdnpK`#xAU`N_ zeu_fv?{w!7Ro3fk9ER*V9YB`VH^e_jmo7qbN2de~Qk&Z!I|I^Jsnc^QEZ#&i%(6=! z%tu*)*blD(Up{E_;s}A|3v$*mHWd;qq%`kJtXZ%KC?qk7SP(N7_Vyy&8Q^KC^clt)`fAoWXMzb z#J4h2+xnnlUl@k+G2snECtyKkuAn9dVP+;ub=YoSeDXH=uCX`ghFcwE({rJsT9I-BS|kg53P7_1R= z^(kT1Wm`>K0Yd(sNJNR~;|e(oEnij=VC8MQVmX-5-7pkzlk|} zx2vt{;>$)3ZPBN8#>k6#F7uhj!u16kZAj>)u~|Ca0}pDj8B;`NgtH%@Y5|As>InC^ zkAtyJMCA{MqRrSlTzT24qFxiVe&Q5G=6DG0&5PnbaE)k6y&o*`e1MCJEgGLc(^u{K zVx{VQ07hc_RB~?V;EJr0)wVJ-px%~@lX1`rUP%CUv}y*O^ArcKKZt7I1i45EEBsRs zdFH5D^K$yo&tyy7)K8uBj5i2T^-aRqjhE_UholBcs6I>sX#H>ez|*uJ>&DfW?`(GPeR3SWIvfp+0(fjKu zlh1IDHBLtZR+mmKsGz1=04=6x)TyqK6>5@Vifll36jgRIKwt}Dn~=knr({2rkYk6= z4Gw93^tB2|4ngfnEzG(VPo}09@;!FvmaNx@uv!H|oX9D6EOD8K8Xmq!NHjCEFc*gg zai8JTwe3}m95R|eO!Q^sR-|J@_{)WvWk#w1AUkz<*v>Y5bbDDTvaw$Db(~uJiAMl! zd#*r~!^r0QeVS^m=C#BLCy0EI^Kf*<*&$LF!=1<*5lnx}xtO@ty!3CEZw}yfcJy@j zVy+hNj&_Wk(ZTzZ1c8B}!Bh19PP(L4yk`gLb6f&n-z{K}AM#-=`7hBy;-Ydesj*R3TGK%VGvLd5Ri97A3;6>f4*;O0>1uL^Dkc_fpC0xbgwh~oqB zLzRH#E0Ke>M7!a+c&=|MmYLuqM_GmLfZfpvLZ zz&0QLUOpOIxEcZLhCo2Mnn2!>2AN@JB$*iM8i0Uq`2gFn{3_JFy22*FN?=_R@HGLj z5aZoqcA8i^xB%;xKtMirfq;;W5Ho*cx3Ja+w!2IQ0YNMP)=fbLke^!Wy4Zlc1N#De z9}ch(K*NGUSm|0C0_!w^{Xh)t2U%9lukbe3_6{KL-ur-n;01$#7-SX|GuzqN83Nx+ z^y_{he-#sm@IaRpy{`sezi#RJfP4YF0TCXB2A6Frls?V0Ts>cDuw4D~Qulw;*ewy2 zGM1TWjyEHnSjeLI&bz2pm4+8CaEpOcgs`LQiI4w7HKd zC3>vT-n?x#3Uy!eT*szQE8kXgPn#Gy!UrWe3Z#VNQ0vTO1D;T|epKk`;@?jYQWyetF4J6D;K zCklIES%{1p)acU2!yYY}%XKyMG*&@dmvY!@n7FdH>Bx$bc!kzHRoQjx z1iOD~A9(-+fOt;fE5`7i%Ge*&bcU0eoJ4S^LH>3Vq&*(u3Z~+$aYhd2rc#Y@P7XSl0y5EJY*K~0{AvNChU^uI z^G(7FHisN)BG&N{H&)96S&6eQ$`d=Y7a0tnthTZQ{GxrNapY%81dv-?O{5#)GOE3g zqI!GiG_jOz9Fv?j&G9F5uG-Dv$zPiEg zk=X9--srx~W0N0y<$ z*^H|VVsWlk-7apIYIlb*#wuIjm|M5S$x_YM%SW5J06qrDBfmz?*XZ(^qHKe8?ht8PKC_E73_ zdO6#bKG~UXTe$SUXtD>2AELbbim-z+!PTesaC|H@(32MPLsTn2(vTj%7ZEc|GP7$f znX948arVLBrs78l?7gse6u?y+A>S);Q9Wia>4{m5qQP@`Jpl%$l@; zw}0GvRaU9=d{H{2x&m%VS$bh&yr2A(K>=Mo<9Z5wp+B2+Ck#i?>=r#^GW{$B zrB0Cuf*u8T(MhtAb3)H8X@Sq}t=3TCJBBjsTUM-nN7vT{!1q`D$+4*7jz>gSPoD6_ zk402&Zy{|3Y$!D6pK*lW%ood;_;4C~Mq%;xzzq?vbVhn-7Il@DOxf#`Hy?RpbXdP{ zYA-pS^LA&x;{;pl0t9tVR?*sl=}=49fte>Bv@GXclrMyS4SHvhvTwV`kqtYsJ=@E& zg(Jk4Iu@B@0gu5V7N#n)vxfI z*VoV#r>BtPuNZJG4DS31$!u~^GSW~1+)4qoM+Mob&FEW>ic-sv% zwe~LD%yxz~=0$g7_`{h7DTSFqp$NhJ4VQKbQnD*_G3zrsob~Y6g;8i z7)-f%wPf)A&wV+%W3V?0k2C4QtZhBQ{laAaMWyZ*HdvY zO%Simkw58!G@7w@o08n=6Bb?IW?i!G=`*4pJ}^Fn)6&J^TPTiI(_2{J)Pz_N;?#;+ zAmKC)TeziHsaf)9*7RH2u2mOUVy@LESQ@T1GF!lLRY{ycbJew;dU4gNoKUwlSf6rw z)aaa`dmvK!RnEvfZMVY4^F4eLF#PN_Y=ar;6P`G&$e>inAZj!OYnDP?YidwJMPkrg zPGDGHo-<^$%rDb03J;O=Y8U=#KOp_9peuPL=CF_hBIf+#fC)`U*yIsSg2XrmO%`RB zYDF|0M9Te$a<=i)X-c@>@__vKSMF+&ukh{=JrCaYFA|7v@`9I> z1@75V-nhFu&o3Q-<%Y{feSqcQ%QA#Y@EoqA>aCoJ5_Y@X{B+uDQ{K~2YiVRjkw^Iz zGZ>}dI~c{Ax9jn@rB;LoiqJmWt>@T#`C?Fh+FXip+lt+VGql=GeW&b@jvGPUb<@7~%W(FJNV7XcnG9vSQ79qY>(%PGq#>xQAPlKX1f z+e$`^WJA(FF!qQYa~ZXcMz$UDI7O!XC7&OBZ6!>S($l9VJg;L3DD5sP>XmCKhNL}) zuIp!TQSbCV92+vFBcwG`S7FF1{9pE823be9h!JOTT$=jZdkZj{hpH9 z`wm)d3@P#IbO8&XZytlyjo7g4pNTUphcix(Gm4o$td>5`o<8cDJ_)WVN=wt@-QBO* zQ=mDpui2fT**~w@Tdz5IdvgF$(;So5l%mm;u-cTt*%ZgKHVMWh>W#OfiH*>d&e+ z;7(k&ZE~lM=s(zQ~X7UB1YPM9A`o%|}Pz`Y9Ii#F~m0FzwT2 zDuj|U6}DH8=95sLPGzaf7(Qg7ya=7VQt-MZT+ily{%Nc+{#t4O65jyKUF6o zSZYGX+a}Q(u0Zjxu)Rh_Ec7`$ckeyM$XMs z>4$x8)%Gxr{SYa5W3pG}3IsU4Y@`h27MgZHcR0yRAsE$$2%&q~``x*TYeqJdYlG^` z^|`T^R2hUVbSd#KKCLcI4C;C@IWAUf>z}jQz>q|_Mlq&vDR?EL9=yfUBW`q2pP(UM z&n{!ez3e1=sGPYfilYp;A<94v(huEy4T?oS=>Ow}zuzw@RLp&rOzoCLtNGSbRpm0t zTO}obBW!0kjm_KS$h^$V$}TFCd{h~iJm6r&5LV|>&1PUUFI6t5nN~xJ^Od11kBfU!VfowagHw{^#=cG^Z zjM3Bk!DI(aS9{05@cH^90;7+}19KEZ^x)9GZRVC31by-+SVIh%m_Zw1x>&hz(yVs_ zbcw?|e_s)L$ypCh4+cA&JGT`!DHq&{Y1-Z5%GIgN<#5-zwY?`tILcM>(&faHY?Kq4 zTCU`sY_zwJgO9sbc1^+V$N1Wn2IZ~pJo=R$1ABCoq*14=-nR(X3avrQe7mvaavlfg zhrV=+)8||(&XTmd+#TGdYp-~LobTx;UyTRYOsX|9)jFIl-h@mYx1Eb(93g6cnuJbX zm$>geylAoW=tNGwu?(hlWI?(_1GxHnVYd*y#`9qJ=`{4n<2}ekzS6tz`@YTHyg{jqPjU;m7g!#2%r0CR zyCfcd8=TwR*j`5}nET^>;?$;Tm>Ip$%0VgagPOkgWQFPTZP0!LDv-(qym~P?sIqD7ZyU7*tQ0kLA^G*+Hz$hS5Z58Y8GQ(U@Vl9VF z`?R(tW{!?kK6EBNr@RRd+lT~b5HnqhmgWGdVvDDacGtMjBROG-aV!+iER1u~>AnA_^f*_I*F9>*e6y8ou=G~r_eW9#F1U@)4^_iv zPtl|JCMF}hCtlhac@2JGvl9-%yG_Lrv4`fd2kEo>GqQ)(vIpC2YrT!x%`ws%6d{o!x@zyn|rW&2}MeHMfxemS+v7ld zN_$j)Z5DWtipKp{?3NN>8FW9Y(Kq}&I^2X83;p*{;DKmB#ycb{{I_13&>C@F8~zw{ zi9&=K=rAil7WLK`0gi(K!$yZDTZ8fpJ_v3H$QuBsS({w)K|1Pm^2p|EGr;_aF_}*g z%|P-aVz{t~E}{L$$I;AfHK#I(u};C^CxeDZ_AzE|88)4!FRDX&iB<8qoTJ;>{uqWr zD_4rq$iw<R+=bVU<^@%<8V)N6-%S4Q<_8R;16bNRadB+gDX8J_#^@Lxj|ErP?B zLO`bO>+oauTPy&`I%Ev7+`joM(yyb!WKzo^bk;Ez^_Qwsa$hMPJz!3J5M~IS-c#tp z7+|0o3rWm*cRa_saWOdMl`^3BbBtJY@%UEQu>^KLw*Mi@oZXPho03@=os~ zyI00{3QTAhUo(nz{mFYUyBRcW?#WO1RqzU%4h)fIlP7+0ivB?|k4*F>R}V7{Ab|=s z*8omcA>D-zvsJCZB-}DAs95N}%6+`*2@1rY<>wKOT!G0W9Z>}4_#)ArjDg~Ke74Yr z=aQdtQ0!2iWeQ?NtLU4Qt+s7usE8%)9#XSH26x>2|6zY!J6cxogLd`ej$&Hld4pWY;ZRK{qjINU$LM4KwU+<7 zo)(TiphRWl?9swlGEBeOna8Z{&Ep1U|0R~)>)s<-D}6_=Nu{)LBLzL=u>Z9`d0kxL zP9wEO#dJi5S}N@N98YEbz;kaqk(V6dTuJ7l_h(4@d55_!&t^)IGu}ADBsVW3^V3$p^^>end;vi^A+Js;a+~dhUX;?yPs{`C(h*&^td-YL>nem)Ml;O(rR3+yp2$mK zd~N4KicT6`8aq{XbU&3YIp^AKJY{udxz_Ut#l~W3dsaGyR}H5l{-m1Wd2_?dO(z>i ze!!ay?k5WAgmsb78bFyy=v@BW#B}a!B>d}1%qP;Eo29a`)%NmL>(RC*CGF2t702E& za(U@lEM|R?86-U&!jS;>JmDA9sF*yOgVt&PxN*t|011&8E`aR$4&nv!{yc%|5}@+* zxB{^5FqGG$;(Bf!?74ULu6=V))5+ePVq@pc*|bp!NqQY^>+d=6yup_SEZ%$)rU~tg zNEeOA5F?J`rzrR=g*hVse*-rO&Xrl;NQb{O_+IaB#JidQf?pGcg*69AG>4Bi`%yNB zmNf^N1GV7sIGlk!5s*hV+E6yyayr|PdH#usT>O84U5KO}gF^BMQz4^&%Gi!65G^uy zUA4D_w08`Di;3VxmyG5yeV$*mGE~B8_MhMz0ZV8^E|ZBuHby*O0Z2{@u;xqnq|D^f zIB*2D;153jkjsK#+LOhy#fUKFS4f>sM>Cj;Rjw<9J2jDkU=b=8&Hi8Eh)5`J&%Enl1w)+mpwi`>W zzqOz6v|w(ZXbzL9Vm?wr2|u%$Y}ktEn<~XGv_7Ho#3n(l%7n8pKu&ukG>Ly95WpON z2c(JxY|i9|wqybr0}4O}GvQt8fvO0o&YPAeeSQ|s_orw`#r-R|vMC2&7Ij##bN+(P z;N^z&46X!ID)`!6jfro6qSpnQ3V~sVdt^5N7_n!$dTY4` zuiLu9+WJP@ddkL(;43dV>{A9k(5j+^P->DJ{lbr~fwh#X!(@Cx&VrkhC+$0#A6r*e zk=uLEd^x1e_Wwfha56h&2lq<@e+W}XOTSiCs25vZDHc{QxsAim@#7Q+*1&t@1?&Lq zI$ArqjI(4gUW&K}Uqh1omy@Px2KJHP1jrdLlFmUM6 zo#fHKc(R2Z`l0ue7$_o=C{TD2$BKPQkdH5fHT)MXiB?}Cpr1MwZ^Tptj#-zF`u%ZR z2W9QNG0|@>V-wyWs+I=d`#D}LWgWm_7WM3B?9w3Es&kA%EP@`0AhfBEj310pFt`6T z69FF@$&zxmfk7Wr{bGNf@6KAx*Je@Yq~IZBRBQ6mU=&S8yP8d zUiwohMC;DOzjUZ(@v98@ObPyh+1nv0FcOFLt`RIRToDmr_M2QS*9Ue1#(s^!vuf=x zajID?69JvCz&qC1`LYM3Z`F)?VM19#R~Y{>OjjJ$nqX1@hbMP37I0K1qL4DMlRG(A z1*Mnz|2@#MD{+Q zeM#uNYxGd7aAFE;@`x^YLxOL_@PtNK#fN$$&1#LeY|H&BIH#<14J7BNKh z>ne}z>N<@OTutp_aouNZJ|F4S?LT*v$25I{MQT(%1Z%DqnNBpByhuNa5o(^!V@uU% zOWbA4L}rVLV@pvO+EbLahxDXgOzFtnSo^~A7jA5a?s+7^>qR2%%&Eb?;~4b_+4sHk z7_m^~PtF5`s;`7`$zv#m3=zj;UrB3SQh#X{7d~qE}o$OX0*KIg66JB^)aJQU&HQ6uM&jPYE+o&hT5kl{OCB1PxRf11Dv6#s|$ zn}WBI#N?j>bW#GhJuj{MiJP?<_Vd?{>TjG2S16V^yo0bz06BNRK8# z1_9Ah>;u_e*5WA1bTClsK2 zpYQVliWrGR7-={^TAW;5A*d!kkIPgsn=nDNh(W1XoVip1C>wI_QzeK1a8mgaG5P36`xsie+|7!D2$2!{j*vL| zzh3^-W(vUrOgZG^CeknrCSsK8kQsiv@%CmKhW%nBk#rhxjzpey&CfGYVwb7KbpH&$ z8N>gF!G1|TuMyc@^yhkwVniVxsGQbGDZ}cN9tVdUJU7m~IurgYrhtz+b#5Ydpm@7` zsnr362ts22x%ZA~H{LzpMyXEX??{{2FH&k3pPAN2$!zQKAWOAMYn3mfO16;X)mQ1X zzes3kajWx$8}{Ii8q!ZB>xSY7&D*F$3Wx{@eJej7gs65Y*%)-3O7ddki?OhBDyMx-#`HpSC%rjc&epfHo1z!B1K8`a&XA>}{FLA&4Q7vt z;NzdJA&B`*A1g{4s3NBs#k%vS0p-@ z%$yHFg#7v&{|$Kjn9C-uFP6fE&#l0E{U85D_J0M_U5AM+$%!3{iEYh^T@RWqez%zZ z|B+Sviz_}|{vq};x`ucNXRn64>i6Gr&&``y{i zj#$K&Y0!ph(3XqLhLFsbp(uK|Bz@pNcg24{sx1P-1%WH9F>xM-6c2c~F4Zo^GKHlDtkH>sLX&uFcnsTY^t2 zaGizz847|_h`|L#|C_m~K353;7xoWdDLXjD^DI}NcQvZ{^UK4TZfn!Ac!&W-|cRJxutLopFRJqapZGmjZk7MD5L71)gUh2v^ zCf?IB>C2MMS7yyu9J7nFt2Y8Yv zV|;C-2?ME&5+3LO%>y~ftcCLM9@e|p!J>*5X?qCfv|b<6L~dM82c8WBX_}-_HQULV z>a_wyOmIwCb`ibb*ncxn|0fV}-aOa#>)xSzH~RaKAWtNq`PL<4 ze;0{z(ayv^S7{z_u->llJ|uEAdr6;^!W6{o?QOnn&6z(-+u3ctY(7~(unRrh>&j&r z9u~6n3;60&?_o^Vaq@XIGBn9VtG~6Zl1`#T^fv*Zf}Z)+M^L}=KCWSnu4JNNQH@@> z`9eRzO{*ovJ>J;&FA1m(Kf1yq%=pcEpRlDdx+&!YZ3ZZJp~Nc)>nk+tYw0EPL;Ae6 zUsL1XnU=riL;u1)BmjonI4X8NWV%gKv`G>{qh_D&oxbXD?QY+?A zWQb-ta`MatXd|IbIDc4g7=63vRNgo=F$Q%9tTG;Nvp8;PYIrKI8c38IK6qC*2;q}x$;HPJ z7jb&M*-6EC^A>(S%<7mY=$H>qP;*lZK_UtXi)yd>LiOLov}+c%#XcC10Z^PTF*g!#5H?W)#w@c> z(>_Xvw2-ZyKCZf5(m%A=b=6ihudQeH&sRui_Lr@g)v8%6$I=ZlC!}2k*hJF-7ZBaK zR=Og!AA#;7a{*pd6m<#tE_EltMw0c!M$LYs3pYNEgfx5-IMH6Y8XuvY9&wB$bV+Yl2MUG2QpG$D=3=p5B*wpZv>S(?`^T(L5RNzzeBNL9WnB*SUyY2j z?eeVXFowU(%3$Yu@1#q-Q8i#jCXmnIm+$>gRx&X4hkqT?a)#hBV*C=rdua^l(Rswq z8Z>`VYyEK+?!qG)+F0agZJ)QVL|sN!ZVj;aEK(ZYGut;j&z;<9W+X4pN*`+kLS$y3 z9jhzLr6v}B^Q5RNKbvSWFkO`FoJElIlo-aSeH4yP+9KRnEdKH&ihv){jCN8G)6N9F z^7`-`fu!<4p>l1uP?hLdZVZO~D+y=}qw(m2usq)JFf~ z0kzFNjg!n3Eo}FYsBsS!oA})J<&h+cmk0jHov_<>f$Kktrd zOoNa9m_4$_MV7?WGg>b1xsQfpaQdfldaH2;FVnk1())(f`ALiHu!`&) z6aLKE?89yR;jERZjsq<<#60sJN0r-R8y%@(LU7?$@Dp@Lb@c>&knk% zzd7m6y?T%T(Aq6DZUH-^Bzi8B zObO0jeqA;sH+yVeZwoouhe{Nl2?C%au|Pmp&z!N0v>>%U((uJPZRxO&VP`jX-JkKT z(`xf==ujLvscIXNO9v~YF_2b1sp3QA;d|*lV(9}E2KIzmwv2y}!{1r@AWFh@c0atE zJ<-S=lgMq=$XyrdEkWrW1L;q33hWWH|KkLiuZ7hfsnr3RRe??uziT65sw8=-0+}Wv z3~*Y6to>A1kEu&^+z#CfP8oxR?nUL}r(+*#FtYj>LJh|YC9j7cgg*eFT|;{Q?7`4L z{X*QZ{&MaIQN0=58R2OWA$sDx9YjEKoPF^Y3lGIBS&AMhUW)IPI@jgVyA_=;&}%6c z(Iew8D&K2k|MArwKL^jB-HtD3u9NmNzNE6#-e;L7NHuyxLHR)f(I3B9KeGqNv5hWk zi~W1plyHxuw~05>6P!5=W#f9ygLV`HCDT>5ueP6q@?!N|WYj{n4$ z`d2CSuK@55#nK#-)*Pr2lST9^tNSPug-IwGs{@zXu%+&p!Izc|it+;`G-Zrc zOHCE@e6iI!Ru6ErBOl$iUraoIGBdsL%TiKUttf-(0qtdG9iWK?W7a@cG$r&+AAs_U3+A>EOb!YwB+G^4aS{!sVd8R5K+9e%hetC z5UOHP)rnx3{8%)^$Su$IE0^+h8DoHcb+&kR+k)roG1#=|_EH)TggmJl!c9=v)Kj=7Rdv&I@`On>BtV=Xg)k-R# zHcRrd^Tqrec!|{C4d9xb{_FMXTz}^`QgQS$^e1VN;DPGH0}xt8#^mx4C_G;t38va11_sj{?r|4wfMuztH> zzn*-*^>*2C-6$g#r{4|$@I-4~M_s>{0qz+4opqmdA*EYBQhM=pKJRz~n%nF;7k@f3 z=TVUVdz~#zBjuLbPZgtYE|~xA-lYa9au;@@5FOnfO2r1hw&&$RA!WZnbdrve;_yV= zckID^-`krPpgRi|*6{M$exP+udpK~=pXHu3`*z7>_(DE_B=Z^Ii9#zHZWz!i|NW?z z;Od@ofVS}DB{i(xzI@$tk>&cWW1K*JXZ_$|5!pFn2@ZC)e32Vak^b{XYe#a;Pt5X@ zY)vj&!0VCxZeHSBRC}$D2@tI3yJmsk!E3(O49OoU7c2zGrsnim93R_ z!zXMRG8IU}a$?W3=^+`h8Mo7o!9AYJj9cZQflOg_(qlDi%crdMBFa}zfzkPADt28HLr&;1u-TRn>l3b;FYjy_~m^v=@^ny_V+N?cSx z@Ck|sPT@AINM#!h9;<`IaQG}m;+uTDMrCHdD8^w^-l2xL6{Nb17VdI^^9MC}j zj7tb&uaT|JBWCp1XM{orB*ja{_vYeiPEvT@l$O#pIp}KHja;ma zl||4~KC@x^i`7h3^0{c|No30f1GMWDN?pvLJH^|06^V+$i_K$vf|ImHk;}l5I69(b zn?E@)fBi9j6G)4Ac(40zzkhz4Lfq$)%!9{T_>eVi)~gR7q_G|;vye=j<;fQxYI*}i9epyc zT$S|5u2oXelPOk5@m%8w$R=Eo%>)}Z)|XQBZzpahBr3qCCX39%0%$nuQ(2=9CJQZk z3M69$IORs>R)4Zc7UNtbQoZb31*(MAROT))#>ZT0oQ&)&l(}$eozTo*stxOtoPBkS zJPbh8@>C)mx$-P6+*l+1P*ZEok}f%h`;a~{91=V560b(Cv>Jb-uljjGC>)Z_Z(ZZ~g z2N^*&jv9F-k&oo)bIIh>#R4HA*P>Bb>msOAmrAboLr+k}B{FzQs~O5r#7{MmM7|+$ zPhj?0tE`M)8_~qyh~2+_*HDouF+A#2q+5=>724)g7Af!-A^CA521~3RgB_hry1tJccaxCEFxY~ zQI16u(gH&^WM?Y>dc14XC;39@QMGyE4NJqF^3!{o8^>)dyAa)2z%?ED&&=BJYpF^O zZXuH*&3E4`N)E=iD#?=bXm1kJsRd~e%$7T>QBJ)^H258`#cNv^>n7BWxrZH{QFZ*ZPSR$+J> zouo$xsaDZTnOrxp2554$M%wXdaf5lA%x$&mRVZA|?`+WUj;T=@cTkR}C@K;@)OB57 z2I?37^oCSW@>(-abr)Fh#*BwB8Py|Lu#9s$`^!1ShEwYf#t-#ayRAYz4Z>RTF!QLl zLK)w7j$3{dRGg=cwd7dW91XM-Oq6Q;WZ{UisvJD_aPxzoxpnvkKcD2-q*hs(8etT6 ztly9_YUI;wg_q`fP~vK(oVM7ZX3QU62@Y<^(%Y3neerSrL=d)*t`!m6b{wxygrOFn zJZ1(*L_MC7OcoJ!oYGu4?4Qw$l(QLpM^`I8*k(F&JoxkEb+p@CQ(%$RBL|vdXTtZjs(pq2O!C!!8?XYECvrk-+ zZ0_LjULez4Q+94+d0#+UU35zMrLi%Ou zY0j8vX@E`Nux`=F7|CroNuT3sp~H~!s{h9D9j?w-@|?6KWNfRjiG1v+u=#jw&!|~# zYzM7bXzWK~>;Bk*aDaMT^ZM8+d^6G5&&cLos;!CUGOE3b)}K`S zUQIew)KJ8rqhd&6Jy)^PGu3{3@tWnI4GXv^C4@?b%yzJqld$Cdne$7S45f~VGgKv7 z#90>-KQRP28pcZMaiv@(YfC%b zT)93j4O8x+>KRuStN3ZPEpA}nUGTVPElV7K)=E(BM^%DSQg0T87y(rtV-D~3Tzykr zbZ$UBTwyULTChm#wg4VPat||FwMu1@c}jVJ;N8`F@$-&GcvFW0)Lw0S&(SXmaie_k ztg|17KQccL27Q3_r^6wk@1Y1_PY#0}tF58iL~7874ArNFUy9l)eyvl&IkfHe>ZicN zjPV~Eia?NKyAraEk3^Dtw|uGOVfe5GpOrA>xe^3QCUyt}htg z)k@DGoGQ|c{kQW!tGIe?i;*2 zvXk>F-U(<8`g1PQb2Yx-EBpIL_V~Q9Ja()dj7Ud@$lbL`7ini6f5w<`wRC?9;Q5S$ z$Mh&znk~X>JsR7Nc*-%#=9#uo^YNce-Ht4Fd9KK;?3-ij2i#l%dR$|@A2PR~;xtl=em!yVrNiD)YOOErqj!*MH6H*JYQ_nIq zYE_`pXq6;nPEwrGozF>MYo9Wo&w`>%@!{Hy_i~u>e4ibf!OZB^;V7#W-Q&ge{@I+F z=cj!Xcz7pY8J$1?8cHmVgd!~;i_(^sPhu(>8&13n7r38IC5-ZZ+Dpv&*UVaVk`KK^ zt_Ggc9yeYcpv`Zjb1W@7kH4oXt%WX2Hm_#kSB<)rjf7hos-?%~wC*8I#`k!okFs2X z;9gF&oDMu)>duJ72~@`!pY8x|#imQsXGgPtCy*`w^}`$t?Dm0lCci6i6ZN%PX1`|U zuEN{_BaeVo+AcU2Pz~hyzh1&;JY=3%``|x-etH>-Djt)02~d6+o9ws<+#K6{Twle1 zIX&ksvOyeB`pI!NL1{!7+g!0R9ccX~4tlWqZ4rj)jhEr9 zWOUQ%eZ=+*3R7Vvl0wWzbhGLG7MB$u=vEY$?sb!YEHI4cRU&P){!ADD}@QEo;HZ2{QX8W|l83 zja3$sCN)1dZe(_l-<;Yy%THaUPCbug&ZHc3&y0`JAPN@S|^+~XcE4hDD>7< zli5&yNHy-qq+u^hRz=1CZZvh#6nDV1eL+82s};(#UM(%dVj7K1qaJP->^ap^2NwDy z?31r2x3ftw?a7>U=gRkWj1uk@|LK*o_5;rqW1eCnlj1y%g9E6H3$79cY3ZMJkLfh2 zw8u4%r4?@4vyNn}4!s^4&Qn^>jtF44Ul8cT5pF-u>2tI2P9t0E949nZ-cG#m;ZMnR z-oUiqYIIJEc;7%u+{(OF$>u=!GX#>uhM`p0I1{3T(1*&Spiv4}OYg*Qsf394)oodW zNW_;ahAXAc&}kiu55gLL?iDL!sMcg3={DG>K&MV9;wlGzO0~QYh22#aoI6N`MMy4P z8&ZG8&ux$ks`+I7_Ji)S&U^a9uz05R0Ti5X zVa_Kud`Y|j89Z@3ezng~d%>|=6R|!paG>~Deuowxm~;gszr;&QlIqRMA{Fb4jUAk> z8PKScUB|k&b((zoO?g>*S-N=CX~Ic3Z3_Q0^ebpDfDHw$^%L}d_xb%` z%mo|tqJ3vfRJT@B)-@;(v&%;WJ8z81o;uk#$#->ic#pYU; zrdk#@-d%ludz&}EC^^@OHJFwq8<|!7ksw_SLL|R+d)9mq`{0&))QB|R+ zm7o$6rl5j6r!Y%Sdw7O4@({%5AR~VGBi-_4K4lAfP7U#340>`=>LMud6H)3i$P_M> z6j#qKLA#m(IWj+yhA!IuvJ;E-;c{Sl*but$Uhqs!f?hmDwxrulX+Qs8LOWJOl8Q zC^DYVM58dus+s54uJT(j#qQO#2iiLlO-WA-LoR37k2v?xI^CVK@f&H(ZLA#wi#?*A zwC82Vo-hDqiOtx9`rKFHJB{UYgEv5pw|i%jvH26xE4U4X4 z_8-jwaKr$qHPz{$y%e}^!P0PLegDZFR$M(RN4TcdR_6=pZGnQC)`{DM$y$yLge46IQn6*<9 zXUO4oZ9C`awNwAKwfo4sLW5`FXS*}})5+mR#s!egSlxV=dKB95$by~bqx>UcHZ^UG z48)9(biqxzTx-(lRk0gfk|!f1PqL7X6v55-+)dwunl{jgb>}G)0qr;|p z3#;h8l;7D}kFDE1Bn4kBw<+O}wj*Bn-; z3V1)e`vAA@PR^wb$^g+$%;(6%zU!vRD0G{ooy)Y#R=T_W7gq3LYbu352Y)M(t;D}FE8!s!A6LEZ^H z1v*i0lh=ekusFavz}oMek9r((EOuOSY^o-woW5UExQwE@)>DZKdJ-O21t#4uo9?q+ z2n!|^*c>I#+vWVaYGRFW{q0!DJd3_EC2NfEI_z=YLs;LLRcDF&)XPc2-G_U`$~vl= zY_UqLkP-vdBZ6(!~A)=z2C`4%S@-% z|0KTu$&UcRZ_=vzFPvMfY$2P9|@~N%dFc04zvaCDKoD za>~p_2g%`;$&|oHMo`;xweZe;2C35Y?91IQagz@zWZ!l)agC@FpjHL8g_c~nXJ4}_G4Bpnp2=9lB2 zyAjw4ATKnuM~S}J@cHSJ?^U6&+_j@4S{)gWQJWmdvulDTBKc$lMB+NU#TH z_tiuL(zulCH?Bk13S!3p$Jjdu*RnnD!*NdR!}b62|`NrH@IGh$jI4 zJ^pQqSg)TyE?lqMN;j%E)`OlMc#k`-*^k>~FEqk6n1>0 z9^R!-kE7qBgfB4pL5X}8ys9u*jAI7EiQ;|hl~Xv7!T}XqgxB^Bq+b{am-4-kS;EzB znNpX(pTKxlDv&*+RIyY%yCS=@8pf5emb>P*?YE=f?EeDXS5@D8r*!EU|8_OXu4BAN zzXNYfQmmFg_WD@=h_OJilgJE)S!d8%U=ids+;tw3l#lk(XfaSfdmT;QSNAwGW&fJ) zeoNy?PYHf2#%*b<&<$;QFnE!u^>=>re3Acx?K#`gkKBguc+g?XLl{8*OGvdqX>h=` zq3&^%iCN=Y76+YLs%TKAuDtR7z>HYB#dCzOi(@j<8Zlt+|~{HTh(xoNnIqYlbOX zsfxrso_kK`sPtrJR*QuWeXad)kC@dAd%7#KC}N-iAo&RNj-C}#d@{mxbgFPyWBLfC z1(Aofa@X=6&db!tFL#pmCi4}vIX$~>Bs=nQ$rj#zTgGuQD{Pl=!fUFWFNYWdWXi#+ zmf3MZ72R>WYgwNX<-ka7WY5}uWrbtR-BzR2+c?#H7}JaPI@ zf;00c`Dpv}8pUrsh)!X2NKch6Imwog~4GD{jP{ZtV;Oq7M}i@ z96#Oa>-pChJqXllw;%%c-xkW}dAuR|NGaI*^ zXGZU9V|ygYAMBgka+o~~o?^=Vg+JloL=Jd@Kgu~hm@=}pM#QXMeAke&P$nIx^(JF< zH>m7pIF8wEOV1PoyB*@4YuHs=LxsBwGBQB{GZkbnigv@Y_KEkl6Fupo(}r#%Z6laG zVWxNC_gO>qPc-tS(7hcMB{&yPcldw7*!ZG)LTHeH?vyeM(79G8e|!sY7?` z8$@F2uk4=zcR`H8Q&erenxD?}_@)ah+>?%h>A$Vo7aKpZ z1su2M-70fGjU%da)whUf9!H`ya)mdGGvh1$wt}N{AZK-GX!u|~-wivQsS`Np+<_)- zvmmJnbNEE5Kw|cZ8?0xsVxrAM>c&F?2cDT*+B_6GtqKeM$S`9PMV-@OeQEmR`5M36 z9JkbT8)G={YKCfcEIu!1 zvU~OyO|Lo!(R8#M%DDQ#0LJV?bzAbxioMnYT}+kZvmU%95v{aN_sw=A-LT(f@~yF z6|PK{#JnuL6a%+g0l(-7=@Y)E)TUJ*O!}izsBJ3Xh42ITGX%|Ywg)N)WTsz38D#vZ zu6g%Q6Ch#g)J;mocjoMHO_MR9Ic4MOKFo&pR`o^H*%wKLHc+(hK#nmsqxi-ABcc7) zpYqLLcI0?3@>cl;^8=cDXZ9YZO&m{t3p=ojSkBcMK5Qyo!qrv&sh4v%?TjXYR=>VggVtNLJ8)PR6x9Y4T@iypn`Be^d>5pj{m4*RxU>BM* z&lB|cIWs!qN#eL1nuJX^rnK-PvMOL!xvz0TZpj~iD0qGhzQYU}LJvAZ8`&VeMY)uP z|CUR#WVbf`A}Y@U+4^HC#16d^7CXY)dkCDci~Sc@92evk9OSeoXIfGCoBR!03K9m3tMcXN zD(n+eQgu+nKJ1XV8y?TT^-pO%3eA1{TPi2AX~x9BHwcLp;)Js(7KE+52H0hTnWg?k zY_oj}{9bU=D_Acq9enuUY=O`XtFySaaDkQ8i@YlzR1OKs(-iHp<0~!0YQSPH5wBp& z)eCctF@z7Yi=mSppL<%vqdl7Qo}2$SNFp(D@h+4+aJ;!hS~Yf-vDvot?guw#f)$+` z%I)L@R|6UEZWsFix*Pr`dyClOhyM;{H5$v<)oaLkyZ&%XB33}?>Q%Yn?;0}Gg?xZG zBwJJ`ygO?GbR9ho5nG`-HJKdBwU&%C>L!rs5BA63Vm#os>p95)UR;A-COYoNh0jKTu3>*nu+I!D(7HU8pB?#xfsy^OB+? z2uhujJ4zn}kz=d(U9?qAE-w1xn@|8s!*U$cuiM`AK30}eIo+*?wZe4aqzl4OH>)Fk zCQ#r0=AqEpYW!z!d~yDt1nfm06JwgU$tE<}mM*0xwAqo+N~|mq4shKd*CEgI>ccKx zc&`i-Q??xyGw3ZoytkTJ7N{Q}n}UC-yuf&V@IwA4IpvfL^4iyYzztgf2PeT8ozxS!$aBa@FEM+ngNKD_b zagB?M3{Bk0L=%J$Z?VH(v+vmXZ$?sGuse)man898lIXr@qZj$mv3uT7^}Wa0Vzf-b zyuh9bg56Oa*5|$TpsBEJkjBXdje+k=zs$2Jy5<_GIIo7yS-DXcS0qZ4wu$D~=~g z;EvVFfj5%JD6XBL0iu2$O{S~3Fyiib8&hz>XPVdv)nJgO@gKowa_-z1wkyjZeaLeI0nZ9L76WdG~eJ|HYC3=9bh z+39%8RosyDi#+uH+I5=y+2?r+5*7&cPrt|R60`I9uFXcuv`ZRDleMHKDdlGKWgxuD z{O0E#B;8iM;RH*H#k-v*HrKS;(TYmb*GC{O)gph)5GNxG{&F3dWW7RjRwl@&J$V`zkQYXvu17k*L^+m~280VHclA@B_rDHOr9a8WW_=E#k}})b>nb zXAdNXu zYKsoFjivSF#79B;PT1lb=pkSQcpgN8K9EcX3;{&{pM!)LcLey*1i-;^U@(MG31?Cd zz!Pr1kkY^KU!aAC??KnHR*buFn7n##pciKRPdDjx{1>~|9}WX=Lu@CXesAbG9B4-I z=00{i5Bpkt$RF5Z@+Llhrri?vGVSPhk1V?9uhnkc*dM@5wQ)4$T)MA2GKM}Ib(PVb z(_q;g{YG!N7F3Kq@n+}jqe(k~?kFVU{d#}^1^JYA)-qG6uT?wz8?+Xb%e`O+W`UL@&YO0y zO8v-}1Z}2hUM?gvhl`{GhHVY2wWJ!x$_GstW-K+47N9HM-Fw3|4?WLj?%s@0>1T*U zGFIXjxf4Fn2s1_H7L^RN%esb2vv8eLS;-bi%qEDMrBMMg^>b{xfX!mmCu1d?e##+? z{sOo}WXyKiO1@cE8yMYYUI^16M$99HZjx9U)aO{G1KqF{yQV+GF=f|hikutG8f|3`gMj_8gqnpz5(6e5qCgsr~+A7X+DkGR+scMzTV+p}rnU?KC^0Vnt z*C**K*jMnDEtdedfggokSN@W(Nf|=SM_bSXfzD zcxxJ|!;s@IT`z!3WUMgll(>Sd02eLv5QscL2N7l{@)tRJxWR4sDv=N2o0&|hb`14z z6FcCGaZ?!S@zA=T7{1B2qYkenRdJL?#aiTw4#`ys%y+o2&0dl!3yqYBiTB0=JhU)} zAnE|!IGDpohF2;GuFjtlIUbTtZ`IZ%E6vJQC{z2T1;QUvjq@At0ywBW=%ItQgLyC2 zKMPb@seEWf2J!!}-W7dhauI*gkpAKQWBw}ZF7hdvll+x(Y!)h^CeXEWjAzwHOs0xk zp?Im(p&Ywj$fNw%B6qzOzAVr}4z7}RN%bs@qhffmm7|lTP}4G%~^U&j&;e} zSyj3m(n4d3AP=9~i7tqKa>z?c4~gVEIQ|a#u>;9m^^f1vq<>^dsR64ZM(Yg^b*S<$yF7VX1^XvlYt(E?lRyg612PPG&nG zK#*n~+O%<=T|9>jw8;c(9#lPJb7vN;t!`w5S)uJSvw&HfUezqf8a#J4bD>^44NsP{`uwLR+MBk}~poAxL;4 z49$e1s5T=9@m4@O#W)KeFomOqes}jd)6lq1kfHcsNm+>yb3K*$l zjG|CfeR1DCJCO~@&+<0a}wKv)3-4FQrfrwnF?_37!*Oc2~ob zYT!L6SuSd9SkalPZYaB^SOu5Xh0z)_*-?DKUIH-S#}x}NY{zvXy#$AvB^NOy4?uu9KM1o@;ND%{QLwQC|%gzh+U{%NL^T6!p`{8P{7|S z9(f#$8GaMniDyxH{`U{D4>d0<8QXBy@M=WLAqx3oOvpS(eB$dB#k8FM2h=x#H<21w zu`pqv0yWe?rOP8{=b7sr#RM&Jjf6iE3E~Oj4B{k- zfONq9IA9DQ&QN>BtZH(!UgJ)@mH=2=Uj!tII}q2V0}>}a8Ee~gUs+lDk3HGoV~@Fb zb&t8=_WQJMeyPE$1UBs|-*Bw{U|CSj8cpI#RKbh`DL+yi`{TTQte$h+!8I1WIbEzZ zH3`0XE`U{N?!gyJE)&@(Vq2b*QI^b6mia~|F_0u3vE=iT?e;rY?M>PDZhIdyy=Ju@Z@~2;MkvJptvN$o5#bSDdUvjlYOe6Q5+G zf@M>@Vgd=0{#c>_d9prwnjOySxp3=c((6&&i&l?n)oK$>5(}Hk>YW>Th);nU~!HRsJ&<^r-z=F|02)H@N?{T5aHDMr#Pb+z2=N#Gb-Sucu4 zTwxusSsz&w{ii*4y!s$1+9V} z>}jFkZt#(HU=wv9m30ub`ncP@5S_u)t0As+px62sPkQ*D!JuqGU|xQ)c3>lRAi2A! z)4Pm-J)CYn=o<_hco4Bb*wG-WuwL3YI6^uyx6xp((NK^VIOzNz5&2*e`LN^pAQXG9 zWdRmt{u-?i&ThCWv`_OBPYW<_MW9zbd?u41;^9X@y(eXolr_sqG0$!`k45GQpO!dcbID3h z9GZO9nncqYfZOb6bxiAM<0Zwvw4*IeD}9mm8Ju}xuf2n~ei0EMdO;T;eQ^<>eEFfQ zKZFNOwht**-isg)rK~{BJP*etiU9XQk5xd=D}93gW!=$P3d(U8JJ&>xe+)bQ6qz*< ztTn8xH6pz^oZXCl74+_cNYZck{xc_7_d>qa`4kg;SzmjU=3MwmgSURCV6+U5Fw_c_ z-Qr->K2tzO9Tu|z@+u;Gt<8Ig`4BYswB`jC|CX?3P3OzB0W0qbB4Af%L(Tv6t7YFnHEWpleU~uYGuM?hdY3B38TAV*I~I=6 zY$BsA@GAz_=#H_ie2uxSV?2A=aup}q)|E}p3bZZJ?%#2b*hrAO1V-L3-hky$oWKKn z=2d`20R>ag@hqDNK%$h;wRyH&A|6tM7$xC#pqpo zu3*z!5S!KAs_r7p$E<(T{+ga^L>i7tkN@0feyN zLIgp4Y(EMJ;gQQ@{oTX@lt%rmMhkgR90>3u@=z)AGTs=WBGzjgGgAxxJhClE{ZF(0}S11C~hFk1T8;4kAus-gyx}cJ$O*x%BsB zLTH-l7xdjZ?HGU^kc%3xpd&J7e2*e8H%71qh(%36R*K-a- zp7)$y{&v_c=Y5LW%57jS{);l%aJfGlv9EtwPDm^HZBB0g;qVwg_$ihJ5dT1GRhVZx z&x%I&5{Z00=emEVwyjDhhFV(C(jfS#H}O;5PA3o4xgZ5Fsa#AHv{ zy9!zchj6+2u)Xx1hL<4Uq;^h7f8Y!X8?=fA!;T)E2g`vR%7Hfx3Ue6o)1dOvC-D<6 z@^Lfqe}4yn_)ns8P7n|V=pYj5K=11YZJ|aMnVN*8L>D%$zdlQPT21oR$;hX^;jxQQ zY{2`mA)l1TH4BPo*RJI0NEYeePQQ%A38`n*)Me zgu6`Bd%tRSIc)Z5@OJ5Q_K3H4xq0>|eRf%~w}zXctQ{mXr%ishSpmNXE_nc@P(}a) zz3DvlWEQ!IHvONE_2=StdCzwz{c81W7q%w-A&FZLZa1!^52*xRe%Q~LJp)vc zaQmO6CHf_4fo%qa=n+F|Rj2bE$zehU>=dLbdC&&L6#$ju3Il{Q!k9w)eWQ$D(*^4L zI2lCKh3@+*>oiwI+57w)WEo>rKBd?Dv~R?p#Fq5AcSFAtIz#-Wf6+&xwFam~pGRc3 zHLS+IM}oSyvL%d!9k@5NMz@6PzE+x8OYoBGbLB zKdK!vkKs5UY2^D`lv6gdnE0r*WrbyhRke|EAsy46J+@Qv`^qfYASrYm`L~4tMq$Yu z%G*!F=-+jtFE(DGLly-ZV3LcVk3h}js)xWE$+dT(TNFw|{XEHe3VW>*s;_qF&-?7H zAsDy6I(sMFKy~)1JHcyjX|@AdUw+{Cae9SZ?{fR_F@E&(o`5|yhN1hDUgqI`lji;T zPL-AP*_Gr+1^Yx5AVlnaY{dg}0JQ<)-;B!Sr)$|oN9?z5g$r`a@v zIMvn0I(S2~4gR|`^qCLm`oJ5Jwqx;;_j*y!5I|Lbu_EzGoH{^Z*z+5|8LK7Av~H?C zFqE3pZLmIYWf4JHB#^uJ2QrvEQ1&TD)fCIqzaYi`Uf*VGP42OwVHh5ng7TaLgBkm_ z&{{#37M$GhvL%nX^q5N zV|)x5QpERT67}g9#3N(E4&Qs$>oM63zYsa812c<^JLC9NiFQlD8gj>lEq%Xj&7*IGt(qMej z*G5cWmc^B-QEe(204L-w?@b1I5fRQ#B9Gs!cmbqZ1Un1rsnV__KijN@afAnb+RN$3 zmLqy0t6VQTP;g!xHmGo35H?J4Ucy8^w32-yA9L9eNif9hwloB;eqAP9NWXjwAS1vuulOD8%4m?Q zUW^d7sC}YR5p^~SZ!d$CTvGK`FV4prw}@U8TQ+MHX;4XI3U}71IjmZds5TC4HpkX% z((G6(=~|z0(Ox8WIgO~P6Lob8?P{+Ly;v~hKFZ5EB@WG6U}rztoSw1AaN?hCt&6l< z9?}lDr#WEIaw1mU|4vqhPSu`TYTfU{>sLm&r>pS{615vBwx_L%@*eQKp}EeQXjM}Gt^3f3 zyhsK_Lm|h5$;Pp)V$bA(K8@V>ee`nCAxwha?HTEkdMy8%gV_dc3(Z*w^j6>%^@v^Z zm|J<7DFhJfx8VK(kOi~n&H|T4A1OXdy+SzyFz-H~+qDWsCaB-GHwb81xo@vXj@q9b zNa~pj3gMa1p$iCNYOgEhWLbwn8lP^@*ej0D8cTTfhjMnf8&GJj=1chBHrPipmq~0d zk!>?KurHk~eMh=wR$hHC9vew!G#1u4JxyyblDjN?Z9~tN5HQIZ%EhHA6yhn$CvY*z zDTs)Kf1#BpMEHJ=ip7gdTg%;^)ebP4cFj$upH9Y?Pg+i?Zm+ANV8Q{CY__h= zeiix$%~xyUN*gi7$+agtGsVyG37jsM6oyAZAWO8Ei2fs~w8d)wWieEL`(iZ z#I6P`j%okLz)dfyHqP*Gmi50B-2X>KqPaTG(%cZ3ePO`rxjMn~n4CuyH#>j*Rt23cU2fLCpOe?hsm^-mtq&zY)!mn7TsYfsL;O=LRxi4q*q zsm}}_g)DbnQzQ*Cwk#A&(W;sI);TAf6}VUqs~$fM&+i~83$1HPFW|B!S9jOcWDk<) z@l`c0#drsge8}i!D{-%7%cY-GmxkXcoAIEL8~k1&@5P~y63Ni@%aRDMEjTGFFRH9s z8tS7TcWz$?R0>$`4K#!&%fi!@hpK=(CRdH03|jF1Ig5y*QFTz-VrmOx7_7hVKPV@} zNX!ZgXNE#gQl`tUj*QDR6%If&DfY`cy}_LGqEwTpE&Z<1hHEm^qCVeRg7{5kG-lPo zlekXELy6fSFNp2JSvRk8X}2R|9bk*lAG*dpeTC!_TkkpPA_zxO4!6EUZCfXSEJ%IU zGkHbqLaVWD7o1V6p+gRJRO?7ot7hcB^lQR$bK1ZqwV@+utN4PZL3<@lMzaj}JVVoH z1=T9kPlPe@dilgFOVj_@VYY4~*17UV3yQ)0q$Y0Y)}5cE=TcW2IeO!9g69%ki zV1DC)Ik6+Bf@OLtuY=r)6&I((zn4mhG1ud0t?PyOq16u$Lw-ZRLQ~3mp|xBbol&ZI zI()P6n?IRbs-*vvY~lt7BW1VYC;k8n3sqriv0Dw`$lHKt@Sa?oH}723ZF}GzO53*R z{PCd!UD>AOT-vG2e`BYBWoabPv3}hxSIia4DXGXMNVd2Z^$kn1O~(QS+;$ z_I)aZQMqi2$V=>?X%HbvxJtv|ey))6?aRnsE)eT>L5^$LA3;Q)Opoo-gy*t9+CT4r zKWz)jp|Ub2%f&b0&ECngvWM5ockdA%IV&Q-27Jp!%K&oWkhwqTzThsMj*`5Yc>!B& zmbwePi8T*P;8`6grKI*Aa>q`j@`BD;`GyHGE#-Ic$y>qC2;~<%+XyFTNVa|4t53=6 zbD#8R7li?Tjn?5@L`R+CA`lemufuTa8XWqj#|b+O_l%)5^=9xo+Ujt1t^&k0_p*j? zke1D7=z)iWrqCHLn$q;KrL<=x{XMqeA`fT^(=E-8Kr-5F>^I4`!IO?^3hTJh0eldLG)w3cb|{ULQZn{ zFC#LoqQp1@x8)O*Vj5}$UG1*u9$O30RsvuTWFY3A`7Sx-Iq?SBHsMU9>;!)%YSZG1 zp83cQ@A<%S)xTpNxfX6ltMu$Zf35V_dYhSIQ0PFe!1ptEe1-ckYjJ|Du=F-j+gYR7 zf;?Yb9+i%=xv{P}j9Dr1&N)EYW<-U?-p@W#>G+)v6Qt*}R8J~p>XejEk&)ZE5N2f? zGLNdUb$p{F{2E{u8#?lYzaoRiet@9;qV?pwwXX0H$( zqG2`NSo@+#fpm3w6OSbGoo8NW%sEr0@yP%ZaOoqy#I;!?K*nS^$wK}ZteHY(Eaow6 zuu`h_B>)5X%jfv$bMXb?W5)vj&3BOpI=yv>w{^&u+SBfYC2#cyDt5R5cSN*6<(%1) zgE1@t-hBS*Lx`JLqzz-!O4o<^z!!Rb&`17v z4)R%O3?XwA3}e3q&x8Yy7Q#-jF0sbE1jnlyg*YT8*%*U_$|%+vMaQ3l5A+4VS=iqg z=neP{pbZh~p4zwAVzypCGH76+AKTlsP$XJLLOSE5+Gd4I1W8_EXy*%)T6bBM#fH;WNM~kZ#mB zVX@d?Jdr}J*?dtyLDTWwgur35SgqC#z;j-FH}C4I%GD8AkB0AEnH3sn%x7!$|BAb; z8K-K0Hv|8P>xbgHtm=pUy{M{C5srTQZFzkCk96(o|1as+ZS{XAvHI`f|7h`#D*FFE z{2wj;QN_naMY*!Tr#kz1(@}Y;qRf5hN$Vf|b$)x+{5Mxt<@e-MlrGcC--1VI@6P{S z_qkkYJFciumcNgs8^~Dw6olM{99bXM{a3QyK z;-P$`Kt4pE-a|Zs0ij|LB_ob-sE~C!%*|AO1UA%Yx>&ubiVj&RtaevU!w%UF=BXeO z!o^TBT1kHJo?A{0xZ-b2=!v6I1#crBotqBXIg-$Kp;NbY+(CbEKRF=qUe6vxxiCaN z!6tq}{<$OIB#x{w5&kb;@|F4=bN1%HQlu6;qiQBf1x9|yN8p{X5J7J1Uh$xDMAAR` zdW-@Tk1jGVuKbW2EhKvhuW(e}e8z(du8D%dl8bE9=F0%g%4_Qn=j7A|%iFire zdOkD?&@gK8U4@Ovb5z(NU5l8fARZFXXYR6|MV@V*rJe;m&1VX3n#Q<3)K*m^MN>;T z%RI~6&phnhcj?gLq-#eS7CE%Ek8U5@D$51PL7WN07*x9rhvZ_BMUrhLU2mApT+W=+ zoWVZCJ@wxA#y5kJ!cL4VKFrGbgAPs$3vpifS&XKIP-cw#k1l z6EQ5dQg9*fQBtxX5$100=DA~kY1p}j1cHT;PL>*(lx5%jp_&MD@T;{(%hrahk}F5E zpSy{Qi6YfBxw2vWQSI9VbrG}u^hP4K-ne^oDk8RNFy$;=*k@T15Vel zpW>d}CX(w=*DW6xmhAUN6}O9_Zd|3y0Rp*~!t|@$foMKe3Q##JQXhQ5La{?yA-^_G zQTmzhkR-4Eq4LUAiF33)O+jmv%o@2dw6)KFTjutrX?$**3|T*3t9HobTV_>4ZiZMb zWjR~Il%;GVSUPL$M7bqvcnU+#2b}~hHdJ&JD_zCFLUFFPb9z8>1Tp*Sgbn-AppzSk z4Ufp0#va8Ugo%ZLd@PLvl!um5(9{VuZis0v{D=O|%pKLQJ)Ip3cJVLJ?*%^5^L`uz z2z%B2X$z!v5Eqtres;Z4&!%k+T3w>1*c6hQE{F?ha+ge*%JE@=Gu+4S3JV+ROq03E zaeg3UY{%+)q4erSB?n4=iGqYYEkje&q!0EgLNZtm~|UEkf-ucA{O5M=~GP{3{;Y?5+ctn8-eaR`H_43pd<%$i3|8 zuhYqkU44I1`K*YV(L{j<3=Mok{Nf!f@1ndBNAP{dgn2sch&VEFZ18}=!BUJ}KFXDimP;h2mjl96= zb|1UFFj>ApbOYGsbfZIe^jIf(vs^!#E#4R0!SIJhZmeIQyi{LEy#jr=Qw&vJn=6eb z^*>Auos)PGAezO$P{0s?5`gFtffA=pNNoQXnmF3~-|Mbqj((YU2x6=4JymtdoO`sw z%%T2nj&@m###A6OKZ>PXXzmnU{+p?Jc#fY#DbTqf#0;KVB=46}NQEL1mLPwlUyR+) zn9<+tn575(n~9J&e0U>_ZczAp2VOC?H`vs9$xU%J%V;&kzM_OlLdr}dKca?=s0IkL z`iVP7SZ@<#BgCN0Nw$pBs8SB=`J2ZvsSD7W%BG!Am^F8`cLP%pI#(pxcbb+T+Z9L7 z9jYtNwIH|h7aqfToTrSFu9oC$LV1?8vHnzaRMdnVkr0dKfB=k?{Kn-CEd->?F|&&l zoibwH?6Yzt?Zjz@gxkVo4h=e^QtzR4##a7>I0=J&0*g@nEFk0=FF?~MgwxQ&T{Z+& z0aMuR2ul5dEZ-k?$^=DeXjB!IxL3~@r_e0VCRB3sk@$-MI$4yx!tYKA39Ss7LP2`* zX+SPIqma6ZkJBRjX%QN?jG04$EWivT!2Fkh8M1&m($O6BWHFLJ5%hMy zL!V#p4&U`D#n=pu+2L*MwKk93S`SQjNl1r{r~P`ekiOUw5swFDX{h5{qlAv?k%K+O z@bCa=Zgon32o=IdBqiY!RB))O*@f0`q)tZ~ih6X3z1@?ec9$4(R>Tl%ll62+2|INJ zUW2Ok&+8*?Z#3IRum2$Tq)w>71eX`#hyC)2&Mv7?LN6}oS-K&TTfljIocL>oh5aH% zcn8CHiiLZe#uiPfGL&Ht|FKu2rPcr1ww&`W0o)T`DvrUsyf2BMqsQq+NShpgH)Xq9 zS)biAs?NI&smUN&BhM6)U0Z6MYqC>^pDZxKQjI&|8BN$t!B_E+$q_pkS7SPisK=?jHuemPGIK27s)@_+I{uG#0PQP=hwB=zdG{kUl$F3mN> zt;$Vm23HU{6Qd?4HU4YRBb1@3MQIF0mGcmv!@x1QMJH<%UX^s<)1Vc1p0b*tVKQO8 z_LsM1@d{Gn4eAL<)NXDjsUT&jJ|8KgAUwOtdLG-5Dww-bGzGbVUUWv&r>l(BI=}c% z@-c^JmS=tCYuV+q6nu?sLci_9-FHs+?pRB6WvW8mLR0^=pR1W9W##%=_rnyX`Bwi* zoeA4&N?UYg&Dow?n{%aqc$H4FHuW)OyCutIF=j)YQ-9-w{qr0XBdq1S@ zb9n;JXnxP*47@P%Y$g;lV^9<{a%RD}mY!`%oBrl&@w@;gw zBOf17c!YYMYv+_byV3K`zI&(#l|5t%|QzyMs}9PV3mbynE9vt4CC*{D|y-O zrVVI96hMp+6C%W-Pb=4?!*--Ywb%H0n`Y_0Mct$AyTbb*J9*caGIOU1+%jM5io}!t zzQpP<@$pM{XGDyVeOj<853RmmB}l`;hce;^rO8k=n6NyPLmSFyzv3w-_wk@uq?6c{ zj03wXbWX(Sj?xP5{1+KA*j~LBUIYORUx!;7=S56w;nh!As7-r-kUgX)D1D{*xO^xc^qxXCpfBYl#H+h>1+Y8q>BA={Kga!qb^>I7mi@C;xOJLnW zV?e(opwAgF1P4eg9t}~YS?#(#*rIv&1A=ci!zoN=ldQC#4sLhN!XQ1wMN5TM5@1kZ z9+RL)4!Q6N*W62O-+G$6Y;+yGN+g3W@@g3^N4g3?0Rgx`evz(xIW$8S<-9TnYVpCmCa z2Ujl6T#UYyu)Zjjp`d9ldszh9lp3?h&mk{*Divr12A2}gBqTB?hbcW^1Un=NE1jHc z9!`~4TpyP*_Dh4TXWl_wiqwc1H!(R&YuX-~eTMuH#5AEJOa00oy=_MQ5cs<=c9v$h z9p3BskaBAfMXHh=Ih-Bk)Mzy`O3U2jrb@$&T6Os{}fq9Zt-W)^x@F)O_ zGSNIsDxb1Gux4Dwrc}MH%j5t)Bb(C#{;G(*t>I{&CL^=M0`IECy{+Tu052og(*k(A z(9x}S`p}yr_W9h4ClBT&kLHhHdzkGxPj}(_YYpD6r^hVGIv~?Zk!n>S4j)_&F<9=W zupH_T8R=ocW>V;#0?)WCxEZK*k#u8v^Q_9c$Ob*^06hp1J#-;GgyAXrRtcw5>eZaL z2Oq*K=8--Rx*j3AK7EQ_InP|_n^f*OjCXnM19OBXS%&6M4o$XU^`Mk`u@3`zHIq4| z1POU_3PIy?oa9pIlYp9&kgF5_oRi?~#>}T#o%Qd?6%cNbpjr%?TDY=W^f$WG`Ay}U z$mMSy{$rxgGHqFeg;E@}ygr2l8uhRN_4NKF_5;7}gP<>Lo?S#9Zet?+M$1#z->};> zzwjqU5`6~lf{}-yoON23rIG_xsUfD!aJnEv4wD;4pFY}GG}(G}mW?Al6qb8Eyb9Zg zc%Q$yfp$L{DPawFhr~aPGd8DernU8&UqFSuX+XFyb@P0-biE+z(=Ax#ul}=P_;( z#UoL6B|dsoQ6$aS1+y6RX8uI$LhJge=Aq_wmW>$y<^h*=nhk4DtJ=#0kj@e9k0IWV z5!sJ^q9X&FBYhSV(I3Bl>Pc|=nGF)=@VsFHPLm*gz~bj4fxFyjL5_q6z}G$Vbx^r_ z;XUGS+<)uffVhmpd+zC^J@3Tu>HJV2Xu@qWjG6vTyx(ftv(9>l|#A58o zVu-@BtWZ5iK|K#by}~fHgj_w#RlV#*y)00z#Je?Tk0$41y~1LwK#Hq?zIB9-cOZjz zOqjFFb9D@iX9RnI89mW=%oZE`G4WkaHX^=r0J3vLbZq;`d;4&}NcWz)=7zk*0RzDi z^7+n8&vch>*KOBnSD;R#PNYu04oYSh;B$Z=fD~dU^eX~Skq%9f5z_Ij>2d{dsiQ?PiUfIXNn4LZKGRjC z=blVkD#zhxTT8-xWwF9()%&$ho7mQ(xav3hvRE6F%h{K1Iko?bD30B2Aay*ol>@2! z&#jWd9dVsn>|6o>1~r(Gk%F>tSmYl|@HjC4&mcNH*N;}8I=hy`@prb4Q?!Y1#hIFd z+RU+_Hs%_URfyp^$j!y+ap~GgCh>N-Qxtnj8PfecOdUZ@=I~JO z^I6C$rEPJce?g`qKQ2_wfKg3)_#?&G{Lqu_=%`8d+%&ZM#~OozP|U=k?iUo0Q;LhT zfsC`}$+{V;Cye;F|oyp^37+1JgB9_o?E4Euunn;SHA%89&O za4n&h&`r9h@zxzwc>;-SE5nQW<@y#6MtnMgtdu8BTqc+)KAXgns`t~Hu+MB=A)vf5 z8I01*5-Mhv1vx9T_<4243Zw{lB|U65>Uc)Nmasi`RmAVT^Y91#vo+& z${=MP&p>59$AD!{$Dny(+hBT*2RWt0o4AVqU0f~XDbZ zvR$d)!YO^QyL5uMN?cXUEv_cXO|o60Kia7&sN)n1YGl3%xu)nGP$jq`+3L@6>*7=x z)Nw)rWja5#+V3OLBGE~{MPdTBMYHGAF4&LcR65u(r;W^$-$A@7m~Dr%MS1JtlskAn z`xm)Z7C}rc3~x|Bh;4t+ZjqktNDap|;vh&7jnp0jf0t_dfQg1}#9qFD{vqLI?ZjA1 zKebeKh*q#RTsK1})sCZ!&_~?^#dVePMEkaO!PCHI{@s9M0TP)@7C+(((i`9}i!XUY z;{D6NSeDo=*@uFk;Vm6Z`Q-Q|VJpCgn4j^Dx!c$_Z%4c?!iVP79`lJc_1$-M-Q+xGZ|P2x2WP1DS=K>InVqCOYH!I-^apFG^*O+PQ;|5anQUS> zYdlG+9*#8OHXuVG;Fc-bEz#Tpie#2)Upn8MI8AIJyd|h4RS$TIV4EUCKH!xp(e2pG z1ZsJfYCpSFop@EMA>7s9BvlV)if~&vLovXbDb+32%mzwjo(oyJ#GRN;>Yjaupa*Qk z9QarmHE9=z8qf?)ebE{H3wg6dI2%Al(ub?DDIS50yje_4oFObJZWo#2qL3d2rfQ~6 z$~i86LrZ=AhYuX;vk)yis|+w)sGJ2-M$wnsn4t)@G}I|($(AgyI4Rkfq6pqJ)G2k& zwk4-3rLQrA>Gx((u>dj6$AqdF$l?Hz|2r+CF`NJe`k|6MIg0QfPgNJ=n%zdG=}=?g6nO^vTJlAoc&F=_|vU`ro)w z5d@`6T1h3PyE{jSlz@W3Xo1lk0t0CnHM&7cxE*l=e|*#-cil!H^R%gRjB}=6w(Jx;rauga6S${DTkDn$@ICXLEb$m0<&;O3p@?~ zYCbx?x;B-|*jp~Eq^bpuAwHrNHEO#C{gm(7Ho&18b2eWGwRyJhV1hr5gNdUH5__pN zSk?BGL>1a_KxL_&+x$3I6FX}r#eBVDD%PS-Um%#)JN7u0<09sE6V2vQMJVWPDtEUO zC}@K6Wu}V()0Sb2LEaSzjA#IrPEZf^l0H`IoVva+U$u@pYl~_g98{0^28vE~1Xa|& z*y}ya+so`jtZ)n{^7QPm@N~jQh#m5bp>_y1E7rxW+u#Fp*aR(cbfFkC6~H5CnOl%^ zk#ThhR25n^;b%TNc4v+ndzNsS^jN0&M{2PV8Y;2i3pxp|Zfta@Jl~EAE1ssx_jFM> zjd%ZhaIN_o8tTbCh9dSv2YaUMDBv_qsA=kbCP(4k_0EQ}o3p^nVOF0>_|i;08dkzm z-=m9a$r^jr3mY>Xni#F9+S$7ay#Z|$JAOFC=pavScsQ}R5Nq)7e`iM1&6jaY;JQM7ecQuacjAaySSBD2_~A~w z&0_~Z+@=&j?nHH`5d06Ve=+-sWKDb{=({yO{qy=m}0bGIGZ=|purfJs^A!7Y7F zipNj{Msj4iD@OG6#5A|xi-_mM2tKwG*yLGZvjGYvJ0eN{?!H2KQaNUwndzx{ONI90 zshXhZtx_=~MPd1=+;*cadFr>>*9dZ}B1<*QNCL$COol<%VV7dt8Rk}FjlJ2*%j6U3 zEJOiZ8f-=M8bvdu?W(#FjY&lya)xBY9)JA=p-mj5$7u|-_Mkoy)hx{yaltmSEgqu2 zR-c=esri?|pEF%=ID#|cieHj^vT*QVhLHcQzePYm56dLSQRx8fc_F39^M zxk(8pLdZeqd4!kkHcoJcwapxbzH*Hy5i;%1x07|Dmuf&2o)O@C9ts?O%a)R+MMig~GW-tOkcBN~AgHEK2_HSF6DT}QtR6s{|K%f>F4KBaXW z?e}2AUi-ci6uVQ-1EVd#4*43)EixG*u46QuA4oVe&w$J|4R!VMx;L6{_pBZW@ab6@9LQebGlk9_`P(i8h`9L;e53sM(u`c+WyfxySNH^`A zY$ElXWFqdILN^(oQ1=HuW@k-)A*edF2o!-}0+k>lL8*uhP!pm66q;%ZDo8y9C8frL z>X;7UJPDqv1CfS`17JgqfhZ9bR^_^6O;T5|Cb4UXCV57rCQ(M1CRs+5CW&!`CPhXp zEN)v$RCjG?hogpI+a9c!%>C}u^2i+u`oK) zjBGk$<2X9VHiJZP{{9d;Ri0wo8QfUJ%Cz(&i_|zJi#P+EMcx{jMU;`8mE23>t+^kL zZbLAjgXOVz6u|zuDNNUCrsQH-{tWIM?F`@>bQwZ_N1*1}j$4h!4j#C%SjahQF@6c+ z>EW%k=CEx77RtZqjmf*{!_Ot?waO=8Zj+@~@yw8f96#}6Xu$AeI~TtDxUX`ZhL}LR z))a43m;=VRPw;Nu-+i)I?j)Iy@Q-~!KnFaDk2L(i7X?AR*xHOIZ~0kHI`~QFL;9JQ zvK5KxRV#XL;Gwf}+u=3V<1*acsxC6G=2PIBP70Su(JL0WO8s z1N#?Nsh}zRO!Ahusm-Itg_uRvm;cPubfmGwZ_{Y7oviYwA#nJc5f%JD5E}df*GRu_k;ud7CY>muZ1f!a0HK%N?Q8)p?? zMYRYCRkg?iO*Js5x|$j&0zx#O0Ui8U^f#2O3(o z6LL^$Z|ft973MNB(WuZ?anmv{DL#T&2I$x2Y@L_NtsOjM<967<_Md7D(d zk5iqbiXfBgz6uoPNxiL(#J2)_guuujG(?r!%t4ixY1`r_YGYS06Ar>oN|Wt{9)^>f zF=m(_2N}Ip+9kn`3-ZaQh=3oJy=>yWwkM8ofi6l=k*g`pvDBN-1|1y&+Rui=tc1UgvK8!aAXwkRlYXR85Y%w!`w*7>a8h?#2oS-1w z`KQEBx)g-H_n+CYMB%0fr+Yh$=2qD#2vD%zQ0%3 zEH4Ipsp6|)tXh}YkkBjihz9dOY879VdDXhihQwa|x^{U!Aa+eXPzekf(=^A1!!$#= z%ugpOHH|>79Wox^qDMKzK9)sXQQY23n%mB7qC(Qbn{F=5T=g8+P;8Hm~+gRN|GLN zBs6Y<*qi$(*{K&8h4DqgvPAy z)F#|;tX(F$v1sDA4JyP0J60!;C;%g~cgyM#M5@_)n0DbKvD`(u%~M=SS~F9sm4Y`x zRf)Ja(5h;)yeH^D`Q@r`I+sF;k&_FS|mOYFvUTi4#*h zSN9k19+l_}^Axx-aYbHZA6Kyl)12Co>Y9=_Aa4=f!PJpY0Oj}G_Kj9rqsWczgX9Bx zxmB|xIpw6tI!W%-)!$w>Uz$7ufbj%(-;ru3@qCzn#psOu+v|!{U9=d_!1jf?<^+8& zO|ev@h+F`%Yw$e>T>3gnetF#NgnC9V^qvb&ejUyvSsV~~m2$tie=jw3{CZ~-7q*qg z)8)%_TCQ?uSW^qK?VYxcrK>&yjcmpZ~=;S1IuovjCfd7Y!%YllfZU!t;kRyo-$y1Aq*dRjmB2Sxkz|7e8%#P+%PNpK{Z zhS6}8M!4k3OSHej$J2K4jTq5ut>by4G6^-P4e>})FWQ2pC-%%M76n##6+Ld1Qh(lx zQpY>OO~Vr0P9tA>%}cvK$0yMi{|yUKYOUxQ{#V^Lt4f5gjrkin;;Z#1Pp7~3)d3^> z-!C#nzP!v3S)~(q?dB46?aB1q3c|D7`q8>GjO{Z$OmH!2h|y4CNO<_GmT>=bZ8gHo znh0KPrG0i+x@DecJ+iiY<2u4DKcCJ#b&-;;243Pe zG}+DIFILgEUsaHRbF937Lt(a87xqloZT7z)0Z5j-siC6B3r;LXE%ue}1L?*Qm0ZSU zn-=cuaD=5@z3;Fiqj#%)IV5)WK;9?iVCs~oH3YczJ0GEM#R?y_w619#=E^G^s{oOj(V|V!0`}h8P_aC!rXv+XS+slqfJo(--8xYkbbiap4osSDc&bXogO4KL!mR- zc=A{T`3WAqDJb9zYc>H{G|TzA#)~P)L0Tt40!QQ$hKEE)e6CeMxJ$ODKIBG0DjvI+ zx>o$1QKUH2QpV<2xZVcQ$vH=CWIsbJ*aPVG8BOjb+om#5PrOVP_D;iqo2a6u z)lE+L2-3lMbVw{OceHh_BjrLKkbTiN!c8C1AbHn!$Nfy+Iy-2MJXI#IdGw1j#V{d! z*}9~O$SM_hg34{8*kXh)Zdo`h{bSAR9w}ZcN*I-o%^2XMB6f%o6R_oAtTo37w zcf@st)zEhJiIYBmxw}$mxo2M8KTyKXKeRFO7IS|3_LURG)pPgCE3zfNQ)+utlvtb7 zM(m%9W9-x1kBA@*vsyFCMWNxv*Os3>QWh~Sb(ZDa6O(NgrQ9cy4gKU0BcHb1W~N8< zJ$>dnx6CbVoN5+bEG?JCLFLJAi#%?7Jsl16gy;2({nb?mf_F`hE%6w-YJR%7KasR6o)bkXri_UnOAt#IcdiJTHela93;3O#6A)ylxzBh_aBpc1 ze_%SNzBBtH1ZoI9+NQyg8f#whPVf%liW^Jh>L-RR7pZk$sM$YC##{;$&RhZ$#$0-n zsIxYErxuw%7%fB@!Vhtd{p9XaEo8UQ{+F$~Yfcj;h@K(*f*a>JWVRx~`U@Wx3APjK zZ62_cQmmQ_g~Z!`c<2Hqf(c#Xu<;4vFp8zJuJ$?a3Es7;9Lqj4g&}Zj3WUOgpdv7G z{|3m6Lk+Y%K>^9WFS`TAY}ZV4ruqV8?Q+PGqvLarWY|qB1%*?W)r1Z7b0(O;di0U; z`r6f~!9L-FacL?=sEx<3MNViZh^i<>@rf$xSZ^Ds&=#)u zJ{L9BVco`bCdzyVt^_3%;KTnVh-wxG+Wl68+Ypa$gH&kq`Fi`d)rZ$^Ni|4Pa(4c% zSia17U&_d@rW0<{P=G&1gOkRu4=wge5LHI?k>x*MQynKW_%~z)*IS{Yrd(uu8-AGF zwO2v?EZb*KHqo51gk(=$;};2@Iiro&2?1QyyvN4UnGeVb4v?`^yLC0fZgUojnkErS zoKC6E5=_|eo_n=$VNdG7EC^{xM9iRxop;cJH8E&>94|Co%^yh)cPT&l{kPX82*$d0 zL{D7^BBU-K@vJWK^1iP2@@rkx<=eXQOUb&7OVhg6%b>dO%O_}_6REL*zKeW71igGV z=>wym>aEsw-DMV<^2BeacFku3+54Z^4T$e}&ma`?3g4c0#gKzQ#H> z)2p9T6?G)DOqi{?Olk)1VD`uNqxOvr^}TLK2w#U72;OPi^B%m1$oYT^AJc;7I)dw3 z>#>v6E?EA=hfKdn80n)$3C_&5F=qt|x*)K3KG%Rj9SHswEsn%WtXPLU%*6-T!xZx1PUd+$^<64-$@&YkezYyO3sy=O&Jy>~K?BR$dtDK5m?wLb^UseA^^ z;VsVkF72`Qx$CkvgnuHMSD=nO$d4XN^$QiG5K~{Km{*e`nFn+di%DBY(H6V*HuVdZ zaQovPVEU8iUGvkrBC;G)BKDMfzOGPN4eek$AMCuUX$BP`WYf6>v#laHi)M8|S&RzE zW^-3y7UJo3B0~JS7Qt|xL7Iv33Wq%q8p}P98Y?{zT~OTV+f!yTHY7QcU%XjlB)TY7 z_!;x6q-{5t!p&uS`k*F>OTk6qKBgH0PImCMHf*Og^RrnV;9|{_8+qkGnm!ZBk)eGS**MTB$OBh`T$a z$7<|bfoc)1=)g+>bWUg*I_@$WU45yvO>{!LqkR%PZm}i?Unf=^BO&f6WMxJd6*Kt) z0BYN6qsl8Czqwd)rJ~hd%aRa>!3*SzZB+A~?)Fk>k}ObJ&g*$dNTLK;QXI7b4WJ*`28iLl!p`uKb8cR%lC)C6Y4UnaWypA zw#`nN6*9SeE_F+iim2e?L4Ptk=Jsl}9?2Ptv(m`8^z>1A91@io={LzNP_Nbq&wn0u zFIPjiqp4b4nXl+}kYxU#uje+>{^Jc{;O)C;d1nkL@_QBrJub|XX4i4W2FjX;`}7#< z2XOs_6HG%R=bCS+G!#p^@XHXW99LMhaj?10?eFg@zAe&e+;}Bn?0#^nIK*Z0 z>MEn%&gG)nq!o6cDJhi4HIm^`NbkNkINe~(YK`mg<5e_!IOlS!FQ7@iLX%JE!v>wF zqvBh7Ij%)vfTDAft_Uw+bW_-ySr3KVh}|Sn33>Ouf00uz6Vm@}M=V4l4O(n$9x4vA z5CIS^O&ql4{CJlV04RC-(~RHc{m`1pug0Irs8>VZxOL zOy??cCL9oYoj(MfS-UlBih#`?topySf^Ps*hL&$T)PR9nFq}^N4NJ+*Tii(UL6@w) zD}hP<)r|d{%S2V$ zUjm<}LW?xgiH1xq5x)qmm_pqGiv2=FN2HViz_EIZkBf6oMJ(r(GaNYxRkfqAnxS&6 zPtiafA$N_b6}F?5L`EzJM?}>jLMWW5lh*u`vz>maMh=|awt9l7vpbL5tEnC4Lm+D+n{AX67^l?B1`Y2qx7PIA;lz5?BDIU3=_)CCarUi z12vxZ*LjukoV%I-aevh~QQb%7ewxl_!DPF5LsreWn6{L_H`g=#L>3b28X2K4zgnrh zv6^{7xUeYxv~J(iKyY2Xafvbm+p)*f24A-MPDt};FJ`>0wsH-Xy`m(1eWF`On|$}; z`J$2I;X;7+=Lv^P#6jnA%}6vh_ckks-fC}&ESfJ;o)+Hsr#pL%^$k$aU~!XW1^;V0 z*|pZ-OlDJLOWjBJ3d4JlO;5*Jdk=e^=H6}gueQ#sIbnEY0QvBlVy~|rRR)+|{~aHH zXMEs}^fQ~bF#snM^m>9h93@<*g8`cm2FO2qB@RK6u9i%oOF1MahBmSJ+TA76xmBV% z(i*nwpAgzcs%n>QgAt8?A$Fq2^b27QT&Iahokkrpo?woI%nQR*uWLP$3_+aZ7kETZ zZ|z!eAzk0!=GfpRhPP&XIW4CoWcrqi>wP-8b#7LISM!El@vk=cNt2+Y^8F+WR?hF??7B9lT_Krr zY)CF|;7iYEm+@4k)PcAAMOR=-)q-PY+na(z$DDnlN<@ND95%V_3LDV+hyhCduoPvfClc_h z6Jp;EG#N(3F3Tc(NsFkAS04p+bsB57Ey)&g_Il!NK3aP!U!uML5*i&q9!rKKtA8{< zUKtr1fYAMTkO>z<`FuyP=kzH}Ac`M0YDW{-&kQc$mJ@q_kNhdpyQEKbquh>{45Xzg z7=15+`TfuO3g0upx;T;5YtNrBW*hlVD(F*y1TOEZ(#Q56=7jg(?L}j+4}N_wjRl+N zrCb?K|G1cLfjU7F%jOA^~MGXzOhaTgEj?P@E3vy)V7XqGD zA0~`YQAic|uBt}IGPhBval7aGUO7es7P-8GfO8 zpHwCG>*U$S7X5~0Qg)%Q9EyWwTu>*c@RbY~Lz6C?f& zhvtC!0UN%Hm=bOyEdlL_2sKW~ud?A6bArP&^I@%%O(LOA7X7(vafnZstxZD>y8GHR zgyzALiVN)eK}HyVg;U>H7?`=_H)eG8lf0#)d!q3#@XvrgZW+RQJpJC72WA+lPG8k5 zQdsO_>bu956>*}muyr@9DA`_B`*OPhoRX3vCy>4N6nc^w z$(84kl`rzwPut#fRaHFTkf^vZu@9$M@?4Htdt`3%GUYt}=na9XJlWEXy`r%ly2o9wvntqKGGQo4tj>n z*W&J$)EAM7?8FaD6CnU0uiCdQPFWF;`zJ-$jGJb9`jn;Nz54Y>mFPZK-y6$cN7+#? z^|#(kC{Z64HR}13wXPN?5B=;x@v>g{9M(pE`#?~*W^Y`;kD9Is zF73Aumc|T_zgxqZdU9J=sj*=~jZ-JR9QX*uany-BSZMAG?6J8!cS?F;+LURLyOE4-?NJ_(plzkPP`^Ij_t?>=Xy5Kpo5 z9bB<!CsA#QI$>iX<(0r0UC4nSX%9&)o}-$a=RRjvA4%rq~f_rjYW>bhdK1Rxa@ z0hZarxD~+Y!XVDNKeHeg^@x@P-=EIl-1=tTR=V2+3B!X99$3Q{%clFa!}4@BCIW8P z7z5XYPke?6lJn8Q(2no!oU2XuQAL_S2{wxdeh%ZYDf2DMzO{C0M65zob>_ad3*xk!n0xJ#5<=$^2lu=6mA(7EJbcsT*XT?vI66r9=hd=aRABp!OC3FwnO7}b%lXb^~BCj|Gs&VI>t+DdK zgtTS=Q^hN?Xp*CaAp}C~z&2YMF#wXx|JG{W@jgR<%aMDwGPTygo2TsY%Hxb(f982I z6oqKE-ft5gll-%lg6bbL1pPIzSd{l_9gUgx;iSLrO9``vgoC($Y~1;`)Jymx-jJKv zA=(&LoUZ978U;6F1i--JRV~HHQWH3lu2>tfwOX-u>U0k<`O5w zQQu)To7MFTPg~0UQqD^+y=XQMb)@hVIe<#0W}gN|GAS6$M_0TgaQt|(QxaH9StzD6 zrDxbMrP9_{3(=@=Q~gaY2y}ioj6WCL4SVDkapAf?I%yKS&#-S;Gr}py9}(K|UjOg< zQr#oedg0PdW<@Pz)CH$CrxbpqV(}Q${=~^8IpdWC(}#z7CZ;=f%FzMX`)PTy^?nw* zn?^6bW%(UhGXZ-Bk~A{gQQk^u+1CG5JEG{8eivy;Q-SFbYVpfu!Jz4!PuMf~`>U_+M)=={Ji(Z%cb}A4 z9Reb!oQ*9H=y~JZpqULs3haH~ZVe2Td^Y3{O!Fr6vdu$-rG=AK9KMN@`9D%M8rXW= zBlY2C-uR}n%qt@N_faK~Kf#nH#C&7N$(HN?HyckOZF9VFFbD8m@SLI*pOh<)uOZ4@ ziDyyJ~Uq6Nf*oMtpty-u%Tu|lP}96s)>(S2 z2G@Yd2#T)-Umi!W{Y_#0SCiwq8ag?C$ZhwmrH3HPKf>YUhS6x(T6u$@^35y7;$ten z<}3d)=t-}gawZN>0E%XK=ZEWvE^cutTcS+n?kJQEP53`1+9Ij^OkEBw34deuFwd;z0Fa^&f20k_6iU0w}B3(kVOO#VA>pZ$}w{VMox^eIYM zA^{6{M^H9&O+TrN0dp0Ol~Xy7gV%kRlrg~S+j*2I3elN^DuL_&qX5;DhlRwawH$bt zTvW)qar~NaEif9z*;7ZT)A{j~b7Dv5yB@1rw<5NLbm?O4`Kwo|zf{OWZi>`I6a$hC zh#|VsFpET&T^AwuB~`J4V`An6)=20B&`(;wGt%KMY(zR7d|LkD{fPj6mxVBW&@U}H zGdzR8o0xneAiW%k=tb;}p;uHHUxPm5-)X9Xr_@ru7;*3Y_O`hq3FK@rq#M-BX=@k^ zs&laS^D&uUmY@5?YG(5CxLVvd>}Dn4U$*3ERxW|I$SJbNTG$SZJKs=R{SAlVfx*E1 zX-j}fDA%s>4hV3AZ(HleF6oZMmuzrjw|&M^w7?w3R`v30l@LbzH<-RrkG&l&Ygi%g z)NOsDMeFe8Qh~hD-hjIl7DoKBMsNO|G$!B}`vW$k+31Yr-i8bc7BZol5+0t>AkH!FL)zUw;-`CrIa#8bA{{)Ik zmVJ#VKKtcSUB)|6YA5PEBkX$eEvhQ$zrH!ku`%mq_ytOrWcozhFHIiSS-pW<(F`@< zVpaIUnVV1JF@zrib%h3SwOg$4iAbq#2(8_|LxvO#KK}5Z{Atdcd7nZTvN(n?gAa`yFC(8eZqS zw5rz?gktLv8Npr`r|0+cfhCTq%Upy{GkrJx<&j87;Uude zAL5~S_mFtJSx|6JE8UgTqF}PAVX>f9g}_i| zd%fbE?Y$jaGpP31^?g~A#Of=1xsCjf(dPU$zth^(QTCx$>sa+qgx^2$X;kTGeDAgR z&G|gDn1Eq2cU-sev!?ma@pvu&z_IQAIzuOuB?Oi@pjK+4N7hv;{mf_R0d}`BHRO7js zs2e@tk`?^XyY1NLj}Xx_`If++9532?U+Lp8e4~^?dKd_^cg** z4>*6O@;<@#$Az-o2Xkoi)|F(VBNt``t!iXJNm;pM*vG?<^C7Mi7~TGuPl~w$MzhjM z5JaM_vV|lPs!@JvraqNBp0Sxc|LUrya`SgvHC^yf)YDV$>jSb` zg}7YP#D+N0DN>9YU0m`i+u$lEf%si!3g0It=#e{ylScvtosLLI z{{ruheIdhTgx|M(lsh`!=F{)g?Kyf`cVyy_H^w+^*4=4L}=j(kkAeXExsv zHW#jKWxv_WleC(M!y% zaSj}}Th<3_MXT1kbL@#VyH-5TEeB|bMvu_zd%hqvQGW=M_-7%d5YK?8x3$)HZt`Y_ ze=#Vvn3>VCMm3i5oC&vmkvSUmQJ77u^3~(f4o`k4`0u1ka*I3vPSmD~43Do%!wl6t zvz<4Ek@htxGYkl=nrll$L3Yk@qtyLV4bG8zdy}Z$&2YfmlmXuAg?jo$+e@WRMuwlt zBgL?HO0mm!6KzHE($8F=Pj@Xta?zw=evb(3U;LaD& zBlzt1!Pu>sb+V7|^UW9C!W^vu90o8dzmZ7!IN(xUT(gyzzF4_thD7^pF19Ed#kTeG z-I*BF&>)nrQ=!zNV+3~3r4aT<_feKHDrrqJyAJ)ypfro7MCoC@Nawc`Xr?zX*`sFI;1!3l4OWKfgTIs|tB@m&AimWfC#t43@_fAVM@!>YK( zYl2{s8{O#hl+B%g@~u+eO}A)}zc;K`oT04-{kS6{+yh>QL&~t|dnkvA;0F6+ZyNf3 zmvlSBygv%@n;b|oU6sO98!pR0qVh*{n%!5R4bNi6f2k~V|-a})-( z+elfPRz1hRd=xTc|7F#2Pcv-y(n2p8oCm)pE030~{9i!$CRAk8`H#S}*j3-q4|ulU z|FgMNtag&^jL3yY6NDxzI=ME~u;;}0vhtf59$o}$HsvM)GkDEXV_Mg@9GgTA-w*2* z4dr;gAh7@PY&B-h?kP$9=!RDNGEci~f!6RNAANE)3FAWaxF}~I)c0Qgfm@+_UrNYikeRhPfyIWmDuSW8a2(hh)PIPMD)m%zQl4&d--p*-@MWKinN(e3w&{iSO=u1gOv; zC^cUa#!E_lE?c@SaWyu~td9Q$kY64HNSjeF;xZWuV)3(<_p&0Nj-pJy%wG5^FA~ot zUqeMgBspNYCS06XFFyu6!`P!a2qkHGlZsaQSVnHFNa5|DyNn&5WUmwOq+*I<93c~x zg~26N&2BE_&Tj$k-+P**0>658hoSh=TZypQBBlOiyG|@^9pZ6s5NN$wv#4TaNG+GX z=Dktl4y*f^IqmB1a%ktHIKF*1)%GMC^Amo!T9RD)ikw}SD27eVJpw!px%Ntoy*obj&DQ7Bo}(+W4{@j_019N`C4`UO#914p{>&enIw1{IM(jbsZ!*_}pAV+2aMN zBY8Iv1g)*v(z6m@Vm!#PvsqE$bb9(t{vS(5E|B(Lw_fgu#Ye1w&6!p^?V!>yP`YK& z@r6dnlB$3Bw-`f+y-G3hL$x^uh)&u^i%4-an}LeyM$ z9pR)8L&OsrO;0sCNAOz>HgQFh`%1q1_D85Z(q5{8?oQBUr?zQEW(Jq8a*J2vTCtb8 zgsm1ZjeFm0dd!X??6EFR*+6}{?C#i%Nu3LQ^hv|e-5e5}+sefkCRP_bj(15Y_G+yE zn@JnI%=)aE4r6{_FD0A{c4w1FKKf2cK%_&DaM&yjQML^!+!bfr!|L3l7f|*4rRFna z6pK=-mT4d6tgxJMxN1BVVfD}C@Om1kg5=?+o0FXkhy|y(y?o&LBr0}J{UG8wJPHMI z@%wOn8EyD%YE)*rc^I*Is0^p#@zGW`g{HiquzQlS{?_jm7k86h0`Vb5af8cy%5k3K zl~O(tK+3cn9kQ$N=k9>Lh`pq3HM7Pq^B0Q&O`NlTzF+<`O`3jTlteUk*GW;xs^R2m z{E_6oq2$5ntm>7a)R(U7w{p{GN1cw!;W8njZDO9s0o?G>>&n+3zPLTymt(&&fO{zI z8#|C_`OY`4c{WdPN&c00ebaNuXBSGyR%_sSaIPveAO*^f14CV`-pKMbB#FOco<-OC4VI5AqHjdo@x5gx)WSj9SS|{fE zedTSh_eKM+Wr)B1Q8;LwTDrc-j|F4;Bm}+@L65cYbz(g=X8)Q<4bk3UQiS#=RVgzJ zGTa48;l<}^Z*u=m=2oJZB4W+ouJ2KDqW=H_7)_#|kZHwIVISu+1X$EvR{0CZdfQWj zD-7)n?2~7&VF_3Nri}DoEnGcj2B*Cp^!}u-qz~>^==IeMY?cGnrVmI1-@9!=8P|Iu zTtiw0Y^g#`T5_G~dfD}&g;KJfM4$P=^DMG|pDhaAG)w+qiO+$u|1+aPm0_hr?;aYpW8jIrPF$j)_>;e-o3DLPs-ME$iC(H>k0LkAs4P<#5U9c8 zBkFj*@}J;tvRw(#gZ( z(&|@TH~@|<2-Ybr7xJxbuH?#jk+YAAcYeFAWU_}`Czs)U8p>dXx7#RI%?DGeJf*q5 z-g7s=2kN>u|4&CLq=M&sa{M?R+JaH|%SR;NbhFf=If)ca+LiU}UlfWstAYHx2;Df| zcjxLbckZCR(u&WjVdz)lp1bO>iNdJ30g>;LxRBjx8psllK_ZJI@5ULuqeesZ6aO`D zM$c;=ATFs-t{@;A93zXB91w(r2(+N^PUl@kRE}|csxVg9zkSh*q}#`%sC(|)uun`% zx_`v^8v@oZ=X+PKAKvHh995ZH`PBf@)*lvtYFsX1lk)zy0!|Rim;giSH}H@#0US8V9>`RSfF=Z=Dq=<4ZR z=y06TWh82>i$NF4`4Ju`LPpM-NQ0T}U)Fivi@y4&!BpNpgYJrd`MUbj;6mS-5?}kh z4ETM4vHSht#pz8G2kgvLED_Cf*BHH%zBG?_#;$a#ckn8*)0F~GOrrCR2l^C8U(&$G zL8shVLXg5T1cM~m_nH`!=qcL6piQ$-WMX=i;Dn^@;w;_LGvR3bdiG48D#x_3Nrk-& zkBZuib5ldWr*kPC+jAfZRcm+g;@rld^x*^Z$=N6HMJ0z=22)BsSO?^y-KS4Eqhw;` zFCCfpG_)=6gVy&Za15E>-|v4je@3Op+g0WX9~1bl1TI2cJj)%2&Pg}7+W+EVceaaJ zpCeCzWcTakzbc;Y8kCPDB$q?2v7caNPdg!o{j6idw|Eubd8!xT3v>GYB{`iWmPEvlc-Q6&bb9kC@$v z8TG87nfBo+1p=_cctkU{;v_rcI(5Roy+y9)H(E?{A%e60qUpntS#;(lJuzHwc9jFL zFY@9Nl4;#Yj^=#TDN-M-+E?^iZAc>0jIwoB@|%AZP)7x3@Sd^pd`(XP&`VTlvPK3X zP^;;#!S&C#zQ|`V+#UOA0l$?*N_hnW7jc(l+#aw@#s@bb) zN?ttn5)0Rx?)ln#xVtWRzT514+dH!8<0#u+-3+Mm$Pn6NQavzUdEOr59>uHme*nHfLBA840QiNXP`bQFI(BpEYFnmQq3B=pX~k76 z`)tZbY&o zv~`h@>!(i3?QyJW+}od`p_pdko%klg|1dmMdi!j~MIU~F|5?;%%!y^;@h$tV9y)qM z?65);k7^`9rv%wq&C+shs2mL3|+a!g_(F#Cm}^ z^fumm;2?^)v`{&bQsgZz))xQ}Spn#hF|Y#aUSmJLTkQ)J`_Fwc{xD4HcMda5>Oo|> zVuzkqo;GGGaMTK_?hjE@%8%BJE)SM=gNL2FwC23Od8%&Z@e*?8 zOYiIaP6@tP`a|dQ3|2GlUkJ>|htfy~ht;hKz$W{jwJ2-3>k(N;R3C0Ab^Q*_ZW z9$p$Bv}L(Rq*c>e7Q_y5(n+=U;u>%Jfl9r(WQ&Yq%|B6>0|)V8S}9C_*-}uSb;DD( z(Ml0DV?YJGv&I4BBUSqXul?sfUPY<{3Usz!2nYoNm@3GF!AoOx+@%2x5`A3x%Sp_?w~-2XU&(^5vpc zx>>B!0X+r8Y^Hp+&VOWF$+vnE^*R>{MPdf)@}ywNi>*75rYk5okQPa(yS?)ZF)VkI zqI2xd#oj0IpF8|egip^!qgJ2ssFJjM)?R$=L)vTa9$wiC#eaqme`A~wY#6a8sZ0I7 zZ!F(|{F|qB-G(|BDQEy)2`#vN65|YUY03{dOMaa+?YFG#AIH;?>;_AcTm?K>*Gz`g z4kQ2n8_T6S_=B#Qy9c~AARwS-#g@a`C=E~GJ0EFT>9uI&2d6!%B<|r^nYVjb6;Bj@ z1b_OCVK8gnxpmf_5%skd6qAXppgfEEZ&{;*$_2`=3Jey@a9br)hs2S3U`NEP!GV*@rmbG z=rgTDi5+L}iEl+#+Zt8uGgF!4Tz^{n?vafw7F1a@N5qPSFEvKc+-X*6oY!_1<(@`c zEX6MN!nslNJ|5U=pg&n8YBAz%H)2OWkI*|GufIPN5knRX${{UNk6C+%>x+F=I=rnk zwoQ=$7fpYE9>#|>J67-Nu?9p^2Km$mcL;ztoH?YlW|@{z_r!%$vwF``GD=})313NR zrLmc=p5CzjOCy97Vbfw`*x3!XHlV*NO&^7MxRW2<$entD-JhiwnCbX_T(}4&c1RAJ zbTA$z9>iOUi|YqkSfg!Isw_ekzs=2^ksWp&T|yJ{@^Fx{2LB8Q@-Rqd$xtKw>GYbe zwn%jRXIhPt@LG@1KlZMFFbgH24GV`Z?3G zt=AyAqMN#2Y>rV2KAM16QdOW&s60R!HO-!(H*w}dPm zIW?sqldlhH98I>{rQ!dtt$?bk@tSa#G}`dc))r?9;Do0#4j)h+%Xy0W7v+bQi@X72 zBdQ6Y$;qJUV>lm8%e4q0a2YvJ_gAA6>Zu@=QAxT zANx7ZqNpZkZ)l@}U9^s6JI#{SbO@>to%ZS>L*>FV2xTr=UUh+5efpAwMw;9dnfq%6=GUd86t5ccP_zZw> z$B@g(rgx~-t4R8`awg~Lrtcw-c}4inYUMn`^bkDQK|0}WLuq80XzpQy#(8Pz9FX=J z5gK3gRI7W*_j`~$PkXS#tEN}^3gw3Plb~RG?$3z`pATUZbc{$OgwFo8k;q&5A2c2S?)(F@ulOSn%v_~wR;Cu)`eUNXiN-CS~ z1L1^l#s10^;Vr`5po$X`-1$} zIap|0%vxnvLDVYh?bY8WqLgnk#oo3r!=q6^tDvsUQBugb&n1+k>>v73^4O0C;eW&5 z3=FA~{1z(2T?g%3*hA>71)HieUDUr{>O;u&)DH>7!)Y|OKC?HDPI)Th%pcT`C!BrP zMi{22)Q>;ve$@7bMcTMEl*tFUfGYqJwd1({w5dm7NHC$6LM^mS>Dy7+fD(m%xa?zL zFS?En3L})Vw#PC&2jPfnivWR2sv=i`vQQ1c4_WMQq_PSQgBNep92~v@uRw`jf{b=6 z2ZTvB8L#M?xvPJRSbs9A>pe>txeK>7KPR;=N=dOTHpkz$5Baqr3eC=N&1~X^ul42P zgRCLZvg4A*IjNGY&8IwvbJFnezQZUdONs)@aUkccFPK5y<%z*OUn+K&r$0UaPu*of zrf}3k`58wG+arY`c)5~`o;*>yn5yB9%1Ys}SXO)FKxwCnhwYt#;gy}F2i0HMDX9OD zkNfnRg}qXWrns+|gr<0f+5cy({w!Y6(&|lQXKLw>_9hrS2ww(Z5{V4L2WV>$pA#Tx zVIU5mTT(vs39OPM3#KQaRcyPp z1Lw|XeNE{BZ*w)<_jCW3lz49S?8D>2Nb$FB7aShY>21*q|AbeFWd`jSGwR@|t_uz( z;5LFwM6`dHU&D9Bd%8>7k@y`#e)5N4R^K(l^+QtT;IMF!EsYCWKEgD0J5XZJcbm2A z5I%BW68`h3(tgWF+ao7_G7O=_6LS)eEbNA~oS{_ZaYRg~&_?ej_f^mT**vauz4)Dp zNe7ePoqKG&+=}@a@&Qbpm@g$(NegUe_3kW?M%9mcRGp+z)ma&?m95StX~N%n44Obr z0DDP2N9=KiwWK+3%~Na5`8*oS*~&#R%EiuuDQBJFe1UepI8f}$?;|m4`i$N;OgS!2 zFvy#4It~EH{<=^ouRAb|^oyR7WRZfj-XWxIKw$YdYYb|4>AVaDhk8c}$YR0|Ts#En z%hMpJnB3h~rgebDB$44`lpz!`ysn4s zPxKwJEePLc;Ge54po|u3>O(!$>N$p*cgavInYG}Thnmn^UYo_zAu(FN!B`aUCJ<@^QHfQyM4UR2ma)z z!(=Mi=*sFf7wfq-{de1WR2DCPKY3;jUb`qYDx;G&Yn-)w<&2C~_%T+C3dHXg&E7o2 z)>gbSVPTg=gKYg+dqh>bLzt6kZ(ymcupC249p~(hZ#6K$m&|!*J}-KuStVw>X|FdD zL7sZg8YF?{7sMxj!So-^BK`(&K4r58;atsv4}PW={D}WWNvlT9T8d(I#}ooGGp(pB zLMDr?@xnPk{HDXG;&N%H+}Y z`)B(4{Rg1;Zk8|_O|@w6=Fqu0S8c{K`&6tMpiP)}&+4cwcD6tg8(}i>?$5bdOg+t} zo7P7K@;B^x@FvWD@+yO(!{2D%{jFLW@p4_fC7; zsfi0Fx9Z-x)m!b5Z=(*4@!$KAYo8I#JmU6_AHP4L^~7xnVi)IDtGUX4sS&ZdJUy96 ztTs`ny>cb+FGTwEON|EC^Q_RUdcP#{Z8?hZ2)X<5y8C4LVZ(w!OM8sI_egV?Stbtq z*LfV#0>j##i>U_ykEtxu$)gozZue}>0FXhCmN)1nqV!av0O$9`qf@% zO32QV#@k1rob!VcH2rbT+1}YMo#)Gs=>VT{;e>P$fSrYtnp5{yFLB(=!`s=$Li9D9 zckm#Jymk#m9z2Niet&OEw{BbBo4U1Ix2@Gqp|}SRP{OHGc=dw^c+DwPbMB1=**E9S zyP3V<##}HlT{3?uVJY;zWR>HUcIh$693FhmM{=fyplLD2rS6CqpeT?ty=)Jz+-m4wP-IGJzLt|J1M@s9*ZYbty zJayvuVhWs&N-d^tTt+f{VUW?4^LR7}+?>cx9Z!o%In1Lv0}w`)j^g%eW#mC z$pxZ-l-C5BEzjB75jB;%!BcmGGgnTQ>OnEjv@*T?AR(vJ86~B?@>jvlls0n;4KH6H3^GEQhdYQ|wMLFGy z57D>c4M7z|0@l%{^R#TrIEFdrtWt1lwNlD+z*D!UoVPGcw^qkF=UTOvM_x*}i(RXV znH=glNwbxg?EBoqXVC>H!}%UNx6Tuq!FDHnBiagkobYToXh^?{^JVZ2>~fNR5vt7P z7}KwSLPPpxoUcXQVGW4({IC|5Jq7;S=B{7;oaPfpR**^Z1;@ERb>{;d)o@sD*e8}Q3it~1S zprO3Q_%wqySjP?zGuXa0w>Cb@AVNM-ohW(nL$Jt#P^koQlNB0aXyt3cFo(1 zYHZ(%uN|1RdqfpCV#v4&)w>I%zzCTo7?RflI3c|}@G{xv~;{j-AHW}RARw;21+QbgO6VG@M&(w!j z^!Pj93wAvIUQJ+!%LBE;+#p?qd8ca_-`0ypgG^R3Wy0oR+OZKt#G^LY=8}Q9A_IOxbR_N2Itzpdn*4U*3`= zIuUHD7r$?ICp0K^e8tATwTB*cP@`;bIAVAD(%B=1i{|H6s~r8JRs^YJ&8@Z;{r_Ql$GZHLis`h<7~4{bJZ|B_zHacNe^o_=N#3Dz=ohwYgKi2m-SL?*%Sg{RU4 zAH25Ll6?ciVuO7fR(vz1gDGm(o?&&%STPpOemy%H3RDDN{+o!LLxW z&Qst9=x-U}I@u!We9C7N9wCFygDI!O?&DLPgZNoq3<6C&U9~x3&&D7~@;}db= zMal; zO?gJ`af3JXJsZ|+(e^5|^d_dEO07q>_6_k3?q2tFky-ff2BXb5sAJzi(X6`2_b!_D zl+yfsYQDR+9*KNBnDxX^I^aX4w;z4<-s1&!8N7Vjg0(=<*Kn^3CE(=yE{JtN;3oTX0HQx7kZ zdIDN(NFB?03d&(zxmY57mQ<%Wy-O22w;YrDf*a?RIlm*#pq$F#@`ITiqaIch1c_cp zFot|zCV6R#Qsku;eoai;GP1=iSy-8xC6k}_%e=@E3pq?4+>G{iOM_4-a{UxlT!YSE z#s%LZv}VSXwZ3SmAN~;E%*Q`(M?d|7%xUomtsXOVp0_FS%Uh}E7Hnc^i`yvY)_7l|N$ciM*s1?fM9 z>DxtTa#8)SK1a=+QaG?f=PE8H zeAA_ZV2a6KOaw)cam*DW(ha<5w-)H`MF&fv`e4b^sTSch@_u%*e)k}+MpavkjCklo zClXrVF2CKETvX9qqi1I+&AAC$u9O|6&y`=x7jpI7kBBTI5|O^5ssGWX)KOQ>5kzE7 znkVCF0$0Hj+$?|;C@oLEPl7U0VxP9nI=AjrKV$R%ChXaX>Y#ENCw>V{*)=KYz}!gT zecM7yN}=h^?rq;{5)m?b@6_)r_KFz@H+g*=eO}e?Sb{HpP?Ebm!l7?lP5Wb zADR5___yC^_wJHK?YkcTD?9s}QN<PUMcAozW zDfkNbPrTT?iIy{}%tOr(y%wkl;7LYL?oLZPLQHiMP-3MozZ7mck0MniQ8dpaTT)1i zH;%Q-@PxK>M5}3_e8$c#&xI}!N7E12tl{Y=09!z%R$4PSPk~;jDouZ}MEWdq3QJGM z8eyDkoAR3(SB{$o8q&`<@6fn09O^@sM`JdFjVdAE+u5C&v&qGub;=x&Wu`DP?Px?04Md ztM@D)NnOASHR!GcQBAic91YPI7LMN;bmR1#_i8FXpd`G3TZGon=(=)<)Ft=Y*t~X& zZCjn0rsY&QD~*+a#z67QV1wDSt@;MIHf9}=J34vW0HmoX+w|0gi6=wKDre=UwmHMs zMfY7dOp|^kY23IZ+utAnkQ_9S*hAuM&C$8-mIlv%Fn#UBZ1L9h>v+Q}y_v(knIMA$ z<=cszr}5N@6N)KtIx4N0x^WrFZ~{2DMsPj`4YG5orreeDcr+B;G_D+$d?esJO&sUc zmegWfTzG1^ytGTb%6SgwR%sJd;noyzUPk%~+&F*Ac{%AM6@g_4Ay5`mI6?IrvzVYsmV7kR3woM%YC z()6^R(0t9&OZ*Uk1E=xf$|;pHN0)NVAf-L$NwASgQ7&q=kn=2Q3mu%b2GGiuz44g6 zlvwgnF5?vCGMa&gxS^r+fH)LonZ}n)Zhv!eYr!8a7W{EKUgw6_YpG4+i?URerKP59 zp@t_Vfku^!ngmLjA?>IkJWnH%1rnOnd|%#Tn>4ZZ3gxS_o4> z0iibOd_W|knFwmiUS2j5 zG!W>Zn#|QaiCr^<-P!1{U!yi}cI`T6&$RI0@l;eF_X%nc-l|)-IXlzaTtTzY7=;{I zHrZ_ZTE9^qUurZh4eeKIixb6)?cXYo0-DU6g!>3*i<)auNmTpji+yzTOok9)dH}f! z=!3|qfjzrS8RS=8`4MHHp>8M^O;=XcU3gZ>_brbq`3fET^pI*4O*G9bhZoGby+_e(2^Qno`CTJo)515THGALk-&V z`LdqRi6bPR!p3MI(>ajnJWq5E(K0$tEPEH6Q#q<&TulXrME7W8Qp~1m{zCJ$M_}%YCkD5MB+&*J)jq<2%gC?8PdInCl zz5faqhsH1NUwieGne}SoTjhP7)_erH0OlOljy5&C047(gpb&N1n_Y~rZBbQr1C5-s zZ21)4!;b*LcD&YnOai)!Z+{`RAAd)+DZ6@fFWYU=#fD9%Yz3(M6J*6}2eh6T#ovMQ zSQg6TnZx=ml2(Y<;-uLmuYddyrlvq$kuSBR=yWxI4m;=kpWuRpUT!$5;K zOw*8eyQDWNH1-YdR{Qi*TdiX6EbY{-y2+$M8Oyz2mpXG5t$JteYhj$mQp(qnK+t&_ zDG9HVWq~|BH8-MAL!sC{`TA?r3eUzj@f@R8IZXuwuDC1OALiFH$fgddPhw$ z#KaZ&^`=eu&2nhqk>%?*tDhWX{ez19C_OGJKB#-+EKN`z0_U`GGI&`KWa3me?oTM- zt`tq?r{b>q6gxO5>i^#h_NX`{=_(rhza8vRwpr4XDX%1(OUj>pivGpj1k2(8g)X$j zm-x}p5Z~ncfh|6d0DU4&?jwf=k;4Tk``{Vs6g-15^8625hL(&JF-G~8RUk(?VjmMA zLxGH8F{bFf@Uqy7kB|)UBQ9RbfIpxeJ_+r_t@t=}P@9;kO|S5E`Fhs~4kFvBe3-Sn zr6z7*>Ge)&Z$nvM)0>{!9OJGYe)0{c6yAYxe}l!}FsASpo+Q12KW5$?JMPYOd?)LE z3XH!GSMef1`(ePdH!$evVZ8FqbG-f_IENlfpLJ&Fu!33XM?w^PWP6vLrBp*<)cv)Kg`tz6s=BktkRC8V2h;#~+&ez_t$=WY^C#j{mN>V&`J*@q56B&fK< zQm1v#;)gxi%^hZy0Lmi#r6Efjv7WKB;tb^XaYI95{H-*hT(@V>bNi>uK{}@d{n#iE0?4IQ!NpYsJSoy~T zG_hC@GWbaX4!2p|2bPk7h~9A z9_=wbp-KOavxCD(qtB5hIBFWl^^`-#su(+NkrW*{#Z(R%dxNErpSrE&l#X)9SoSna zvFYUKxYHC^&QfNTbVn`Zlx=d#A(pa0PNCiLR%Y)HIn1n~rb8sJavfr=GmQ^G6*`8b zm+Kgo<6&6`QQVRj?I5xRykPKYin$s(3B0V;tfZnt#nzJ?+SbcCloh!^a%j0A=V+C)23PT8vIpw_9UdVmoaciJ`EW^i*`m5p)BF2>l0JIU{C z-b}%Pm7($EU6MDqWW`EjeSC{kv}mgCEwv`hBVDdqqw*)r`wnqPGn4O?TqaCo#89!7 z|1OKI$2iKg9>n|0cokya9W3axq->}`o@saoCX#9`C#8V2o2pPz@C%}j=p41u``9LH?=f48@)b+I?;Erru~~~Y?V2}B zSP&=&Xx&3<)hjhkw&N-c2OaCqJI9vfiP)>w3bQ(gcXGvM|AiV z5qy+{oE?bC0@zSx#Y_X4nt%;is*H$0qCrR{6JF%RZqvFY_Sd&p)Ov~+7rnU72TF75 zRB7vl4f$FQXTT4P`QRVT)z9E9g(wzE*Z;)3iV1ReB8XeCebqp-m(sfp`j7n(qi{~K z8<#FEg46JnZwGhbq_m2gfL(BX^+0S+H)i?~Z29x*rF@XuuJ|0^L%mlMH>wf~(Ip^F z+$fzqHY@VTxg=c^s8Ufbf~d8<{3g@nckIImKsX~DCS53yKol7`g6D7 ztokP3iyyB}RU!2*-c{{WoQF78bOd846;8fx4z=HU*tF}J(2Vwd?ObD2i2)~9q$Qdhw7abJPzYs+soC>Xshx$sg4rs+u_OCvji4e|D zgAvkXDmVSG70-W1-=%8YO9Yz3vxX50HYVATm@Pk+kQ(nkq@zhqsUA!M40~amyE86)yld8&F^@lw00l**Y#rO$_2F_R~x@s}a@Bg9?1 zhBH6n;7>T?+6{>RFzb3;{EZo~bmrCA*sC*Z;YCXGi#Vg`3!ZiEEJXcX1o4;fsZr0@ zEV~~U|6u9r=ZReBZ&Ou?j0fhbmh`~ELVNM#X~h6!PN-Ve#Peqq<-=fpJ`4qW^>cU% z_PC&wC8QD2*j(or8`3(Zt3*W{iY-M)bo$nycs6M8s1UvZjeh(S8wX0#6`cq+6Bb@j zenN8O91Qe$_O=QdbNz7N9ck?|rcbc38JC&a=?z|UK)3*rOvD{LVSZ;FgX&fB75y59 zx>KOe3vTguvYUgFtdzNI&8ebUb3}U3<>e|hXSrHT71-c66$=S3rP05wTd|_JND#Sz z-%vmpT|{cKl^e%217#1f297*k$&|DXr463rvtvrTjO+=mY{q3|IlTq%15j*(b0C6S zEMtad3^RWCLK@5{k7hEM+y=Q5evMzu{_#ka{QEjc-&}&0-_h^t0w7G&rRzW?)@8S)5qQ^$1 zyE36y-j_K<1=`12*GUzk*lTxt#^IBks&u=T0OI5gU;3`Bg)@a$|3EEtlh0YC0`VZL z;CJYMi<+SQ1;yc{HxA2Q+34cz$Qe2qX_jUpAHlCV6z^B<} zMgM_gU=LiE4bbKrzYbrNOz~Sh@%6A@lT$#*dBhgg+GUICZ(3Rav4UIib|L>a4JKRA zD||)W?UyyNt%PHD8&;*GUgNLKjtJ1@k>0H3Zhfb^ptK<7FK)po)Ta(X#dYI4DeFaeyn_e@mFA>F>M^bBu7c%WU~4azPS zfcz7;5eo9tw+`sPbsBt@?!Ltb)~trkZ+Ixa2Xn9<4i*dgEQ*YrK0gIC-z2VVcKULdc8w!m&V-(L zwIRYOkNMlhc|p3D>d`jwUK0w$f$1nCJ-fHU9t`q4q3j z3MY!!;S+_Uw*;)lH&0yKjbAVF%O7WISnu1^B)_B*}IZ$QCeyF)L2Y(*;%VE!=~`gUfa$<( zI1PKfi$`=tn~3 z_^$2u-BuLNS%d$A*2QL*U;!dJK#zH||q+P(x8zNN-9e&Cla8{>0zZK(Q5 zBI)8TDsyI)O6CD?Vkpa7>_%7i?`LgiFZ*5Q9XWm&IKrN%0FUtq{GI%pbY8Kq_;kqG z1^LfL0(8rHzjok`RZiU+ZGERQ$G9_oya&I>z8@aLDyVx6UuZn#>gZfB$lo*N?e@@` z4NSn!*uDV*I@rV{<_QKFRqzCE0POq=CR7JcbJm>;qm)DPhD59n@;{Vw4hq$|3VW$= z{;OP%lX%^oD|q`UuBm5or=D4%{tJAe5~tDwd;CS(qF*^|MZt(2`2C_8pp>Q7CrsEx z&HVHYnX1WB`;Ka5H09+6e;(@fo;76op(cXc_a@3~P4HQ8V0Ly7$t`ID`KvaKlgb=jRq)Vi#nrQR zFcpyDuN<{1EY;&0@)K~^oA~IKWl(KLXl}ffaoaoi^eM;7kPhwkZp8<$jauW`dv$8^ zsy-eomD$*F8yx?ZyB~Vpz6{O>It;R%3i_YCFL(Klm*V#L^A9}d1k{PYFgf|wl;kTD zQ?HJd?Zljz|EcPzA-e_V2@{ND>oDH5)H)1GPi&eVC+a_=M&Y@)R@Ds3P1pi|Yyen` zAMc3C9c;de?*skTj2*kw6~Hxj+?c!pWc5Ffo8cDfxysQkL%T7HFpP8eb{TBLb((c= zOv=6KS&t`4lB@> zU%<1_wsQG5Y2i8OEZX#o{Mk^A;rTiLT=cChzs_kbd?rLP{6E9zL$h-A=4jzdz#T27 zaLG$sFS`YUyJhYBeY)Jv->1v%mD4x_}3Yyt#tu!cq0b@ihplFJvoeX62TBAtKy*PdiYR#ak{7<$Gzc8RG^j#1> ze32)B*PKBMhE994IS4ZFr&F21!zMZcteoJP(HHQt&Cpm_wibU_vK7Bu(#1=Jm)<$v zUbDRXruP-b^__h>AszqN@NGb9=lBKAQ~bXhs9-1P&(%EkEB1&8sn}g0Fp1m=;=v8N zK&Yy@L+HO2iS;D+`fyCY)Cje1}0>l>NPJWdX8)V zd4osJ?SCm zy93P0*m)ShFYHhW`nd4Q_|~u#%nvLE{=g8t3do8)ZX!TxTAaB|?{wQio%%&X70@lf z7cYeIoJ@bv5&ZDb#+#v}2|*i5+aMBZSQ|JLL%#3Ua-EKMV^I!WqIr&|npAcscJxmT zy%ur{Sa6rYtDmKJ+<^;@O@6yGLJ2{J3+K&U2hcCe^Ww$y*#L9X$1SUh7gb&lHMbvz z25SJ?r`^isEuA9MU8kOnbR4~PWMEKCzs~-xW_H*V(Ay)*$20p}#IV!TyG$JJMD212 zdFL2;_8Qi5b{6`E@{Kp0mNLaWo1vx7oGr+Bre`4fD9+n2C_#sYf#2bs8FRX)4vgQo z^4_Gj`S|+KeeshgOdLmDUalItAB4qF1N>W$`_nw^0<gJNb!4~GKwqkl)d6BRIt_9+Rd$Y zef^fr!tKY;aIG%Q&3j7ueD3(u&=e4e*f=5xmEd5p`8D^V^V0qeCLCg0BG_d_M0 zNk@ip{PXHH!na49`d2L1j`A&~qg-by{6K4e0bdS7(UxDpv(Tt=`8R3dIcPfC^o#u2 z=sv^qbN;#LV7dG`TKEz$LDYp*y!2WTu0qIy8Oz$3XdXk%%&0B|d!!_B=&Y@+I2NXs z-Db_bj`ap-xh6%Y9l5w{)}fA00KWYqAN_3`Ji`y03I4?^Rp^#9ef+7z34!T#8noUS zJ@U=aoK8ti8#$ZSZU>e3Pq=#M&=*=b%ey(=YO8 zLv4oV=lpXKF3YcTS__{Eu?+vu@cCd{uHGCidIPQim4U3AsWl6B2E2mnWbChb7LsLjQ zbPy*=gJJcqS0mZk+82Mpf5p6K#%b^Q?xO7FldqutRRF;}__@?~G;T7=dFNds+8hq* zpc3%2swSsilUG6$QuLlqAZcU-lRx9IKhxG{C{^=ixTw1Dtr9h&CD5TNUv2I%JOUwY z?kx|T5cr64 z`RA6@V)>0I9y)|%_{@@74F9#C;PXrRF*+NvdULe!B_;86IF+m=aCeoyw!Kl91t%(5 zNZ`IIq=iS~xeOjn;FEO5YVj<>k6FD*1fHz=poM41coGOaU00=rXX2M=E#gq`l9ysn zCRelItyb2+TQ}o0&+391XicN)Q)k4AofA*k;#*VO)_0Hh@857($K3#3;f1+Pn@Tlx z8kr9$isJ_T>4)>GWu)_N;F06!Q@IAzt!lDwN73gVJ$b;dRF$fUeWm$oQ&RN`>9Jx4 zsoIQ5yS&!Ps*Q<8a%ADnK_ipN+k}!C&@ua6YwFztDO_6boiaSfZFl~q8!zyoHS59l zQutZ?_0s7DS0mSNS$=*ifcq4$lWuML_#DG;B*<6Z#t&_6L!4vdZ-if(yXfiIy6S>I z`>hxXms#t_uVwWXz#Nz+j-yY7exKZhF3O5$**uGQ(RsA6{NH3GCvI-&R?8Z*Dc z24ykEG-n&m+QC@9gVNrf7;Re%&CYHqS=}3Q@Vmns3MV$)R?B(JpivneI%UU?%y3i? zjDg?4ef^mG_~u6QyLkJ4A}8%1*<<14eklbb%`;z2OS>_;h(2+%%GqE~m3OM9XzefH z%V80lOcON3mco@7pDpI8qKKqctf7sN<3U--LLED`Fj=a!*Q_*0mwJ5H{a`c)ugppg zpXV`PXZHFXT{e$B*4@!1@Bx09u@;Emq}llW;YG_v-CNLP%Vc%5X4jhRTBSBeD=s}Q)h|6Ikvl{UA88NfuZDIH z>valnk2w^x9G}1Q7@x?4gif=QV$&S~95drb&Fm~hs_${P>RbYsBYJKFYc^Q_Cf)on zK6dytcz&xh?(*2Nm&etKJ27h132rdH2@Mg4+=%d#B_cV-RE0req!}cNtfC`u4??Uu zS~c!ayJe@OUZ-w}2;T0I}U9dvCNBa)U^?KHFj?5u?GLxgTLc_AR@I>+|;%+Ur$K{CGau*zv8FUSL4F_ zw( zXv;6)S!i^*{F}7!95e%M`bGY1^nl^{IsaUAs4TzEX)Syv+tU9DpO5}7S8t9Mz64Cs zVl7<16fQ<-Lb=Isq~%Ve1JYt2tHrViO)Q7~gBG4q9*eF@3(rL9WK9ONfj97;2Nz-IkQFfDX0=(6y$4_) z_$=d(vSUm0;Cpx`{(>K4&)2*Fe)JMXYIOG9(422Mp8F2&>eFG_flCpq z@s+pJHbWd(b637a(+5`)k4VLo?3p(#krTk}kPGqu}y*CD>NzgD zaGVoxwTF1$mR%4G!c~|^w6w=w#cG_pYYTLL2rnh|@e2ue7mj)d%90Wdoot3K(acbO z2&$xoZ((pYL;2Ha?JwZVd3&_w7w{~ud%66ZwD26xA8q9e679>fdYN|SqO$h=K3#6-@6+Y>%ITZ_koxuyI7gtYwrpe>id^(|NK!#~Qg zbo!DfEfeR8NVY<=qi#{D8lG6@E}DF$SF|FZcB2SP8r9;fK%&&TmtTt(jav2TDYb&p zJSnLUpQL4bwl@k5w^N)d+L&|1rLk?Rrf#RQ6}^i(JB|!)ux&Ss%l=qwu4+wW*A}Ec zx+;?YHuCEi+xyvTF{*EGYG3B|jV+#vY2&)&Jy?)m7-wkU48rEaP=EC{y!YV)yn8$3 zKvu&3OsQnVih*7$qWh->wBk;vTEA{Fi`mOmN0v;_ppHPLAtn`Rb44}jI zg`;(m&0QACBuQ&*bn4#|rczkevy8q{}Cj( zr>SjXIl~NLn=~BfiU{8=Uu@&wtKBA43)jNrvYX$92rO35PYT3E5d8Hn>QollOrOs zdAx{Q0+rV80CD=_Nxri@SKw#6w&GW-V6|t!&|!{)YyraD2MiB(OFI=6adg7im6rMn z|J<;w3sK<(vS0hpB4Ygnl$rDgXT}YMIJ`nygfqY&UJIs0NH8mYC2H;w3Y2wK`p8N+ zOnZtx@v!D`!rhX^098P$zZ#5U3z2DsR$wN1@0xf;k?^Y2pR_Uofb6uo^ z%=vqi*qW3yl2y0Z{L;L{Gl{xPkrR?(*+&?9YT}zE8H2JsAo|=iX=y3`*7z9L1&nj? zvqM?M`&s}pkILyAzT8_nsHss+YNPGIhT^L2&b_>K8>AIZr-fe6k)D9pCB57kV==y=;aJ>wCv!ANQi3+;gsg>geOke z1^aCknMPm{`iVC{gQ+W?Gu|K@UVghZkhPjcOApSjeP8?9Vof0sufRR3>2w*rYYa59 zAAf5(x0dwXO>A%kzu4tXn%$dppDAnhDY@G&mn>%RJ4)wra9+`&q(HN}C^wab3z99? zE#>A2&EO2wlV(fOaUMYR@t-x7q2RF$E= zt~es9@2{F66^P%;HG>njmd+ybz=6u^#P3rW;FVGyEh>;@69FAziabrGQbL9(oN!gV zLLl{El1aFU6lA;ns=O^LTbrYX$W9)P?Ae4piP#wMR3StoSOZ;&1o`C0lc6RrPkby5 zQm_ucJU3#*IjFYI&8=zEz}X=-KAYii+!|-o{)3 z%dK0X-qn~N7oi^i+C5|E&}mPm;=5w2n5+2i)~)#7l^CJ`l1{)+r>RZps!VuKcNhzK zRVM$9YSVqUjQ{rJ2FaQSPq=_PLJC+xV;GNH<3G&XUsZtrKS1k)y# z=kZ0Jv|swl=}HI(bX~F~B=N#n(lHHGm2HQ)*K_u44PCLQS+zwkW^B1tUKZRm?iC4q zm&PC$*uEoo{JA$cw|EHnb3P&}){_KyFCxZwjuv5k$kRggNp6q}aWf$ZFXh`7eW2yi zrK!sIMX0P8LgYNom2(zlKpIXCM_NxZii3F7-ga|V_r>S&BJk-xJv{N2W<*J@_*RXE z)xZR-ID}D1qC*QdSE?v$5R6s?zhj(Srt$BV+{-zL~MUlyBxJN)zKUlnz!Dy@Sx9}RABAw&T@8kX3wn4Z1 z_n_PM?RfvaiFv(y=S`fnrg!f(d0w63 z!-*3gW@J8`sF9i!3q;vAfawO)a2NCs`MO>skO|%Kp0Q~FDWl*NZo3D6nK2s-4seT# zF2F_z#eIdsI8V=L{5|g4^qf1Rix6+De#=&uM8$k2Mpf5}n9O#yoQO%jFb9!#!!oX@VzHx(u|87-e5uM|knCHdMFFW_(aXMSsL^dyzVD-52 z=-EHvFIe^(!p^rFcV>F_&}=s@@#6R*Yt8=7MM1-P_~spt1G{E7R5ys6>6e(-Uz%0A z?X%~U$BLb-zv^kGU42DG4|@&@v7!q;eyWr$DA->j<&;ZS81fl^T$NTwZI4kVn4@N<+L8cX>#=r7*Do=X`pG^NwZ%Y-k(c5Vku$ z?NUO3YtMi!(Btrfix7C1oMRO8iCW~g$CvP)!{@;N&eDBgy#ZeleHR5Uopg87n2Ted zPg}n{^~L-z*@Ph}*jc$={0~MrLa@5FvQbUEE)rCl?N_rZ7i;&BayxNn62apNX{-`8 zlh0}{6pZ*1wlW}m8j~j#Gnx2u zc8?C!0gDwXU5m_k*HvJrcWHH8o)@$mGN$8^xSJaW@4>6Te!$C5svuGow?B^DZ2Gty(cr#|>p$-|GSVdx9$tnv*EIXmt9n&=$jta8bt(H-LZt}L346m(Y* ztEjXG8s;nq6x0Bf%KQqt>(Wm?oW+u~i(3SzV3M@6GM>R37uyQwi)~e?_}V6+u((jL zDz*as;sU|G?xROI?$INHb3eg8MrF>hTWYK^fPRdKHEDfEB4Jx;f*UC7%WqoZkRm_D zDjZh)PB6k&b;OV{_&9m35(R8q^V%;1_rUR2zj~(O-x|NeC&Ym-AR*QL08--hNt1m!=KH zmxP9?Yx)56SveL*;px2a9$YtU!n+O>FXMS=*>_fO-~w;z;bQ~7xAOpgvV1-@%puL_ zO&U}vcO%`vl@<={!^^fSrKT%JWM7a?Oi9&>`$0v2x(ic>7SC`OJ7l&<%JG`>G&S|< z9Iu>Fji-m>R|`uJj(_+NG5{?DBSo9**Kx?LTl^t>!^*kE5`6T_7kq4Cv+kDohJOGx zG<60SxFv-mp32LL8*T?tQolD z6rS1}8mXb@>LgrrtumLWb}2sZB38ylApZEmyWa0NZ^(juV7CZAKez@Ltu+_aKMYj} ze-%I^wZC$D9e< zaTaIw89FW@jMZs~_f={a(tXh6MjmZI=#vrF#y9Wr)Llh6wP1je`^X;75gnSlHde=N z51kKso8N$Gaj`o89E3M_Yg)_RsGZrku-G$WxzAuXd|AIfIf2w+&T9OajG613VYGFN zJ}td_Hto_}zm0LX&}rVWJI8g7IiJ>|dr+&!y;`>G_($cAwPW++XI_sjJcZwaF*p}Z z?bVZN6g=0dHTVz>^R@~hRd1QU^cr4XhRXA*{P+j#cn|>MB>)Rnu@1 zp22*4FrKw)lCeWtYCC0!1kyVp>sK z#VK`^rQkId|J9_0Ay-pe4)qV71k>4gX}{ENT}JnWbH!NTiZR#<)78@_pXwM@$urJ@ zpRgbFW=_ZJ0-{@Xo`6>o#~9gv{)zYso|CF-92EooSZG@7qwM_skg{`;9gfp@Q^Il5 zJ$-%?5!-u_kI0rjKhmOmWZn6!GG`{DwV5~Za<|t?Dp_lssh1w%p$@XPr4o{?0WI&8 zpED*4c#>*5)Vy;Z%;x|!b#I9;*mMAx%#Hc+Ml_)x^>@4 zuUdxx6kjHUEqgyH=Gx3o2}7*=HxGB}A1Wn)j?^0jbz|UOb{ZFE(Y4hWr=algl>MJ# z5l=lUs2a;0Fe=yS2C^#yurW|I{;pDfC!Zd8m%6P!&IC99xRJt`aKPit8DTN$+1R2i z6)MV9#4!^>q}bP*z1VLx#RFDN4v}AUkvgVNs$cUwe3;0Vht?$Cn^Ohq ze#Jj<%B2#x30=QK8W?1U>?)c^t?RK`xl%{d(xwOjSdxEA0E_bEIdY^=xC*<2siC+- z{c;j-{E+?R9^iC+&yK0K z9}}i_``0u*RZb=2+nCv7@>W_y4>|gmse^*jDDSY0Mm??qiKb$4tiDT&(3x%=-U~gd znug8n+dgIso@?qqVVU>RqU`LVrCzzIer6C+Z|P(FW-I zOolA?#?u7!q*rwN+Ar$)rVnb7i;w>G7e2PAx!*LO`b)p9A6T~kdgp)Fn8J%!v{RhL zJ6Dj8)*C^(x&?n(-2(3tgQY2WhGNGxoO0fr{t!BW1NE^co+X7tq$7HfI#fHTBN|E_ zJ!p(1nQIC`DH{PADyc#O7?^5qXjzOPp4g{0;ZYyAEwEoY-gw)apKFP+X>?V|L=mbVr3bG};PnFAP2pUG~-K z)DjwXc3*(s;_O?2_yq3qO2_>Bjezab`(0bN<)rVlsebsz;Muc+fot#3wxd^PW!je` ziiCI2V}0@+{9sKps`|DN%=V7#K7V4Lq=He+#y!lObSb)MCF0PYlK!f%;zPu1=AA}j zm(|wFjUhA5FH;JW`H-Z3i=Xn<8sH`A5zfiI@LU+IS2tm4P|opI`W6$m4WD!~70+=V z={RAk`0#t2GE;qD-I>2OV|=%%p=x&#U2HehY0B`9QC;KkMRgPYW=Op462wvW?<#UV zjjCvLz3L!VBipGxT|1sGj?QVLKt<@t5Oz+&?Gj;Q+t|EG|pCJdW)<1QYC zpI?JY<3{76tH<%371gRy-$k0UBWH!C$tsPnq(w~BMB*_WjbB>}jV6{2Wsc_Mx9sT` zEaW%ha{dDN_N&yddHwrfJv(s4;K;Kn3vt04Y!BH5+kNt4@lY5MxX^peDm+bdEm2eXe9r!{-~XOKuJx*G ztE8vohdSZk(5ajcVVHfsg_ZvGU#VtG^lkA7GicB>#|`i{yam@Uf;Ny0Bfmhe zb$BwK^*7$O4gp#~c=WBz38N(#0RIhVRmK(|G0|uqz6kxH2g$k~A(1#&qcSq#ocxw1 z+ai_PPjgD@PIMP{ddSqSUJHXm=l8=)w?Uh87oqh=uY0HQQhp3n=JpOwpJ+2hXO6MIDn(>;|DxjqE++hz}3QC z`40b<4i&-$VE^suzaVE$$rEu3>2(X#is@5YaYp*`ywF@$aXi~~H2Rf1qfu5{s?G7M zX5*I+CqXoEKC|a2G~Q#1XPa-Fbp09VwOo8MY6twW7GNLV@gOpPFhJ1y$Ud22?Er%F z%^~y|jD;GYgvC&6?tJ`XbwU=Njt_c`>z0qN9xK3y_dwI(JEEhug*irM_X*z-fdIu5 z3SVlblZAYN3BV6kS5d^O7m5eyjpXqk9T3m1ZKklv)Esrx^s)n0{<33Xwkm4OXd30f zj_C9W!PKbYSAO~fyyiGS%<;rr@@pH|pFRn8+fOb^JQ{lfue%?+J^&zOLu6Eb2tdGw zxPY1c0s77w6g0aJK)>1Mb3u`pdTXY!o~4wR`#n4Rdv2a&sb@U%R%#wDo(r|zX9NV# z^Yok-9FXn7ukJO~+iS9m%VaO_DQ<{E3rRyVRkby}1ExffH87NY8)}A(VQC~(>r(Gm zbk;hOuU1z4*x6u4dS~Pnd~5G9e0`4zMAF`QuIU{7XbtRzUJoKRhCt9d(lx`{k#?v^ z*F3?K@Jsw12jRza=aV6nlnpW9;x)c&J~TOc20HG=SB7nmiX>e#V!HdVZ4t~fS0Pzk zYcrp@7F7EUtikF(EwMu3e2JR@r~lJJtF-nl(hJ3lpa|}QJM@NI-+$nSngzEQ+Q68y z1^26F!CivfspjpU@4r-RMt5dkVVnoU>Cp1&HQp^s^h}kGY*@D3g z4StF;yn=H`41yal219+1M*E@u+THl*xzl+65g6{hG;C90N+^ygGtpxm-_fDB|p6tQRl#J(;9sK8YM(><=$7)TMtdn zv#Li#ZwO|l$cxB^ev%L%D)bc8U)ffK6jdoh6;(kK(ftD(K9SNzx#eZpLEA>>~Nsv-E0pk;ZyKT&t>0 zzE`h>7=?x6N%p-4qmZgQK4%oxggU6S#A1fgoMBiXAI3yQEfxL#ULKgDqP83T{+#?7 z!)pA)6EPh#$~!QL5ISUOofP;=!77SN0($T7E+Q1<>{Xh#jp>DfyZ_}W+S zm6f5}6Cm89--w`2Ar3u9cjJ%ZMD=6u)x*+0tyuAL+>8_)JjAQ-oWW5ywuFI$=hR-+ znpBIx4{FZ`er58Z6&~Mg<9c^a=n(ACB|WEK@j`x9Sizl?na?JrTpK&{nLqy1b)H?H zN$w$g0G1rXk50BTsA~}Hhd6Yz1wK^gsBdbjulK|bAu3el zqsaUAI>pZ?CB>)1;C3Y?6oKL^mG(6*X%#K`AqY{#QW2Le>dT19eKOBbS~B$ZTs$6I z2RbkJo;cClH?{p>sYsE>MW^~!z^l5aGS}j@lkrB9`smQIWXisFWco3gt%7{SXs0v6 zgs;#VW9Tx*yF*ZG*RgIr#`ja;#fr^fL3DmCSGuJ6^%>d{mikPX;6q!=`PA5XW1@qV z@5t`%aZVkQ0}cU7N&B`gW=Ez&tB9GyYe+N7Gl39QDTWbiry*9MMo0r!Wt4-rq;RS{ zAzfEwi%Pi>CQM_w!qb$-_KkcY?Xxo~&pG}jZAANEO(XgXFj%n}KiGU2-=mG_JEW`; zgZX(icHErMnl&Q6V~1q_LnWjQYvZ=dZ79cZ#FsLbnPs<#E!m}%cX9`pqHDmOZXNnQ)a8djP4-M(~up{Hoh;LQOm}8B~5lR@i z1wUjAWQ2l#SNz;aR1n^zruuXUX)n#FmVA0qyKZY^JvF43q)sa$`n>#r_Q9k5tEsp0 z?g+pbyYYXk+OpBEZ)jv8>e4GGBFk|c7!%25K(9$b4ue(>!5dDV=DWZsE*>g{;751^ zp0({Au7QIlK_!lcP8viIIh7*fcnkX)WPDRwFGEA#>GVmw!EGW#1Oq4{oGxYHzeAul zctX_HckmpRO~QXm83@20y9qi3Q8`caV9#B}(_j>K(|Lzqe|N-h5U0(@m%hXBa&AEf z>)z88;0y3yP^D<1wiuwEgwEO((et&XrUdykRokydV4^$*rihdC$>__gWcGxw_cZyr zgHQ$kr5LL%#Up>2C}Y$RHKq68RH2jV-N-)G^f(s%n69^W)KLR_x1n_Sub(nt)!VrV z9)2u{nkU{` zhnHk*ZWEf;3-1X_>&&+S54;8OjQ($Blz<6Slwbl54dhK|0!jciZ7`uEu^S@B#&6|G zk?K?+h0n*wc~?RTrlf#L=d>_z?nOuuK2lOjG^DtJb68p@^=Z5XJgDO~>6q>$~vAy zG1pOi5}V;In*g>zUw8=)P#;c0o8`7+Z!8a;?_asH+4y}iNtYJ%_gi!#EaK33eLXOP z9!?%1O#yuKUf}1;{>GWb<0k_LW534~ZfZWj@v3xs{QS<)b?%txCH=ZAkdAGDo^Tgh zL1TCX1NUsh$FcXf4fxXA3{lZyXwUW`4hk`JHwdejf87+KSGAsNlW4VbPrvb?b7?)8 zT*-2tgWuz6PyV9!CzI;6FvNA*Tk(TKPRyFRssE7eF)?SymXv^Ti7uIxUpXZW{fwwm z`5*#uVvzP42-uhC3OWqZLC({Y17XBm=(pXtWx@C4GOT{2}mwYIsYrTXV5N^P-iSZ#bu!*q|Ael{tMH$Wr=9{}yi1 zzmbS`5Xob>xJa7Q2?cqNX0Dg)9HO1$7tO`WD=Kht(QUpHE<){L`M(E@akcSk(Ez`|m=~OXy z8Q!9s^Z8bl28e@NIE5Q5^A~}vz6-UW2i{9RoSnL-PKw%{-}=vbxT8`8bl`IEd7YfE z^oV<$J0ke=uS@F@{MAGF*HrJQq@*;B6BT`!rZM7;`?xwZ z_|6`%dzlI1u3aEz;=9rwd{>xJOieHE6GV5lh**wldYQOr*DhR?$uI#}!7`z{a0K!4pt0iXs2>VP)DP(};KK!fVNUsBAj~Q4B0gM^ zBFrHZocib3pn)g@8Ki$1q!MC~0U8MKoU;(C*h3%#3FLAGh?fj$O=@*yrMzXxSk6fZ zQXC-=9}NVZfjz|9!I?mOWypO3xyvAaaw#h=TIjBrK_LDVf&k4?q;QTZ7o^K9;x+N0 z%uMEViFaAs&K(pf=e-VZXcy^yH0~nF+*RQK?^K9p1{34bfFba%OPuRkhrTLw-s|9o z4w3ziCS4@8_aK=+vIEj^$}F@@p$9uusFZWC1HV-vNsps}7D*bvo1GCNm>3+v@k~4> z)Cp}=E(AV|!G}RH6ORcY{BuT#Nd;0Y{z(;Iy-S?STKfvrRiLvIcHo}?B0L#UBK@GX zcE%3y8fbmPOYjd$`(mMpbJWmIeK0O|2A{P;5ihEXNOqDaBrxJ*7?CktYlJj#ag!Eq z&EPCuh%QZ6J^x3#HA`pt#I@+B%E6Mi;2ewAf)A~|Lfr|hOv2A~Gq^Q_vvh_V&$vM@*feWdk z*Q0l}FM2JTsgzJHY8)=U+p)tH5T`^lZ@90ycvyxiGru7YRxJL89tR72Cjd_xg%cPL}6Bx@6aI3j^ z!IvY)g`aRic2%H(RwC}?x?(Oo`Gu@(tPhp>%a3j>W@#i!wYI0Aei z1*hOV$hpgT8FPVBjxpy&1z1ujv9yo_SeO92eanRu@WByyA9RNtoOhRtFqYN|=cTpA zv|@Bu@sgCWQlztSlFkJ)qH_uSA%kZycm@~7c1|U#FAfszG={C@pM!}t`AHUAwQZ$J z{CRE()Zr5G5ZCKOHI{G z@z8ec5B@m53Qg4`G*G`(p<}zy4)jmo35b{ZUq|MN+%Wm0lzVSCwAFCGHCW@@c$UBy zOQb1x(RDFXFVufTkvE01pkQ` zMflONLF=PB_O@1JWG$lMnYUGd%%l)H88|C4847UvJ5qW!DSefWaBvofid*E;KaFs3t~kW`5YbmyQhtaFOG<}0v=*bp zO){Qe4RL5q#yI(t0N5A@1sUVT{}0BvFc)8gCgsO?`@xPrO<;_&7Y8ZnnRGsB z>JzeR-i5Vdrszc=3uxmBFdM%R z`oDb}fz9D5f)b1$C>kOrW-yJVhDF!Oz_nltJrZ?Q=qHY<@ghF9C`S`+2_soGI)wO> zx~RNXUK3bb;u6l{V~XY|!i(l8ul@Z|S6@<73*BNLcJkm*h!7~eR9=wpu85bg(%|IW z1ZQXI5v&9!Sb+=iZ4-P)*(zLGz(=ZQbJ@~J1n4}UqL9M`fsw+xetic8Z^PF&Qz*zY zFgMW*=O{5aKg#+a758ebRwMG zh!A!{0!oLw{eM8Cmj1WyZc*+g@uLHlSRPAuaX4UR z8|E!l))f26uEN1W^C(K5))BdUGDNg7$k5D`Ljq46^cYfQBibC1QxbhVfxEH@6uB9% z7Z~7I26Kb@XY}ir(LX5N0L%<#Kh4O+#fv!mLY#{4tp->PbzxlL9T*Q5s{mHv`#9y! z5-`3L5Am1r`z4F<`^yRBPcRZtE+`fyUYy+<|dm zNg8$!Pq=djPr&z9LF0r=V6>Q`OGvm(oDMI-?=C0&qS?l>uXu|J4{S;c%}f2iZMM>J z5iZWncsiRlG$T;c?7(@H2@76lQ0k?E|2xgb#kAS|Bl=|yAUHM6#>K^*|EJB?j$0#S ztx+(tU`tT>G5fE^Yd(05m_0xC&9x?-otjK?{+9zaJ0@=W)GiKo-KAC7`IiHfWUM$q z6)0L!M~qgLx*(Y=jGWuwe1AZxJBRC)Foh$w-;YpaO&g& ze0k3rMfEXJ&0APEs@qVvvOz+>kXV3(Si44GX>HL^RoO7XD|D2SQCg024KI{)qm&2uL0TFZo*>HV`w>k*&V8yZ(_8vaIuv^k9N0TO zty|}jaq$VAI;W*04y_X0gdr+D7L)ED_j^Cv|8kQj7fzT^DF1XE(xJl;NAk1%P{A$r z&g4mVQd93tntUe}Q2QYr9f!1UPf~}{Gx2SHj}WB%h)gt^@|r6{YmFpgV9Z)*WFohb zR>^#3v*z>N-TV6v`Rl{UJrDJ&{itf>cy4rb?*VP%-K+hvDtqnD_n(DjaBYBZ_s)iy zyAB`39v#LyH6H<|mie`J=w#zkcSV=+8?qLxCM4|OcM0PO2~2CyNYhB9>Cn2!NK>(F zx4L6gA(57SUf!Y-Z=d3=J4rv#)1KK9G<*b1QkA{i(0|=GtE+4t%IQ|goIWStBF2x8=+r5UK-zC{|i-ICzsPB1%6pvN17aKB& zwAR4vWTptk9tjWdg{4cu<^gB52kgYVYV$QoXF&S_?Mx0E zb&py^Qu`Y!x^Ik{dNX93JAu`sT&;a(b zY)Th!(nyW+yw-4x{AYRvn!a-6cvn5>G8{Z{FC%s8KCn zsJeA67!zxVyWz*0owx ztKPDv{jjdfp=w_8ts5RQ@%C0 zi{p;KS7;-i{*DB5sS3U+m}3?ikYJfyazI%{?8?;C$$89-oI2qb4}v_^$ZN(ai4G}M zu>2Gunn$RQti}%ulK_$mq0Z_RQ0sOwK=N(;WQE_#u|3G27m@?>#&rW2eYq>iA68U3 zxe)$XwUTC}*;cN?j|!8)qsQ31fUy^nq5GKC{^KqsBaVhf7J0^Ey2Ju~^)#|H0^sRI z;c%`6=yk^PAi8HK#4@x-doRo8EEI5nC_2 zk(G_A3c4K~+c^@7#_;b2Z=L=`*sQ17MoJAujO8E_mL|NsMQRq+F<_uF>K5xAb8uwT zfrS2XE=HC3_~FhWHX|dQLu>`4=#M$;{_PUpY+U~~sZBrYaTwCA$FM3ORQ|-jO?$t1@%yxE z8+ru0W(0*~_8ib}<8|t^m^7zRX>)*Zk*#~$#odeuI>6ddI`@S}_)8VTuCdilWzHcj%)bnl%ZH^`7Q z$g-j=Q{HQXnJi?`rz@`0l1E9&_vTEzm8#C?`q>9|>^ih9Oo(XV(N+)F`NF?VeYPjd6}=|Xj8nGa*2x(nlYMNFsiK`G)uzI>|%-+Oeia- z7RYrt^Txc$XlUS|u~iJ6%EIqckSDS`840*NdVE&n$n5h6@U(uzb}$rWw_%pygrmb$1Gt?Smc zwAQetyh33t7!>RfYw3fok+O&V)b>6;?H#?nRjByVrlnjV51rZyt34gt4;bE;RiSUn*XyN>a$;l7ryM(lA73|uR{2a``o%}90_uXX8&+GlNy?ti% z??1!GJDbL#isMp*KBNv)Eo**W+zcu%ZgHSj$*6m**T{o0WN{l9+rvmD#)X$IZd{5Y zWj$Hj;@@mq_cocVZPEiiB|V=kZj(3mN@w#bMQFt8tIs6jUrZ-p6_sCpKI#~|#Pmxz z$d;ej?uJ#MGXBb@kj-Ga{%|RrMWcT9NpIKF1*pIEdW@#6^GNsd$@J)*q3I7^rJ_el zx%Vq92r;0mTXTwM<1XfXO9qo%G7 zEv;JWTh*ExGk9+Qycx!wI<{+G-&U_)?VOm|>#6x-BmNV&MD?X?L35CuO*@z|T`)T? zQ_7tV2KG%%>Q`=3y@!3ye!8T6QTJ%ySmZ7#tAZkZ0c8UJMbK9v?Vz-?WTb0-SMvZ> zagmPYviSLj!64MbB}K8Fb5oi*#|6mOCCDmXJEWacP$v?>nsBk{EYY)s=8gE zg?n*3q~6>%HIgrJTao_5a*SsqQl22-$xrY+aTIFdt6+m)oI8)7LMwbzh43thk}&2V z1TO*1ag=5*hS6+Lx|FjR>5LR=-`}B+S%==kjg43fbPJ&#j%c)pi!s)@X;$6EPN+c@ z9E#HtatWs4gpy+#N{sA?JW8$g$&JWxkgy4Fhb`cvfbzIF)%~5)0@Yn=kiiFc=E{24cA*sP^#Z}^Y?d67=8eS38Cy3nsnr@kIe;Vb?8a)To#>Fesxiygiy zfUwt>G%r_mUba}XlP%Uv6wJ`Wmuq(*8qek%;$A$6!qr0l4}2Y0*SUWcOapmO#-9Yz zhyesa-Jcu5WKAOr6WLHqCVf!Gom390D#myZnLIVjaim32H@>yBv7WAFmRItz=#(e? z$AG+uE(2nHd`303Zo*A}jPEwkC8l(^SJg>7{5z8O$N{- zoyX7B^ex$!kQ_sLxfW`I+G@9<^49^ZYk#>Z8L_WgsVH>*n<>jDMx-U(m^$rxQrfW5 z8>YRR*Dbt*V?>v(!#bo4Z|7?h?cLVbHlF|JlN%bo*+^wPFLclxPtUmlq4SJY1{+6& z=K2&g>eZ@M?`F+Tgg*L4Gf@`iSDID(!lQAL++~17}+r`xwN%0 zxyUI#f94*Fiys#^pmW%gWN9F0v7>jZWJe|$6x_qd!mYl+$|LeCpM0~- zq1V!WezD-nC#ciG`Na!@YqesQ&`BJHc+EB?bW#r%M?HH+Q0x+p2+fo(429Oq$u2%o zJ(W)sL!UmyzE7W)l%TFSlmC;;=ah=G2o)_OkTH0=;LU#_kOB&!X9=7s0GI#&@Nk4P ze|0z_6}piM8?g${%OubW4H;1vWJm+NjJqh<5y(Xu;wBji%~+mGG9(5s6KXO%mu1Kh zybN-LP6YC&22yfGstdCi%1y<90%2D!nQ#4(y%a{2!c z1xK9uTfvdk8Yk5e`mkDWm2!bV8ZpT2GRk-rw~0Usx|5n^Gg7?1MZY$D9l^EoK3~5C; zff?kX45=p>%B3F3kl`fHF$Q@oLxS*RVL3mBK%SK4;nwmI1oBjdM3LH^Se|DxBoxmO zq8Q}44Dls-a#^VtG9-cI8NeVfWr!bvjNm5_$SWD*N=hM?=XEI_k|%~?ej`JI2_&AC zdMiV=Ny*$X!H_`S$q+jN>B=DQWynP-g}W-46UYY{Vo4wk804c2S&d(lxe-VppGqM_ z4(tSG1oBxP=etS*g=X;Tm+J~BH0uh<*1zPX&{FWw$Y6@PzmdT@zra60=h<`6!QY;T zj~yF6eEhg-(3l2o1uI;Lzv55$=9R5GH*Vd$dHZ$*$O|DZRB&Pj)1?wvm+ z_3w5TA3;Dpm+`kr-8B%hu>c&Y z(xIzczn-g)pPu11G1YaFF4gw+DfuXH1Y=XumfwqAmj4vHnxy}k03dL&{e4Cy4U3N- zI5McOTMYM&8+Cf@xI^J7L({U7uIUe)JIJAnYuk3N2b|kDxO8(EG^<~~%z?h6^>p>7 z3?4L_o*DZfBs3=tXF``lnb2kDKz4^d9Bdkb4{*0}wD4h90e1wy$NtKTyZ-X!J~NIC zEBVO3C#CDk^xOPH;wmo&arIMA#qd8Au|0i8jSjF4Gk?~edn>)HBi5bh7PVza+(muQ zxqwXzGaqwFaHeypSC6usA6#ApuEDXCWZk2nyv-zjeJbTpO+WKwI z>^t_+yzTFeuzpCF#0k0$*98$X`?yOP-eX34w;j}$;}Z2-kG(YS04Sy&O1EvDKg-#} zciE8Wjf2k&?d2NUtal6NCe|%N1Ma!DZPTk)o3^fm zkpl>Ux{Q%cN+m0fE!Q@`7pz!_SFVn~hLd|<6HW$q8=a!lc-3HH%^!0qy=`FYcweVL zd*DV3{acT_G`q!^U~2tw)0%BM{&&2nmN&8cigyA>S1# z#YHLfd5f$L{qY>K=SiGWBzqp-NFZK#BNxiOBak{WBnWThZ?ilWGQBkZuIBnLw6dTW%5`Mka(Bzuxd4 z|J#B?`7MwIN99EOL?&t&PZkjsTSVahg++w__`6kv)=n58s`}I3mTT`!n3SvGrP0r` zT0ru=relDWq|CIYCFvL-5M73=0mH?i*}@9GP`S9Gcnt-&q)&VgVFgztiC}c?8mV-) zVmkndKz6@hC{8IAulYjtUU3RZ;m}F}^99Ow6}Q2aytVo^Z!HeHas|)1dX*Y)@QK_c z)t=HbiH*qorP0NZTQ)lBQ-{#@Z9<(sjf)qnoq=ANoo-|Ggk)TDzk4?HA*EZ8(#D$7 zV9YVCc5)t}oHyi*6O(E2c7r>9N*XOzJBBx9b}j@VWgKvKx@F_2@=(myGGqXO=(17`N-0E0=eUYS*J;StrqO!Ew&(~V)KP(mrk8xw zZK85wa7`|P3lUnyh6u^!hyJ3xrJ^-U_d!UvyGoy>OALdhXv%^NwnwaG1php_{AX6) zk(IA6&Sd4?No7~%bWORo-&ku)KI$yjz`4t;oD(Z&tyow}x6X%O&}B_UKe^sxzo^$* zJfNYQq+cwho29px(@!%WU~fxKs|KmsAOrT!+!2w*4YV6s>BVyW3fdk2Eu9A&5Twv! z>C=yd3_hBfc`O7Jy#j+=x(^QMUG#d$vGlB?!6C;ovW^Z0WzWDsm+m2hdJ)5;qM{T? zi5PW;*tsRrUrA@4M7U3y=n>&Dc`|=1BJs>>aq!j4m>QnTGBV=C zq~u+LZw32$`w#N<3j7}RYYt?Uav*MBRMft>h}iv6QTrc6^p213O@HkB4V*9h&z#Yr zoT-xX6K6)E@o3`z_uPU1R-SP$`qYH6+XDl)kDYL81mm8sk9Q!f3feJd;=!Sz2PTZ& z8FDMc$H(tKaZlBiWiPdNSBtj(ri65gv0Ff0OP*Hh$^;*( z>PHrjGRL?UI-Cvs`=fN8w1*48vqSMLjA0j4g*`ZlNm1h8KXeE5=@{(jvMXyr!i5PZ zKNv%$szGkOLY%tML-ygLw-w9w?Zbh5n0mf|)Z`x}jw}2Z2XB{>FO|H>>xq@(oMxRA zy0djsrF4Nnmj1R<(l63EIlU`Mw_xdK<@7-`UGY^}r!-x6YlU=2R$dhELm&dKwpbtp zs%EpD)5wB+e+a?&f>;1&u><1JATd`sN|te6`=&uNIYK*d#+j0#1l{p*F&9?g0Qx}y zi^Kx{o{W!V<}Tt35b{9A2S6OQa>rCza&vX zih$>-4{0#rH=QGn%pe(RLXx-#Pzlnb_P2U80)@DrFs%oxnCT4G=Cn^zOsNPK-q|yy zQ(&Lo&D(T=o3JO%IoQRum0eeHzhYZK z94s_fJ^oNtx^+VWsNx+l+*hT)`S$J2&LgAA@H$7z#1K(I6r)5^3~dn$xqhk;RH-7* zVZy-VF`k~u$zow_pT4oNefz{x8wqg@@2S)MKUr!k+02FFpr!u)OM`-P$sp!hepK1Nudbqc1>+Y@^w<)>r6c3LneaX+|;NH5m2mA5UFfcM=zNqcEYUj>D2b_kV z;mN9m5|T@gT5;)R+v^GpRx z!ZvcWw1%-K^aCbB33?~QP6aL`Ts1&1K5BaYwho=0+Eqe;lB9jy3N(zpcv2%Mje3cR z_VE;srEaWRsl}Kf-~5U94y!iC_3A}S`=+M!UY6c`7;&}K!q!-I-o%<<3XsCMW+efo zw!;C5;B`(4gRfY(q(sUS3rb#+%ub!fJvnO)S8xWn`LHRD!Jd1U?2)56(V> zArmWL+po05W6Op<9xD%ht|(W0j7R;qg{OE>@7UPhY_VW}{Bq%eq7&jG9HnZcnMPu{ zX(aiB0pRPmFhCW*h+*EUMqBUS-|9Sa1SwP?cEPdAYpjrMxm$aaq5}2pn`*$Hz;{@r zx7cO#5sPi2Vz$6dx z6geC;vTw9~#+X6=l}k#B=8Ai89vRI_arlq@2oWOoiaYRDRcAK7!Op_WfedkVHyj7` zuiS)2IFhW>Nye8i8{mng_ziJCzNP9xiia1OQPG#sQ!J&bCKE_>aWhnxK*Gcm*g_|S zKt>i7pjrr|Sqh($-bzf@2VN6)h_~BTyr_pI1Nii-F0>p5!CljO)`Uj($i}wo6K>V@W%t zOR6X{>z6v(`8ghJ(d}e#-~2^w!d;d}#FFvJOEI0L+~^I_2~?SJIVLuwhB-5*wsctShQYenZhx=@njH5?{LIIM6M}zWkO`ob>A* zOnRl*b`~19X$+oSbhn)%n@*Gd)QvDgmHMh`F%iuIHD|HPKohytk{#;V>R&;6wQf~D zDpLWp<2{X_BR->EXQasIqj8TpcM?b4$(dW25Py5_(8$PP!@?s}sK`aJ`#Vx>De~X~ z?%jhaCO-d`~10KM~HoQ8Y5}>rv5QRRF$S~{3Vo$b+7=T z5g_N%`9gN+i+c|SpY|`8pv@5uhcZZ)E4fZnCY0Pgq8gC6Z43C!&Ye&Jl%lG#@OET@ zy3I~|wVhA2GPUK-al zPa^(JnMuq4;xCk**rp){0e~=ilQ8LU1a)`mi)Dv(ruHxJp+LzUlqYYB-%CpB&ZtPU zqUvlMkSII42AQ2ZqXJ$Gn~YN21Vh!XrTQi#c(Inq?G8`I{Ll){H)~0l@6<8hR3d!b!XwW0WOS7)wIq^*C(K6N6)BOE1tth&oGlLgYcB z$iYzwYwGZrf=*re1`H^IJ79k&tmZhy&g<{A`rUK#!}W6wQ4xIV$3QeRkQ52@|K6RaSlmc}-=X zc0UzrBt>n`k-VM%1lbd2mX%G%?x9Kk@Yz#6pO)Dn(Ll|)PA&!-jDe;`1BFv)u(EOV z?hLi73P3b{DqCIt%F2l|CQg`9rq6bs4R9n1hz9=C$B_T&Q{A7I$werpY~}>H$PTsh z0B^^0iq1-wk6mjk?aR!abolvkopE0uA+QH+F=r|jk(g+i6|*2K zS^g1KIvykD`_cswrkcAF_NL-o6y}meHj*FpV+#q$i@~SJ>c5{@v;p z6y=}!$x#EGGzj6hBfB3aCv@@)KpIuRLHolLAq@fa-yBU~hC@)7NzYwo)A)3EVUEL0n(=}rk zY38XrOB-iAjyH>#_blyQGxj>EJ#{Zr*8%9WWEjzBQUETiEXTMOZ@3L7)ZXjUnyg~- z0$hrDs+*+f8iVpg(%jrvU6s;si?XEalnl#@r@r~-RIQ$-*1Ou_IY~)5RuHFABTm7W zloM-WB2LT*H~EEz1iJ|YFX-!g_x;aKqG@$96ngmo9&?huu6MtG?j)voScaUsUBm?T zy!>*&aMRBO#ufvHTP;?TR_tNcmzrPmGf%8N@{CM#h>`9zIkWgVS|QGxc(FafndPqg zm0kaxto$77OIqW_WTiQ-yLQIoS&`8ji7Tes*VvbccO&twFU1@7mG+g)_=}DaZaK&U zNKdAzgO$uJI&BqC>LWgzH1x=(N7ST#FuuZ{H5#HMtVf$;0{*y^&3B zgcMqTH`c6HW34o%NMPIgMkWM|pWTx(!+j9JVJw#wu%p@WJGqlj)l%?M9ccRV82e$m z)>Px(*!l=u*H%}zS5~%H*R)ku1!^!u94Hlh{4sFM4Wk#q^eHfFiu{(B%9G?dxEyL* zWM5A<`$b-Qhil@;D0F384Kl4$Y36DwZsw)Vt8$wQxPH+h`we0{N1jAx@R1p&FIogY zxn^d@HdGyi*yjFqGxut{HvbP>;yGup#B&zxTb)pD{GX5>C8_U=Kb>uJ_2#{0L4vX>`ts$IqBK zmO)I~j)m=9#7=|t^+iazu5V98MVJPtV`f;G7&GAW@$6FVY7%L(;RB5$j$mgR8zef>#A;TEX-74Da{ zzsmaxLFO?N6oOf+b^Wzk@k@i@OhQO_(@9We?hfD8FIaG_HY zL$0R@Z)6^}Q4S=6aNZg{!xEvO@|82w@`#Go#m&yW5k8IC`}1#{V-=}$8e9l>@B@k3 zS!Pe+&pWqtEaQ{-fxOWvVLBYyH{X297>ytP)7ZuAdUiXzJ9=|iK8>mSB~!+IW@um^ zm&N5iRWp(;8ySj^$c?`ZI4zeNBZd)?l?-a5ox|5!3iG>t|dZ zboJjaJ^q%*PrLf&L(V?yoN(;zG=Rk4 z2-U4cK6rJmz>DJvyb}g3gxeu`+ADISd}`qW`IOu^4YJF>2k)fG;B6_dXqLVDoVj*O z5boriBzYQnE>ND+AO&t;FiG|_S5!2EcQQhnD;QU*%=PR5x{YjiVg!KZ-@S_KoLl(w z`kn}IEdDruyuXYzH}+99%pOK#>c7QQq>(llMly)?m1&R+w=bM5dz&lDTZol3gagZ7 z{=AC1041kPlZ!|kR#CTFDk{)^m_7VxD`mX%|;cN#zw(b>ni6ZtCd;2r7*_k_{$PhQUr z5BDPvv zY5gpIrX?o&5yfcwQS^f&FbRQOaX>sN!a(nJ{Q2&5$dqfmqq^wezKD=mJcjZ75tzxv zjueZWSUhW`Ueep>Mr0T<3Z*Mq zujP6I4)66+aFJM9Dg2sgm$*N zOuy1Hj=)mw>LCXWc#wI$x>(8>TCTId9K3#jA1z+8Fm9h}R}VNFeG=JWs&E9O^0!Qt zj$l+JjQy8ydw`KEi~=Y;@BO!Hdxy1cBdi^#cFYaRpmw9RcV{--ptfy?Rao1vy~TRY zj%U6x&OEwAFRwfO=kmJih`H>X)M=mrr{vTrYk~FH9%qfQ#^~W=Yr&~gPKgsxJ!z#{ zZ>?ghZ!qZGa27g=&P&}UISZT{!JyUGDzV=DSk=nS>mS034e8a3_0Cel+~q4hT1*2h<3wz1?AW?BnOYx@{rNOhTN{eK@#pYEcI>Y#pD*i!mF4&UI8lFb-%za;>(7jH z{Y6)%ztNl9#buism#gkgZX)BPH^>CD5oEUX1DPiyK{m@oknLt2NSWCHayFt}c(I~o z3rK=_29hOvKswkVkRE0?$XK%gBuA!ztTyvO)<_b_R!ITL69ZCZ3P8@98juUN8|1oq z2y)k)0eLC$;iXN2`3jOKc_2wL6eLCBKvK;HkTl5x$&dt)ObLQyNd`zZiW}bpkGuf! ziWkIZPJ#GkBuGG}f%I$h7G#jz1eqjmkhyKrKnl!7kV44@DKT$B%23KtDo`p(A`aP0 zK@QuCL5|y7K+f1>L9W_YT#LfWHI)@%{zx0@AK602NgEKYKgeuz2t?}-vRUSWX#GLT z%r=m^`nM3Re>q5kIS!H~Ye2OAAXkpDGnIKw!5UoFmSJFVV z{vcX^5UoFm)*nRc52E!4(fWgE{Xw+;AX>KlJ+qP}nwr$qtnC-Z>t?cV=Qa4V1Tbu9W+JAX-l?JsxtJH$4 z{x>;|yIT_o4dGSmSoEV6SJhOwlnFC_|Hf~bxCbsB{=6W<8~5k}Mq&R4nBnV(@h@TU z(uWIA{$t`265M#J_Y&Q5fA*s;$tyiO8LXcL>{>3O?`8>C*F$$v;P2Q`f2s@Cch;}o zsujpIp`{C}|a6nZ$v^03rNDbckn>(cgC?AJHr-EK=yKAZon;>L}NXY-z%Skeu)I3CAi z`ZFxSWx2WV0$M(Xu8GgeGz#Z^o(4>DF21yM&=U+QD#YMN0~cLfy>*)YY{ zr2z;D&(~RKs_g~&3dTobbaiq60T4yf`~kyLGqbY`CNi92K#~CkC5nic5D@_ZMRHDx zNEQ`PQ4s|Um=!TADwuORbIv)7;mmh>o{`<@{kms%0rh;I=l`Ymyk%y3dOC;ds$W%Y zIRHNQuR;I)fW~iIon7JEf5Es9=rOeZkiXV1V%^BYhoRsCT6gUsT5}q5nd=i?SL_6O zS_xX8QPg*Qknbe#kW2lh$EQr`QIY*Sl24uh>`7<@x&)ZX7f4qTU?w#{7*|zQm{KsH{k5P6`p8G?HNA}%y*Pw^e_L<> zyl}aMd^NLa3u%c^-VEvqP0BMChZ~9IG3V$y7^#_~y=X}f2$HDYjV_M+7)^V90G)c8 zyAKB4<^3gJ<&Wv8lPeW7(y!0SyEs8Q;TGC)px`a^I`je(Za3AVv8zLLOpC8ZuS*fX zt)g~T(t&Ye%Shgl-e>L#s|rG|2%MX`qcqs1485l?b;Q7j3l~ z{d4v{+Wh-|@Vt2)ELLlyCAzEUq*O*kZXO*|7+{DtF-H6e+l;}L(BXK^F|b@a=GEG) zl<-xFPZHNg{$|!}4{&(o-Bmu9PUjNve0C6Qb&9GL`XX#z_kS!+JbDVZPInmG&ajJN zSfaG9Y}gL(4RzVpl!;}Fog$R&+1>|#Hq!jUNP|Y9asREHN+p@tvP5B(Iw7o58Vo0R z47rK_{3*Fy=k=o@lk`u;E4nu-p$8~lNiGu;zO^=z%c9Q@74Z0}<{Ug1O@;9>j(b6q z6vHq8c{rYn5~_vZAlOou@RD`0W`JlxOIPLohLbYTRy5eJ3k=7JHkuvr9eCT6vsXIq zk++Fqf!0XMG%{{t*wVAb!^h27U_IE-1(#BY->!a;G)hWKG_yuDZQI1ixF0yQg9prZ zE1p*@V<)zCZXWEOPHUMqXXWA;C?)qvIsDgJ}f%m)qEvh(v5Mpa14#+?gzzChc z3Zp;4J~@WYtU~ARj;|b&|7r#5TmEK};ypuLaWCK(N|tK6Q@WHr8jiZqT=_%WOC7(9r_y;AbF zZr8Q1&mPpj`U%>KI5z%ahT@Q>v`nd3Fa{MfZ+R^yNwI)`{}>%vUkR>{+|sgVhL7J` z=9fLMU%&Zdd}ePQA2Bm4rD2`;ZDj7y-Xx?}?-UHZ)#erqJtb=_Lw6fDnQ&!n8!WGF z+!)=(A-J6L`NJCB1!px@lx_WrW`WCSF7Ck&j=0v_ZIwaRYJ=f^f)vFrNS$=P%$3wT~p)` z_jo?L_&mC^%*BCL&{>L^4E@f*dC0m?%NElMpFwiIUj5nZ)d3RdgsvyicD;R}Rj3@9Xzv-tXwvMtZnpe(mse z8#h#vYvl&MNv-HZ@o_1~i?^bLJQksm(5a*%-(mc2(aXMJ6|6q79S@}*yA(K@`8{>EMBW%O6M z5!#75e5-|<;0a!EOD;$4(T>mHT3(KheEN)zEm{OUaH(o>BRtXg19w>)3N2J4{ToK zw`lne{$WOEySMIf$ZG6@MLDI5!Fd__bMrxTb5k{RWOK2Qx2g)=JhU18RRP_W6pvlJ zSi^Ns*WR{$JzCfs z{}RUTKpn6NI@FBs3NFjhpPR^l5C;ph2U516YX_^)hsEH82hLgzn{C^+EUYacMI=R$ zK|bTFHoKRS=3{yXT-U4UNDf6-5b-FE1t0q*%A8+*N|}Om^NxLF>2>-~pvObD6gL-uHd7r!` zE`CECF@n!m${ewJlrhytG(7Hrmle_LfEJC#!q}^jw!Ic{D}>VrUEv?CgJ$WBdkj9$ zzyprGdW(9ZgEv60a1MHWZN>9KBi3c1{O}Cctyq46-L?+8eZv4h{vaA#h9>jaU@FAl z1}uu34;^9q+Y$vbrjwA8pNqE838T8rzFa$G=Y|3O%qFkj7Yf!;_4ENsF|L7CV16B4 z=s5RE$`a7p@@#s|vZ4CzT7bQNySBQo(J+L~lYKzJ#B**AE=3>VOlTsW38^arE&PUm zCLJo44j8gA6R#U&H_;MF2Nk(T>x*7I@Q-x;2|7C7u`dd{hMvs62@{l$A>e`@nrLur zSNY|nA)6+{{qkin1AXP6K?k~fj}DId1-<@)@Rzuhu;}S}bn5Quy;IS*BTE-NUTC$% z_F&266Qc;hjz`{AVeb{$Ob9sTT@sFT8ivalX0&1dqNDpXyc$zAz}skBcFpB(()+G}>e}VU|8ZD^J73(+Bn+k4Q4=VQdv? z{{jrpqm{^J znUl5wx*n)p2O$TaCh|b!Go6Nq7`VIWHN6C3+Ttv zEaEG^q!@iTUh&7GPOf0*TN)ZY)BBqvYA#8tt<=VK$0r%tpPCZNg4J&%j4Yai4HP3d zt>+|{zw<}|AjLmiIQndy%a5@= z->T~Z|I9?xcm-%3hj`3eBDE`lm=9NrI=ypE$HPC zXHyhMe35AORkaBLvrkw=FZ{zv z)N)JE9?iC@BmgI2*B}WF^q>OeqLU*6!x8|JLV}XGB?7|ex_4ZHmsebzQb{|bu57MS zPOJ)0#$OU~?VEFF=@8M*052!)r#OiWlu~6438`K8We}l8R7?zxFfs5mX2ePd3(pVL z>_o1dJVSP!J}+S#afEHuV3p@!QJsmY0mAbo{H#i!9Lq`iLfH<{b$Y`j9GZ&Zpd*C4 z;vW7Y^rVK^lavzo7_B^q^Es$mIH+Ij37cX9c+BZ+g)63V^=B)BX3f8Uw5T0EH^SX7 zc)suKsHxlFkNHCf_m5cUKPx0^hWFwDfq?^}76%{1VNbyjW!9oJ`0Zf?(;O=482Kl*5x*1>_u1E(_Us2~2k|pqd%&|2>?M-xY%6{? zJxcxrHq)cnN2g&D`tu?G9;TcOzok@SoYoPf&^(Iwx2v_9%)%ej0dsSL*fKZQXFs3- zeg;9Z(dkgdJ_>#ax+sq?0E1iMCx0q6!wA0p7=|f+8g>p!iQ~2 zpR}btCPoF{o@xNJRA1zUg34ouDWme>!4*$M{NAZ23J2@_HvaYQT>#V2^lsB~GN%pD zY2sO$kulwsFGPpzyI>WUHXQ?P)*oRyI6Om3&y6|@25bEvf$#o}Ut-%Uo-@sN^4G@TP`@oGfbNusLpwH%yA}BhapBn}G=y%S z%ir9@G**1vN?Ydgx7fi#U_O6+6QiYgzm?qH;@AI6Ogyxb@M7bE+rO2-mQsPCbqt9$ zQO;BwGafqAmcnvvE)}^CQo)Cnt+r_01}mQlpFoEr?#HLZRhF-f?Go<#>`=!x0NqE2 z`i%^>>o{0~j<+4$zC(YX_yL2G3B=Uu&>wEmwo$8>u8%7`%EmqLA0N6Cect51XMf=G z4WQHIw~i&ZmP}gEyW6e@mfbo;tQ?cGcS^_Kx}d+RDgyT%9JUd-?V;l-_@+b0D-jb+ zbetHBwWq)7F~J`{;+eOeo{kcjQG~Mm_71&Pd0C5+g<=s0mLGz8ZEH);7Z__-kIS!f zDkKUKXnh9<-Fo=}31+_S2mOVsF`MrVI=t#I#C%?GH*@5(Z9%st4-H)1J3Mx1MB17W zcA=kphc5_npPiOI*JBl{ScsmTJc_PV--Zp)BM5@v3ur}FrAKW~Z`Jv;sY!1u`$2j4 z(2J!Jap_wX(=49HY00YW9cX*(pvNEF4 zv31bwz4UtVmMz6SA|m<&ixfg4<-be>>op3A@b|<-(qmA~2WYlNdUM*=tx!@yrF9h49_8Pl5z4WmMH~mw^M$bI zqv3*Go8(|Xf1}%XYWX+Bw9V$48eGW}+$;Zp5lZA`)dg<1!r9Fa%!4vD)xz?Tg*tU;Z zY;0lN50BN?d^$R&OvP*B=UP|geTu0)z~`X3%A9%*y{$H*+AnJle6^yT%)atDgzo_D zZr?_?$sOJ|k8^WSvc_1Zx%jhGKA7FZc&kk$Spr%4*gcBsPmFH>nt2#j(I;!?7Df2xsSN~(cPE2)}IF0YC98yXoM z;1{j&`yp^eNND2l;NV1A@AK!iPyuF-gPvDXg11*f60XD&?f{xCvk@v$SCZR@e#f7W z|BNQeY>pl^LaQOn5O@6}{t0@gTuwx7wd|J;6j1(LpzO6QNSLJ-W<-UT#TqJRWcag& zvWQZ20&T0>igutI6IP}{5UhIe4mN{t1Q+Nt+`&H4yC7p@c=*N)VsMl%l3pbnF8fBL z@0reoS`?V-2W5m_za^L_P3$Cuq9&4q9IXn)90PhNrgLe^kvl5+ER&0XZCzsB&{B$5 z9dLwsPhbJMcIPgg^$@r1IqoP7K)d(sISpxOCjQWw+a>uTdoO+n>+;BPbo(urIKXSqzn2Y+c$_oc+tQY1hfg&vVI#!!e}{q+vL zfDjnlQh^@lcK>GCu*q?h!bs9mndM? zjEZM#XlYS5oo4{1VBft(&tWn67NrJv8R*u_(##GfLrRFHr+a^kwzjy)$8eE*z_3n( zry83XyO^7KPit=4oGANkVbkf+0ymJttF!4AICZ@>mZh!4HQPc_s#j9+C4=1^2@$U2 z|4AhI3<$?jLHBqf?ir zl7OD~fXh!wEkd=+3!TXXkFyu15@FEO3HxntVQdbpUN#YZSUzv_GwdO17r_e{V zo~EtW(6uQ{glP2Teb>OQdM&)#4vvLBXk0CNCTk4sG&IJhre}MweUNZ+yN7STX^X?&4(+PSE9V-tgBc4Ko#wL8?KZ2Y*g z-X$UWR?Tx4x$_Dz)9o|3eb#%BEinEALXYi7+wU9iK#%tRMuSyK=142Hi}B>!x7LqbqfW8Nmd8WmAnG2F)QDRiF^B zQKP)Plat}wz|_=%J|jkGPJqE^GtwO~z$-D)YrqKg71IspxRYp&=4fKAjimppvBxbg$r6}JQOs; znQg%}E0W!)x0q?lFby-bsJ~Z4Z@-KdL=7Gi6C+d%V*UN2B8K?K%5I>SV1!1hE7d17 ztXHpyP@H-huF4XP=VG_~x+)BqKy6tZu0=w?-~@VZlD}U9smTk_L+8;%QUlQtXa6{{ z1~*YCtj6gdmOVj>8&m(S+ja2?NnY?{x5r>xls{RMWLiCVKoXYHXt8FS|F;vC(*K$; zOC95nOR~9N0po~bvjZw+yD4rms}-S42LeCgs4vH5F1#fXsnd7J-&&sTfQh#~7;H3F zsC~2ViwL+_ibZ~znSOp*SuhjV^YJKe?@{E(v=*#y?&L0`Y>js+jv$WS@N<-{=n0R> z=lG}b?!g1aODIbh%Dh!9BWFY5@Y?5!Stwlj8(z>_ z)!Ohj#8;E@ndEm|>UN?Eym}+5m(uCuzHGQGb1eOEYR#tZM?8y;ZCFy2$j z*vO-og6WyZ;Ic0MFnVX)FVF8-h~J1)(;Z^A7WsJ28>NT%WpBZE`vtW0nZt7Q{uB{^ z|&2nI^R6xU?iL{M$+e`iygnHUa zrESt!EG-^OoB8dWo-9mg2!ic2S2-!wCS|0xL2aBs^vEZ{U5AlKD$^xQI%GzN{^r!W zeSDV}a=ypxkMrkzo&#l{=gj*!n{MG0<_J0dF5wO^S~73vw~4ta9ETn>ZUlP3a^uVX zo;B<5ve_SI&-&2QI--BlaGUUcBZjNG<|L=5GVr5fEl$MxOFsIt9P+r)Dj}8%X>ox@D{fH1^oR6a$8vr&y$D?2jzWQj9Zo!nu zq5%V@v%f1!bI@YuFP>sD6s1fudcGRWet-5mv|Wk*Mt>F-gsn<=p13BG-;AC@OE#-E zMN-B;BKNcjdIChd@s{#6J(IBTC0#_8KmUvy%i(ACZT+(hBQf!_h{W6=5Xx(DhwkMl z5%X#Y`h-m3{7zwh+`M0zeK+tz_af5wW|uW8&=*-5nH+C8-X&W^-V|2DD{}p`-SrismIHW_+^q6I9Dn0P_Ii!0%B>GWKvJpiwsLwS_IPx*i8Ha^D}R<=Xm-utmY%24HTz% zP79Vm49rC}SAIt?mgFjaA3n(?WAt*31$&^;On|vcYDLyWTaLQJkGKmXYI6qz$n9qtKDJp3vUMoqDIn)D|RhU0~ z$`=c3h8HQ8#l;t-e!HM>=hDw5GojJmBcMMIP-%W%#+W|SM?h0(0k9N3I9rC!qmxUp z-n0$Kg60<~x}f>6XwcAhrX#B-j=eHI?@rOs{6r7?zSepU*N#oTkmXR20fsq~?S^sN zh@g<-sQGxYY%0ClkiRYNM7Ao3sBVLMR)-(g9KB<6&^!IQJErZeTZ)HFTk>PK+`g@- zVcL)%u73_(WHw_SzP@Jq7p3~ahd}JEk3j!C%x9r4pG;;Sc zO_<;e&>CEv47=zud0^4FNntiy{$VRR$#fp@r%WQU^#1xRK!ElA?vF?LGORyGHJ7w=AX83 z?ugIqn2Vt{hlJ%O(x!M0);V>s)fJ~CU3mfqq4-OsCjzgc1iEF=%z!4%^~M3`+p<%0 z{no8@Y&!TTvh|ub8C)W9rWX)!4xfZPSf6h}&Y3~_4!zrf&Yr%ZZbrr(+PAbwi{FlF zt@=9|1Z6rCSqi_L9Drz!o=%F5X2~R991~S#Wo_l;}qP@ z)iPrN^h1GazZRDa69@-yaD?~i_pcFt05Up zWg!1jPIBtSNfQ$nzAHY1sxKyAM%8D)QlVskV(M~ZR1hOPg#K%u>?1`#==z`Yg{>by zg71IIo2Du-d9qOIN>+bDc6VmU2-9oD>g%c20~NSlK&D!GW=_iT1jrtcF(JcaF?w<6 z8hSJj;v~US`VG!-$x|$ZMJ|5*eA70Lr(f{Dg=Kj437nRKC(^tZV*=wlv>(V0M<0M7 zWmQ$CEo4q&cTn>bwWQ&d&u}=UYIv2EPqi3=xbUiL7g8X)Hfxkv zgLYI|S0Y)kS?Hb2CnVpqU2L#x(6_IUaBtJ8PyAxB4t+wlPPvDR|0h^{y}RJk>^q9B z{Kuc?f_6jXzRq{ZeTEPP-Lg`D!T9L`84QJPodN$#$yXrYOes=sN?(E5KFLX!rt=g- zD-iK6i_rqQ0$Ly*IfyF`>dLlN%1H?2P7no(Nyq@5P}Y!;+LvDj;X)q6t&o9RL7Ora zPfBXP{MthK7^(QI!pqlv&n&Kpb9}tq~2)&SwV_OK`-5YqZI0~a;qEZ1;qoUH7 zV82nL`~p%^e*9d;?*1UKyMGti-JbQKTB=Y2fjC6fhf{U2N2cN;C@gs^z8tgZn-M&M zibT~HS#Ju08v1$zsW^? zKEVrwsAGtfyka~Kzlr0IBvhcxQ#cf^!ZgED;ZUegfX@W_X~{I8nDJJlEjTRKhI+yt zLfJ9UO52xtjDZR?80ox-H^};`i_p#bNJ0Xo1o^cSSE7_$AXqd6OTz- zllWF>!Jw&IqUl#)BL9>=gk{lt&Bhd?E*8EMfoTE^pIFCcz#M2VG+nZQw?s)@pcx$2 zMz&y1Pa?^4lwt^k(7t%-8+%!?OKe@vMre;C;(nAv65WJvf0F^elc|#@l5!0iXCfJ- zu%QEyJ~{!F%rTUTCPEEZvlGxA+!7Pz!wxcUE{0e%9h#t9XJN=CyN3{Sp$z?XIHJ_2=;3&~ z)XP(drC186MVt}T%49z$#VvSNibz{S&QNMW6OkjKGb|eFf-Hx;8_=l& zmZ19=o<1s?3v(8rN!1S^5YlnjlT+^d01l_`yGy@&;yHf>R9D@aSMwCwp%|wQm+|b zjFU$d=&y0F&n*sw7U2sv`$3a$#JVwO4#l!`iV+nJp!l;ao!?Fm!o9eFGe_q5m8HyI zP76{pe}&+@PZ7_V^P%_+4v}9GLSp$re6Vt{5OV2DI|_(xMTV1wkyX(|wS=pA0EPsw zGV#ND`(%eUExUIdkqX?f$`{#MjnNB^ODD(XO1>#GNm;Iz!P;UPR9Dv);1GI!VrlQB zUggKoTfQkh1LdQS&=?AMA}q+q^oFYpLqJJY+F;bImWXo@_%N&~Mt3{Zxw;@rH0y{~ zq0ONAV$%7ngtO=_n(*oc47?iGy@OK^+X8SxRp1BBnbFV^x~E>50?a`F`ABbEdZjz7Ol&|hRo)`Yx})Cnl+lo$;~B}VatXn7Wb(OTNft~_$&IxN4; zCTGu;l8(S%J_lOU=p(4=!DjR*7DE|3J#}ymTAe;>xp?4&F64Y_Scw!XPog`k5<)0i z{zCRaxxUe%df#CZOmy;Xp*2LH4G^Jl)f`D!=*#ZkCy}KR<$6uGA0oE~9TK@L@|?gB-NMaBMH&uud}18+SA1fWuW-?f4DgSM8RAFS#4!N@kaye*(QA-hXgnf}el9^de5#+C3)5 zyECINnh~dc6_Di9qeVa_h2??Jtq!Xa*Df;I+)E~MSJ(>fYvirP|86HsPQm{ain8O zX^DH<@$??vgN}VewkrMtmrk}~VoF4HV%*)}#JH857;y^TWJ}{Hs)@Kg+d4F-9WgEz z=u-X&j5Rc~CKk&b>9vRcBN2n=e+AX|M_6%KIya?=G7u~7ogi6{*_MR}ci(4tX8I_GrUx>c*iE*586;f`J)bbMVqmI^62ISo1|fJGodMZ zfxcEeobC#fK?c)-1qn<8*<^5?{$LsUie5mIKBM{!OR|}OZgP6))-v>IdGhYmo%euy zjj*^U=j^u$2cgfqLZYfy_zoRBIN=*!&2k|8HL5M!?321Xc{wy%M&!p>p|BeFvFU$S zcvEYyirbdK$f- z-YKYeZ0t19!c!zm8O*ij@_yEN)5Yo65j6%h%QUbLD{VzHyFPyWSo9F>-?k02m7#!+=690+26sk7`-`D6!@3HvM0YCIp_}W?7gExya-61$Nhw8NgRZe4o~ zH0ru!CceS*Y%gZmro(bPOLKWL@8(ey?S$6@j$ZefqJW(3)ldRm%vJb-!_h!4P52H| zAWY&hK4ARRuC_%Ji>DL*#!@ia{~Tw@xK=O2{sIJKf3_nq<`CIHm@b@n&p#TIa=qtXI8&#Yas z9(`Q^*^r!&GnsLQtVQTk^BoT147*+qSB;ifl4QNnl6+XJgRf9~T}mlI7AoKd2rHXVOnAhII8;;9+Uu5SdsZy=U$Py32Y)x0;ZAFtJh@vf=Jy{8^9)p-aw?o@YqmH7Ack9vP8`+T6BV}Po@WN3p&dCcS z@U_QtNTuJl0SbaPM;}KI54TZLXx--U!(jHjP43PtC#S5PxovWGjCOI(-dP*0+2&IX z1<(o?x~cS~nhK?xzL&oIY9xJ$>+=E^c>sQ8A`3pU|s4lB&67Bbb?(RI)d-g+7Dk z67=oQ(a%xs#iP(0-K|0Uw(NpvV6VfZ_3KgIb)-NQyS9LP4OpNMBl*4>wqI>C!V3XNjgCsC zr$b6)R9ae8WD3;X(Ua4o$X!%Aw0_9;eJDR5{DEEGNlD&=5)=93K1oSF7)>GxP~Gqs zRIdo?1~sM^NC+U~w;#}6gcmMMPJCL0RYujHFME3^lr?Y-aX6m z#?I;0dk&x8t+$na+tr{8#dy^*4LgmV?H_5>ykF7^I%(9ExgA|>nj8NGNoNnD&G#)% zpwl~{-N+qD7UM3A$v!{cB5_9w1;R zIb}~BXiPtcMp=`#1apki@VEGl1d><6Nf~#I^%R5CXer7Z7_}$apB>4%o(4Dc*Vz0m z*pY1BR=;Wf*psX?_9!cx54z}2K5b2w_k=-f@gJ{6Fwow?3kEvadr?3oOFlypW+H_1Xk($qP;rPc&uJN>Lg&gm{<4aOuK2<)~wVvXoK1 z^F-nKgzCN8_D+EMS#wVVt0^ZK?q8L%NIahg@h*{gKW{fAzb4K=rgv49$@l>$o3jFRmt`~Gcoe5 zcq-)bmD0nQ!P1!0BIVLG7mO!Mv}hU^5*Q7dfm|30hv`8OP>R+EoJMQ-&&*Ew;rVP& zI3--9d$6bUmi$b`E2O;(meUn<3)l_`{B(W}F!XT627Vs7Qh?7?Z@DI1E6SpwqKE)6 zG|^Ylc8+yKw>cJHF>POh&yJmF-~AcwZOLG+ev?}9KRRNZC=7;vqQ zprwERi58s+IRxfsM}16O6+U89{Efoj<2nuNWl?x)q*AHQoaSU0Fr(0ZS#?SOLl)OEH_MUNkhSna%hLrC3 ze?uQvwec+;>RGTM(sAtXqeA>o^vNI0n}BA>)WZoh{fAM@52U{Hxc+7 zrs6JUDzKj<-#ziJRY#UAIZ_qo?;pm0tiMN%7wz4<$UiX9Uv(uKnOI_*D@bf(jVY1k z-YEMgyp>eMTjBQ(c-k0`IS5~6?(-#BHi5@hWJO(HM_W$o4~iI1$^mjGE61+_zz zZs;N>Acz6KMHdyJH<%S%;n#gqcM7PJ$U&Mz9j2tjUY95z#|o)z0CfK5eHhJwk$g5q z%g6BU{6*!gdV@HiZ)-0fLk~f553uOPlivliZ{Ebojp3h2_KA9Xpe@Rk%{w#yE|ww| z28gFXW}aW9n-kiacwm-4IkoQvgJld_$<3HNewuyQ$^`JuTjV$IH2(z59J_ULY#iDq zV$q9A|5GsVBw=uuZpt|}%D-@JbgM|qmF21BQJpZqGlTc#KPe~R#aOp?se)9&j}PMS zE7z&2K(yEhcj(zyKAX%xy1}FFeJK|9j$yz~@eMM!sfK$qGIOb|dE(-$ut)B@GDHAg|Ol4t$WW>DA!jGCv zb<|d2uzti^Nqzuav-{-x-a`6-Ae#|GwYr>7U$bWb>w}8bfUusHDf##*3*D95$6{2N zTf5Y;lFLNO3n{gQv7Sw|8T7nq$I-XSkP8>s04V1F?I^~Esi9&NP@Ay!*-V+SVBJTz zjuTUF%)s>Dj2%chaTaq0P5ehk*eKBWyHoxwe+61q==zb<=t?ETt}B_mbf9}L9{|XF zyv($#TPz!lE*SpS=r9C4v{?JT0Np}g6qC=O2Ni3<{CA?8v2^d&HB9;N=-_y(g43yt zOow8~8K3Qpn^T7}5V#E(v!^<3sfHR+J9iX|SKqqyTQtMBcvqZrn5B-bQTN2&ps84h zn{%j#nX7?ymdDtAiIRPHCvF+u8JjJWNKJ=%A17_sUtXQiU&f$6v~)sFuAqS0gZp)w z)Q;>B01~M=V+!Vu65(fypV?yc5EjOxME)Z+P1e z$b&Y+7kK}2$6GkeUw>OA^6jL&nr}ze1I)J*=ly=cK7UVcKZSLqRRGs|r7l4OLDW+x zO2T~ee|I}wE@GzlOSYZu=+tp&AC2uNKu}qSa{_3ZRy2`qQGOtp?>fY{Dig=94gFfz z;k`#+-(Ju&+>#ah4+ej*pw72g7{yjC;AAt7u?R^EVbOGi{ z`{Su#BB1>0wbTrSyo9k1zu;5z^N7BhS9DO1cHN*nKi)MVw!39_-Z;WPAU0;m;3$E0 z?H3(6#6L!Qq+{HC8=L-Jt)iB6w(bjU`-Fw`!`$m$eZw#pJCty-XK>rm3KeR*%der% zhFJ4Pt$IT=>C~-WTbAfII593@NE~5n`y~*z_QINgSs{HQef+z1@p#}jBe+}G&=7lD zPmP`ehdU;&PyeVW4D60P)GU5ggt@i(z#ffa*F>9Jn+>3#){k2zv6ndt8gT+3p)pgp z1zIu0pSa-(gX{zOg)kPXp%O-nNnT`lTJOuQ)o3(|L@8*+gxJO0GRNpyK1QadM((~n z7OpljH8bjm_p^Pt*(YdpP+4ohHTt>H31Et!zjSikz!d_j&?b0{GC%~zT$3wsk;}jMc z>|pD8K+#>+t-dXy*Tj;xfP;@86XpkPht@KOMdpWm3FPEf5RLm>JUR^}8VX$IL(_(2egez5dlodY!<%|1Bo` z6!Y8A|2;0M_}}B!?n1Yr-TxL>u|XAgoAM=RfVI2Y3WTFMk$W*jL7HsPDu|}Jh=UMe z8#pC;1==x!`NDU%?7S*;_! zYXjuBVEDvw2s;(#BfnPjA8q6M>_p3y6haky`^0snd(D2BJK61z0A4|#<=TT>5 zgKiS1U)&D*D6zXEoNO7;2?PIY+zz;dEOA&irp^K}V5>3luP8!K4Aef=BxGconW;gO z`rm;j>rHtHofHk3zTTNHv-YP*in>kBLJIU?1~fWw2n-ftMDh5M;|5HN0s}BCM=uWY z)pSt)MC2jwD|M}18SRBGhF;y)*`lX|Vb=#ICf%Mm@m2Y#(&S;iy*leTUEM$RXd-m& z#?B)fnFy6{2z(SB(Bg<8n?IL10*{n*muInBNPTKfgYTswm1BZ-Xq zbXe2v3k{ClZbA$2sP-zjvCuzZdlqfkKkzilKzBU8B2TnPN!nv8U&$2{Yret;hBI|g zE8ydPR^bB$Pg{qJojuun~)ByOe%koe-h0@ zTIl*8kXSn@0S-ZH&)F-F=B}-D%NVplSz3rbpWKU1;`1<=-q$I9zy2jEM|_nvbnP^0 zuVPgNu^F<7uap#FdfbpqY;%&as%(Zr+1jw=?B(c)=eZWvHZT)jgZo?PIyWuVE5!v+ z$pUD81dPD$6SCYl^8O3{0sk1J;9MO47c}j=;zV{zs$F>RMGtbmJvoF9e&tshf4Yoz zp@2v*@UFaGoL7Mhv5P-0v=AZD$ixsPFe}v-XSQGs<8o0v#f^2&wGArO1rgrL z*oqng7z(Dco`>TJKv*+E6bdl8S*@N!=!w&4)st3F(26rBAOhG{Td!T;(rU|?V-SJA+m|?6elWxRfyuWYw{e(Hq%kv(W2v*U&xeHO=(O1u(*o+p0HiSifcC z7H~EnnG&C31nroyZ>o;IPU@C_zO3raSO(oT!r>`qA{EP3$wGzN^!m5j=zd=t!a4l0 zG7alu%gktf4?@mhX2Si}53u>?(-5L)z3aw}U9ERty}B)POKe*BT9C{?kJjDjcnz&R zKMy2p!$-z$PGhf4LhrBLLXT$8hBnxqug)a&&(3vgckNogW(P*UP07feYzobp0{Ncn z@=>GY*LTY&;gf{v>S=hs9Z}v1u0iw5Ryetf9KU6@S^c2Q+7*V%L(a^0hizex*rcrgc+vfo!x%(R3zg z?%n&f*hnXE)}`rt(8pPj?KEvnQmLPIW51b+StUIfnekJ!@)WV7vd-x_gd91FR-kXj z#dmTaZaI~{DQf&Jbb~vFMe=Wr-$2CCBWTTYr*-J{*-@t;TxmS{*7&GR>8G-{$K~E3 z)#i_DY~u8U-KzuDgUHqaAL?|q|CdTh{(A$l!#jX=%i06~wN}#d|JFcwPHBM^diJ$O z((b?2toXk*5k*s3c%L|gCt^!s;ccixMWly6VX~);o-oa>d7s?a$+K8An_dTP_Pzp_ zl`GJ(*J&^S<=T6Xx=%r;mY-ksOl`Z5F>G9Il&p`b9y3lSC=%e z%J`iKKvSWD2o1BV91M5w2dz2TUyrOBJS#srf9yC{$U?=;-UHBd_B15lzx1!kS69xO zx_WsTy1^3_ehf>O?oioDqfCG?5x{($2Cwvh*7OZUK4Q=i`YN>Ml40&wic9`Bml%7; z8y&?ABFBG~^Adz^C_AcPnYRVm&h9#x=1JlC9FE75XX!1O8lkAI1`(QK%Ewft*dx6q zpTR~dn!jRRzL;L?xDCw*L9dYcQ2Xq)#DLt=l&~zyr~;gPFHH4GC{2vU(Z?sZHk7%* zj?uN160LnhQwCEnsyj>OUqfN<(d}jzX1C36RQ-%`$pz`Njmc*k&pX}r=`X@1x%9Bx z{0_#9-*^fCsiyrE_k{;~(5 z3Ei8YlC*GPQp)_fZZ;j=+&bF0p~JC-g|SHmlM=06U9CIy=t1z{;LEmUnu~bw+ClvoDdHDq{C%9>50L;zGQp8(?kj(^K{SS{;^(u4%DJKjlQ^6RYQ_Zr znC1Mbp0&)~T9kJ09+)B;5c%P>FYy!D1TpRUPuK+Bv}Y{}!Ep!h_h~|2oWx`xO}$hn zE+H{Zz!FTrQ9>&+zCj!Q?GE}hszJjJ^nLjftoV<~C=!-qcvf1wr z>3yjc+QYNHBWg!-1JMN8G!;KVg}P}lEG)@zkyz>)@_qV5cn3Jyx*skPERfp22s7qz* zflC!UFgwemi)US67f*Gdt%vk=W4|fhtt?x)*f#c=>}zA~47pAHCV98AXxYt9(|5|? zE?rzGNo@ySh7?M_di^@pf@cbjj<#TluZCa?QZ!c49!8%>_j4=HquCRg^=BY`0&02& z+D}FWYu2DbupD?BEpSJ7AblX1q6h92BTwQr`NzrO)12<*YoP#+u>wHr60QQ$K8 z4H`X&*QA@F<%d8&d)Xlf8cTtq9jC*4%Q~ne!HyPnl3?C@+(v+n<6H&~bm4U7W@J=M z@^f+W6)a8lMkyL`#L`r~T8@c@&~{)~ucLud&^rhkK0FNl0~yz5-BR!&Y2lHiFJr>f zq}PeDsjQs|Pf!Ly8F&uIeI}pDcSMHDZQnyO6wQl)FP@2{GvN#0xfK2>MVjz+CX(Pe zGLCPA!tr`7mA$UTiV8R+ABRKeyC<1k? zH!CL)vH$61?R5XrVUu=%UujU`wq@r1tULF!2+$ARlJ2jzR!2X=7B^_;{FM~Vji$;QUxo@M+xjqPWz9vCZB0eQ zl!c{9D~1R!=>5>lX7xw3<-sFV{c)u=G_xGP^TU$zkGpea&4;d=HrQ|ax&X7F!M1jT zgD6m(m$qT-2qmY6Kz~~(qX^a*^N=XU4%Og%F_rTflOebyQg)wuK8f+c1Pt*{$}(Rz zOJmSOT6YKE4cfw*y(oX#GBgb`1`#*L{fI1!i$_g0MpODC9NDhks+$2p!yB4nH9SML z=Dx~st%#K1TRS@0cfYu!tY~Y~W>=dwGo&Ybcskj%_pmbmEoXQ}$tJH7Kf*RXFDZ3AZaHr*5|<%UAo>Z9OO5itH8Bx;9iMm% zR2*x?g)vpZK`TeD+saqK!hQq%JOE;Ydxo`6G@Hvs##AOW&)yP!dEMZ`rmjADvCSir zJGD=ZdffEz}3m#O(U6jK{#OD!?klKS6AFj zJ#i7+;v$MtTS8ZgYd6OFSawyb58x*Q#nug{08VYFJ`Qladf0#g!-jeRcyW=p)@yCN zb8o%Y+Pmwl)Dzkm-wTb-cf3~J)T3GKgeXTq;`!=a8LO{}kMazFZ`)#3gK9--x7krr$gDaI|eoEB1|D;j?4c zq7C$M=-sPZFJt3g-JCqw<1nm@i%i^EBp$h^N=U0a9IN znf$2sy*16MZicT-c1T;n*T`Av!ykLjl;87HV_xwy$gByet*i1~uR+Wwv-#dsBcd;AQ z>B?QNY-r{&XMWCXxB}gsgFWGj2h3WOGZU_K>mKYO+sz-OzoLc9uFPLcNI0+l$sy&} z=dVLO;J7C?DMc%!xa9kUOtn>6N>nb9gq#((uT%r4W%Zly5Ram9=3;vE8Cj!Y!LM&&3G^_QmM4bSYft8Jb5{=oZaWAdki$^~4`F672QaGP%3goCRi@c7 ze#?~m1f`BEHUVe+OUMGgS$j^!tNbn}dQVVf1 z=07J>|Bux}3z;#s8In?TLvb42lu_hsa>(O*(nrV-e|rQo+{STYDx`9FyC&&iQ!r|% zF|p)9+dX6?_vO- zsp-1>8VT%YaSaxTQ{7+c1LHCYb|vV1i1ZJPf|#NHQHOt_96U9vTms?D2K0jdXFycc zfd0`jyyJNYyJK}5!Y<54Uv}lMFTImtm3h0QC}&k|DMdGEfzJO+8<^u6B2I8U4z~x} zd+e~nB5UiSsaZ=UXce;_ny-Hi4vUtc^Dp>$Degn7^EDE!52M;;`Zt+{s z!$2Ox#l?XmS0XJK2dn9;UnwMe4lS5+9;Z~w-Y^ z*_j4t=mr8$9y%YLW^=#^If1UkxI^;}VS~HcXYMPs2)rj zIv81GbQ-%p$%dnl8`v!Pe9C+Li7k7x{8twZ)|7!B%f^k2+<0Mb&-wfLDd-m4sG)MK z;HBxf^rRph(Iu)Nc*6a67eud7DeLp!JrFtZC3Gfp@_%tX#86rMQLG%I*RULh|3xk2 zGn#Sozi5TH^SSio*#DvpLQ{##5A11!UXHQFN#4L18>c&0Jpl-;U zko7hZ*5=RbZa-rxv4i#+9G5IcXI`P;hx8t3KKk?+tKsJ+L;DkG>qVr3uWY5OA$Mu7%qveWzLLFDJ z@bCXSPt12uy5Bu1x-MTnt!P=f+rWXYjN6KeqUkG^_wXLz0_?KoQ>QIk+SAL!4ZX#2 zrY^^E2DmA1FJD$PZFxmcuK})#+bi+6IKJ0Fmv74|)WNToFP}PfB@P|n%3U5cd-f=M z{{ZBbURIXw6cE50kq`$zKLr{!uPohR=up%fzrr_x+@*$b$X7g-I(JT*!_Z;4#m?}j z;j{F;K)evNtP$0cxJMD(DcUk%>1b|Oro#LID%9WsI{>u zmhLi*hLaJXjhgGhRb+_XOf|YDe-M2{t6Gr~1?5G6mLhBTBlA)S=uhJs>%nDYj4l`H zU5``@i#)7VDSwM2AvaV7&-9QDB!_}tksj?*SrmDg_JZS~D0Z?^srD5?bJFv5@Mv1_ z0`i;6Ysg`m65S|C%48(`sR&>FDu9oXPD8hzG6qU1l@;QKhHP+nic;PH46OopOA&Nc zeh|g)lDi~6vsDbI^3ex8h4Yz2c9VuE2{aXs1;QdlhJ|Q`uAX2g2P~pJMK7HBdEVTQ zv*!F$Hv6Bl!gPSqlL|%yjHeqZwlY3UVi{OH-}4+SN=ndOe1oo+eLQ{o>-hr*&VRk~ zJIwk>G2b?GJ(PMfw}$pTe}#Zjq=7yYtV7%HFf$w6 z-LjLRR+C0ew9QQ0m}oU_tYIL{lUem@XWCY)5&lohq;*U47W$exnl1G)Ip3d)RdTXP zDk9quETxVTDVmKBXcf1l z<^&3%pcY3#>L@_e<>ZIaN|-j1b|ju&PSoI3G;k`~b*X@frCfvl3_9rI4r$aQ6mk-$ zvJ0oOqb?PF6KU-((52t-FSn6Y9+4=$aVj=AiiVhxqY1`BN#)__8H9~5gfqv`$I5ji z@|`;<ONjzeS_Tnuu zBYBGRl}R@dK+}-q2R!YLqAblEa04B7ONw!=H1g(S)l#6(y`2 z1P{j_f*#_Q1P!erA8vh!o7aIG#*V=#Yocri`Vzp47xZQw(OX5TA`QJ~yU5z1ZLMO# z4Bd}y3pg`*s-!o+Q2MvPA|NhgMdQJ$VTbP&J_Xgy8rkH=e+?UNV`uKHXKI!z{kv#_ z&+_S=6Ya9Rt?l$=7xXcnAr~t=xjMaYqQKHZP=hGxo+Ll zdMy}=cD8Na$;!IB!=NdCc6RM7dgC-%&I~!oM5LIA@U|B{P>_BQ*Ch^f7DRq5skZ?? z$gE=*SGTb~6GtVcw$bg}+M**sw{|0D0!)vKPj6vh%^k7sVAY42?~)miQZh25SEr5^ zHXWJr>8Z&R(;^1g;asJh73!nuAut8%EHn{KYbn09bWquEQnQy=@ByAsg;4{Ro zIug=9_~1l~a5sV5*Qax0&m_X^L*~(yi2{Retsh~~O^9k9Il{sw%{~w_i37Pv zrA$=~2ddxyI~5^TJvd83E7#XXVfIrsqMDhB)z}1&($@wDuTIZgJM4H>xBezxfkOs* z{!0z|S`V+QL3Nr|`sSFp&8b@J?yPf)?x_`(i0<| znyOe&2LFkvs(5#*1|8Zw)3KYqGhEnSRni<06{<=?5LI& zz@NNiGxT%#uPjzt?knjia0i=-a7d{*%Phr7=lEavg~Q8a?fXy6<19Pb*bVVNpbVqd&GjXLzhESSycL&-+G=hPXgY#p)2}xbD{>O0b`4C$k~5D2dQZMnkhmpz z)TWrwRl@^Hhq1vii9vzELjxjWmS{FDZ@ocT;gI|Lh|u!Lq>7*cW87Jb{>ekU;!4t; zrtHBI@CJEy{GW3*msrAo&KasuXD7J+Ukl)+7z7kvdz~bMkhaEnOpmn{%wN`f+0n*) zK9zqGT%cbtR25|dH`zzFOK=PcYOyDwdcv%oesdz@a(gvt;-1$z(6d>i!2$k$-jYE* zTnnr^`FYW{oB1{)XZ43x57sor12(EUy+z7~sC8jJae?8vQB5Oqac8u}4P&5DMYV3o z)m9AxslGS_>`jTQc22Q+-CclNt5)r7e5Ogi0Rck*{KETrX)lLVligh6-Z@os_D-MR zWEC7fb8w7qvk`OAuJ(h;j>Bal7tI6pcC$>i0i>3Wj)YuSbiG1vMO${bl$>t&vIIOe z56Jhh9%u`ivZtcz6)%H`Tx3pxq8H|?>JW~w2hmm_nqX^+BNJA(V)5-NbY=-UQ*CpZuDL1=qX&}j z>VHI?2d7}Jk)!6+6Lzxn2e$N(hMameyLh?4sYmv3o^a|JxwgQct*jH+NWrm-N<7ck zEap+g6-MJacP@~w2~g*cbMKD7qVQLup#xJ(6{5nFd?|VZ5u8$4I^wZIpkCNSfH12q z6laxi$)RU&+tMo#K7ZS&1PM#CO*J$J_D;*`1i)%)-fV_(K4t5=S$DMOGZ?$V4FAj) zn9K!MCZR{VL^(P(w&~nhQ#)MS(a{E%qyo42HH}nCzh0jJ=iiVd!9A<1FGrE>{KK6y zR|l31j*N`z+Rn=3#_3C!WD9bQI~Yz$_a5ohGQ+~lxm~9g{7DFCf+~sMqk&uu|4L)D zusGNW)?qCgj7ZUWfg#s$yX2d@#d_uqfDOfS_P}|zd#^6tdJZjK2(Z6&?I=(<<2s$xJS|XjxHE-3rDC3Z zqbns(H6DkI`=ny2WChFG<6$L_!5==-NLG(-G5}SGD}2X4;`h@I$Z#^e z&vWOWknsqY_~}#VjCJeqw>o&Y=%g_g1D0D0%knR0zc3YbZ3Ql%YUi`mR(Q{?99S9~ zoax%Aaj%Sa{yvRle*TVqTLZX%+6OI+nu3m@L(8y8;1VydY?`$*F>&*VR;lYkRt*ob z3Crm*qEFM1Oge)9+NmQux0z&OE@1Q#9%V6z{a(r=H6%omsM@aDUhz7iULfS%ue7WQ z&G%^1q<>!6+?6Yj`?>>o_;~tjHVWV}Syx5WGVPGn$qs32g0F9Cw&vct+^}X*d67fn zyuL3Y02AUHn1EKyT0~KZDSf?Ujs*Ahg2S6T~ZDANPShokB0iuaRwBFm}!|r*Sblb^*Sd4&hP8)Po+h9ljfDlTcUizX2=r zTiCUbHEXHUr6&>a@D$@dd3ybzn}gHYgnLP!INbY{){XwZhLY8j_lynb)un$g%N7<8 zAJE6rbAWjZi=Tp;TcY<@u4s&C)hnuXtIn;AdnB}J-Fa85p3$vacWH?yU8|OzXcxQ$ zGqtxQF@pS-p>zZTqPm8RInLOT%w6@EX-JXP-g>q66|_lT6AW;os`~hes-a$@LyzOj7^S<}||fy=DxJO|spiUU(iG`VHCBMIexN)p4r5mpZw zWhA!Tk0M}>q+fgL)!H{ueXY8&$J~Y4GcJRZYmld^wcw;m9=!6RC=YfYl!B@08F;@~ zhm%&LH_492)ZsI2RdXueIEC|1Y2dd2TN|Cs$V|hn_IX&C$UPi{#yG z9UUFJpWi;aXnP~AtBtjc=t2(Jaavuh7)YZn*3!*{@g zE+L&whk@6aejUs@w6Qi&Q^l;@2G4mNRUIsdHThqu2Qm#PWPR?3;VjSW>EPJ2r=z1Q zjD$XpwtafrIreeI=Zce6RmT91RSos@96D^^!1`iZ_YjJyNDv45z4gu3-CZ{}f}jHM zpRu@PJ{T47K~*wi0?lZM8#8ZkuPY80;ocJ83&T;K25$C_y#RVS*||Xq^t5;C3DDEY zzNaf8P@rs4_Dr}0J)A-YXtq{jy=gYMz`GR= zvDNf0^y|{4JFct-H%w`%8H`z}muu}AYl{8mim_7{lq>7l(iC8u=O7`NSbG5-3nsdT zX!NM(04S}NqJtq6t>)J0K<} z4ilkpCg1C78=4b`o>S0tu#np&TFHLvZJL@7&_$8W4dp?zX(OU(ojSt(1K|T-z=G(Z zI3bShBY3kz6eUX%j9(bp6XP6481s(vB6g9u<2bwlVyI4Te*D`BdMcXBTtxGv{vSV9 ziw?qZWT4jJWqAz=+ z^S?s+C#wbTDu?-%MMM=3^eJL3K+pahda>>jy1i`7Z7`|y`x9nB*W;$>Qj5H^sOCud zjFU;;bCO1H8B08*;UXBw((8(#ulGX{IPT{%%zHb1HM)9b4N~liocIp}-x*u_<=}8! zg2-Y|@A?v4Mz<@(61*iY?-ai1mFs?_L_05K%s!Lkyfc_mLh+f z0g%?4!&kdeW$ICDxJYa>+7Xs3a(vJf+Pm*{z8%b-`)T&F>7e|NGE`CJ~$5mT#(tH=AUQ+ zvtS;-#c9C>V!oK)3M~8i>r3nKe#t3aqC66Zqri5PlKs56Oh^rD8ZU1YiGeR*P};yZkWPTRA~w^wy)YZ1Fw- zH%83*%hW>GM8nXTA2wzhSfKkh9oTZ2=KnpL`O+A6q3j)H_$vi`NWZ_guve6?TKRs; z073b_k2K~dwR@rk#uc$EH6qCdLP$j2Uv18H&L124a-9($8WbNN6p}#CP7Dr8ObiN6 z98q2n=jhkZqf>jQW!Rsqua{3pOBZQZkJwm`{?XC>$q#Fy)7e%r^ROq#el{JWmbA1m z?nBYk4bF)5#O)vv6f^Zru|&Z{eO$D(XFVsOL%7`*_sH}c>DV1OFFn{{oa#Fx+bW>v zoM@ts`H<6R17wo#6Hv3j?b(1y=pb04MSxRCadPGc{FJ~KPK)g;qf`ml6Tc{ox&)5) zbpCQ;Y;A3ikscYYHo$c@hF!+U6Rzg@&%pg-TQoR}qJhR~`20GJ>C66m8q`G2h^f?Q zO&JP@jDKx;oTjQ?Op_%A@s56d`*-f(v}Am|wa-BBj_qACh6iRim}<1Pj+xieyrp~B zjxpseEsgu46G;)Ptb;qIyAW5kg*cz;|2ZF>@AB#FtIj9W!R$ZfgQcJOc$$`JJF3G`&&*TO;T`zwFJSGKo-&2=ByE+Kmo>P^c9g^K z#Lz$f{N*n{e@VK#Bl)~@uYdjg1@0+7)#s|7l8~c;E#V%}GZsS!bO4=BEQC*8yQ@2@ zmHnX!d0Byzy5jFY;P1o#^?L*SJvIj0QTTo;e1fjdKPOP%%^E`Ui}~V`|9eNkzI&z) zqy2}2|G#y&bU;#qOM1uP&MRrhAG$)_&;N5qhwkisWpEtLvZZXX#mp>=nOT-*#LUdh z%w#b$Gc#Gt%*?WwnVDhr-TU6#efwu)_xDCj^z=+j_f%(|I$70~ohLp*_*eJT`#S-% zeDxne5sXkgsfi-0g>XsGVBe)cXTYXi9K>V&ssTe*@R}fUKtrJO4{6jS^sgB^uzI@X z=wnCz`wae$x_ox~k?ZAO3rxGucY11c`SEYNL;SRIf5p5561K*VERR*hiQUx}7lNk@ ziKq_8b)y+?ti$thwpN>_cvBB!bvweRi9@@9h{%0mPs0VpBz0 zFIOX*L%c%-CS785@fA+sHy608SW+f`1zzb1T8f(urtuETONu>qYfOov0723jkW_OEDM!%ur7US57;L+Htr? z9`FgI#{!N=k#xb)_)FF-y!(89oDpl?g8mS;icqE^LS&2sZH`N7)*LV#-ad^`CkEBY zfsLt;*ZxFn&e`UD6}U#?HNd8fit4@j93Q@7d3hf$Ntv%dDv6yv)gc=uyQ+o;0l{%r zG=&ux$KJ~Xo@FV`g%`jqy(Z+Y1VxBzlt>4PP*L7`sjwY9jF8ljD7#C+zjLtP-_-bT zBUz|MAHKu9DZIV9ysna@Yj&}V6F!$-C;8!9Dl|=J44J~z(rcxH;pr~h*9f^EK%hrd zgypJ=3vfE*#_d4JDt&W3g8B^?!kpAxklQf!GxjL2_nF24`Cde3i?@?g0`fPbO-}}Y zf4=+bW^Bj29LWysj!yvH>b;4%eCZ#}UDnxDy@o(2bBUPw!-#}C1DvX@i|Ho@-E zRLsz;EJNmXD&p?^ZSjUa1jI&|H5J)|sf2^RUV9C$15muBWvRbg`~O@eJC>}#Fun!i zO9YRy*LXjz+jqukNi-pM^HE_y8WOYY8M7Ih%r4{X&xLPJ3{3{5)V!t5lWrnCl;6C= zw9&b^iZ-P^Kd!;!B+N$~6C}%Ym0~2FFq2pH&Hr#YbOOD#RfhRP*-KX|x}z|T-i>sc zR-Rht?uP^0n`sKA*$^=4_`V!cLU>O$A^um<$L2aNlm{I_8rZU|00Lz%s{?#5|JzHy@pT@z`bv&LU@HXW{FgX!& zwGm{FElB&}-6fcrdCf&fEbCU+@?+gB@Ccu3k3YZV4{~H7rv7T|DLt-F%}!Gpnh(p# zz}BxS4=a~J7$)4^)rZ*{>B}zDWOg=jd7EcT(HPTCi}@C0>k?aG<5C`@l6r!mYE}|) zNWau80w6Fd!06c^r$zTbiKXpVcR5u#U7i|7q87vstc)&uZ2?Blg0Y=hj~}GhOOOY9 zR}&H+PI5Bpc-LmNj4Eu$iiOvRlcVb^AExUo?USX58#jCb?UgupngfarFXVI>y~7Oa z-FeKjy3Wt~bh$sQsA+Q=Iy4n~o4w~xSE2dOsDpTsMmS)J&qWZ|*JD z^E@r~d)N>Z6bAqjuu#fX$UKTSq; z5rLdMPsU)CVtV|0M!sa*FrA^d#WWXXKHy~_=1hAvVm@PM9A@7&n)#Id!coJ4n1B*c zMc*t+s)MmHq9qqh!)Hz@z&!ueZ5mt)6M;A8Pj>Jtyg$ zS{0UDO?6maUT`g!O9QQd&&LD__k#|H zVTo;!ox)fIpF}n;v^p&so))lp5R%L32l&W4S&c5EAoiQ|ie56kfY(?L$6E^0Md@Z1 za!<=L(xKO^Tu|`f zn=qcW#ZOq-~5J7kZRLU5(>N`Pv*tdgnmJwTS zSHVPIU!kacM{?k(wE^20ilqh9j#ohDX$jPu)+>}Jo!^2i26Ii6$2Yf#V9vKWbKxlp zy6WGgeTWDg>30wmgA(ST08wunecz6d?FjUz6&+ilc-@d4@U@nHp~^!=R#CaA$Xjbk zb{{YKs95tlwMgNeI)l?34qcdlPb!h#80*amK@kV8AvC!S${8i}8a|#g{a9oYP zt0Qvrk|6U2dx5LZx`S7zg;>R?Y04d=GQEd)%hQNuHT@=!9vb-Wyj`OqS9`mHg)o!v zlabVwEhtvPnG)2YrZVcQIR9B%&{!6SjG$?y=44<|?jbM)YgtG|7=A<+jciyxD{V>u z(=ia1`OAV3%+Yqh)}{iGFUxpFmFFNj@S|wb2ek6X2IaFnP2)XC{QPdk! zNN(Bk0JZQ>II%96T3BhkbvI6i1L6A-e|OW?4S}l<9BhG)WrY$%FVFC@s2QVR>8e0y zk?3sjTO$?tjDU-_%^VQNPm0#)Hyta`;7>@!m<=M@((G|nBVK9S@6>k`Gc=`tdF7qh zuj2s^W*ykk@kgufcW_eN4oEk@ZrEY@3c`&~2>2R~)%#DX?FWU&qsw_}kH6!Z z)DPvbhuP6IzKwho4vWwaF?H48po+|B8Z(~0RU$o#d8@|4jzmyPZ-Zn-P8cTWzRX5Z zkS-yY1b4XSq^IhiX=(la2CsreL$>Wy3G)Cq)G5B>22$J9UAH@}uLu2dOJn|npc^WQ z-z!XT24D!Qj5H?vD9ytJo#|VlmD6NM=kA3&v3|i+py0Yx6^~(^)g=RQaDL8kwOqm9 z?ee(HAIo1xDZo1XDRbme3y^dYcu0!xEH=r1MVPJ5BRA6ZI%(pw2IN6xaWz{E7iFfL zbV|uZ;*5mgN1#ER1#WZl1dUt7>&##1SoCahJ0(itC@&XO9ZKCTIAk=i#v(Uh&v8v> zS92Bq856JBz#=%`Arn30b6oGTL5E5My_kNuqHqB4Aqg<+rM z745+4q-j&xxr|4h_JTa3OZDHt1#p=%^_Co($mnsh1b-<|!gtVWK@E}g1RIBiXN8?k&X~lGO_PuTTeZzPmHdGAywl*0Z^QpnL+eRj&@=>@v zoFwX>(J$4)}@7yiy%pS)`xu zjecW5Zt#}+1anCpX~GLAh%p@BZtQP;*^;5h@C-!eH^3#G%hZ67Dswzj9q+Mr ziR2XiFR?)}VbkR~?yjF$86x|HO+sSuhdJ)6w_$x>5=hUymxrKCbM{XFM5a$R#8Ejz zpF4Qte7U>7LT_Pq5*U)pJl1Q|8&Ptqja~ua0>!Mt@jFPOI=mOB-_DIXlIert3n;?q+5h4cC=NYf za~G87OGMQ9N;o!kt{2gOPKm`|;WxrYe}c}Q!da=MNOZTu__H&;fqKeRt=Zot=Mfy? zi?|In&!d>mGKP}8C~QNooLRg%dJe&xrQ`L76!E0$=nb-q9lR1UHwZnnLf znf980sd>hU^T5fAMsM-hEB`zExHnUHp6A!<1QTYCQRiZrMYK=%$cCqCw%EZ?zfp6Tg*v&UhN? zKp;HQYI*`4r8-w*Hn+M%0>02GoWL^DYy)#rEtRSRAi;V;;WCO&mBd+>s^Iicuyh*s1K>Oed>qDx7^RkHh*geEPPl;RI#jyeq*8DaB}U`8 zY4{EW3Ho;KZN<8A{mQOTV|g5ZF|jzN2Y^Q+H8E&)_L>R_mx|GACjN89UA$1A>xXO+ zHJ)w0w#vpUawrZTGB^bUG!c8ks}d0)5nfyb*B&JpxT|m3eYoM~O7B9n_D#So5D8Y( z0)|{F5y2~w5|G&EX~i=+-%2kjH0k-tW>sOe;wZ}5*6uVFwOF<2MKyD7B6GdCJk%Q8 zpj53)JylrWbi6P?s{4)Q7%TaFn%+lJ+FR%Fj)D9R_;;mDr{^rwAn3i5iOzcevTyJ# zLu-0!R2@T|Gq8{wL5;^}L^k-WIm@p)y=|P~B^~P6k+dDAeRQn=M%LzeJ(>P^@y$Sg z2Y(Fy5o&PCT|v>`1m=x~N??Fec&Go3LC8)fKO`;$hm)}kP8S9^q#Rdj`Vh1n@DU;C zWvW54f=_mfIx0tDM9v2{&w_W2z3D2PLY2eH^7f^!BMr zwqhKSXCbtTN#c3)SexV2D8)66{750aT(hRE{rT8D-b(frlAzIb&LH9;znGe^k9O7N z>PR~apB8VW@m7bI!Y<7vJ@JU~D5v~6$02(;kFfJ~TIp!5g9EZE2vVYOy4h{jdskWH zYV`G}+B1W5C)&Zw?w|rHf!Nr!FhD{B4{&QLCqZX+Y*~C zHZ(4#_lWL^;8-m!k;?%j9PWKY^GWVq*?;jk0Z?*c_sM;9L}2mqJ8)Up)UDyOS;B1_ zheDk%eKmN+;^|GdbI=f-HeG4(?_{Cc#WZYM*2FCfcY1O-IXxEn(GV}{{edpjv0}qn z;sHz1wk@<$sLtdeg}6*1hN-|L?1TDKv@Eqia8H0M@<3DGAXV&G{K{PAv||VeIfwVR z6{VcG-f!mBK6M zrc8o!^lM^tA(2i5Ym0tBkM|qVV2r6oj;T&q0t+L^-C^AC=;W4_DHz?OAKng;>lDF+ z>}ulJpQNqGWK-a}w+QG`b;EkFXhjr`K6JtGW@blnWDo@D(HxU9t{ZR%vK2Y{OgXWb>^x%)L5hQe$BFcY z4drww!UA>yA0TQWR2h9+D&mT<^QP3Ut$c*;twj^1FIO?GSHNzngirdnn)^tQZy+Eb zpkV8n->rvq5P0rEaA3Z^00CLMX~X&FeO*a*@p0?T6W1K}pN|kA-~V+4i0g`huA%Oh z`Zc?suR!DWt3SPtVeM~Xir=>=AQj4xhpsF8X)dZtDy@T?4$hm9Um_6hteHgUcj_U& z{R~SU~&w zrrxeSHZEV4mrpA?7WFF|u3>GpAV3BYOg~lf)}ND0-6x)U%z!(lkR^qNLpo*c#b#0w zhEEoALIIsAF`QkT+|$bBwtO?J(?vtGwNUn3A}>5Nh^b|}~?3*paK5u{FZp@(0V zjX2xox*t}U-bL+kA~WD7NNPeq#27j8qc)4ZeQ8eYYeQ?24D0&QI?5tiwQpjj#Cbdg zUNx5Fvs-ab7e0H@y=d7^J7fzGdf9jpH0qToX5sThPe{fVs4SHwu9OP!Rw9R+88Yal z@9z0 zApjL#0vFM)H24?#JIjk~1~W;tG5{u$Q~elu4@fI+s;d6TGhNuX=KSSs3ucg+_O}>^ zpB26-dvY05=OP)&XM>X}&g_RUr|^fjx>=sEh?SA=py=4iy*g6gwd?mfX4(GgM{$N9 zUteXT(8}s-OPxoz4#Exd+Q9#@q+*&JPD|^=g6Y~1%zjZ3%96vWE5Cg&^^xFlvc1jj zRgK6hF2uAN-##LCSBB4zD)9nG23AI5o?r!f%UQGBtVK18@|~g-XwY-&K)i$PWs}Gp zd&RhUbJPJp{VX{b4lgTwKYrRzA{49M(FbJT??c|>Jps$bL>l=5JY|A*;jgDeo23`y z4K#__8gS<#AEiIfN|tm&rA4CNI2-X(Tjg{A^l#+~x9gBQzu=R>SId>6TV zf^&6SkFb_ubf8SCynkEfOP$^KJUJU6%|^V7#yc``fn`A@kDx_v(E<2!xe$Jg-cRPw z!|Amfns9jGs{P8!)0uh)*B7jz;&*~Jh;99GL_oY@j+xxrpru$;+J;CyjgN8=lVfF^ zE-$7a*Mmjw{==!)>N$-@_JBK@(tmp{Zd&|3b57gJPhX6DJ<-K~w2|vJG&ut90xd3+ z>gR@A$Qto}K}7!uQxek8NzWU)Wy)93@N0(EKA`7=M+%cY7++n8`b9M;qq9$QPd@{#+24RBGeGde!RLycHaYLn+GVRm@SfbgMK03 zY!gusdtnH5i>iPTVDM~6W}wZQ?2Wi605_KjYjg&}iabT`7UAZEqb86iG!@Pr*?NU@ zzomjQEntNw=n-_7g1Z7OO0F13>CTlQb0>8r#9%LL$&yC~vZDjC3Y-ey$!BxNmX{t7 z2fo(jvIErNvPfdNyopJs<<4LRM1kp0J*wZ8!CR0l?u-f~-{uU~{NaR|;Ew>?$?pMY zQ+N4SsijXVrvAIeAm9hZSLrP&Hl?DBI?m$bG8uh~z_p8(Ny?gNuA$~fZnH~g@pFj! z_)G)k#pPR3FTZP4GF7=rjJ!c4N0zj{>S$s>rl14cBRkd+C1&K(BDm%5+@9QxLP@1% zosM^t6E*rx`&QF#j2>A_1R)*}=}%eAwwP@X^Cb9KB49rIfizU;6LGA*2TczS24xb^;z1pXgXEtqY?je!JV~>euct#ia%a11(EOHUq z9CAW#QLc7@%-@nLY6mDOR3F)X`^BTJ&ng4ayyE;%iQbb&diP;*_w|1Re^KYfaoy<@ zZUD6aNpY}Dk%q?-GXR??!Ci`^BZWU-b*->oeC*dq4KkI(F5Jds2*C7ja>$ z)u6JK!s5Eff&wkQXzlMNugp|p4dqNSW{@W;EepPsEFu=O1E*rT9IQs*v25lIu2SzA zg?0S!h4J0cdB>3~9T1A746@Yr!vF9Fam51-B9_yqSOBNdNElHj3}30p>RMZM)w#Tc zPvbHKWv%Rc4G#SN9a{a&C`#3Gho0k@)m52of>w& z(d5Xcx1=Z1iLuXzu}@&+$R!wpma_npHcd=9dxnlTlPSs+@hf|9&?aVXtVn!<~nr;_|IEqsMy;wTow|5$?o7su^JcyYr7v4&= zCCfXX4Fs6EhG(?LFu5~rnq(*xR&Up(8x$-if?c(D+p!FFViLgUpXv|+_(Ne8$RF*! zJ^eLz&G*dNluawITNl4;Xz}YsaKWTzylTJOJ>3(zu4xD1=EH5UYWF+WwViSqrSCG! z%MH76DP%`Lo8vs(Qmqv`|1vRmdGIlLJPlESG4qI}bZYf>)>gL3e+NC)j+AslPaS-F zZccYpIhpN3##61zOOl(q^x&@X4#^E(){{h2(a5lDG5hFR$y?0bT4SW2%K zlNLp14h=Djzy0woU5r{@uu5gDhG{r>=|g5=G4-hU4FYuj0CSS**qqJ1ycAQWt?33_ zeql2g;rt`4t?azzK#6>JhEULHvbI&&x&Y62m$W&P4Rk57tjVwK!fF9luazn_)Ul z^x>faUqF8}HT9@2Bsx=Pd_o@G`xw<=&&NK}eEHGnU4BG0?19L>QHf3sxC#X70oH{5 zOa#5d<#({ZcE8NPk0ySX;DfBfAYf_?-RT!~VXI#z9OSlBkn3)!KIQYOZl?yJ2_ICy z8s^hVFSS&S8H8yi|1B1_JYhKb^D_TO%E^WJFO7f%1WdfHJgPx>j<0ibG|a zv(}=piq=i12^f0pz=LiTk-ygc07lt6bu6-WcF0&oqzNZ}sQ_aqOq?G^`G^zIFb+ku z?xh1Od$?8&5yMpcj$ijf5isOnbLdDf;vJ+bF&r<8;_tp*RYXZc*n=Sk*v5JS42DxL zt0AiFa_l(T=Vpl9Cmkm3R&t%n9*v8f=Fw_FY?w`iVMXI6LgqI!46rVX#-1MC7aGHW z)FOmJ9~^B4zJ45Kho=Sogi)+Xj*uQ_Gb(LC61{SKO zx00stMV*nqGsV&mbxFXLzTfg&C*@5`_E>Wgq?JC^zr1$KYU13op(}6ZlIz#F;j}NR zxB_fKPAlatqb{OVmZGvA+9(n_N)b6v?Y$sR6g6RGgnmW3kbf%)Um7K`7e>e$qc6N+ zAFJEr)7cRwi{<{^Gs)Pm9I@ZZ?rW7X#rmj3C`(4=ec!@_r7;1|p;s~FO2I!w%yt!V z##n#Afmi?y{|(J3f?zsrn?e73Hi++f?W8#$&B9KsfDfgO9km&qQmbD zNyg6a|PRRBrn=DPtRsG@A9v_McvAiVE9cG*vewWXR6TR$j z-5R5c7cab+vcz6FoYrMcR;m5e`0bh}=jw7N|z1ueazGE+uDSEZts|` zbHe)3K9EOLZrPl*koP=$^oZZ?iCwYGN%hO32Px7$_A^_Y*MwoJ#ed%^l0eY1%>qrw z?P_G(kZ9NcZrOckX$C+f8VplBSm8AwEt+~TtUuX2rG6T0|K&?yWs@Cd>k#!?zVLNP zuyXx%vA*Q<>VgKt zZOe%0s&o-rN)5-at&H75QHbCMFy09Ont6nJN~Izl2Z+X!d?|iXIf%;nH8HrgPATJ&m8^vb)`N zuubWGU*%3TTW!&vh;8%f_^Pe#dx)0pjL5t;MJ%=dc9=pl`;e!2kQYHzD=z!6GqJ^k z>HFO(;PiJ=cTKbQN`QVNwV2}8lTPu^9q@CCC=g%boSkpAfe(gEp)^0?uy7DSei`w+ z1MV>+i#*6ubK5$R`4VftoR&E8CE&=Y-HZmQVu%sQLt1+}wl`N)H#FT~s zv0+r5#ihdZdnX=$QoI_v-1$%*_KhFrJfCrh3^H%+G7#Hk?t6yn7X}$EBi=qE$JeK| zABW8Le2glS+C*AZVp%m8VX%DcMf%)}K>2M5gMGuC3P`YeZVGzytjS9a>10b8Hz$B5 z>ck_2ePY~s$o|j9F*SSevz%|MI00r-RWOOAZ?sO-x41czgvl|6aWbt;yrEoi{Xx5M zVpPk*_(m-#^OSquE1!V&?M@qE_qe{j=60R30k$T&YJkBzRFp=ztdZl8z^A745BCr)X-1r+`kR%tD53w>|E)sNo!0wGp7r zn^Xd9SGNk?(U~PGpx=Dvf$g-LJ9mmKvoJ9~H%HHyJawOHHkpy5?Io=euT6?}Bu<4a zjXYiEAvsDdhqxB6SrC^9GNX*nhM=dZS3p2^NdW3J`1Ds zL=Tgmb_g$)fkaXtz#aORR))VxP4Iq}>`V6hpTRjai+fN^^94Zcn$8ap!pBt6SI|kc z=WEv$(gn~M%~f=eX}ncurdvdEgMo}tD_H&2#?0|OZs!}z)y7I2obnTw1uCbLt{uvYz}d&Zdp^$9>4|RHFP=J(5xq^`$1CX--3&_UqbAx zX>p^3iw+qUJQKlhjCsar$Rm2B4$Gs_E%6x7aX!NH=7K*!zw!-5T6*K3w9XqP^}e+| zfj?ejZwk#*N*Tmqb%Q1S37%{AS=Tt8^!z}Uv+)7G_eh%X4z&!7JwT4Wh#_X(5)iuS8aMm8DWpHGz6f$xwVzJ<7R2VN zJS2T|F2ga1!5=PTizgbmrs<1rIGtUCyZ=MxhUnxWi3(O9`|%1^=k_v0<8;Qi^PlT; z3zCslsI0^4!EL-Ep}Pg42i8Ml&!%eLs0|R&-C$k{)t`@2Zfvt7o&R(0K?Z*`+z?Zp zz(d3)c=I*`&a~J;-J-gz-I7b`|7;i0L8irQ8h(TU(!WjYPDE)c_Er9PfK0qOa>x~d zQ>JQ^_D=WvnC(TvAn9B<5^8M#Z%Nnu*Ix$S7Dnnp*r#s{s&5( z9l~DS@H*x?P$NZ&qrWRVq)6~gz8-zzCz=YO_oYr4OWSiFxKE{H4e&HxQ*G)u-JAa+ ze_>99;Tdg9LFk~K{>=k#hvae^55)fhDMPYtV`pKB5Vt+%gs1b3!^OT*My?Je_DnQo z#TLk+8`$&FW`g3&)@RE))|jBPy|0KHhRGzg2#P%Bq$Qg|L@L`qzY1`Px%4$M6Q=^D z=$FK2`NvyaGD5IfllBj{b0I_+ZV`{uFo1B?F}bQMVjcY^xN-ouJ9BKqKY+TS>x#nE zjxsJ_Od(#hPoU-*2~LqCDT@(>ce$4DAI>eAl1mgL#QAzuAN$pET#`+GoHgq!`_Il2 zEloDUHS+f2`koVoQSVICO!=JGt-^w}1 zf8rl{-95aC*Xy%FwshyWhjZ!3`l3r3QntCp)5pdKDy591zcJ~{VWmw+;R@$@W2pRx z%iH@u)ys!EJEE!(y6dJ=BCU4C)3_U#S%eK%8?AQ3tX50osGLuV8Yd2)5U0ZPrD`8r zOpGhtLCg>~Y7I#*FZ9tf2Dc6+%uVcd!Yz+4B$UA|2Ltm<^{>))aHF zv|`5$hHj*wc7qtBE1PWw$$ui)>k3-q2Qbudu44`{IXlF@rUZ*Yj|ixFn%En--;f4S zf~E-b1h@2Zzv1@I?`8aRR@k{&g$yo7LsFRK9`K9Y#W|FiOeU5*dIhx!qN*?71~8By zaZ-w)xHG3N;P$pLTg+xy!y4dEGEs9w3Z|^beH+&mf^x{((S>s8;HIa}bPZ@p)rkTv zx%5LGC(P>8+{VlB(G&k6n+|UYuP4VQ&Ky0Fu?NSuH-(5^oR0~2JordN!-?EGYe%C; zj?prfOhgkN8#&9<2eNnZC2976=7u>^O;lkSFs{}R@F=LNmADA2kB-AR;>34wiMYs8 z#J&5>640QeI)tRXujT!Nh!6a^RFL|GInxPu*D32t1nP8FK0&?SgyVL3kkk4a%hLS%7G1 z@&bant953#SQL|mJx$_42fl#YpI^m^-LJHuFydpqgafB5^~7$XgAfB78EyM2#InvX#svTs)}A0F2VDwQbz_T zJvtMxA!*DS-2BB~+3bev4Y(15X@BG6qeoLtao|)#Th}FpzKkE{J8lR{-aIHW{HAeC zDNVb=obgPwHW~1~F*2gGF~E0Glt;K=+NWz=7plP1?eWMYAH^17%v$XFyKYlPNZ>?I z20`5pob!PJ22Cx9$1UNvQF{Q5cZNT><Gih5$%n8#=FKss!gO;gUa^yn*qItG`Qpr1yT|=}tMx|1KCv|2>-ScSDtdX$+bn(Wl}_PbB|#0nfi_Qotm-p-Nh|vEB$k? zZ{uS^2J2)dXd}Xyt$cZavg+pd6hrjqPa@{PXF6c+SLM~AMMR-}Q$d>#C^<{55M)I| zE}JWZ5M=a1a0fsF1uYIB;R)jM77!9gN=On|3N&a8q&SvMvi~jehMs45JR$?f#gx?2 zj+nQnMj^qx^Bm&?NFc_sQ!M7>#T>xhS)LNIzEKI0N6#g$#OkN9z9r%hrchE3n+@5f zF~(4Nj^PI+yqL9q^)-$|g-FvWu`1i_=<5lV&=El-uDT4b_K-uf@Y!rH9w@n1N5y>J z+h=0nF^nxW5G!mZ742+~gsB_gXKl;tj8@_MPRSG${H;+4lZt>(oguv3;ylr4 zQb--qXcn}|uv`o)(P%2#Z45Qi?Gp>I<#sk2pvpZZLp1v85pq-6cl%a~<>!uS+8>07 zM$<#~0WX(J)QXK=&W=Us|Vz3<_$K@X}v_Jg7vF7eaTE zTG<3SJFrCFCn>1Jo>JN&TIPuss1z5Qi9DYJ&WkmnxoG!WVr>W7U6U2Z4!7q`nOXqu zg()jAV~=c7y91UaWdQrZKI^o7=#i)li3BvTM26ttPr8b0v=2a$8DrrXIZu6~Qi~br zbe4aCm}HxhULw|^s94O5B3J%$TsmRDF*MFfA;1cuYmIH3kMzoj6Dd9uP(`ytXruR$ zRXSq&aLrkpYo|vwlQKzTh+=%P3{=b|D1QRMS|KH>{3I9-EkaVG6#uDiOAeesmW}Gf zJ&PE>B-R%?dn7sm4dcLeI+zm5bLlJC3$_l$LQixcR<#qL9{eCIIm` zA)pg=&17GZt$r^fg=9V#%1C3tui}c}gcTFTaWWSPU9rPZeN9yBpi3rx4cn0-$TQRu z^|ef7m`@{hJOs;TpSC(Y+ygx#B&5z1!fCnB^Z3jL1jNNfm(?3#!Yqv#;Tt3c7Zo6~ z9(PkD{Yg%C4b}m$(7+9pNMH=s`1!Z@LcU?;ZDUc00o)lvS#kH__=GQo4RgOjLasCYx4|cj+B^$J+twI*pbbKo;V(Ip7-8i*npcUpv~Au_vYusgS$SY^k!#ezSuT1 zXX;?Yv#TB-_G>dYmQT_>FiFg16o zaB~clw~t^9FM^K@i_1~X_whe(CKAgB+ z4svQrIKUb|UQ})#YGOUKFzkIuK<(aeQ3Sj@OAmdzuojVkrjCpvp3?~%sm~%XcNG7u z-mThP#dWKt=gohDdVKyMH8eun;Ef3wpD(8MPZ@B(&_6&J6dmH?17^c7>=D}BN`=64 zAI92`>)~KD`@U|O!mD2iheWaJ!*V~d1BX@_(@``B++-pQ8PhoeEBI0a{1U$MfjvgO zrHgf~LMAPD5R(NR8^NmcL=L|nyGC_3i%b?5Ft8rs=fQl{&Sn<=;}4S(9u@!ZI}vLOg_uGR1Ej;PKK%HEMCb?*chRi{ z_x@NMv127@W@*eKF@~tRY0zy$6i7e#Ras_N z9lLBcTIuQW)QO>s9oaVSHDxy)t7Keq{Eqg$B@^boU4a_t5+8h|9bobZX;6)T9Fw`D z*pqqp=STkXDC_*09GyBN6B{6VUIR4hg0rvMr~>Bb<{JY>zU`^LelI|2V1Ecx%Z zPhJuw6?}6Mq%q@CuSseG(5T_TU)hKJjFt;OZb#Lp466(CCrV-he^(vWySQ=)DID#q zgEck}DU=3U7dcS(XN^kwpxcK{3DQUb?JjODLJB7UN)G|5t@xVoHFt|s45_s3lPW|> zGu)}zbFsdX{VvRZx5E*~(h`5Z;pi_L8$>T71gcIpK6zAqfAYAPuQ&RZ+&qBt0b9d^ zMIpehY){{RgPy|!cZ{h2j4T@v#$tju)QqnGjAIY(MH3U2feTmT$IC&W9~dSZ-}o(v z;qVirJ%Z$))Rq6pLwOr#2=ook{q2i441lPBjR0Zc`i|?m;uQ;OEhL93^w*>^$60o@ z@tmXKegZ4O?obvs$KZspHQvX9XRYpm^A%fk9~uYU!|w?lR%19htVSsdvX2ehjm`3N z&u)4&T#x)YNxrX?MZ+DgINsC_XOeIoIkM(wq~Tbho*RuzP#xbv!yXa;*Gy6xiXHN- zCOTOkyHuphR4o;609yJwY;DJ_!30;_iijQb3H6avVS_}A?%{+t`J_Pl5+8DyXp^kL za>OmKVl51RrswqtO~+VWo=46phB<24Sk4_G+ZAw6W?owC3*V}!rZ4RCxA=pV|D{^o zLfL3?kLrWRPt73m4uW=cVQw^PWx_{~ACk_!z?`G|n z`ITbn8nRMtz)2MoR>dmU70Z5rGWeGzyZM(Jt-dCOtBcpI3a{E7ixc|a1$_B8;e4mM z`H8!{Nkso3=Jp1JBT|ajW7h2SOTs2?$I}6d zXqN5wM&ql0Bu2gH%n@h6dc0ONr*_w_uAeYYMblILwv|zVhZ+YCBi8rCw?r?kDo=d*; z@!R^wj`(Fx)mf8l&VQS8by8i&^M1mG|Ltzf#^>#R%IDj6aAA=Tq!Z$fQ!)3>GuoV9;sR8ub^_oN(BzmKzQJW_dxv<8eCg%%?hF&}p?e z?=EI~AmH=5J?t!`yAbd}`$2*bezo?O&wn)a-;n*<-phb|0~gd407H|sB?>?lH`NP3 zlXgV{qKX;H0nwx!8T(NsEbaQyWIUls6GZjJNE0RPDGL(B&CLoDrQNX%6U2SUJrr$#}uB z%!?XGu`EbB(ALk3TUgaENPFNp&Wo97IW9=K@ZQZ!*m&J7$oPQ5vJC42U|Gj)Ng`NA zO${PgCtXn_Sw;*MBv~gMna5eiEFH#Kr#xY3>WB3uXd1@tsVnM7%`GY#Cf#u?>qm?= zEE^`AxzFmytUb;ero16>9f$QqaGl2O$TJ*A%}g?!CfzVJ9Y>5*G@T}#*w-A#tX$Td zro0e%?uHFyc<#p?=-cl`Eo|EFCp`!}??z1io0GE%T|vH*`#?ZgR{qPT|K6$a`3^-9 z(+x#jqU#4kR3Iw|LsDVe8%~%fN*qpHW||jHRHUjOPEzH%BSDx8M3x{fHH?!WDpZu0 zAgOem9V5(_WEvwbx2zo_D%P|gBdPYhq0Y$>{6U>pq8~<`TOcn^onK);TAq_9PF0>) zW?ojFTcmDYo?qpDVv&<8jBSxuYMf?~Td1sVkzeV&a+;Gb&2^erZrysCTdeJVnqTex zf}@)w0D+@lq8EgtS0E>hV^Co?n68^AMwYH$W>%E0SEOc~ZcycRprM;9gs!1qYLuj* zSE!_{VNmI`xT>2k#kQ(nZq>M|SFGi{YEbRMu>-mP$$Y}?9{ zpljPHv#4s@F4C}W+pY4r@Yu=~!S~oHHOcbWE>zL>*sXNgc-_jE;d|XFx9NP{F4p-# z0sC5w`m*Y8<^K(^8u#48*@Qm+Zz#Wh`GTQ?34o($LJgYYv9@qpy+&u{u!r=EcP>A^9N;NoI18yVZ1g3mQkD7T5zlj@)~$f3ko`*aICYcC{nC*nlQ8t zv+6ij4RhL%cuuow7+OwqS_r)Nvl;|m_j8*dpm0n}hyXa|H7JrurWH(sNahVN6e*@< zR0S#Kby(&Jrd3>r3Fgi3FtoKx$P%=5Yd@$fYge!>D(f~NaI9*V(KW2<*5SF&Ygh3- z&g(Y6LE_mjA&KBQtU;4!+OJ@lWIAksV`$kgqp4^)ti!Rd+ppretUGLiBJkcUp~&#w zuEEfE+^pc(blh%05_sJ#W9WF@t|RcjzsMl+5Q6j<29lSR#c|k!GN{QrSX@Qn9wbuvA)u z=|YiKu(Vd|{n0}4=5GN&P$VX+@mheGLeWGDtI39+kVI0YYJ>55kd#K_`BH<)rY}Gw zDwD(MU@cHWrE0y|>2SkeL?)}l_5NTzSVrgbD+JhMel_ur!3U2=!@mM-|4AnS7;iCD%PRi}`GYP&wNPo8?Na)le1hD?Bcj{aJr0^C6vPtNr<4CHEsfkNeHpKsoy*AJl&`Y}>!v z`d{1ke=#hwDxv^5;Qur1{{zEb@(WynfPj5r!F2O~qu5R`L|H;#a3n>B9wb50+yHc8 z)$ITb0bnc;T}W{ThyjqS=|>mQyzWo_B^XMY1e6~kO%@a{El3hpKQ2fX5Kc8r5>j3^ zOa@4|>?Mh4Kkuph5(q?92FeYfstAe|CMXN5?I)-R2qh{i3n?uqssN-K=9NXX?&tsh z0z|Sb0u?4${t8M|)-MWcoY(&q5Xp306jE7t{0orjxLXv_dB0=t{^bwL)-T%!%ib%R zAHg=Lx*NgX1B{ns8&I5+Wbc!#8)qBRyd7`q77V9p?3W*-Y3da(uV@@pKdor$5l**k z98g}hZ0eJ4J8K-$em!&P76`_5?w1?Fb?Fr=&Tt-7JIrwD5lYr{9#HzL>Cz|FwB|gd z^|=vSEHdF+*_ZhsimxNLvy5y|#^7*N^teC(6ydV3hs`TU*Z)5(_`e<&{0p==5MQ7@6SnzpAuI*Uqw;@^`y`RdFdBU*K!tC zUe$6Dly2Q}9@Tcya_Jk4?{*eioaJ^An5^w~9@(_vcKLstf1k0@{M%>cxbFa#WB}HKoGu^!VKv9k+PBZEP``#EguJ<{65&*yYNdG3i z4(B_gXOUHUV#z?+^T45?TXNWL$1>;W_1+j=;s1}at~;v9tBtosr51&{7-gvlNQ3NY z7{>|9NT~x*By3QSKv)S7Ql*GM!jvT;Q9!|>gkg(ln1KWc5Gp7`2qT0bK_UrB2$19p zj_YfVZ`l2Ou7k@-pVk}#LAqU27@l<@?aIeXL|68yAR@j5!@i2i8AbZ)~;TZ%)? zZ+CVU8}^LK3vw9=nX?V_wluj$uiZdFY2f$D3(EPUeaz3%U6f^1|y(T)5-Dv*x zs9rLw>tq48r8}hbpPMr{!A$C~qw#ihfCZHpwAg=M7wXM5!h&plbU3p>22}e2T23qsACb^(F zg!-+pg(44XhgMWJu-7zV#m+wK`7ODu)i|15R^PWSH7O3u(savNsJ+M*>pqCIPmOw2 z|3u^>MIZAbg7OaLy0<9`;(+b21w)DLO;9mJV(mMFwMMp>+Lg^)XC&=Guk2L}OJsld z6Wvl8gPlO=ZhmBmGhLPfSzxI^FWia_)i~4uY5|Ijz(HxSyw5ZTGE4GdW`gGuM@$Ax9!a_~F>AP_EDL<3UxJmWqj5;0~MzNnI!@IJL4p;cfb!oNvn@ij6FdGsZ6^|P-13s3^3^F zXinrw($CKt22clpt`pE$%!`%Y1AiO)GY~x{vM8vO6v$Psy@Z2DN@kEr;%cz?L#s8a z!|CP6V~bE&X>8aZ+q_%!=_J6hGRg%;VBK))>+aGnSF?FNM+vsaO1=dS_*K)8E?vng z&@iz=hc)|aX$;nKprkSn-ZT_&4b7JdXx$}Iq$uoFhry25x4emb4dK>bF2*~Tt`n^l z=e#DyrXHw^)*stZRAFhQVszmjLpa2$YwOPntkt`j#c+AiSe(h2EYmWQo{J69tWfZR z6;=9?(=c)J%6|_U`;u-SP>ofyid@m+)PwkL<@$wc9wYgBWkc+4r`E+K9Ct;Z1#H#2 z&~e*^Hn1k;(VX3gpBMmXN1-eaj}5N$x32W6F)ZLZP`erUBbN!-qt>W#SYYM?^dv@7aW;G$4P=7YM>64k)Wufvv5h1cSuTGjZRXial>gZCGF^%M8OaIdu$oDj5 z>`@2Aj;YekdUZMe+ADO(rSTZJHMu9ND_Rf9b;ssevh$lMtfD%BzbwZd+(Zki>-{pSazvD2IlJ8YJlkIyx zRO;fL+Na3wtx}J*?Qsi$HT5*j>EI5A=FW&Dd$XA#XNAjvZC^z7b7=MlmCqEpH1OM= z-Rk=kpDvN5lqpDNBQ#AwUa)MY#TPW!=M6m=3F2cur$5&V&nN6}wSGFT)8|p!8@M1X z7eMNrYy5-c{Lrdq*{|^daOtPV$7i9lIe>#A*OSX4gGK2oLDn+x!_*UB>3QkxA&^x0 z+W}m~CetQg2W;iuFXmtU)G71RzJl~U80OK=9@%Uw2~|5Q#1US(>Ds$baS=~e0_&}>zr2@l|~!4%lWcSQ01WLmUsL|Db^8`x^8tbC|$;nw_u06s?K(;=oli1XAvCc(Lz;jztOR{wNRN~CPrfRFSc5aoqF)LX> zw-C6YHa9#rrR^Rtl?R>D1XWB7zU<3ODkk*wfpx=+JF=9SsbC2QB5_&RhF-G`yG>fx zsPY{K`CK<}I1KhwVw?%8zuD^q1ra5Wb*2BK|a9UF?kl&^3@^3h7+&|N6Tnu6L%=-cE0eq{QTAKwaeMM6mr&) zl0j;lqc+|l&bcTDh)Wz$y{yB{)DLnVFE_lH0N82DC{Y{jyqNizP))EZU%YUkCbd5@ z&iU*hYU-5q4M?{6iCdSB*6!c_mV3&&)wY%-G-XWy#)bf9bVd}YzyVopq`^-7Eyw+hPb2g2+IKFG< zCH|T4QO5Uk{ZZ7kH;xvIcurbxaV#%)H;-|*>wOlv3O^e0y5{vj&oH&e<`#D`WMNoW zN=`pwrmBL#t|=DchWJ6}dsfwJ9DLB@6DaH!GNjvGzSDFL>C`Hx17HFn3F}bltH=lk)vNFa|0$ zBh6s5=<&iVb0rhx3HYxWhUW~l{lp$lWp@5TD`RXry_~F*>|b!qkusNVGZr;np?>AW zI6fnluc9t<)|qppLS)z7q+v~8SLPQycWU@Y6Zv0s;344ezVw=B5c*}Gm8$X8Zu;B{ ze%phN{oKkSld51px)nwI`;Wkcg5KSu&M!Xyh}C>;pYUAn$hR>^zImYQF_rw|p<7Tt zvPUC3yi!7<6g1zc7|Js-s_A`Yu^=8J7?iG0F0rt#edZ7o_*sGE9;c-Vx#f>-hbn@Dz>Lp!Q%C)qv zeS*6JOI1)n+~kKIj1$JD&T>)`mU^A`3{ed*wXVTFVf^V=V2?}K)Q1?+_B${$5;=YP z@&mYeqR{Rb(v2C;c;*n=nE2F>=kly1JTiA`KBLA6H_tvf(Bupv2ru)?mKGHTjL9{HJIRx-b_lYgk0QrLL1vygtyri-L-UmIR@o*;LIkd*_` zyij2mk%-~zww3fsp4z+lwQ_L{a`>7Yh-nz_dH3AJQyJo1SBYJf{V8wJ`bB{(V*VxI zrNI>il0#UjJTIRp91@;F6kqUWS%GN!gpiGS;rE4v$dPNqBg(7p=HBuC2#v&?^oLOd zQgY6slM=d6Mhir3X0b~+_UOr&4JKlA^a(b`$jHQ)8{o_6Dp61c%IeytHhrA!Peqp| z=W#H%a?*-*i_M?8krF7t7s!x3i5WydjeCmvmrUVTXJxs05at3QL=`-#gj(5|&;G6D9-^ zimj}gyehHgoo@Q<_$A0+T%L`x^41Z)oN&>DGZ`i;2YAPtUchtXukp{oo8NA&6|er) zGDJ82G#tT!n!wd-nOvn2)W1&wOM`o-BDf9SB{<6~)L)iZFE{QZ`s+a|Nq8E>3ukG7 iPRm)#S$}f#5E|-6aVj1b26LcTaG4cXulwxcrrz?$dqx_U-@P z_r1qgtEgJv+MB)CT64@X$DA8?B}qvza4;}12ufZsRM2n87DUkZUp@cjM@n2m5)2I7 z1~fPkG!UI_n2k_MSxF7_84?Ukc>@fb@u~EjokdFRohTTX`VJTv=@S^3XkCZDxrdS( z3p*H?>jvngnxJM#(QPNHrY@om2Ij^K`Yr%!;^(W2QYN-W4xm04Ffb-IFfg+a7Usir z3nOPxUv3d-4D8<;s)dcGIjFA+3|t5k41$&c>WXW@(#*&d41BW(G=}?EW9l)Iv;=j6 z`astKMha?_#6R&mEp1&qz`(Z%!N5>w!N6#ScrM82ZR|}z<1Vkkz|ed_eG_oszT(;% zc{qSUK!UCX3^W#u6dn;A+Rn(<4Ad6|ng<-vJm9jjs;@iPJG+2EK!L80I0y{PG^4PH z%gMpX40J3dE9f|wU(FIaEYM@g*wEC_aKq>$*xNVPV3Nb|P|8gOil-U2%jZiCw#$FM zv;$sswu_||ER@EYn7$F+%U>DzM7X%h!uSid}9zJg>dmUB|e!gtP|f&vUT zHUx)gtuVP!<`rw?Z8m2_r6dfGp|mdNJv1S<@r!uR{JM8@S+&FgNOu*_sKV9jTPQbD zPm3>Moy(j_V+Gxa+!W>wTCAy~q4&02Wkx#2I?Ld#3)#F=%-^Zp@G7dT9ozLH2~PC| z3?sMTyy3@}YCYC6`sHre^=lh}u8gXD<|f!;j2p|0*_gm6$MTA`rAv4>c83(5;TtXDv71@Qx{{E``3L z`2#x*y$m4a9;X(T8vDmOINW~fRkxmpKl=z1Zoq7y3S$O6Zt~75^&a{`k6k)DbYw=# zJ;UpsYHoXVzPWv9AG&+<0_HnGq8=@Ls^q*^(;24u{BCUhx)B)dKa!mIl0RkKOHW}x zynNky$?Qj-xnXgM=f|As{8R2eN4~?;{>5FuBGP{jTvCmN-6$w?Rip4Nm zJS`O)kPO z2lH6!nM08#(8LA1;II+POA}Ka<+H$ebRgvpvn+S59)Mkp!j*LU$gmt1A(P_{^X&_x z3S5IU|9Ky5Z#;Rn;AKZF8}cV`c1haZk3bShI&fK9atKv%NO8!MwS7;<;szD&B;k&8 z-}5zZCz&RnO)K7r((R=tzcDn}uaFTqQU#_F`)gYZ>%)m@0Z3eFCR?pCZtw7u(>BsP z0-=VRy4szq`ka_T`FxX0i*U=k!_DC_tQJ zOlzNUl(bBX5g@l8G-g3y9ch}Hl5aXq9_6G!y?2zChkeJB;$|~@JN21iqh+&2L;{iC z3Y=AM%e&Q3-{aziXY?LL@`uf!ZX0p||2Ic&oXmw4k(NX3m0LmNTj$jN>_@>KF&E*X zO79lIQrgb7l-sg~hK4Z<^bXday^y?J3p*CIXuI?8EkatamjHNslBt+C|7}W(K7a=%25c5#duR zIU+Unsi^Wz&%O2y^cuY_wDe+PG`lqYj)|LwHiu?=GhVEp>S>z3mcrg{Bl;3v^OuKI z#7$$7z7V|%2o1joKlA$%y;U}lGT4dzUTFJ%8-GvMLn*t4AL&#sUu5%6FMw^}JKmS^ zPiV=)&weSPUc>v*RFW8JpE1rqhQIS+>oG=W7^%CU{;Ww)mL0UqE_yROo)@!M>*LGH zxaFbUtrfaA-Q8V4Z0=c(t{>{vE5(~Yu-3q!Yw?5c4fGxb!(=>K|F?^B_pqPQ)d-As z)1$a3)JfH|Nf@2{pDaH;c`@SX)C*~nma%`VGOU6DH?kn!X1sYi+1joy_pogvTYKxA zq_hzd*9kqgJhmUu@O zEyqX`wzFz__GoG)^pm_^3E^kzYWapZYyH0ehPYMdU9RBa?>W| zKIVUwI@@P@Y{YR}4H~a1tV%axt?t}B=Qs&9+$zndW34X0V=W^NwD{@PV@@ltX$daH ziYvMZ@bNmJ=9fZ^z%HdYJgq8YurURveiZh5w(lzd52+yxSzV{LU0?XqSN;BQe7?MB za@H&v!`=~&PPP3!KttYZ7P1q6?<6ZZjJMt}3}|NN-zgA?61#k#@sPORk&fi?Y0Zh5 zRqq`lrbhfbEUJ=}lH9nGLVQ{!F4Z^hXt~~xsus@>x=LWF&d>17>O8A=KHWzmXYU;< zw|vwtM>sYLO+N z);;Lctl%bD-dXqrZ22P@q4Cj+^f!1fPHp3;wQ#b9{7PdMW>Q4vZEEz52>U@GYGgFT z_yu|~aH;XyBh-E1BT9!^7tK2RcA>o%t@?m$B(W1KVmB!b1v|PE8@vfAiU|iZJUh{J zE-VK-MF<-QM=ozI8-Xk8_QJ==M{(WP!%acHe+ZN>`*OkXf}jg6(xNQ z=WrJLa5Y3p4YhR+^l=rkRSiHV3tOjJ@TdxdKO4=vh6lfv~JUEU-&`xi7j0qc^S*RU^Z%z2@FQCmY$ViN-GcVxGflvlU+``ERNfyS*O}xf2 zNtC=sG0CR9A5@dVc+F~3A)1V3Q(~GdhEklG>_OA-VQH1D?O~db{LaJXCMCebs3Mu) z!+I?h<<7Vx+5XNvy#CG(W&!-}1I#knomtTG=ADVuQZ(#RwHsrvV&gPkRqY8QJ^%bz ze#7voQ&&Y@sdVdHMQ**$DYutf;c9QxO_tz~iJLgV-hrEX-(gzjn$VGhF`hmLI6cum zmk+wyeNIriWPOejx@djwRC+Sh4*7Z?s9m^pk*J*%^wg-`m~`c+9ar_-sh!1Em8spg zS0M`=Vpk{&oYYn@3*4qx1PUBOSJ2H}Q&-LR9F|wz_FQgPefKV>JU%2X4ND?Moq67BO?dAKnizr0!Sp+NI;3&MjA_fzXxqkny->bT8o#73Fz`mU2W&od zdcNex`+uN%@;<~n**EB~ZZvp4Ubp4<=RfN#Cwb8j9YSlSk;=~`OmwrVol(cy=xQ(=j(E0P z*M8J%n0pB-PtNG~f!FFWPPpivTY5FIj>Z?^Sw2xj@tO)lsYzDo*P=O#6|X z*1LGUN%(}5Htd-;4y8LFp*upQJ7lIihNUZGP(hwr+WghJIpVna6G3yZ-}S!R*@hxC zTT*LN5JVrxr(k(wcD1A-PGTcIj-)|GbB-V>&#->a&orJPg`Qt6JR|m#hXwREB=on; z^o@iN-VdPb?{XyovF&R=$Cnv%o!7oQipv$iDw3w6kCntKQ4Mz~Q42_!$>DZgh-^7g z5?l>ehd+?yZ zXlYyDG2<@Mnkk-rb(;J8AF>+NU+c?E1PK-fT5XIubUY%3ffj4~ZyGLfUWS5vde-mW zYdIs$*L5LRZ$>*@Jy0tHRc1zXy!c(R zLnCB$(4mhl6N=FkZcK9s@7e^H0(TI%Z_B4}NJ_-&b19QP4x%c@3W-~|0#dC>?F$miqeJcHGiJ$)JTENHz6Vy;M-U@I;#)rJ7UEFXM zrb%?fF*#{CXN(d@qoj0JdIA2;Q&yVI^RDr(S`4+WlOA2FLJkyVq7!9A`Q!;qM|L%AT9CXb^FPY z1F+InjtH-$&OWya$gI{8GSN=LitYE~^hbifQsW;qP>?GS2PSu>^LOb=WfBQ5@yN4m zGx_nBtdI!8yTcl1JdTGsPFNKRP;{QKHFWxG>$To;){H%$@TP2C`8+WLg#4u<#uK-% z{0D#q_WQ_Zrln9-p!GZo*#9IcgTp%|Fj-SwiLE7Gs1gJ)(p6(1FfCkmILG- z_6))*GsPM@THj`TaUs5ojCeL`-Tm}BasA4rIchH`)|zj-moYte+3%4?^R0hoeQjeD zJ%47Iai2(|D&`$+eV(nk3-Pcg&B%)2o@^yJ;*NR#d*nt3hSq)o%_VbaB>x)1XDqho zayA63_^^2Gr^bW}{z9v1#oG-a?mR=gn|6&;Xg;_Vf;a(OZu~dkeW2*ivvTsoK3F zO((1NwPwr9BPreilE#tVmpAdM>DzJ=M#Q(wKSr(C7p7Pa5RdOMYAcjnV7;0=Af?=&1=^j>iuba`wy ziMmQPK^d3tBD1_rc zhU3VV=s=g~2+(w(@@x34ar}~SoFmb*?R#ij&v09p4|Y`)Rojp?<2KWpITV9d zuhp7G>C2>3Tp0!Y2k_(d7@lp} zNwNx!e3LiK=Oa5(9P>kOnfyHu&(F5s9R6-s@B5;az_*jXi&L{Due$^VUn_cq&ua}4 zv<60%Wrg}lXdr?bok|iuzxXW`y;@*No>~Ct&d><91zi@a+2eNK>!SPv#gS`b&rNx^ zlg1&iYasWTcM%`h!qCD@5ly1)ybgANuMO27eNDh0`ygZ!j61iR-j4atG<{zbX6Md= ze5fQMvBYK3IztY#P(_taM*rEzIUUKGzIuc@OuX&rRw6edEH?OHT5<2$X8K^Z$B67^{QVgoC%3w9>>{7-xQr?mEKUi%_s}8* zfeUH_iB+@xWbnwQrN z3`_tyLMFqE7`F!sKLX_qbJk+m)hWZF`v`=PP80DMYZTL8yOzuiY-=kUiV2cGt|h

rD-Bs%QT!<=uEH-qL#9wj8s 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 z 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

1L*kJd+>10ARyasAYt&>5b@{md$8e?vI;T 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 diff --git a/invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff b/invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff deleted file mode 100644 index 241bb64d8f99e94b311f595308f36a2281cb4b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140096 zcmcG$1y~(jmIVqSXmEE3?(Q1g-Q6{~J0!TfU)9^Jc#H z_^R%$I$u@YI@l@k>O0R;g8`9S;y1QGcCvCR&6{$BE*{=|euL_t76t$-IN z1205o9A(56lb2Hh9)AP@ks|^Dr5T|9bV??sq#_6cqC^1#Lih{ zcuol1N$_v5I?b(}+<;{)ARvgnARy!;QZj8#R<=gK>n`p=K#*L4WmC{`?k?5_ZgwCa zz<|FEg8P0y3@j*wje)fZuq*=D4#2v6Q0Gk6yRfr$bOQPCu^I#fKNtkWIJ2mj)xple z1b8no2k<_~_uU*KBG7HgP~TWzf5X5J`A8e^4U_O_3}S9P5(Eo z?GkYrGr5T$36^9Nb6Hds{PQ~1>G%;sH<-9Z2wMi;1O&gu?nxxeoD%p(zAxr}P^X{@ z-_5&SV8jmV&D-Rl(){){*SY!gQpj@dNi#E7#Go`+fsAN8nqx}KLKjP4VIhhO<0rdV zjR>i6x|Of++l-E|aw#ZoBY+;qJtRKH$@4__f_jy?>^gjZxckZ%ME;ufEreUK=f&5E z&SjRAiNao3He%C84Tkjb@CR$wasw?xt!2>Gg&d9&c=*O3)1^#Y@P zqPFeP33m6`K5`HC3gSIQpd8D8BImeQ+ZmzuqB605-EUKS}_asd%UUBR|}b@co!!guci4$>J)`ln9};xSPv1 z!DZC=9z^%{Flb||+BvJJOPxV+A9`;h;=_?&NNalLaIi-AoK+^q@2;#QX zmjo(~V}?37Sq&HK058FM1duu2{9=VUt$Ab^i&Xm=ThzsmdO0FWBG(l%B!ET%x-r0I zEfPsmRT9d2=q@7y=_5n{qaYCaNgf($fM@J$mKf2?ft^uo-BBlj|$F`j$80vNx2HI%;Mr|l}|XlIyAv4?;~ zWnd)0wf@fL-%xxctt9nfzT=E6(^c>_<$N?>hh&V&LXEYf**3wN_+cPt<*2qi5zn-< z5a6^=a!j*JWnil$OA{ti8fj*yOxX{bskCtUkPWxN zDO9(n{xTn*FsaLVOZJV$c5l2H?40%96xj-tSUJuYuT6)B=o#_%r~CURy-<DWo_VKs*t5^~Z&9AF|kF^(Q(}%;D?7m&9Ri zP-(vX=rY9X+uQjOU|+P45!h-W=6yr|O!>S@h|p&rr{;+?O&ir~K^F&?#!3Zw#$9aF zJ{X&9I=wBfRt}P;V#2{osh*{nvm8E25?ueW{R|!&>|vwyIyfO7U#hh`H5*YI?iF1c zeBOU?>O}tczB~uI4>}*ogScZpuOaO$4pxYEfwr*@B?Y*ODvZ?AsK0{k&v2gyA$>be z7#=e0Y1K!9s=h`cS+K6y%OaZNUOt6Yz}V@uLY z4Q#}=6%Y3CIk-rt{IRZR;exx~f!|#_okbJrs%M$%!-i|g5=ajCM|wxj41^afD9y6p z_TNUHJB)Zd4d&b5K6=7vALd}+vU~CMc8Ie+H_Ag}56ClXw2Q^I*^BB2xNSJ?OwZDE zA*l!d5^6NS3qHV~=8jvEnpeT%!EE!S_e$IMjVqzltj2}fBUO=D|F!TBhxO+`ZsOP? z(Pw$yuHY9Y|BpmPk)OheQsWAPzo49F=Fy!sbriIIu{x`rs3H6$KI6G?rXqnl%#jV2 zp57INIe=-&Rc)!QENQ5$IQso%e*Wc}-@`AnGX5y_F?XVh{%Eo#__eUp^L6&Qz%1QY zTDQFil_BuPTj^*0uV@+1+3oJ%zB0A}qAatJ7xHrvUzo4ixfu|b$4QTSG@gS$H3u~}A5ue~Zi2>b zF=l=S*S(kYS96Q3cRQlyU3(hwv+ZC~R3JtHgBTilyCKCT5~?V1h9EOrXRJ z2g8Ino5R4&02ao;%$!G2$A}Zg2)J^FIhwQDHrxr9m7a1MR*Rb zR5b}zHOpu&a#;;_X)W2;T ^msm?C&3okws7; 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 diff --git a/invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff b/invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff deleted file mode 100644 index cc3405d57f170e2e801ad0e9466ddea1a71ff763..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135644 zcmb?@1$Z1ylBHzJB8!=snHem}7Be$5Gn2(Ei1VKP#aX>%_UO+$u>pFalU1b#LnLt47 zFn}Mb0^D^;!mafc6a^H4eYU`J9^n4 z+yIV&{QHhzV(DfK>^lGfWqbkoKwYzMS}kO1q-O{M`fCR`hVA!G+p8yR3hV>{odn(s z2mx>>!MnxmG_`Vc1@-~|COq(7$Vap-m2xd@41nV{;z2+Vy@7qdpyE?kt@K=NK|rri zfY<%G9vTJ|+*;4d2-wE}v;!8<4jil+n!&a<4vrw8*ODM0c)=hbhM7ghtoF9{Mz%nk z&H%54_`REgM+CYq>FXNm>Tc-yf_(XS10p;M{Ykc|Q2I2}YWaMr!D{&*o4WtI#&(IQ zl!?rEbG$j(_*@oMIsd#?RT^G|&@Bc|5&V{(7e4-x$ODP^Psez^5x>RU52_SY;k$Wv z3yfG{y?L7)RO;U?a-Et8mqM0vPn(#zA_gV73Z#VNP#uz67P?sa3JZ~)89&>`s6|MO z(XCj(Z8JK+$Rs1Xj->ZE>>=_oPFy6o71SxsW!K{Q!#-5JBJfwQZ^7S*yez&&bS|?b zj~DjBun`+Ks4=9Cg+E%cmg#BeYb=AdF63}b(RGnJV^&mI*tKg#W1njC=tgfrc|cDr z)w-@_4ociHY1cMhI?>2;85^Jp(QGVNyIlG&1V1R8khfv97S}y@dHM3U;9ttzlfP}h zb??w|8apg9Wc>_K(nKvgD>a~1`HbC4HqumBLAeU3&t7i6;~1BcUkZOm^ttTRb=UbI z@jSJ#)Hpca!R&miRo!|X`Rd7!vjMSzz>gCAyvZ>u(|_mz<)*qeZNU)HY4i^5xv&#q4d{Uu{4Nw;GxD6^O`fNqhoac2*51Q%L5A7>88hwxC+Ts1avH z;%t-fob5iBnutw&Zi9u{Xwq;_rs(V;r<>TfuE!jS!; zA)3)`=K~n_UpNgx;^nfzC>Xwik%YkfkPm~5Ak@9@NFR(fmooIf+J5#~f9|;7SY2&@ zj{3RDQ4wXa`yoA#e1Y1wjf02If#)7>)S*(_4sOq!V{pO6E-@i!+aSF*c~iE!r`@G# zye?5KqoZ$jhIV7g#h>LunIQ^6N90;AW}iieGscpni(Pj61cbAEr1g>RO@iQR%kBY@ zpx^@DSM*Z}h_MZv=bV{touA$}= zn)Gx2EYf-rLu@Vi8aq%?%19YmYGP8>b)Ou&^};JnbCz2cSQgk{0xVp`k6o5X{12Z2 zpO1q5D^^5Yy4pCr4iy+y1?p<;%vJ|*^EIry+js1m8m)NXR*%gt>khO@8aFT9=6D)SanhE5^x(6^BJ&rpd1f@3^-7q z30;>aNTqK?)C#Ron?QvOS0n&nEcp9Yv371#w0Jq|=S?P6FR2QZeK(es$);q(!mjjN zoV+>sP>g1z)8P=H*Gbm5b>WEJCsX+UV4ZRq=)XV;&IS*~j2_;bAn@yzb zC75q%QLzBCrI)bDs^zDwc+za)`dB=!MSb;VB84Y`++RDoe8jx|HbZ zJ5}M*FnOu}QE^Y{xOoY5W#UiP(jQCtQN>6{0WCS^KbMax%=0>gitl87kDy`mT6zha zjzWJxmOK%_o z-iDpp%t(TH*dQhD@EHCo5DIW~92$^?2|R(BfE?-;jR?|=7+x5fV37fM+1*gw4|n1VelnhEI<$5YNp>>mZ93A8<7bRBU}oB#k{+C?*~NM= z;iMVOxH7VeG1$HmUeY#Tkv#C+7Jca1Cz9N4;`u%0B|A?)Dk{fd`-gNs@@BGhZrnzb zbm8=Nzn{jWs zog3kk0~tFOZK+8AR4jhC3Kg*7FZy?eEv zFh zq-)}mr=+VLl1J#O!jl)R>#$SCtm`#WR@drXQhE#QOOmGxTn=ZlLuGr zTvFC~?POGCeMvtWG_f!Yn92=c$O%(4tIb>{TqGbot%vb`a9ChQ7&srhjDz*A5xD3S zyZ?gEkGoyubx`!~wES?EyuQl#?&KdXv=zlc^AwVo8@WPpG&Ht$7Q%N`QJi-Kln&-XB1^+?`1?pqhJ?VMDFAs>r_JFl;-O6hAnFa0vxDQy=x{>0QIsSDE z*c80oVS(CU?a%StmMX6u(|p0P>n6X*ug|}dq;PRckBn~+e~Z8YG0OopklH;ciy)6%oJ8Rh7@RF07b1Th4)yN zV{7HJ94;EUA!~6g!4J1>8?_-CwWTP%?Kr+6Ilg5%p2NRykGH?AV+)FIkBII7m1K{Z zbkcKFU+%>kyHPys5ao;r)-8Cjj6@a9@hniRuv0J7~`ct*{XWM}K+8*v)btbIk z4zaUX22*?i&Th$1cKNsO4rt zSXO2t9$ddd#~pL1R}ZA&-KWCWRsggxh6s&J$%HEdr-pVAF81gy4)FI(5t|Vkd;=rh z?VRx)H`@$wCM0XHspIDFQkKTtI+spA5T!`OBT&TU zqo5V@nUso!Va?^R&F~}&PzpFf-Pp{i(iVG^8>%zt6ZG$yf++vk!GAl!p3NU)Om%=U zbeLnUV{>w&gYM4)#>M6^bbXst5LhA2dj-?8x z;`L(;gbylivKTX9YlM#7KYqBgrZoF5u`P&J9jjCZ=hs7<^jK|2|6+8Sg|MIgI|OknN#Yk&|%-GCp!PlY6YkFPKOyuE$~VH%TKUD(Fz%3njs+bFr&~Cm#p!C#xxb>ua&I3B(r;!wT0DX#QOkRx_nGD>Q+S9!lu>$|*voED}wFMPL$v~AQQO8A@GfSldV(TD_RpqtqR`(X6)@D|*eVX_f^t}35F zmgm3<12I`NE`ty3X9sx?Dz!9psZg6J&rP|;`^)zFqCgKd!%Da&^fQD$p67GS?QE%P z9^%dutnntqYOdJe$P!=5UxLhU6U>G zHs$aP{^{AeL~+Rg6#L{6mO_WFyrHzV{@?R$?QeHa@zWN%-6w&e2DV=00rV>1qr?dkb! z4&RVsq{TUxfO)*N?0xBU7hM1$6<)4TR!&dLrp`ew*_hZ8XfgbvW+7G`q~A&RvdfUA zwuIDhnIZ8td?jZ==eD*bW`==V-Y+&jx2_2f)tCfltR%hLO|vUdb3|(=sCQeW&@wq@ zfgTXTRz1Kg!riX=bCJOgbF(%W+Ib=-~+xqj>STCh# zS^+U}IWE8>qQ*E+R|i_*GCiJuSr)Fp>)Toy{#1P=4wfOf*WsWZ&Nw2@uw43xS^79; z`mkF180XEt=J>WJQ^C~ zO-Xt%CSdo>31*Te;LIugmU|3IgDHcaXjMPH?OcJ$T%pKZ!%SS^Ok97Uzd{OE>ltn9 zkx#5nM=di%wQx*boO{T}JrM|YZML?OXBqVPRTF&7wm#92!f{8MLg*_=26 zT4wV2U`<7dv8DqGS@Jk(O~t6yr-N9QrlRf~vyn3n1yx!mGw^Qm(c7C-G%$t;tc@6i znj-&r@DAPC9^RP|MlWW!S44lilp)u#7IN;{jwSh~?9)_qFGqTJ2R0>6zv%!&qFsc^ zf6N{jW2W#dr{K^VY1hbkH-C1w@cOo~*0#alH~S}i{El5F5ZsTx@Qjf5ujSz>WuIFN$&%FqCyyOK_$ML>SX-C-)iVr=fAVy{wnhZ|LfDb$9sY z7A(*&(EqrlpQX1w1APLI|MK4O`Z02gbkytno1`VJo_);mfaY{GbF^0lA)iNV5rs1? z<2%o{O7ieAdcBfEqn_O!)SlU$mvq3AziSSuGPz^=XuTp7;W$w4(2T)sHG}-D^&0(#0L3{j) zLqySbOX&srYlvoMw(Wbs#0AZr&BSaXx?5<^Pufwn?otK=AC=|y=OoOZSWr8@^#aQ_ z{aksXWy~GybC)Rkc+czp5w9l#(ma7-rviG=MrUG#IVd&g5Yh#?9&)@L=obC1R6mEe zVb@^#ni$}XPB{xhr1Z4y(xE-9CUymznMYHuIXk!MFJFEn;&b4? z3UYRuM$u=&Gk;dlgt-^Hz4N#tx@>dJ#!x6@+4U`;e2y=C>6@w(eWUeOwpy3Lvwn`d zy5O6K@_uk4I&M8zR~>iRKYUnwxmdYop4MNd)|gC2+si!XU*oTD+Zl{cn)SZn>?n2( zLtQ=3-M8FCw0ZZJ*zuZJ2H<BWTUc9_+7CeBCAFA^+DlvK6mf}=Y*prADgbOtH zAWCjwhg7ygTF~;1v>b#K_HAA^VL6reUwd~_ZXUop?m&>y82=sWZBn~98HHI=8=N;V zK{wW0ug53^61OVcGmleUFH4Ndyoa_6i9h%(;^p=zQqC#FU)roH?1(>2oX~RVp8uLS z!_%-P3)~ww;zJH=P{jx z44{sDBjgp+dLv%GJ9|dAUZ+;ydM&EEc6yoc9LX2eaoxMW3B*5m+XK00>l~VyE?I5z7|z}m$93|=2ecaCMA#6^+%n7DRLk6U)86<4@m*6?R7aQ+YyA?+ za;ps4U#Tjq6C2%vf1^w6#}F-nX;I7(`KYVkv8`AVwNyUxXeOJizE}zuE{E>6Smq+I$cDN+UfhGPCM~}btR0IWcn`nXSnr{MGlghi0uZdXookx> zxtqgVn}a|PXhe`a4rpGGD!rL4~r<0@9q0ft=v68yTK82FAxQ{cUCzw?Pue@AXte=JZh-|f2AtHY!&J&~gU15uH<-X)U?m~r$1)MJO}snuf^6=Af~{-Fwg)%bLnz`Ir@^a4YQ(#8m*_d!h9dh%0m*SycHKLCm=y7%E&Ko_wEm`ns2&K(J!I=*QD>G@0aKu zTNcoeAEl1IiW0<7Fvg0K1uBZm#>&SR!WdDCxKYW*h$|LCE0qX4{jTj;iaybreY05l zA*``9nTdZX-2Jg*l*DPG^&_SC%&jOorjdN3r8Hl(8s& zDg0OC8OO~KGnp{gC$GO+5_0yP^0$jD9=$IPUnk3GC*zW6Xh<6(#iaTY=_rUL;rGx1EJup8AR1E9J+ea8)$c@e7z{3eLEQ@XyAF{V)NF#HB}!rl9m^6^DT zu%G#4o_aK*_kjNCH=(76+{f}i*hV%^eWnmDST@OhrU(?)?5jcQuXy9XS_{rG|1a3> z5ZUU6e(+g5T8h6~3iQN>F*7Og^i7{fe<=C2+K&tJM+$pjWl#*%c{>S)#z6C>^ z8o(IN!7belU;_GC?JJ$k1&Pch%LJ9t$cfjsG^!r#6bB!G<|&G@BoVtc>fD2T#A~g^ zxpSS5z*F|Ye_h1r`SW{kg%*T2c5>|SV=NuHkw~R}GV!e3@EIf+E3(T&ekC(GHQ-Vz zOW(;)Z)Kl@*Vje=CEMUx>-@2Wz%KdPIlO7b+QP+l14j-cZi}<0RWgVnez~6_oVzKG zw;Gp1WGDRc3n!6InLmCaaXjohZZjco$k&8KfmhdeH7Lq+Uh2!^o6(-ef-&%dUN&B_ zPnV9v&c??5(tA8Xb~*=}wNr5^mE{?d@`P_Fl@3m@mCN?9-Zwvd+}9uCp~A zlZ}W9c|ecf%MNA}JAk!_1lhbDFS{)jV)y;Kpt!tX;y?NCJRVMOh6MD2q~lVrpVK|fPeW^^BsAX_=b9u7+q2LBrp zNF6ZR;y0J?nsVVkUi@*l%N5J8KU&FTkZAC2r>~-_9P|Yu<9qky2&an1?!x7_JBDf0 zBQEft4)A&u4sRakxqhZEo*y)YaNLHjj`PNFRsCnqQH?b&5^;(5m(ER=5R34oGt>6ZcB)6 z$CzYGnPkVQVoR!G$2!m8YcagTRk06ly+ig-@DgN?-5A%8yE3e`GWg2V<XnB>vCDGMDu7*O=Tdsrv5@a-sIp1+i{54l8D%`4BFBR z+VPOv5*?=Z4gd4={%g3y1v01+CLjL6(lGm{0QA`$l1H}z27I4YhkmnQVCVGX>qxbr#J@scsPlHr}oncChI;;msKhdlsl-PB8J!x-m zm(0(cw(hgkstvZSM9#iql)ail3O(K}Tc2O2LD*&;;?+#}$n%anIR_t~M4{}Pj$8s! zZg+F=~3mG#oImlvW zcdEx<{=t6!Z}dg7)(PA*$ywil=3u={9SRVOe#~NpdFIGG+xjK0oApdGVZawYL`r{R zpyMDf%!J2_E(}Ft3MC38ib-O{2osRv^HB;Yh15pmGJ&Kq5|G_cDwWH?n#o72FX<(m zDZslm`yzxjnM}q~fH`I+AfY~)%9cNw=v-Iy5%=&f6~L3Lj|<<@Q#|OW5nsRT7Dos4 zuRz*=Q%QTDVSK}a2JN-(p~hKJsyZ&|5=h4)L-{kf;;$3abP>|s~36R+^f=fa2A zsm$iG9!|HjWBRzb&Nn8}i~H76O!6fBhq7!tdwYTHE=2}q$wBw?n!3!%dG00;%K5G;Ct*x=2llO!kH&{ZXow>&%kbR4D z?@tVW9o5nw`DJsDRam^4uQ@=h_Z}Y;VIsJolM-7ZIqV1pYjs*+JJFgsb2V#&<8vQ5C0yIHy0z`z{}we| zlkQc~-KG6uEe(DdLu7xiJI`zVGd#P3fijNsb*RN^k>|j^XZQI7ug}KsLT0e?QtM8;e0uBg%P=83 zxX)-LU()B@p}NjJQ5C;BRi&wBK{w8>A?W7oG#mwzByf8(f+XXi0!$AFvmnh>vfsyM z_GYPnKg6^*6aIlUiJue5VH*V&xIdUV#W1K$*N_nIFU|i1mv?~KF}~Oa)WH7L@6lV< z!_1M;liIeeIPLiY!}h-4!`viFyR4QrnpypM@!P}#!K21=mV)E^Hm}bb0TPbYumMNn zHb*8hM~tKNmZ9_}-!>&a3g3SuQDRIWzU1J-CEg|S3J9J`^2QnXS1{cHy2u`@$N}8M z9?ir7?v*p?nj;H_ZbOi6OP_92o^IQ|Vne)Q%e+DlWIlHI@3c0|?%-Z}iZ^rkB0!H0 z$eBLU=n{qx?f&~BnRL`VT>xs*i00;P!lLzV+$Ge<1eR zn(!Qczw&trtfYCbukw{$|Mn#S3@H?eIP~l$o4ox%3jgU(`W>{#8FctS9y>0U4xs#( zGe${ibM)vG766& zhZQ;>H~}98mjwP7^poE6PXPDF_W~q{e=FR-HQ4`JRQwC%IQVGzKgiMgrcH`&jV!5> zP^AjwnpmGhetd~pIo4E9t&5S`oZ3MI7!m%&EeiPZ-bh+oFpw&HZhg{w(Yx>-z^#uT z7~RhY#~*si^q!V2chb07Y0%m$Lvx>IEAb=NQS^ad?6wy^4l5uo4l5{&l$B|nqd04Z z_H7d%pAuWKKD{x(QGC=;uEA_O+zy3s|9@XX!NSUz#Ys@U)~_-)3VD5j&*IpOa{123(k5Ibi`+zgVS(Gyrf3e{u5?AN^o_0f`E(P2JFwr|(*M?3Cv;ZnJ!Mz$|01+9cvC0uvHy|V ze*?f>J0K_WiN+AInWq~F?WcKqYk3B*+q%Nr`t%bom@2E{jc80hQL81`T2u)?{3qgc z4LTLe6YK9B@pwW_2lf9(Frj(kmC%*_WeI^^v#5~XKU6Tk#F)e$<+?&xv$_J@)59-+ zt)s{R(KzBdPj(o=4qzhoC?XCp|8r>hSGwOnYHdP(k>Bekni9HU^oq}Ikk_QqTx`i* z?Eb@A|5}x9+SvNfTqYn}#1O4ErB@Trf1*O)Y zT}0-t*v>D2qAuMFQ_X*qd>%3&z~9nUvxhe zxBqJrSyy-KcIAtA6O&z>Ewe`NOW$cvXFzkP4pb)`xUj#i3yT~Esjz)Az7%3%kdClK zGM!nAqODzBdR1GMUlmb;qzamH4%RHKhLCFb(hTD|0U(mCPSfCeO#uzHQ8jy=SMWp0 zo`f9MIdXVHWL-qU=Yat#u*QC>)Jl|_XeC5tSm!>TVT_-6P3Md{)Asc=3d@em0Z-LY z0s>|0^Ev}jl%_b`bLTQu9gZ?AnJ8{7&P+vL>7p}6%!E&~#@+b1*FC|}lktt;2yYXE zCy!7({;VqK?yr{X!0%PP-o~(TkG1`+jFwImGWw_NnJ_Nj;Mkx3JeHVJMEi;-r4B6g z{BQEfRn6Q{e-1NeO$;#bn<1yY0#{i8>x>Ray1TD?T|i9}agRJ2QChF!&}|8IzxLNn z?#1YirZ%(-IlXb9k#bGgY{x{cX2-;Qa*~U}xG_R>K(jiVOHl+$6dONKn`P(!9@>#+ z=*^@c$xSY=F-^SURn_29)o^cM?y-61U*G;;H=oKSZP`W43}m$laJHJzF-tv*$(S!E zy5#s5g!r}LtCyKi={w&rim<+RzIKEW5Wek1bwINQ1pHFv`v0!q6v`xTx}~m&{vkF# zHLu?W`Svt^#Hh5*W(Vuba#_1hcUWBz>v^~yLx~C}vp82cgO9O#L&V!<1g`S=BbWjV z(Hwds-kZo*cBk^mhlJ=O#D0Z1I2;MUp*w^XA1vu_PzcWJr5)dM*2> zsco5942G7EBM%eYGw-LiSPyzcw@Ej zeRNB)j;P!4{mQpX#^SXPx~FD$XO$DgMenzd1Fvrdd0uaH^0K#sQ3g~`0eAQ95KJ9K zY66x%GA&l3;X!VpVa#gc3lRiGr{|`U+Qx9)JYv`r`OO zBZAUwAi&VoaKPA`gc=NK;hg1*^$?cOFJ@4Vl(w9eP%f`p^DE!pDY|qX-miI_E2W+7 z8hP=ae1`Lkw#Umo-tXMG@u_!PonBr{FPwjNJbHL`)Kqk`@tw0cUzvA0Y!Alw%9XjT zb~Y*xFJnPS7maO~$fKBf8!Fif>38-#I<=^SNIq?fC3)uj>}E>?Z!Na6&&WzfVrGh; z$wrX?OJ%;hVZ6gfjxYzwDvXB{xHomfPhMWx$)eVL>gWUR5b;&--7ayc{c}qa@9H>D zw(PdX7$(3mN=wW+a&g3Y$iM{^JMlW~dtUstx<~NSu3T86Ng5}QGQ6spj&U8d@8-;X z;8$zXhc^&ily262+*G|yT;#$5$I8JQLm0~@=2urjcnx$&AS(^8(Op2}sxR`n= zsOcQ!71Ez41*7&}Y7-Uqj(nNQOxkEOpVVe5;z9U1sP`-KvAL2WsLVYA9r@0Kvb#?Hsd0ES+#f^36c#1TRqSmzZ)haw*_afLX3P1Ms`6xt-cTiExSo#6d-SL$ zNfd0R1Z2p|7b8bK&3&>~_NJg{DM!o01LNvQRUejp#;USX)S!aja?Uk9&9#H_EtT27g2*FIqZq%rlAwn{N~QJ|7gYkb6*dy-2o*kb*A|Y zd?Fs|E{xk5bEP#*Ev_8ZcU%-p{W^C9|5|utIN+${1mEO2jq{GvF%DUz^e2rHu+{@pR-5SQTFTf5xzGjY zM(bYSLip#U9vyG?Zl)}+U5@C{BY=mqQK1j2Ob)S&VxrQp22vz%qAR;%;4jBVz5**9 zYh=aM#YSwtzF)Ss4XE)mRcB@KBe@sGTB-qxvk7=#ET`y$KOr2PDnWOf3e>s_34qbtI(F;+NT;Km6YEbL~l9L^xi!|QJx)Nc=oQWKCUNG zW1=frfl9h(p`mKvc?oumRzN$(J~z0~EOiYFdS#yg2eK}kPn@B5iIY7$KG^a8{5GpF zR|9l8t2*+i?c52qe=S~X7`~B4j~XkF3*LeSR|UTw2hIlORkmig%~7^NyV>C_O8xRx zv7-Vx6VqEuJhV^HK#vq|bC_BBMO;mnxC8&$e(-)OB#%6rYfKSy|2o|kXUyVa!*gVS z4)r3Lx6vLJNb2etm~k=r9!e<@?;g$6W)zIL6xhhi625V{p=7K+3!og^}pp4V8oqOB_j4?W%e;HGXJL*QnUoSM`sD^nwl!w(G_Qbvt^o2~KE z-1bV`td-N|`Hm$+E|p|ujhSK67eBzujY;=?fvLr=Mw~wp@FZb=jzOXvv&;X+>F@zn zZn90#C4!-n5qx`0M{)pkJ6eb%?1m#MX()pI!PopDz@|77{~-`uamG|K8ZVWR%OH<) zn+b1;0Z}0bH@q6Gr4~gZ2Ys}P#=VwjG>@LThUlr9i8_zpqJ|8-itSjRAgvlRsESlW zpQ5#jI;fiaSr_cNmVdwwLqwNH#14hbj%HAwiQJB<(3Z+X7t6!})YuL&Ngq_jmNwCr zmt7CF(H>&X4&B87`Q9GC;Q~@d54-XL>+TBtd=mu!f->rwGi#eh=Zbdx@+1EyQ|A?S z#U+H#2Kf6jNt0RJa{PnM^a2ZH)uAO9*ir-=v7aSc8hm#{2(84@QUja8qHqJE!Sa|h z_x6Iq9S-u+;2mk)BL5xz^wJmXp&RSmv>_Plu(X~C>(sPyN$bS4ej4i-jlMGLW{q)6 z>jaJd6YKEh9vthmEkkC3GF zxig9E)pP)o9xW+88xdj;>#L0o)M&HSMB@DTXi0Cg1Iz8o*`9uKuzP(~9j7ux-8Zf+ zR|(eYTG`HivgvilSDQ2?*FseuMqP?jT4!GxQChZDLRA_iUUu~KW%gREjEIs7LUkC8 zAVhh4(PBBG(`s3`tlkRTV)>45xgoFKYCb=1M9gVIQ^hBGeb{G1#<5EWBN{=nk0(Hv z4{eK;W&rx8Ph6S&q@OQ9kDvMjgldrHP7ZgNoN&1yYdvD*%ru8kd)E=29#WufXkxv`m!uom(d_p z+%O-tBfXTcBK6$sm<^W;H_2XNa|j{(D%&Y={KYvNLSfs)b7W_u9oi7$)+eKTeS9WG zmTZUzX6lg(KligE<emXvm$g>H-T{G?jt@gqOBBgAV)%jcLDjeGr&v+38JkM1CP z?y~T4(Fbx*gEu6c+S|iWsglx@EaUkWT%1D82PWo(&7#!5q^RqWa-Gx%^JXk~$+7Fc zdrD8l*c?bX+Z@s+ugxvf#wpJ1JrCBD!J@^ip=(H-R@^K;Uh4;zk^ zWkBRt32dW0L}LR>7?Xh|)hiC{K_5ID<{@S)YCyvxTOUKXi@eLC^^FM;elA{v!GX!( zDTj{-@Nougn@gT7uu_Shw9W65gY$r! zK@44)6R3&P5?-Nz-tTnQX9p(&cmaucTZFd8UKqJNE4{H%r-v>V za1Vq(-X1a!*FOri7v1-P?0Mpk-`qAL9-lvOzf8EiYI$y-KYBc{RS_a!Eg+bpE+EKS zhs-kQY+DQ;d*XIn-+IH?d9Oqh2c>P3EV;Ik=fdBMKtH*a7Hx^hT(g7}d2sdc^fLb% zW9CIZQp*$?ztwcU=E++9Ku>_~PS`vYKGd%*Nq33#W>S(gMS0D{wW}>%aRL35pbd3P zRk?>~(H69-UTM&{c03IG=2z|kQgZ^C$Kn07_C`05IUHpId{mabp#6lu=jhd5o6~xa=KJMW(Rzpz&>e*y{~y$|tvZjLAU zdLHZR8=}?@`6E6DVc*29bLiYwOtO) zk55gKXd{A}B;kgL{I#ly*=aNh1x>1nqtI(*@v|>;SZe;D72vj^mOo$*=&+55!AHmz z0|aW+*shJkExUJXv>Ng%Pk!K1Bxckgs|?{S`coTKp6tT5f~quIf7xjHZek`IW}(Ht z!8H%tl({O4-tOlv-~d*ECwp@Ao&5Owz0Rj~0^$d@2e@X-kl_^tzmk=oezR2-BnT}* zUotHqGk5hkEmaYf38oXkkhH{XYe_a*gM6J}yFJ*zViyte2sRIFS+H7TzaUEZsRvH? z9v0({Lz-NqF!!dkrJ#;)wbu47t~m5?QaILwM%P#4%efNpKyIggT&&=9t>Kg%WrdJo zgNU$z%Wv8H5^4eG9W(~Io$7yY3FlhD_G{b;{HS?+<5BqrEiCsw_ujRJZKHYV3#|$^ zL&fi-4Pz_Y#_(lAMr-^=k@6;?70_>XgH6OoO>bXHkKr*~jTv|ngH7EqZj7u{=LTL^ z;IE7>P$)>XK?+1Tb-)u&U`Fk;;PR|ufGdDU$9guj!It*8{5?38?P}SY)UbJ6u8cGt zY|r;bP2Fa6-Rd^1&D3ki)lPf=tNorJ)G}LHY z0oIw%s;FY>sQYG00qUrHKXa2?17J6+2_JlJTHJZv?)2GRPr$7{DGN%KgGDD?z`;Ck zXnkGtIPniqcp}hx&Q^Q|wgdvd+w6F+3y6DBWkL4x0D0ve)wPK0fxND?E@jbQ%A)hi z6h_pNo0&&ayRFP^i#+>P*b&Y`IgRnFx^>t{3$V-0i?A!)?fwkv@O;Oc6hzLwIv4e* z&}}|1zS6;EpfVO+^H>+EA6GXmU?0poEALE-UxV)Wzk{*z$!{C5@+ohJ&pZ&ZcKjHa z_*#}59)_oIqcn7@qF|R7cF$M%0PgcKLVZnycA{way{mXjO;NMyBX;&GV?Qx=ck!;+ zAdO62Xq#A#m}ud#*~%eX26wNqVC4RI1LsOJThhdE-u+(w{mQ2X1mW4nBQL)8%5Iz4 zI#x4n+9jJAZ<*8k*|!dJAC2YS8rD-=kI$a8zKSX!D>BPPk7vwxDGoDV_{+b4E&smo zmg94NBg&1{f!j+aT4iv$U|=LWL>v=u>(jZ)(k$dD zR%?_8FDku4|8&WNvA4@-+WS*B^|PP5n9jkg!|mZ=9!D;It0wn3lBm&2my${=d0Tj8 zPgXNFdEWDKooS`(88hd`M=lP-lbz_TSi2Q@_UuZ{X(cOTN@qD#F4PIF9V4qLI zVQXK%RTkwos!XO8AK)t9kWslCguQ{4{@kTBcjK*Z3shfIr?tsRY*Zedp1DGC6I%Nc z6_%NsTU2sDN#&l3objyih{Ac~9@dg6Jm0zHT#;0K9JvGW2+CRNF{+EY2k* z9fF^T^nvmL)2zEr7yKTei`GbmR|dt__3Nrv)R~_eBrg{mb+zF-L}cXZce`nYYR0Ip<*d-K-fsRj9a}a1k~kp}Aza*X)u?xxw$I zU7;>2+RV%6E930Rk=!@M@9D)&>k>O``ew^dd=AGs&CXk+l>@x#eDMJu`BqxlMe`IE5tp3h(S zY)V6&!Q#Q-L1%{8=Sk#^=2GYV+?wH_9S^RW?Z(ajif4=@RgzQ?Q<~Onab>mI zDy&^_3OcONPFU1r+=67>6sR4-VG{w!U#?NsuB69Qv`ww#e=rVj`iVk{pre#eq8QjB zFMe92sJ(PRkrJ6Rrl^rd7WpH}P1zXz0Bfu;E%w_He)WRTleokI_iKK}jY?Z!3HMVHxMTO|V3t4#{?98Zh0 zA=L&I43wrLd)>*mn^uO4Z2jo3jnd~kvFR@G-~2~M&?+c2no5%xDxM?wh^-&W__(d9 z^qTSlHan1lAV!e!o~%2t@u-ztw;-OoU605gDP8x99?e`2O&%~^Nml^f76o87ugaaM z_%FOZ@c2UGKd`d|zssWN1cpvN;F1N3CH4Rqrio5qA}zXQlxFlCffBVzFYeB)~1j5ctN#9GCLvB^hhT6bAs1 zFays307Ek7!>spv??^&Q_1J!_%|o`!gkF8Z_#zMY(_yFa=KU zioP~*1>Qn3$?{|_+4COEDgP3De)vrXQytsPa%o)16VhiUu8l9U?~UgOm^1TSer>5) z)nT*-#b1^h9)7{ljA{CAL+HO79*(xKqlM3Nj@$40xDaSN4+kl;n#|@d#U1VybCs!> zunx>mu36?PkFp(AavX#5Mi`wclkcCJw*Lw@1lV5EH|2S8dW{p>Y+XDr#=7OWvN)DXUT;Pnnk}W{Essw3u~=quV#F<)T54H|YF{5;@&4SF&{1e(S@22_ zPvzXKHO#4H)Tx8EN7@=xi#H2v+Pr4%SMCgPQsbf9iQ^}9r^JzKvT5K!(;@Yo=#|9! zOk@A`E>WFEg`9tGM}f(oCWO@npzhVCLx}vz(r4)+!}+rj6Lt6N zSbhQcds1T~3aL@VTPTo)9A;ZNY(g;Wsf!J^v!rLsy3ls7)Wd+Z!+s;hjrUD3ZFFPg z^7zai&WcodSv37thiL_m(3njm4u>t$Ng4w>kpk=F^2M0E-PD?RifxpQPdhbdXOAO5 zm)dD$OQ;ZYfi0q{-&97mbM{!fb0#3+bVBL|`q0u<gRlM3zsF9~pfcFOJy?2^zBptJbk-D8X_Vpt3=*bLc#qXR zARQ;*!a8)Y@#wh}OFOmaPW)Z4Kyf<<)4w5 z8+ax!TE>=Fft6?bE;MxnycMrn-)Y2B1np3~sU#8trP>W$6J9X1NYuqjXgqL=($rj4 zHbNJgYm&krA{gG$;GNuc>{jZx^x4o3Oxc=ahB2DQPRO3QwV&lDs&(I~4(r}(LNZyc zb(;6!M6kEo7#uaO;F^Nge=1ir(M_19;CSpfDrK1&uQOQTj@eSxPMCjqPG@TNw)uN> zQ!#Pk9gsIBmeJCy5I8DVzPvI!V6nEgvnMH5El=)@-2+O#EDi1B?ShZ7%RU!|6W#JB zlQw;z6KNsO1l}i3#>MMcitXbV6^HJ70(SA(B!xr9d-ZpXJMVfQp+FM!g;%sAPkN6q zs9eBf$|kHeK<*K&IrzBrm21ch??%QsLE|CN=dSjlBpEM4^;Z#`9Z|i< z_zH(!MrP5-PTT2;6y=)iwfn2coy@cGW3V4`HNyDObflP8RJ> zt@NDop7#@MOSuU`^XKIs2mNnnNg1YTo0?Ph@Ln@kUXR_GpY`;1sQXqm@UvMhJu*1s z#^TyRivjs8^Em3aSOu>qh?=)A+sI5lj*%{d(U~QaLrmIS5m+R&VwZrE$$1#7!PDy# zHvM69_0Av15pF@6ViM*<#Oj^BRSA1eFKnezOEiz?K`;HDw-4?qYb@#vGb}DE97%1~ z+Mti)6xSoO=U7oW$vQ+LPp`i*^LIPs_|Gf0#a-^ZmHb5htP3Ak>p%>W%A9<^byew6 zNKM+n)clPmu^T+Zjznj2O1@;Io>W4$3 znSj%Hdc`pF`nKFd$h*ce)!Ko>pcdCaN77#1)kYGIV5^XQX9MACLDDg*8}g$e$HkrO zLvTkH&AKk7`$dK3t|DWm`ymlVOX=d7j=R{VT?_u+>jcc6gPQ20|HaBzqcF#g`0W%9 zg=b{$tf(!wj=Fnls1JQw=1X<`+D{s*Q+bNoyu z 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 xQ@uv2aAv{{Z5(c}M^N diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 deleted file mode 100644 index 519ef27e609ded33bdd8461b6e4efb65ba388947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6432 zcmV+*8QaEF6J224Fu^R6$fk0D>G52nxqwx+4pM9smJ00we>3I0PUCgfIsn34}&o_&A{dT!3I(5ng&;!HFwD}O6 zH9BBqgrtS!mX!=8q=OZuDB{IUg`0CG0_H{6yt`?-hI1BZ!PiZ#VnegevdeesR4IxbJ8cr)v5#BDrufaz>5Ob<+$UQA*7vVj@Q7G@|G z%oqz{##szA0UKr#XP7CL!_4Lmvw#Q8V(Vd++Xl16E|~2EFbC~{IVKY3w0$sFBp|yc z3(PI@!3dN(U?NSkki=wFuNy zZk~8xW&fmjRbEvHGnJC1eElT&L6sn^^&a(xU=IwWAc3Xr z=P75TIP=4cIQ2YGPedU-=)~03U<{7_2IJr^eggz`Li-3kw`kAA-8e53 z=O0cyoUFJD?@&rP;kJkzDck1+Ol1UQ6;~eCSZkvld?g`i;}(f-fmt4WGz&vyT~ue5 z3_iJn;MpVAjtB`Pvnym%CT7+|nB%jLJ~R}NbVFje<58oLI>o6vok_LmEUHa)sJ>;u zag*j+C>dHT&BKr(G8F6=SI+nQXq- zksXq`tKPds?rl&gY6tF5hTNf$uypeoYyfoMaAnjJ-!CWe5PaJa~{#wbMPvMMKYiM>%Y+fT36(Hs;_1r=RkGfHC! zor>$%fV4Wg)-)uvBu#0i7@;JH7)WvFc7Vbh(t2G9B;VkYg%7MQCX=DisgicUI_TM4k_#gZC&dz+v6#z&I8)UHETr)M(!WN#^%S2BW ztC7q=aos93vvJYsUrSzjwi!B*kU}bH*A+XRwKcMF=kRRiWvgwNcG$_s-z@mz+bst_ z{sIJAD9B=_1eOWr{2V@}P?!iJ;qUw?(JWc9kxdM?1y~$K+RIulc`O%drCpNbgHg~N zzN-q!73_MGPGCPAJR=5flv)!uXNrLtKu>YoH@d zNf1k7l;@>~tCZr%m;%B7G*OkUI#{3q(_rERy|V$GqO%R`fJMN(ggCQ}s1cQ*baUYmW7oJjS{5_$(NizI#x|&`>IC4QCe=?e*I_ zHbed-FoO3o5Jz1Vgia^+5Og~`h%v6UdGHy{kHbf!@it><3D>!E*aoxh$*{_bW3M0E zM3AKZd|z)tAeNJ7=jdl(3a?Iob9a7`)pPl*PXaYjM*)dl*W1g3sim)ERX*!Q}n%Ilt1!HSD)N zO9v4KxGI@nR1dWQY0XByU9niBZvR56OU~!)ohFEVbggG&#}I@YSbB9e)Y@0ph2~IK zHUd7gDVPV3z7JqA1QQA*Q_N^*_C*G3W~G8`W#wktfQ|hZL{$s+2t7@Z-k>N!D9BWd zViJwa�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 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 deleted file mode 100644 index d94f792fb643feefc688ed52f33fb30a00204f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6680 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 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 deleted file mode 100644 index f98e5b23094c76aacd524cf429548ad1421bb68e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6632 zcmV0RR9100000000000000000000 z0000Qfl3>aEF6J224Fu^R6$fk0D>G52nxp(x-koa9smJ00we>3I0PUCgg6Hv3qfO$eiU1}Mr&56n7JvPZ>;D8YFf zJsBl@ViF_T0ViP+X%=7>hdT3=$nbZPErr)IOrzl$N?`kzK+$Q(4tuweoVvg~{JURy zGo9pT{uWpf9A8&QBv+^sIA*!Rlt9)3kglplNAS+3OYJhYQZ)#JQKZ6Ar%~$0V%gOL=`Ch6q>Vu%nJS?Tmk!a^NZnMuKS)O@o*YH$n0j>uy?dYcnYQWf|}w=-fwof$hC966(M6=jbk zSiOK+hqXVKD$9zyxI^9qzc{q`ba6Bi| zVT~b@AWXinByQW{!Ia06NYK0yyg=DVLT(a}oaT@i5~ckX^HLJ7go}z`>w(MiAqmr_ zGI2VwSs70hrhLVVrfo2CQQ16!#N+|iVS*T8Fnl-D>hGZa>m*P%l(SZ@3wcfxC0`mT3MSYxps1uuFCjrbYO9HXI8{-462G?vZ#imTBA>JR54n$RMXMrfMQ!J zVM^{zIb2hfG~nUQDCK}x<2Cg=eBG>AB?b)C>;R;g>o>8i-%BKStRVW&4uoClpg>Lo zaPK;&VHuyomRg_yX8T&-2t*W)Z3-4eZYO>{azMr;4S*(8N(K;o1%Lt??_r5IamiN^ zw8hLIF*~{!y6uz4ZfpRx7G|K^=Kb3Z;@@_u^L#$z8UXl0R%EiJV3Q~@ELbv@MM}0) zFnZveb`(*+<0MHRORigjkQ6CWrAa@ocp3ifi0SiV?kp?TY*09GONHknfxW{2k#eNdbh!h7iCd z05T463-~`l^h_WZfb0Q)rD8)fHV_C=B8qA5;?^4Y#ViYm=DnRX<@3r#EE5YlaqJ4p zg3_I%bE1!-g*&iDfZ+G?!m=pBflURhd~`Bkc_MtdE+3>XJBX*1k{xZ7F@u|afT!)T zGiQ|Q%T}tC%2n3p?@ZrZP@RtJhv*w$1~+xfuTp18ljuo#U7vE5?Dy$_<){7=19?*7 zUdXv)#?GNDUF-F(qV9PAxTY_)(o|&2wRdH=d+zA^-BbC5F+GkPlNCdO%8U=>io>#q zIvYO>jZ8Tfm{~BI!)X!>5hIw1VrtXa(% zyeDs7-kii+Pm^Yv+hAP#MfZnCZrh_Ay_U;4GE-h@g(b6~A<=Rv>LH&nEX%RjmN%P- zGMIi#l-&9v9_vG4IlH${o1b_Q5^cePVMowA!HvPq`AbVbA`Iza#_Ft5Vupjr85`3+vM9L=4DMNnT`^dWT%t3cfXGUt4Ac64#@Xw z^k#MVVu!L^jH1m*#`tALm%`BSGco23j{XMF5_U9WAx3CNiX%lyAibbE4>*-$R~MNi zQEI_id9;tjLt&v!5J2^$X7TPsw?kM=M78AYk9GW-8_p!n_tnSx)XE@?!~kyM+S?cr~f=AK8)_tgnGOY#slx|dT>Ph2Y9%T zM~4R`&*@C+G%cR3>M?8EV=xe*AT4J2j5O%&Na^r)p1(@O-ZJ#Zm& z*8~*eqa9LdFhoF6R+dK-(e}$Jb~{kf>JuTXh)|ldcsnHAg;dRRpApmeX%qT-RH#fxu#bflP z5dZ=6^K|`N2n#IgVHH^-dKFs)Fq%gWEvPEi*bs>h#~&yZRTPV8HY1r~IJ@WneNA;{ z2aQe1@pE7d&4mZ~Qp6k4knphACDB>PI~N@KOj&fz0@i4)VCRDQ;>1trF*zjZDLu;Z z33m75qb0H{8WKwA81RjyhzDyx=&owZP!J9@#t-a94whd+Og(NvXk$CX3*)77L3G* zJnw-c*F$)S2po><8=}+!1cHImoLAWO+N{8x88oOebh=^Q@;2`zzNoOy6^ zG?viP7pX=P^%~jvQes(=c^nUbEdfAMjpB9r_yEgf`*-pw;w1 zb6)enWjHsF3yQsP#ET0@a`;i?@U$}-evRAwF^MB1Dh-$HwjH$KfmlA*Ajg8 zL~N7|lor33ErW0o~Z9^EN*jraql4`y`pTE7TZ^95q^8y?!^mA&=O>5cadILCKQ z+V=U>`%?mcu3l>Ux%=GE71jKf&-e-uIAw=AO#_+>M7sfO0VGJUH9U4x$9;7@@YelJ zhI|_##ysV0z>{EE_0tXU@INJ&ckAUw_eVp?mi*^|*|%79>xzq>OM6m9Q$#ytoOSnZ zyV&2^T0eb3-2>gPo7hwQ^k}5r@ISSow8?Ubj!!}=#}bo=&id38-cAgiPI{o@q!c3^ zE&3%@wC9+6l=HcXQqa?)+|s()KzshO$w%|XRQZpnnnlUNPKDI@-a6*v$|U*zfq3Od z)g|7jF}*;-y;CBOz5G2M^iwEHdnTK_UcYMc-F;&s@ufp=e}MdmUE9Ti@syh}+S3HhVx42c-u6ZoI8ikiTbd8O54UA9IxjTK@K=-uqRQ(oI zxR|n!mt;I+ypwft@t4#(5P-*6cL5EiAo4fpt_ z2}-sh^@8Gp!SUJgy;Jbn7pbQI>gyv$HAwF)=mBLyYpU7n&04d!*5t&5=2Q!9?Tx0k z@OVwt{bssSOAB4)KDUbVfXj`$rNn-5G9BvDHR&L@`rJ1RpUY zJL*5}2##j4PtO@}oCNfPEw+;Y0*?mB{_iHUrXKe>JtSJ5RQ5ts2LaCu&dc@9NyT^!xg6$Ekg42ZL$F zA@v;YCtT$aE+n~r&MB>M*)Og)G9hv3jbCjH8k2d$EwVK_jMm)i9v^+xF{S}a@4|A> zkFq(M|c_hF9oX(ZGyL zO=hAeA_cWD$FUtif-rS`ComEjLdRV@9^AeD+5tpMW61vfIZb0_4rGFjLaVn8ooei% zaCGxo4e5hZsx+r9nNH&x)XAN+z|vML2J9o^WFFd0jrqNUccXqb*B;6~x(mI3%MZ%# z`oo3+Oicy_2Kq7-p?Xke0IJiK2m3RWk<&2s2_VG`P(g^%;>j2HKC9rFoAZDKFo~8< zNaAw{h-HS?13_vRxmn z6n-H+!gc+;ew|u1piaI%CRWB+c}UOh6PjSSK7D*A-xAB`<-^Oc;$^XtF|kSh_JbT< z&p~cB7YxRFno@Of)Zlr&k_I{87dSj_ta@i%gljktvjJh_Ij|u7^>rN15MizXacKaE zOL~XZ6+DpDnSJ$3zdT1QZF@2^G{bVpGe@(^M*leM=5mM1W~n zPr@Z0oEiu8A>i#gfB%6Uba^7iM5Uv%-Ar@o=#&cOkB@;}1_y8^;fB0=cDf@XyB0nxUuO@&ZdX|(xJH>I& zDY)@F>=NgjKVul!zjeB>3qXJlz+-hXvCDr_u|tx(AoQ3e~dk z+HY_{;TLg;a%&n0zyrKpgrWzje}{s@P?c*M9Dej;n-r0|GYSgTze1D#Mi~OwpM-qx zV3ux)W}~}W>Y99)JnmK2HF&A7c-ti&f@Jl&u&O5+U?^z?tv(AF*!zV!K*Cq!_twx=U zGX~U%B40Ybq&QYL7}L*vGXRlppjk#iq&WSHL;=W~Mit!J`uM0P&2Ic|$b4!Y!OHzw zI-j`kA&P4a1W4{)ZS6z_gE_&e9RZbYK!;IN^AX%jSrXxGt!9y|MC&N_vAV?uw;)bc5NO`?HBW|nFWn2&6L{TGQ3&lq%?b#^Y=XKBdg6lu)dW> zgFLv^5<)IEEDaX9*_b7U4x?a*J&wLZ3kMXCJnK!NTxTuj^=7TbTXS;a`YZ36i-bcs zg$lREgQ?kocWkJGrtHUqsLrZbL)SR>XyIe$3Zh0|cwIUR1nBDfHI`m^pv60c_M=9J z*E$^!ud2ONr^ea8;yHKW zX!g@UTu!p2q5xe8j+3p$IjaqQHHSEJ8>4hhingYC7|1MTNgQ!9TrH(P%o0|~Ak z$l{WL!0kI?^t#A%XUs=NEEk0qy|d<`3V|^j8GcQ$=qtbw+5PWK92SkVkDU3Jc0NY6bL9j%asIhGI-%TJ2 z;#v|7kGS{Zk*gMDl>87>U^Ch3Q%eH@VqdPnHnj`6Qq134fSsTL+MuiSEf}ah7}(bk z52ZHnyf+(sAR0O#R^#Sj03yg>nn<1BLO^-V9Aw8v3jl2Kurt7RkKAW*tT{!=7 zvYLoMc0RDP3vf7RGq~KRc-Ee&ivL&30_|GC9JsgA1YL^>;$Utyx0=q*{budwSwK}AJEZnUfW+q{kGSmc;= ztMJpK?sO7@ZI`~)L~eaRK5E1C4(P&ij*x8HAMrn5&X12#%BO>XOIU;*MkGMl#oLN< z8EB6k-fd`F{#Df>kvtcqc%5aDDGElGu m7w1EhnUjo3azmRfT2hvBus@0gySA+bd`3P^8<|&e1polemzF&M diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 deleted file mode 100644 index c1c57683d4843e1d12509659d2ac3d507abec336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6304 zcmV;R7+>diPew8T0RR9102rVE5C8xG05?zo02n_20RR9100000000000000000000 z0000Qfl3>aEF6J224Fu^R6$fo0D>G52nxqEx)uw99smJ00we>3I0PUCgcb)N3LtZB$VYw&{#o!9s-5r`Y`K%i*_AR$K8oyeS7i zQ9u!~hU56WHGB~aJ3^CFwDRy}_t2l)GmSTI1yydxvU51v+E5Hd{@?z8`=$5IpJfXE z5O0__jHoIBg{+K>jFCN6>-zJ2+xp`Qsf{+_k8~fY=x2_lrtOTN(yA?+OW}??=7vj2 zic7g+;!aA6X$|omrNnBA!VJ@L{ptMfpQvbm-cb*|!Tpl8d5*UxLtr z5J~uVahXbY_y37x-vm4`oq(1VX6#{GP+QUVI^swz6w-TOw$AoTC-EVb5U4F?m<;Tv%e#i*_- zRA(Mjbo>+TQ;23a|ix#23R5jw3P(L`8*YXc0XWXAW7n zPO#~SffE%B5SZAB*tXm6+z%exa(Xg&pra2xo(y_K%M1vR$T3E7(B}n+d<$bR&-Z6V zewlCP4+9BpEo@JIV3^+;y83cMm2qHWJ9QrD>LA_sCsHXm_)D}Pz=_`7t!!nlgdUTLl9$4mA0I_4S7}u$m&O-#ISxE)n5PqD#h#mzZ2(Q21}2yv_7~-erjm! z9O$V`JvpQ0A;SdKl@N%5r*P>$8aTle6soZ5!^rMzKUs1B6#4jT7{)9bcf z0R`@&%qc=@VyT2}2ucUJy;-SQoL3NZoosuR*qDW_?o<9(pk>$c3w)qBX?2DkR$5{5 zE=cFhI`;qnl(^lk#Rsq@C$OSU=S+EfpMa=1<;auIr9`Ppt-5St%-)^w&OlXIWJhFo4yy zi8H#V1l>!L?kz?4ktThgd-SEABiG7D`#^qD+M_RhmU=(}COSvMAN2LwlZe zB)F0}7td~4cOHbBZv{(Z@WXs)ud^De42Opfo0W*QFmq17W z!A7MZh$X_8h0u2=H_0k=4ira#w>v#DUvYBR(HICZIHrwS=P321S`s6!EC&s|1G2xpdIHL-LFKzbAyP@CP$;BT2C5;#d-=h5T> z)S37Yo_Iz_6piyXc;1Ew5T6(qWlsjbYNB|}W zw z?JuzK(hzrnI0uli&d?>GjR_~}k?pM{T%q9;C8RYZ0tNyvT)7BL#r-QxEg~QRi-{oy z0uC-D0O5KnkuWDFhrlzOS7+>Ys^~c=c#MLgdLU73U7J)8fOh33D zt}MlfR|x|5vq_L(BB*VET@MY>JAGhEyZ?4z2aW^F8see`CeH1pw#;8RUtnpeSjpB_ z)FY9q)P1@(ga&6t#)xC0v%`N9P|`VN{1ebhv{jBw0Xa+ZlqJ-?AA{1yxBQ1z^wYqG zw@G1*V`?HouF>{-vbsSt|8gwRnPjgwvw2qiur>edrz}gB0@5gRkB^0`MP*C1yoeRm;G0A9!gt^i9xm(%Z)mz(YXG`twY(Mdlazk_`C*92STgqoo zAjJqJ$^F0=7_2%-$O}L*OBQmJo;h9NP7G$HupCk7g2hbYIgf7c4n~}|3D(T?gW%jM zdqjBQZjOwRG7vdXk6Bh*lQ^nUEZNM<>ghugn=U;0#VWS-2N6}4OR{fi;U~*Tbm(xa zhsL29(o=gz&rWkHBsA5~UPW-DH37#{P8P47z=frXsI=CQJIXX^6hkH3Yj840A)$NP z4-=R-p_NX>^03G&lxh`TGb7NtZc;K}6syFAsp>SztL1lq6xVc#EKXPYG1Y;m7eKQ` zY3vJ$YHRl81Y!gy6Qhm7^WqR&w0c~n(lEsTZE24`4l@#+&;CG^6OAJu)36R)h{uu< zRbPzko*zwkyH^)cW%?YSuJCu?#uhWg zYWcKeIG(zBmJ7Yj6^?jUpHD=V`4;!jNNnvMugbK#Gf3{2FA8cd~*7HH*(Y@wVY9O#bsGcvye5v$(xtNATIR-)N@Iqbx6>aX!gC9CPdtt}{+|$9Yr=MTzTJc?Ad7c6a&tIm_ zhzbZBRA<0a^J&aFT;szw(-xg;s1bVygAQ1Y_g+oyb%@cLX|=mn0dFL=tl{Ksr<>TE z*iu2tZtbAd?_nL+pUmnt+0fI{QCM}x?k@eY&6e6&&EI)%V+tX; z2#FLJYS!TbhQQAgGKAo0^aw7{O7T>(VxVe~NkvbWNlxwabNWLEdG!I|3AIOd%kqzW zTsV1sAD-Yr8Ud0Tsga9jqJS+z3#Y|8hj@= zH~98Ya;F>!6gW@}i|Xe)ua(|E#A%G!yE{F1XNh~|sCOV~V4M78#$CY$srmME7@}2N z{bt??3(`vKCYU*uPeThYaAH#P`vVi~zXZHzESVpbUV}}Q1A`vr@;T!sAeK-N3jpzf zK*6~=SV9D6qy1JZC{zYiCgo=_{wo=jl?Hl)aVglj6y6~7x6sawA>WDbgl3ns|4S~L zsN=^ORF^?IUE+}?iiR?YH#PXafVsYSC}(zh#rk|$*S(Wl48EK*Za z`vb!#%autHmsvAUqwESuIX~mo?v4eB3=7A^AX~uiFGy3IQY0SF&V{JxR9n*`e zFdMd_O?2jA<#9t<4~Ouux;(UYYiySFK5TJ`Xa-J#m(uA^+JH0y!=&sdKQVIO1m5aN zT{ayh9_cQK8NQLhs~9ehl3qmB*K6Qn2zL?Ia7Y++`GI27#zcteK*vd=~u(q*H@iVa1?L@ zlSFQ6NQx79?WZseyVTFpty%epxIgo0$0laL6fkUt5CDD=VZOe~&x^xidAgPc0Apui zG3r~4Q^^{=lPa_zTObRPMPlU1jDx2{2;k(z-?HbJ&s|yMtWFj!_E?w~t(%oa-reYA z%kcSdLQ_-tg5ma-7E%~63E_JUrndr-rq$ckhvvy5>h7$#-4Xdg-x0O!j#Btr#Ici& zBvb7xfHFR>NZc#((mqf4Bhdp}q+ zG;*F_H@YyZ_npTuRrSQ%F}EkTy5mlHC)Ny1v=*Gb_dT^uYkUvL#gLM= zS6aQFuUsT$U!~Qn`Ntz=>!z?D$s0!xSQnbdu>YC9D$Avq2sV7R72juoI;dHdc}jF? z2c|w$4G3L=eH%au6MzU;qat<#x4oyrBOjQ8pT3#ffK8*PQLP3eEZc%5o|26 zU}(dKhZ1zUp``E!+UdT zofC$a3ar$COB>>(xBdD1nk|G&DxDc5jW4OdxqQiai^wVW>^941yA6NpUBQuRK;bk% zeBu%1dqsOpC!LBdTq+pG0{&a5K`9SF!b7&V^x6TGb&oQPffoN9p{OjM2_p`+gHpkC z!I)rcEa6y^VC(~&^m)H~!AI+}FUN0RkGnr{KGBgD=?&@b=EmzzWPY6FUOLLi&n$4o zhTcFo)PV!PFL&6$ezX(4ngplmr>{PBV|O$Cl-eo2FD{og+)GFqT3i8(RWkPtvX`F| zUf-42U^c3@@RzfC-)@;3#PAUJ{{#7jp{S6)+}z-9^)U%m<378lrDn;MD>b$rZ94fT z2Ak|?)Zhdgm3FTpXVvYCl#XNlDWBhu(c6@6X5+>SPL~Xh#b;lDn}R)$l@CvEp6hMl zp}4BMW+lev57nyz#cO&++WlHsZ&Z$Q+{`_bG{4kcUaArtecszTzwf-!<1%$v!oPBq zUml|qW}d)b3WO;f>Xf(A6|n#in3@7CWeCUv0&p(UurL3mM47rQ;rr#T z#CJov6|wDpX(d}!1}6;v@`4#Kg>>BIiK4ut;grpObMdjb3)z`j{ZA4^bJO~q(`ivz zr%QA6Bf?`Pp3DeF`1#~YAutC4slkMTfhoW?Lf&EQ@T=UX)q3;^c^Z1^T9M1Mg<_9m zWAA=TgqVV(XsyvQi7N`px^1z*U14MqJ4c?c;t4Q8-h34~a&EcG!j4eG6=FiJc@1Qh zd?mz66Ur)w(hGO(IDUHTQQ{P_qBx%wTb);2(#thIiW}ut-Tas+Zky#4D02#`Ta%ov z4w~>H0$Nz*wGT}=UF`<(bvHp3;>M6zfhk}TH)9D2P7chBo~TH)qS-y+`3kz7`^S>0 zQV2pmej)38&N$$vO50BO{G`Ez;4g%Uq8%-hD zAI^hemnsnjA@7>|gDE;@r6|wRYzu)HM;e41#@KESJPRzq%mTZ+cke{=oW8M0mmYZ} zrEgrb5HZ2jGhmWhPR+c0l+(6uJiQ}zPEWqGnVjbMrHH)eGJQZb(L9+Y4dtjBOY3<* z0<|2Dm;#tkW=1fbr1oohJrWDTRtI20)f_5TKHpq`q+* ztM0=(SXewF3~~H60#is=0tk4>wnnc|qv#^a_xrM;Pbq$|Uo>$hU-OYK=hyvh-ca6K zlb+MtSgrs^e?U@{wQ8PT8B2E+;I@}M#}aQs_^gnSyRFND8*3e+Z+C_BcK`aJ(rf== zba-roO3Js5Z#GlWb2cNlhg0$HS?%W&2;#u_f}qz?$NJi;#`bY0D3c8#BR<0op_Ivq zE)!wxr^eTZBI;T~k3bPz?+E{t?^D3SueImiL1F|O3t7k&-D?&41m0V$`iAwqq=N~y z;mo;wPIBdm6FQ_5Jx$6Usi@2!o=xiDf+=Wvzrb-rZBe)%>CtYb=Joq_FFo?Uf02#7 zlt!)_dS!nQz$iqBhrq>jY;Kg~Jqkacnm5(c2R{*BJYNJ4HK4X950taU1@o|gP$;piB zd#0^0x0IV!GfBqvDV1~~SPYlEFeeQQvIc=jbJn^z)e3cL>8r$ep=5}fti_@wyC>+t z2xfi7djPz(l48InJu2`8KN66$R#LI@TFbzmj7XfZyvqT?ArfLCUM3nymZ>R_Ub*Hu zi08c@Zpm-F4W6e#WjiQIV_yvxd=kguo}d}BAR8PYkzN&e2eVQqcuPS;tE7yf z(jG6CuM^c1Eq<5V3lCpMdFX%2&?9DA0qGJH(L#ZFZ;G;K&t=GG6u<#CtE_B* zzxtWD&2A5640(yALen8X*Z3bOzey*DAXmax$6EMyh4L&s=R)~ROy-?<5l+CdaJ&X# zW`3|i_{p{ub9iNW1rT5u-@o^*RP1lL=_9sh0N(rMx-IbjetSN;()^dV!j1w^FhIax z+L0BXg~H$TrvSwEzi!gOD~HQXpmL*xvlSuSl{QLwdcA=z&$#rBOjquidZ&#!f#vg- z%2#+b_DQ#Lyyfy4#MPdz^C;WKp1|u3)00S-HdEaNUZOs07k5-w1O#q^+|10ZB%Gkb zo!d^jd+z71I$tYIFl1;9t`kT31iV!3((`99=j+x8bIEm;XgCdp#jH)~#O0o3CUi~eECSaNI;Cl{b85{p0&}N~&^QA( zfZ!ua*FHw;)hBTJ?BhIq_#~42^GSIWb&*y=`ED#0rjFBmi%`Zza%t*p>84CuF>Az- zVe>?BoX!>12V@}I5|ic)m?f$^_$J8RC>Lk+w0rW-d+% zjF>V>B;_ovDA(Tex0RR9JH~+-| diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 deleted file mode 100644 index d1518426fa4d59bf1c158d62f085c0f1b5a4a576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6724 zcmV-K8oT9pPew8T0RR9102)L95C8xG060hh02$%{0RR9100000000000000000000 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 aK5C`B~a5dvB-$0002ND9PFY diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 deleted file mode 100644 index b0f0af58b549572a8aab55c4b37076d72dc226a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6804 zcmV;F8f)cuPew8T0RR9102-745C8xG063Tc02(p?0RR9100000000000000000000 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 C`2q<5 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 deleted file mode 100644 index 22a09b0bb7128a7218154bd296c6804e9817fe57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6772 zcmV-)8jIz3Pew8T0RR9102*`v5C8xG062I602&kk0RR9100000000000000000000 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

rmL-hKd9&j#!V z>c$43OFnbHEi-RxS>S-&gU3%~9~?A;XMA2>PC_oEppY_+SD^xC1&bYA{I^G!G!Q%h#R(5|)&Z;enEzGP+P06S#j4jHn zg?yUm=d+)nkstsX2|9d2ej`(m0A#QT8njeij8dP3oC+wI3ew6yeV`1gf~`%CYN5Y` z;Q64*wQryg2E-_2+65Aeeh6U9tuz;v{kaOT1Z!}BX?%tcv-lhxm|M35Ehcb2b|w}Q zB-*Vnx&kuLq?4fb&qP(wORplr|Gd0|3(SWpz~s6iOf_9}RR>KKu9DCO-`PtD8IqVH zQ6`(1DbiWk50R>0zY3pW#|^m<;%Iz-5`JY`+-!}mmb-QTEvSH=JOJiE>&F21p?RH` zjINezB-ykCj@6-9-sf)}l$T|>Tb`^oyK7Of0}?d&}K|5U*XtJFm{Y|6=|+UXfwzDCA+ zL(@$HGxnapds_?AJUObA?r#A(kXNRW6SN+>mJSMdE5(PU2Z*)2PqTC;Ke`t{>%6M! z65FiIsl>C8)52I*J;K0m`YFD)Sz|O}_)_Yz1_)4A4{o^ZzPwmDf2MTg0lfThYz)Aw zsL-2V$Nw$WodXcaKh#b9xt$pIH_EGk7B$v)d|w7nNf3V zto669@#3~#cac7<1CPe6UQOFH2hyI7!bgjj-uH#|H%^r*mCY{2->3G)|7A_{Xkqb3 zuhid=Ww~)!L>^1@JDXGZZ1!jUvu%+vJCyf)0sFh>kxq`6GM11QU+#VvkMmAgyJ_oT zk*G)LKct3N~BjIL$08G@eB?){nel20H@(1qynQQm?sh za;96G7L?U@m)ofo?jT+bALi)Fw}b$fbWl)8W=TE28UcEBp(83;z!fN05ahJ1prQ1x zptH1T1q0jY3Z|LHSCH73#&RXoFUt)GWhg|_3KrxdXN4w|qL@!L^K3m7D71(`woF-y zaX7MPE=S~w@Sd%oe8qSKI6?^&$ib7Q_~>p*6w6XTK#0Q};L(Z|5^`e4PNwY2doPj7 zR+<8N>;jetD)DUKlUo@1e%%$|OE--zdk*H9D_n#i5$3AIY|@}u%Hh$xER=nTd>kMZ z6SI+YiWwZ#orxDuGZk2KNKJg9G`d(}WI~7FjIT(*gJ-f6!dsviJW4YW_);KQc=9uq W@SOs5*^zbZokITy*WZ)(szv}+dj7fq diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 deleted file mode 100644 index cad49b6327f40463603c85300b5853dff5ba284e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6836 zcmV;l8cXGOPew8T0RR9102;Ia5C8xG065eD02);Q0RR9100000000000000000000 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 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 deleted file mode 100644 index d1133f54c205121a2e4da5a5be57e2c5d72febeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6616 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 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 deleted file mode 100644 index eb02003206a5389a87e75d16361db2dbb0b294f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10040 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 -=9j}Jy_O8E@*g*zvFV1Y?J5qctBdpxUc6* zjXi2V*w9^&Q#Zt>^xx{!b4JmKjJ|#fyLKq2fZ07*Giq9{(U@;)+E{?+c9U$?jpbJV z1O1an$zE?R)&892vmbiir=mL4GET>-8G{vEyJX7kD;i!Bmk0)am6&RvAsRV(lM``# zyp||-4^^r0!gpm-$9=q(>r@yj!zGdz)&YUrR|LRruZ zsk3TI=lQF;AS;Xc3lv~UaXn=B1$Fjw?ODTayp~fBLF{MJiDN9#aO%M58#W(kxwK-$ zekPvK?j>m71kndde(iBw{zzdo92&@L@NPThsphR0t#;Yyiotm?Um3q!Q88DO)O_{a z)Ii&I*U6P09~PPt@9L<3$-?Zisih_|lwZl@gs?Drf~(VMQ;W-H7cIVjxapFT5IR-4 zIO!Xg+I$k7gN(#6t;M*BoTZtWZlpf>;HDdha3f-Q3QVokJ!hO=Z*4+20yMxtfF-~j`APaX&S7$Xv1 z0}{%$vb&ybnhv|4RhIE(YRh#ZM+Mb5seua3#K=||W=LlMtrpA3NH4ND?)(8B4(U@< z+w@GCwzLK$y`j3jC{wv0gWg7YQ3@3HMx_MC}m|(e}tmY3g#mt$g+tkGe61MlxR43{^iDBVH)Gul5SU`XS zSnw92PI6QyQyke2XMaOq5VIXRFSfZuNW&;w#g%ojU((ztVdGo*g??g-h6d^oWO`CS zAFvRAypEmYARMY82o>_G`xKhjfyJLs+(vQlJAYxP$Z)HQZ}PcBbmIbizt% zNlt>4aN_pqcc$+Dt@msxNRsIv>xPj@#y6r^E)9{X?GmKKb?g+232~@~r6C;eL1gh9 z;DKF$JgrYGn``zJKvc|*wU`LNIwP%5M&q$Xm8d>h(!&nmC$OA#>0$UT;c`ez#;j9Mefc}d6d9>7$uB8@n& z*O8#G!^n$|u7F8;2l>r-RWFQ?Ak1Hbmgu6ev}=7GfDUG_;ig8ypTu0xG^{?IDKnC6 z3UiLe=zPa&iM?L=(MFu2^A|W+YNL0s_71>;k(V>sR74Ikv3b)+C4ab(?T>wg@oQ=VPu) zBmux<+q||58z9IiO#4 zw)7}w;wSaUoL#DN06E^$M&JK^`F{xSb=d#&4ac_k$=t z0{}ezI#L1fY=h;Kue<-_7VhE!00#^JkO2ORfXK0yM zd}Hd-iPpDDD27B|9eULKG!$WQ<6m30mC@4GfMqpe;(YyaqWBhd-pC=Z+Iu!TCv@}~ zsB`c`u-tKg4g08jFb{@B?yQ)-ot?f|qiWkFiKg;+>^qtzTGR%Ccmm+fw9$eQ=O(_w z7jMap?}&#I^6d5?v-ijB>Y z6btMdPUlq)bhbXFx{Nte=1KN_uq?tzQC8{+rA+8j=|R|gGm&s7_92_JG$*`J3xZ*Kx}C5DtogK>oM7Q5o*bJGhJxGuk*$yQi@1KsGAwtFqOA{Sbf|qIma=76$&Ei4b~{hrS|OdhTSsDxIme zE{=j6ivQlr#zCJEBSr_k#OP{&IZDJqH9z@`tBWMm8yuAR!=&|R6l)_~q32qB>kt55 zPy`PIL-(O6q?ktPjNL|)P$OeFsk$E zT&ker8;SBwL%A>;%)i1Te!SuQxd^32l{yV4>AJ$&W!7}t7g>eaGG*UKP**9X10PeU zq`nKC9Lzt)BWyp{j=EvK4Z^tL^n;-;Rh5LlAt2#ZJBkHkX8n5J4z=U)F0IX?FoTs= OXl7b diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 deleted file mode 100644 index 294c7ff84486beb82e6d048c8fcb63cef18731f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9948 zcmV<2CL`H*Pew8T0RR9104Cf35C8xG08uCa0499^0RR9100000000000000000000 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 =0bBcG$=!kY@RYytxUA%1Sa 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 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 deleted file mode 100644 index 5a1646bce5f5b30acc6475ddd291acd5fb970baa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10184 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 C)u$8y diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 deleted file mode 100644 index 3b4d7f4bc492bfc31a2608386b0fe7918abca4b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10264 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 WENE%RW^J>^{4Q-3euk+80001>o5vIY diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 deleted file mode 100644 index f9a1a8cd526040803398458f4e1fb8644616ed7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10352 zcmV-$D38~7Pew8T0RR9104Q((5C8xG08?N904Nav0RR9100000000000000000000 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 O|0izQAM$tSyEOpg{FO!k diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 deleted file mode 100644 index 160f0fff854a8113c0edfd3cf8fe8f43d738e1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10076 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 deleted file mode 100644 index bbff286cb1e5859f5011174e57880883c73870a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8152 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 deleted file mode 100644 index 8041bcbff9ee0fe89db1ec2583d8a4185b3da577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8356 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 deleted file mode 100644 index e96490ff2f6246878318ea91c4ca349891fafebc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8308 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 deleted file mode 100644 index 140147ef940d7cc24fa531cdd88435f659c47e27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8436 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 deleted file mode 100644 index 8fa4e47281361184c20e1baad36b83edbb8bdefc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5256 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 O(;w5J$tC>D!~+0hdI+Wf diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 deleted file mode 100644 index 97e45aae32c68a61c289a28e3481e7f1a66c2177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 deleted file mode 100644 index 0fee707f37f2b99c72a1c6fade5930df7b132d4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5200 zcmV-W6tC-dPew8T0RR9102ELF5C8xG05z-t02A>50RR9100000000000000000000 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 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 deleted file mode 100644 index 3d281d004b4af9dfdafe547fecbb68589963d822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5200 zcmV-W6tC-dPew8T0RR9102ELF5C8xG05#+Q02A;40RR9100000000000000000000 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 KTYW9r3;+Pm#L15U diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 deleted file mode 100644 index c23b86f1d39a1b45987ceeb028a6fae2f2f4a8bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5032 zcmV;Z6IbkaPew8T0RR91028PH5C8xG05#MA024<50RR9100000000000000000000 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 z z8H^Doom*1O`6m3Na83A8;eU&IRXDfYq~3*LwmpLN;TOBF5={1YsJ3KSoV5RPa%s*l ziOI#?z_q97F&^!!iFs0G>R#OwVQ%i`snh#3-?TZSB##sgAH`+C;rJPp9|3u+FC0Rb z(=W}aB+Y_6SrC5V7-Np=He1O~w{KBADjUaqJDH_?tH8KoSKd@RqP&1K5OkiAn|DH{P%%7HJ#Qay}ha%w<3Q9YrSz-uN# z7C;28i0(w&uS5c;**6=bL8Erf6slBf#pg}(AtU-+mWs@%+ zrA@194Vty!69g!pyito_o;+1i44=GBDGy~D)bV6~offE51UGkH^5W5yN|dRUr9zc9 z|8+O>;X%ktkPun2rOFm^Xli#RMZ0%}2KD&WRZ^3laJ{`BFGBus9fV3_XeamGYY7f( yrqJlMAjW&j7iQp9QMXJNFC~QDLo!cE2iYAQYx4hCALrcgj^Bb`eO{Rk0002pc%7dB diff --git a/invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 deleted file mode 100644 index 1ef23573652f263ddc59093737bd3a8a7d207908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16548 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

5BjbKPz%2L=TxN$Z{ zJVEsV_<3?Xz<&Qg8^Z9vwaFpWy@4eT0+N$vW`dOe>CaxdE({waVIF)$WTyZLm$9Qt zuo$Qjvax`akC3&o!HG>IxkpD9XJN%ObV3uYf#$RMgyV*U^>R4fp=F?L4^c{(3+7`OEM4=Xt{a-1uSTXUo4Yf5Gq<$MZ~0ohq~6-&y<*g2i| zBiNXG%mJTeL;bhEY^Sx%5GiZdEDz#PmXGz?JVNu`Mi3^#Xc%qr-l;*vpcn1YuMFhF z02l3YT-H%0eU^j&p&cEP6Ue9uw7(v0PCvsHeN=qij**~|A=hjX(=Ls$ZR+NonwJZOGSSbQtQ!3J9|<+ zwxufXR*y=)3RC(f%>SJ&3wocB2bL12q)+Ym1TLK20j7&)L9@m2sn zFuM;bw_w6;zN7_owu_Q5vC=<_Dk6sj=+b6O+SATLGL)t#XiwDh`f4VKf3y|ykf&^Z zc1{5KC{Mr0Z$^i}1V~XPla=(jApyJ6D6mxDIk?xT&NHH9HBc{ zcvr|Lo9h||DF@{s%iCyQ;hJe4%i@*T2*%31!(?`n9GH^6N)@ibV3z83@?k1E4H!4vAt$P{j@>8-gq2)hOzyJt~juqOeyFxIH4k+`gdqoNJrQwLQ7?*9;wB9EMl2TH*<^-)SLZKicU`gaP zvEf#pQ;7-uDsf6^dX${NrsO+qSvV0Uf5rkQpd6~STwsIe`Rg**qMEg8AVy;&bdJf| zVH)|lJV@uO?DJUGdI3U)12h9fZK3u<+jV$-}Ts=?avn@tvY5dL}sQ$W-e7$mZjyl+(*() z8$9Cqc3DAtt}1i|&FKW$*KW$ztxA*sepjzj?{l8S7@^*)>X~f|W*0oGXfZM+M?U}E8H`~_Uk45;~0p8X7jCz5?qLHtRO_5J1sOJF?w$jBR2)>4#(J2(W<3bqt zj5ARW;T!~}(*#ed=%X0Ebk5_MU;M@eXLfJ3bjiAS7>>)tdl{+R*RKE3B}uZ8m1Vj5 z8J5+JjCxldullX$6FP;8zdhES@nzF#R^dg_}?!{hTTZgxq9Frg(S4qQq32kF3;TmNa_y zIQ}OgN(==}963-eQB|U&DQ&0!6yFxm^yAK^nbJ@l$=Om4I(^5+faz4738%{-Uzl{M znD)_$)gY!Q&+lf+(XBJH{?llTG;k6HpAjA%ny{1N=|6MmcOw;&^Bl!Q8dymsRaH~~ z07S&f9<}hxri`$u*W^v4HO;V7K*$hNr6dwb0Dyoa;j_!5+ieVEh*4_45^J<}^kO2; z^Oz`;0z;MWBR5r5RR91H5faWbEHTmHnVA?8$^Q>!^6r|buw-UtCX!TERY3s+L`0B? z>kd~~Wc(lKnaGlfDr;tDMj}Z?RTUIKKtv=-+Fr(3h2{TXXQ>;G{+66!C|QMªx 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 YIibWp^?&tIht8qTWw`N6_B#Lo07d&VN&o-= diff --git a/invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 deleted file mode 100644 index 6fc94ad0ccdc6d8823e61c59618767f3206458bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17552 zcmV)WK(4=cPew8T0RR9107Q@g5C8xG0Jro207NbT0RR9100000000000000000000 z0000Qb{pda9L5F)U_Vn-K~zKlg#-}@3W29Mfrm#6g){&GHUcCAiev;J1%yBcAPff^ zJERxT+jb<}t*TNCOd=L=W9Z!uQUR(hL{UMyT=f6{NeN0swokge-IGJ|Kp0&z%fT??2}v`p7-yoU;FsoTV2&2sCuAmzJL%^^g}uWfPUwA z(ygDjyV-0)2q9pgyA&Y=6G9K6g;4CsAtG|v02_x8O0(2}wPWju*wFqVlxjK5319hK z4A`)IdQ;911*7 zf1loLn`VN4JX^bq6r}X1Q~X#ANEf3D2e8}t2kAQ$wR^vvC`c4Ts{Ho{xZLmUsRB!& zsOl8RMb-V8)y1d+Zeje&mRFV3mf=tVQjQ9kBUbR(ZW7U=Pk{jfs_4Rfn(70Mu%{p* zU&dU5#S9ih}>I&EBVxX{9G)!fiWXgoRHa=>|OB z&fedp2JE;CmxKc+vEf$eT~jeNLphEU{Knk8GPO*%IcyPt9QSYr^2E7+z9pp~dGCWr zkxG>hW)=%H2YZC$-|p=hka)vAzQGc2fcG@#$h&u5#(Ll_LAke%FKbMsRI21%IB>h;EbCtzRj=1g!jAl?L+zGX_Nt2@-qB>SMzRhyF+XJ9S6khe+ zz3aT|tAC!SrYY64od%DEE)+b@_V&`g-J$Gswj<=ypm8R{16T+Z40J#T2QGQ4eIIE2 zgAH32GWmIm(uLC72KvNrP$+QM^qHBd*@Z;r;#dqufe{*p82;P7YHn1urH6Z;&~slS z5=0~f5fPCf&C>V$!`Rf`Gt3Q?N(1qEC!hd!07#4>90*r5B*s$6aw{Rf$%f=BfNZb< zvfXybPd_1j`XHl5A>*b9F5&_To3MdmQn*4P2?-Q)g8)Im!W<2|!Hs6dfaL@4mYoKc z&;#z3nFc%vmnlF12?fIsC74qHabh0`;5p|`cbdqgjTi`PBon^p=*$`b+6iTKwRA%xFPLH~uQSw917zJO}?`if}v>>phLKU4}E@Bq{M3Iu>?d=Cwr z!3JI(Cj@Y-XOYqeR9y(r zvu;{)-_?)J)7p+yDX|%U=z1Axl7PRcDD}EnEf}tiVVts^F`ayY)K+%9#-0!T`*|T1 zIP@Ykf);K;Wu8(&zb1zr1T;t4uIEZW-MTjLjFwVx+L=z1g84n@l`W474m2~Xr#TNrFkLTpd}*6KyLjq_YY0DC*q<0T5aPF1~)+|`_} zt5zNcy_D-g;@Z#j8FbAHVzsjQIYG5jNGR5iUmka=a>H)@imVjs`Yt^v{2uP}Y`7^S zy&Utmd!KN=lbu)Mk=?1xMJa638fy*uET#ATKNmaW==UDb8y(hD=*e0(Jz3F_rxx2G zY!SHLdW818dR#}_tVV13*yTlxAe?^+E_-IQj-B-o`V!~lm8Lp#Qg6I};YJKsZFbyS z-PY|co}YP|a02tLl@waL8s&Diy{truch;WN-I-fZ`i|ZHEeFS{{B;lB^=rD}x1gU7 zdUMroFZUsv8Kg+NzoFBvzmEqFt9j>XyMqYag?pI8+~xO>^_>BEL0p-4HTUcc{i`ea zTS>o%I19ThId19=2O${z$GiTifXx7hi3tSES+HWwhOLQccI-KDG>H>uE=0s6+(^0e z;K_?OAHHP5OgFf+octz_Et=?+aK}WAsm-jyS=#$U7eeu;d-}UG< zWF$Dq5OI+a;)QYW!z4^&LfD3VID|0#LLUAxH9W#I`~nAr5p)PRN4)UFdjip8xJp7J zfu0~VA}<(^VV1*G;&|8wZsFed=`xXUKBHyWFByFIFfJgYV5JD5AOHy>DQUvp#AKIW zrj#g_bgFRyHAm62gbCTfMUs3@LbSTFq++h)oaE?5u0;`_Yueh*0RL2&*>&>8>s>j* z8*Eay3Cl0dRCWL@)O5hN>uKNj;0xmwR$Os`*(CD#E?ktwqV=*m0E*eJ&!Muq(4Szq zz-+T9bPopy3_AYdk+~DO(Vo| znWJQKU8kEhm(WIbz%5FP<(2qDYu-Y;4!XwLM&JLP$;NaTe-nTYKLLV-2p0+17?Pw& zLy#d$jywgL#ddPT&VJr}2GljAXsR(k)=Wb$Cda$lhBui)E||g*7)VSMtB4mn1Tldu ze6Cr>#!PFOT|6ljJC!tJhFK_3FtBiA0TtF&(u5eCte{!?z#~0Io@h->RM12}UY>&Q zE(~x41`-psZuJH~M9yD;KtX~jiZbNHnG08L+MM6$6grJ}b>*29nk^b+j z9@yxPP0Fynx8-GBovcDn6wUjQi=BdykjmFpRI4dXz{Tau0$(fq{cmDShw(Q{NJ>cq znL%8GQM=NoBYH?HVA_3XzAR~pbQv;b<=RXi6ZrIbz&u3%bH=B&bki4Khi{`veAXmM zk%k~cmK=EsgXSV8F~fxLv6!Ru5_dfuQ&1TE1PBr$OoZrIgeS+V3bz8|c}O!8lNGv2 z6fbeDRA7}flS$&b?5TmNN^zk?NRr&NIKA0CrbGGcR`aMYq;f(nKGEu}?rhcbhzP2x zyUN`&kfM+qPK7vO9vjW9&Sj$M*{Vlt)BDGi%^bBG)BkZ=kxd7DcIa;tJ=R)1=Y<3} z3P)fdF;TJlEMkghynXk9%sJ;f?V4UjJ)~grs!6E3Ftbqv1`-qXj%U)mu{ho~vH#h!ZwA)%8MW^djf< zt*&(5=9=rayQy|v%4m1BpV*7KsvK6M#&L~JFZMe-qe<-WeI zKhm#1HZ*llj0Oo$Ljq0E5DwwsRro~!ZA=X>Z810ev_p`s$wZVQV749(jOZjzkY)b9 zoXwdK!sc;@;({ZKSa8LLnta_QOYGha5oKX8nT4?0OW7b8%}3{Aeqdw6GC{1l(={B>qsFpB_#bx*jvuJoNdnRjt zb{jTUnLH2%GD}t;g;5(W!6SkZ2n(Or_6DQ~hUTi08`@tPxDwfhF99y)%4{9u)W>Mi zQdbgK2G&YQcAxka3=CtMDX7J~$K6u1L37Wz^i}Zu-bqW6K>NV>q*Um6aL%es=zr+9 z1EY`J$`C&&btrvxpV1&tOh_om!%onG-Cznf;0)eBO{AbjOfchM>uMvR%5z>EbeAOM05 z5EMWNK>`sP1Q1buBFT`|99xY*E$Z-l^XT0Z7wu7oQQ;KGDgvr;5AL##0gr_5BMkXt zmZVQT8Sum8sb_%!@~_3UvtyR!nVFKAxhOZ~p?oHHozdC7 zrStl^uJ8SWO9_W!1VTXc-t+DQFbs?E5FR<`7MQaedD#7yB(PifvmcF%uu(eiN9X(+ z&?qtZC0!1^PoreC2Ob8-d+R`(SU9`-6djC!X6g03s~fc*ho^y$=B{peTn0)Iqa3Qq z+$H5v&9-hD6Vfl{%rP9 z>_MW3`CWDWsK0R(`y)=QD-I`9CmgY-^Y!73s-FsmSG-(Fq@mo z$Bg`I%y<9_gdrReh=EANMh1w5n1}*&_BDX&r9-8+?i+8e)<&_ZfCFjWy#9d>_<&en zyGFG*ElFG-)NGybGvZfw?_6jNQV0Wu7Ew6smq5vstoW6(7OoX*^;*9+!+}_L!Pe5X z69O)PlS&EeSKsI17^q+^0;nOeWrd5a30ceX0V?tJ^bTrWgw7a&O{}|m?~ct{CK#}Y zvF4+9M|Ul5C|pdgiRj&tUDb{8g^WJDrqZyw0#FUaQ+Kjta3u(s+TR9WKlPraw@j~I zy{OtP(JnelFI(06%iwE;^eh*OQ|zYqU&=wJ{M+Em#pRcoM0GA=Ij}4*-A(ubd|AJ& z^khL|t5r+t!dXtOQN$<*EoDRZ`BwBp3&%R-ZG2Vt%u>}*O(0t4!exC#$)C%TmjrLe zz?GN$LSc+7-Q!Y*ps@9q zLhfN6rTzTU;3d}&5|w@b3Wdpamqu-$zDmR7T1=oRS6_OPE>mc2)nzHZ?H%yw?D#8) zmAoKpGA&Qr%Bv!5v9*#D7;ND+8m5@G=_!mJ2XgmeXiak})PJ{3XQ`BE%(m__j1jge zNMNyRPf!{yE$3AVt9|u4<3_{fTu4ImlEEw|EXUqMcOsFhJ7;3adgHJJfp%J$cxL;o zUw@!&i`N6g3EfqxRGxLKDWx~kE{G3`2aAPnb()2%ykv!E8_tq&f{t{>q19p1*DE4k zORW!!2bYVI`xC`o=r_fK$41erlxL!?2rofG={cogROllKBh8$Pw2W!IARw}tv)Y!{ zv*G-{A~CT}-kVNc323F2b8Bt@dN@H9z5CqcdTEz8lE7JYIW%XNkF={(eb!wR8q?c2 zO??A6|8v?+x7=0@dLQbWInb$k>@&_f=e!FUbfEw@n7H?W*4H4`v-so~?oid^B0`Udan2_eq`>(<{rH_So#FSnx7dzmZ*7*M{*p zk&8r;gsmFKkXg%@WP$&e$NhCA2n3^mN;fcrk>BTdOJ?x%a_Zf(>+lUZxVCTk% z^q?}yu;n(#y9%X6&1PDm6YGs$qme9LmN_P|IE$2`@{WKRxZ`Jy?24+cIW81Nnk9uZ zy%fC9-mRl1+w|Ew`E;Mu#b@yp2A=!Fu<`h=vKEnuTa_qgFXUn=QL9A{p80)L zuVsVUeSlFv45kaE(TVaRg`lRALUbf@doC-XjPk3fvGxY&cfSS3)%TLTwse%ey3soJ zX=y%+5EPd(XKyke3ZC$SF(f&tP?aW~hDCWAmQ*qo30Un}6u_rg)Sr|8K9@p6;LC1WFV$ zyQsREJ2HFb%H3ycZPyN{d}t^>ONJyoJuCt)ox%G>otuO=DYk zp74S(Bsr*1l_s5rOgrVdHhN$6*?P7NpDEL2&XG4Lh=dYDDlAHnSwC>QgSO3IGl5T<-=38N-?G8BUqRqZmXSconzm}(pwVSr@nRkRJMa3+;qN;0- z+eovW>1A)~>U;fzj;hqBC7tODBM?oTG;C$+ar7Ct;2fW^A_R-ZOr1 z#-s-quG+No(CMc>-&X(YzN&9|Fmsu^Jm(|7p%4V4i<2r_p$hd{a1EKXVA)G;bUyi^ zpSQMIZ9`kNT|2c~d$r%Fgu&_KGG}C^-vojwaT9{PfDSzxg0#U7J^WBU=Ap+P+H7{1 z0~}y{jFlLNp3XA9;?NPEieIt6+qlPgkPo&0Am5x%*9L$eZv0*TaX^QU0y4s4vi)?= z<~s_hDzFk(s&3SzA9echloF+GsJ;72drGfTO=xBrhPoLC8RhiOzVaO=b48E!y?kD1 zhfv&)22jGvT^NCItqO5SLKIT=PY#cW8>JfRepY_HJwP^hx$^kKaHRB8E(pQu1#Y@y zq3T|qsEtli4J=h(749rUzwCf#(G6_q;KW4#3Bm0_vsubktBR)*mh;RG;b9s|Z?6f;z10t>>5@*MJQ}Y!$gZEw-p=RT)-a-UzXQLNjJ_r-fJ*pC1zg=s_41;Fyby z4_FEf+xd;_EN6#nlyluN)0yUobiKM{xK`XH9A~$A|1yFRZg|fN z7|SFH42~eTJ#$CzWdCLSx5Z~*RFsE#Mnzc~lBBAtDgXc?A~NzSqu8G5V@m@q01r5CEIssI3p zh)B7bH(^vvn3C6=bN6C+^w8?_ky zDZ(aL9$f}O=9;l>?t}Cf+K6iOdsT0K4J1~s0-{Tz4+HcITQTr88_nOP$#=RYj0_+l zo(e7k9sq#b-G0^_(4e>D;#W_`0W7ahJs@5IXehuw4g{fKz)=`*KI}2~S&@yT0Uq(d zv}}Zc5O@$EPK!PuL$ELd%zpwP0U0<7hk&DqqynynMzG|@&wAtG9&^%sT2Ae$V;`e8 z^hzJ4EoocYo_3-=X*nIXpS@q&u(#XaIN0QmjsFk(q~y+qQADS?(m6+HbJ}{(J!n65 z%NpUVpKIIujKz&bcbaxeI>q|q06%`IewV&jzeB%I|4_f~@wLZi9#6b0*HvNx5IJxs zIuI|8X2)KQXL_B)6&&!uMfss?zx$3js!NLsB`RH3rDnw6?w1ZZ31MO5;4)!q0>Q66 zDZ5{EvRr@o)BGi;D=Tx%HOF<*hlrmLN@2n+&8)_+J8gKLIPnr;DO*9R`iYgT*cB(V zhPQ(XtZ~U|SN%U+ebnulcdq*oQlGu{Q%|@^@m*th`r(V`;S`g?*2TI}xKmt5>K|!*4AZf}$>%xV~X1p*q63OVrD))g1oJ(&Z^OFL{;8dX#uB7LI z=F>Lus-WiZ)SXnC0MRF+L;4wtpF$usrkZC7@PX!IA-Sg!wQ(K^oKjuS3jt6Ku=>&Y zf{?^U1VpSC%l;VFGBnb&Nz>DaLR1Rvh#Fg_*Sp9=mm(O?(<5a8pc_3>)JxrH0vr|5 zi_T$qks*{QYYEoSfTsz{0Cm!`zE+~sG?peR_G3D<{l-Wc1h8lS0cV_%M0Rfi& zaZ&~|lmb2q?8BuO29iT?RCg|mp`XHt^wuEo;ZXYvg@*|FB0tnib&TEN>vNLHsa$Bbc=}OAS6dQbNPJGX>aB{lM;4xOK zj&BJ2qbVMHfmvjje$(7kY+Yx2@YK9$bO^0yEn){XKFz5om`00phh=NurUZBqj$>HS zA+ES@?wx84zy;cP}jfR<@n<)p|$I>YKxx+_5 zUF@V~NY{BTk9zKT^Ve7E?D1FmV9M z;}fros&QhjmcpB0DJV91JH^)b{>%_C(m^|hWPZkyUq!w^xW zK9&sDAf4bL<|K1SEnsTTwCPAj82#l@Z$#^2r#^-}4EfUz*8KQ&0}Oj5)nJ$rm?3m_ z{w08Pa4XuEiZ`WK1Y%oGFTGxHm>2jIK+7fN5$sAmN-~mY82%xg#u}|d7qm~S4wYti3dn# z$B09tGQ@=l0nwH{vJ{fW=k58KHeq8}4S&u~brC(Cq=G`9 zxUg$X{gH{?OJa4Oql~Ydbxn1lUDRc?;me%TN@KxR>adBW_d?ZL?zDJXs;8Shz8s-k zQ-`f4Lj*ksSHiy+OD;X{t}^G}*FcS|fDV+U9=j(K7>6UFE54R}S;jf;SpRDQF)D2r zmju5FjY&>Vrb`>Go*^r5jxq?*l?d!SPn+Utz=)U`2;zr1PQw9sY@{494BJiS^TjBA zkXhrLK2l~?wrp2V8&9T!WDrxe>YB!VQsvke;q7E{J@En)G<&%ZA8zfev3RoX$S&Vn zO}*>=FwFE`&abq2e>(do0@`?gs#?aXl@DW zezGQ0=s_18DgOVa!b{lkY1i<2;HBSh}0)IY3uGHtXtIT)7*Q(&3d`BE%oYycr?% z_9QsvPh=D)O4U6k+lT6>1-ZdC7Xg_cdz7^G2}1iRoKo1lc8zXA2=8y`?Cn&9|V#@59Y0QdBDc4-Absk2feg0q+i1rb6(VvbA z@&cOFqrh>sFZDS_^LVvP7DL@%Me{|t9H46KWOEiULgiCY*$vdtIZoM=!q{zwTis6dY2xnxpo$Lw|bX)GSlZ=)fJ=QAMK@RQJg&dE|!wv zJQd5G3~;z@{x-ApJy$@Bt;En$3YbCzICC=#V#dmkLT9?+F*a3H5RXTa;8Rtgh1@vA zbhQp}Cj)PL&T;vx|50*FvYyju{2OMlGc65HMVB()6(dMk2&nK*y#;n2^vBsqbGTJ+;_w@f-5Zf!Nt^1wvoO ziaHXlc#QpStjD==Ym$L*+-S(|(IZ#s!Y2;yX=HTp6rylgDM1%tvFLm&#WdQWu~yc&Q^CdtgSECotStGyI2HiN$2CUF@1m6j-w47}px|S>az**)MizOfnL$>R4;MU@mh-UnSoII1 zs*m?Y7apDH&!tk^#zPLC|J1_ZqC=~~az^{7xsVo4w~z^=Hk3yWAwx&Ej&l5e{Nng4 z4i8g@Ov@ue>t(6tU|wJG=h38cSg&~NpO1Ik+}Cfn{t@fgPI}6#0myFvQ5e`W{Poqj z{q}DzPHi5M#J)q09Kn3~)QH|Q_=E;&zogy{oLxl965OxX13&?iWpY~kuN=K1&B-wK z(#oC>@=fuR33M@f7SJZrcLq|b3g~@E`k=xnhw$TPoBy`a@$MgoihlH>r9A&@zr|KF zSeJinZU6uFcm8&$U=x9=I?Gj|J{hao+*SuqfdXX4-wZRLz%1);7N|2gIAMKp$%d;9 z(RD1o?oEgNcfku714~Vciq-RjvRN$~gC>5c%o69o&?1~$TMD78a>D{ScB8PMO3G#H8WlBm1!pdF1xFDy!)bJJkjdH-aII0|udUrY~JVMta z&U#fGw4eBzPhg!hxUb*l{1FpZcm0lA8Wb0+dE3bC7l*KQWMouf#ON0|oY9f3Sm{$9 zCX1Kf-202}46!RQ;EfG8QDp2nOIN~B^61ak7p!bwKRfzelC%iyD~7*g?W#DIPaK5S z&W+2A9r0cNa0DkaJ`PWTg4LgvgGYDIA8+1mHS}>)c(q}U;XlD-`j5?rH|2xycL>yI zG`uCCW#Z>;o(p}V4FojrC7m1c!>Z$`+VT13omR&_>WNDpnfLSWNM;gy=L3%GIdjBiU0ZT9Lnpb7X>R?%sv7CRD}CzYG_|ER_uLBymSKUZD>k zmk@hsCK{Jrz3h4*?-DMhmKH=$9`cIa`N`p%ql&=o(GwzW)mN_B9iI9p&be$I<)PfZ%rv(UY z$k1H@VJ!e*0gKd=JGSao2-(Ygpk=BBrB|E?x_070EU5j@N;srm{XVAXY6Cm0yO(<1 zC`O`Kx?kRBpP5Krb>-oPfqXTL(te}T#ev_bQqmRu@x2=uvRj; zIXHye&`Jz#^?~pxXV>sJ6q*+2>P(AUOv7#_9(LX9ek~#Sd)U4le8UA7hHIHn3^k zJ)t*@qPG-F_bd49H4|Z1R~@b&%u~Zk_m9wtfxoCShkC_o`vd8!p@Pq^DXRJP6u(2m zQ=q`$r)(=VYcRNSR&$O^{rR&iRDEH#Y=j(^#o4wFN?jh7x` z^9q92!5bz%R$S;0fBkNlzW@B&VHsA>Yw0FU#pu4Hm07dwh>gyk@Gr9kIesN}!6~vh zP3hXUw^9XQ$WocrSm+G>`IAf4oSUf}3Z`TY%la_J11y; zv>@-$SZUy=#-^Ze;}wA1P<i|V-^rJT;gGIlx@3s#4-9Q~IoS8Gb9}EHhjw7tzkE`ouLt$*8<(s(J5xCv9GW$}^`|zF z8ubtUTBJ)P$LI3WNY7f22E8B6&pR|$68NE}A?W#d4yZa+RT%&UI=|$QnGX+-wXEf` zVeys0VDI4U(I{>}@Bo|#5)6O@G1m{MIEII(22iMgr$^#kqV_QD;C>38S&4ec?@n4% z+|9eOtqA1}KB)kli#QKQcc5(=`+vwX@ud+X5mt(P`3@o2aAk8@*Pm)!=vf?m0e> zYT;ZkQ1)6sx6Rh4N_HPCwJ!%|h1&0vU0mao&A--dKeZkkdxK>4WhX83ca8d2gkI)K z#i53DA?&M5sa!zkTfKMVhTltImP3hHV9VIQdx2MnY zyFAdkNE>WV=uSFRGn^6N9z~5+60m5KUTW(Yy>QMCC@a^zq|iYg<-h?RHFO{;&tS}L{FGy!aXsze!E0%ji4r?t z;Us9>28G5e2vNefAe5Y2VCzm-K+3MHke2XnBfcbb8_T)v;8mcR}I;QWp$ zbbIu_)%AQ^qOJSG|3Of&-ziqU-|Z__Ax9`QKs#J3TyvMay%N3$fiE%+I`x+g4jkgn z`NEx{8KceW&uH&uQ$cmEHqo?dEGW;lAwZG{NT2{ICcHxCg}k*L(bLl|ZFS~_48P2_ z2`s5Gfyi>}E^nNBW*buU zUL*D`qnAeS?CJvQZ8tXR&ZcLVx6pj@6uODk6ejO<- zD4r-IeFM+y0Bq<4aZtD&&3Rvef=umnzDg;G$Q0c@x$=1eS z)$8<8$@lSg^@Rkyy^t>_UpRlkQ@!l0f+P(1vp`(_b+AM6KKuTQ6n=q4LM)#P;nx3A z(UuW%WlDTEBSfwbY*Q`g)~-?8dtC0wr>gA{qhfO_9k70l=->_@-7*foj5CDkm)#xe zDOck>uZE6Ir2NUr^J&=Y&-vM3LHPfFkNVliAvW&G_S8%J9T}oXZTijrd;hkp+xo9}vwwuSRziVs`D1Qz>9f9(^G%6FQPM;2vElKsFHUn*D83KEI^W*!&lcK>y-;t1jZA?Gpx^gsbygTpHm>RSuq@tHJ|(lzEwN#Os$y_fG)_5S)Hp+mXm1In)(YDp}A*M zr~LTbu8Q7GI02nAe`~cQlH{hV<5po4bj=93*R1@>nZbuQ0v)1aI%dde>2u`h4u}Fe zt#J-7D)5MY3>$bDs1QP|JceRKwV?bfAq1!ahg+~<_Qtvh#HhC)veH0NGP?bos&d`f z)Q-y0e+pej%6Zf6HBWyR0R>^=*OYm}DRxwSuz%m_>Je+Z={rIxvq{mX4jf=CP9~%h z8=Ml;_8;*}j5;}!3P#s#t_bT|`8%^BPR(?s`+B_bH6v#Pxo74v++$p9Vr*Q!%hT%} zG1kmPoRP_~P-gEH#>&BR*6Qob=9Xs}85h#3s~%;On)V*>C-oT;1M4~i;*;)%j?6>| zv`H-oAhP>%RR60+Fm{E3mM);KF$Jw5PL%UaVFC`YBwz4WEo>GafP@fXkM#Zu#Ua=b z);A(zHb3w^z{p#UZ^re0-XW6tLU+3@L2Z``JA3-jFvYW>!p*qU2PY%^gb?Q3e152WBA1yZhKK%g1$1#oFg2ab!&P7BRZ z4Iv=ocpu5HTid94vJsD;1Pt?V>F0MB&-?I|+4q9j_ro8OK~y>G14z<*+P4v@IkUdE zprlRpi1W4btb69QADFpL#uf1~K6}`iAuo{zwVSo~%oCp0Jfg-aDDADAdTE+TDYj2c z+|)$5&P;QG95n?s2nh49>%E5(Tpa z&qq{DdHrsx^?O&_cQPzmg0W>-lj-qZGGUX0#>M&s(F^ny?j6HOG_O8Crr|fTo?QJ; zj?G&CS-=t!*;Mo=;m)oe!xop-2bau0I!FpA*ewyRSDK;0bG#Xqnb;DGn}Z}sb6jc6 zgYy$aVM9R_+&^pWT3-U-v>qd?H8ev$f9*1Xg0r(Zre?>;T<-cf}eL!;uGx|_du zaJwRPkr%X692yk=vQckz`wj>sQuI7(w`eQuD$yl%Ij;$f_s9;(%ILBBWc%Q}CqSi( z=5xGE0Ehx&69FoWz(`Gao0onzHT7(IM(VOf(leG*(;4X_$8`l4Ew*5pAc($XE&A=B zOYHZysfn~9`khQV4c0vn1?^@v+cqmd!pW59(DEF-9lUpL?7y&Y1eS}W+h>#R&oE0- zDn{yntDxs&MTeEkdv3T2h!=^)L%HmX60b5HamW>51}~Fg;I{1V*!|*0!#i!pVNLSww*6D=);bM9)n z+S=N??o+P}+ZMnJINl!sW3pWJ%=`B<)wx{d#{F2_ZfVyN7t!8^*tl}z#gb`qUT4@{ z3vI{5L{GMreMmcc9l;iqN#LeNks1O5>dB;l2D|R0sJc{Hk|1Jp&GnaQWo@F($HX-M z&RNaw(9r12f>mgj5_OHNj@A1?SWTk?E@(Nm#X42f@7_&Uf%Bais<(dS^v(|D_YU_m zRXU+9L*??RWPqo(n)TzoD`GdrDy<&hd{Xn|wO(cnz}Xs35;fa58+5fo*(=%Ex7h6L z72_p&%fm|Y7Atd~JI6ZM$2vJ_B-Y;9DW3h?rURIma#jea09;VGi{nSx(svU}6OR^- zkJw9QkT=(5Vr`brUPy}#va#^q?`M&0?Bk}P$Wd`>n&Ph*A=43{vF+0;!(>g)q1t`AQi{ziSz@p8N7__As z24!Z6@rJFhP8|JW|Ar^7F|RE=zWMY8-qkN$dTcV8d>{>oI?zHf9~yF-HD;%qH4J+m zI!hJ-P@o7DK(wp8LPB~?E-Dgf=5J)-5E9~fHupwygc~K=u2z7`=Zz^!qdLgTc{zCY z(;I5ef1y=%^W_{~Ygb~o7qj?iM}tG19Z13U)9foWh8rcuwvIoP&&#VgjpimV?Bs~; zj9}+qe8X<Pw(YD_ZkfW}hF{RgZb0Figjd&ga69iAwa*i&(@nv@ulJJ`RsqrcECm zZ@j()6b*Q*_4eig0ecC?cs7MX&x{QCz!SQ8x#Ti6sXGeqR9RV*5b*l6nCE$LlG~_! zM9OXFkN(5&Ugj4OQyz@+uBEaPCle!!gS_3CK_S%Q0Dg}Td{Nn)TY&|I7Xp%whQ`zu zMj^ziWsV(9WaPHLAc3%!PNOBaw?~RzC@ZF2d-<m=m&g3FL}TkpV{xbJBP6?P5tH zk-j1!Z+?CvZ!RIeV0LmY|2V|^i;3NMsyOk?9x{4{ss8T7NL$ZjJi$LP5cR0_!{Wli z^HY_c*4epv4D|9*F^Q+3BVBOGFS!mv)+94gq~J{ae#bma9KDB5&Oq(AWnc*SRJ8I_ zL{2<>(l;|>4#Oz%C*@`^B*hA)D~f33l*3nW;5R=de6jU+i2t(it+@m9n*x}h_v}Gg zI%^RhSI19zF5sMs!%?!M3I4e;RCC6ji4|RI`@8d7HFpZ_QCpy+2Z{6+MttJHc`6u7 zllrU*b5NJ6N0=ga4<8wRc^pyv`T^b1Gn>8071NqNKnRQJ38WsQ#l-iW3q3RzoD+}3 zh@nk+V9~fSL^%35)1w_$BhdX-ZD78At6VU3c7$#+LmRV3Vl^lGM8N&=&oMsjtnz34M z9>)-{rSx!gDPgbnE@jYsOHp5LT%UGwHo1x16dWv?hPN6fM8h1{r!<0wD;1r*t=Zc4 zsh8hgvPND4@#bYyYHuDUTKLn?H4l@T=q-?U2lLJ8OIt2)kuqA?{WGLn8n&6uo)hBo zmhx?bbTOtFU1KYEe}^*?-D3-Ea3krunR@9VEnEqpFn#g7aM#!p8|*H&qLJ8AmOH^= zNdi{;7V_N4=~r79Y3}L=?u~Hc-VG4c|AhQ-Qs(yk8*&*vM9xTK36i<-iBR~i`;icr z!LkNruSY}1ii6jPwv}(!UNttFkPxZ{gr15jz8|<-!u7Uk01zL;+)v2+{OR*&(~STB zcog`5r~K&-+8-527;OrCF7}xLPPmkp5PzFYxFRxFX$eX*Puxo+$v@s%K3`%xLFfvpDBO_%%Xl{_W;i1Bd>J^<0ScfCP8x4=*F+7gNc%tOw{EnQ{a;OB9!pp52fU-ef zMk-HjhVE;e7ODUT#j5OGfgE)*M(O!^0jDKSv{)7EEfP*-M z!%ZXK<(!RXXW+sx1P!LX`V){d`s+;93%9?S&0Res&?F|315X9|V*m!D0z*)Vp%})( z^TM!*A)EA$b58{)Ikt!N`Udp$ipH8QuSF69&}8+EgCEQHz7Tm3^!cmwoN>S-wg5K* z{Xq*FTh!Dj-kFoTd*Rrr6V$)N!vNFEBc~RmUS?wp zibY=UeAENRp~j>;Es;V&zoE8iXXOw~R-2tcow41*8yqYgsKByScmkfaaQ3AYA%x5hxh90;Ye3A;N>hkNU1U-fD z`{TDv(WqdAXxf0-AojUC(QrWh72UBNwi>b(*|J z#H9i7_NtT1jGjJKTV=@kY$NdH0JtK8=O>oUYg#z zsw}2lG_Fq%6QQ^(*HP8A#|_gq-i9F?Gn!-P2VMHoa;m)YSgb5kA#Qu1sH9;D+mb{` z@1$5J-yXds+v5BM$yj8{_L$N@j|F1;Kcz9@4CccykABZlJm6bt0Y3!5`|oM3-3=_44PFTRdVtcq&cK;;A_ht-1-J?uQLrGIJwr1(9dbI zk~*52cV?rXwS4Vf%5o;K%w)PKDBCopI^ER1u4nB~j)t?M-V0q$k@pypy+|k?S|V_v zIoT9gG#;cq)7gTlxz~$Y>TvKCX;8EanZH$2`i~2US!R~NnhYU-+O;;ZgQl$YeDkoU z9l%~XOMR5(j-qx!6MvvsOsz(9 zEb2C;sb8`!M};tMe81Do=sTRLCeF7LYNG4*q#G-4H#D~~ms+s(?XxrOpDW$oZ4Jhd zCg}632Pp=P0P3Je)rW&!6lH6zxL0kI*0#Oq2Az><5TeC~BtEuFmxHM*wxjcdXjmyN zTfisRMnX0VzAaXB^|oyzSUuYMweW~9N1AU>G9pWB$y2iOLWfSU2V~@vmwKlQ4wcim zz^w01R#rd$)^rL;DyrgIRu))frHt+^Jms)&GzSYb=l#2H$O8007`7@2Ncs%Z+@mXN(X1T=@rP#EORF*nj{GFGTrk7o^ zzRkFVC8uJu)AyR6bhv@&YhHmKRKv8@jlH{qu)mVMPFkgTOiuO-G3+ZqET0JCmjITh z#@1a8tg}vS0ZMT3S!O6~@Q6YhnM0#`qK}nIef;jT_dXlIEr0-VSBG$@Ff~}!_|@$y zgF}S{;F%zthnU+(*bH8shm*L!Sz;c8j}P-m=3zOH%PTzQ@vvjrTw|P2WsnhYt$?)+ ztC`8>kVXEL4V6x%K&F+JTOk|GgY=_AiwR(%<}{ikCn(*#7-EIkvtB7(8rmDRk$Ci$@aArgkELbp64}h=4CiJ^>K&;HWr+}> rR1@8x<+-@*uQrowsH1t_?7EuMn8@nJ|JS4~)eL@j{4aQODF*-mQj?SJ(DO;~Q&M<6(3U|j zB*0N7AOxTx3g84V;Mjg8;OlKE-s?92gXOAa)ERb9Dcz_!)nxm{32shG;8VYU@)B}m z2>*s3FRQs~V5EnM1Vbim+9=KicvDBEQXGK(t)Qa4ORie-A4RG{0DiKbG zjtMB>o|F%hzXKs0hQ29n~ zJC%NFm2l6YPUq&IoWGp+ytnX-2P*J@4M)W6i9;9{g*G9BieYFBBGx4^@qrapq*O2n z$uuU?DZ%E%M4!J5)t*olKR_s$Fqt!Kcb<6Qp$tKS3{dX-ZarQ7lCF&TD+{QoDJaE) zi!A_TePCeZy0`1mqaG`%q8R+io>nGvr>f44w9>Q{%G*Y?Q*vnwq$2qV@D-&p5ZP$w zDsmzcamkHxe%$R$4n`!0BNIz4IUE-qR#|2^%y%SvJuiCJ*t?}ODaBFeaqc@8O`F01Cu zaD+Bc@C=n$t^)M%;)lEakbCPs0=NE#@rL29}Iou2j>cy|i9=ZIj~X5k$m=wa!i=ppHegde^y zTh;R2+8~Uy6-E+{G(y56{5kK#%2TQCU8gfc^E$$M2pdTzF!Ol-Go71*wG|r^Jr#DR z93wc%$K0GQ>7sRcyAZaZF6P9EcfgpO+Gi6Qe44b~{lyapv|Mp(KNkRk1cLi5W^HAE zdji^W3Rs@(^1|GoO;H5IR>dT?wh3)$Z8Gih7T5$fU67j)Fw~4O&3t4Yr*<#?`(u8Y z`5DW5)7GSxOiCmnCf5Aw>$_3?5;-m76S9#}2|aWy`Es7M=BO6B)g{)t2Mt!~ix~q*@Tk3NXTRrcgeF z2t~(BSsxKZXfO={?LH{WWHfmEKF&EY0OGyF+?Wo8TqprYC?GI&Ap*Oi5{Tmkg9wm3 z8J|>m+*}U4@(bWzVuzrByF9s==+Y1B*Y2v~tmD1H4OuN4co7pDjgIHvhrYzAS7D9% z?9KS)u>fs>Lz2+haf_EHAHwT9{!+6ICTkpL^GL11>UjVcfPKdeGho~b1*RCWs$CZF zIMQZX-rRieZ6tP2am^l-(A3GscC7atqcxp|$xn z%`R?bSZi$FNFxASX%jC~t*@KTh-R+3a0qMSAME)4Jq^FvcaI#N6G zsjZ>jfa*W$xseGJ#Z=3c$TfJaOS&UAsj{aRk9MkxYehi|ad&`x8m(=b)mfq}HMb(B z{g|O)nau$!&iFeAjjIrOn4@PYe)*{Zbk=VOiI`_WwAnk+bB(bTWt&60dO|g2+54(@#_+pECOZaA~OSGG%RQHOue{Et)pV6aV z*gVec53;gw+fMI8TD#CEYa=E%Ds&yMBUcI)hgJsOmPowSTq&;GS-!zzRek=R!FG6( z+1EE}K%t#r25x$oSAa_q5-)lLeZCjU;QRvWXnQ@1qf7ZMsSo2*{x+#flN&5~WkD$) zIqS;2N*L0V$jxZ08m%ZczjslyXO^TBnh7*Weu}8Gh=*DqgjrJg%FK=h`#WKuVqP#m zrOy1!H$J-c+CEq`&IO$_ove;-?pVA1CaE2Nh{TXG-c%6sEoZx;7;!#2$Ipe&u-LJ% zYc@i+6Fmt>g=UDxAWykbt4hC&KQbC&Rsau$2D3hbBHZA<|K?L& zpgc}6oex+nCX>l{E{GJ3+Gf>8#&9~07hH#DPN&1^XfBwX53rD6X_i5{V}nQ}3W-*% zhQpaOgIqNW6m6pt$@`jgtwJ-pSk7YUw#Ip`dq0T|iZ{is z`>GGzi}!h5d7g(|;3PC%&+{g>eb@6YIG*pr2BL2m|GmG#tU_pskTflgSlu&KRZ*F` zwsk@IPnyiUlg9v=&KrYw1b2=aNYSu^PKdCG2!eM4*8o9GV>G4Abb7Ar0i&Plb&>1t z8JDZFMjkIUo=uZtj)IDf0aAM=QLOHw=NxC! zqg%cA^0`URIb(#mw!H>9te?7NV%zm(n3Qv%`pSY2i8WCaw(NVm!lC%|g|Frha~O&F zG(#37`p5yXq{u~w1!{2lx>jVmg-ik0kYU`GNSl=jVjrfmD9R;1L8!wJJ~v(INOj1G zj!8Amrm5ZOZM(A0TE-H1&RIYgrY=S_`YmoTayv-3KkN3^4G9eq)F>w8QJjr3l0wG0gUa&k=M}EcuWC=ZqR8a+T^#fVjuGQ)PWGjM zmLZf_L17_5CfK{GBRs^LMY|={QBPSsGWtSk_Nu5O-3YDH0g*^_C%U^t6E2Q4O?_kWTSLs4Z`{XvmQd_}`;;A*k+K=I28u=F$vrP(l9*rv0s^0{`5bHqDQ z?`=0f6E7$zA`Eu3)0zj) zDz3%aRAoaaV=0@M#cEcay+B$OWn37I?Nn^HFRV=qZ=%SqNj|W6-D~44&28V%p-4}v zl%|}UaG~eyb-+VltM1L8o)*^)<7mr4Ge)NgvQqPvY))=+%^%NQrcZ)0L9M*&8BiuY zy-8~;XDYUEoy$Pbtabo_qQYX5DIbw_grD!d7Y6F1eN<^y5mQ7Q)iu_o07vEk0!4-W zAQ)G98gQGZ@l&mvaurj=ot3aXasCY$DvOh}ASkND{zSSA#QT4v2p2B=6$D0~GiW-G z`YHFLGdW`P{5pyAkr>gbR8o3E`QQ8*`FeF9e4fZxSE>e3po~ftb>iA0on`6)&>zj- z>iVSlNj>Ajq58?zf)B0$j>cu4!zzOFs;$>-WDKR@!i6)FJcQj)f7bEl$WRmd!dvnS z4@q+^>(>(7m!n?-cEw=41X3|cqC@; zTiEC0KF#_&tU9RCVJLEad#>oRgjM{*1Y2|`UTu6O(0f?PZkYL(zCPjwCb*gkW}OU! zVHW}Xw5hx<)V5$wmWvAqvNfWc#B1hmFoTF2vQ!mKwqDL`WXp=uMNMSIs+&PvK|fz! z2SJdzP8RwKbkf!P&cKigW}_qxz(`AvATaUn-cpP&JQ0tn-eUx;w$Np&&$ago2S-A{ z&<3jih3i1mDart+AXxbV3@4cLuA6pin)Mm zBmz+raLU%iS3C&iTGT?tdFdW2Jzea9Jznu1bV>k!^>=#<{BPfXVbN-!}P8!Z0{%g9o#(7X5+cI`EA@4 z5t-HRJi2Jn>YjPGK9f+^IEOfE8?!WwQxH5MAc5Nrae#!S5F)A}88~DaD-oUb9W?g{ z+iy}_M4A}<-i!0AKVcu{_wbx#mdDrusz}HQen!&rBI1@4v5E+h{wb;haB7)H>vUTC{Z+6P z&BAdgqy?G6Y$n6cO?8nLZ?{pJdg|5r)@btiK}zF+)A~UP5+n&}#eah)IKfNL5a~*# z;ZEO{8dcgUno#ndwbH$u=RttC428{g>#W0PHpBs-2ughr!E2w2wj2XajHPe#4xxj# zRDi%Wrku9%`lKHT`CwB>w*z&ouT~+CoSu_z{WZ zAqYdOZ5JTRl;hB6*_LK~rjyy(#=u=0XhT5`un}dchOJZU7^-uLnQVh-UjxDoNnR^9 z?k}~u=U^GexHdK6>X7SmSVoizBa4eu2g!^Qy+Qe5X5M>n)fa=+y?XpP0l?uXhs{!y~GSC?F@Q7rX ziM@iN9gs0;Ht;dBMhiWHoRt80#-Il11j4PI9IUZ<3hJ z8PYWbal7m;BI%o$d?UD8%+T^~NF{!juR@aNI)T1VDWWuuWpVroy25c@OCZRPZ~DrA z=JRDge(weD?R?)1I%(2gnKs*`?=nnAEdgY-_Z`bT zgpHNlx$+s}@39{-TkDR1r;dDl#xMwHQatJVF`tNn;=;7mu4aXAw=a>OEDe@HS@xNrN~S+4QzsC z0S|H@RdWo4$f70`I+Z-H7#1X>dEkkp3;lePpC^Mlk3?^XtGzxBX~Jp3CruK;uufar5ZIp=1nX=RvrQ8#Al0|)DQL6vZ3;Z*zRjzgCguQ)@ z7Y`J5)&LV>%i=Cats~G0L`Zm3pg24^uPh)=2;`b^Zp@-g%1i>?B!qU(t%!ihL=ypn zSw+}OHhVEe;3dvgF5Ojz2CeXQMdHn*#qizSYZ}^B3m&yxMJMWADl*AOsq5Mq#@g3~ zre>il%gP_%b%m-w*L~60-nTV}H|8_!UV9JCZ1yv&DCZU@{j(rs|xd&VV> zQu1}8c;bakW&6lDypNFaepJfHYAvNdM0vAqd4=n~X=Qh<)USDU|N5$_vi>Yakg-*d z{_KRgxg<=6WE0tzU3(q|pra3T#wV%wkSE|G^)x}M@ERIW0`BI!<^JCH2*Ib-xTgKMDc3Ph%H|v}c)_-Kl(tWrTV(-MoT&l`s zb-cHbrmGsJVlu5JcJ6eG?Qzv#b=9AF)!(&uPW$>Du*-e_{)C6so`7I&=DzECSon^{ zyQ9CA51B9GD*h2hf7}7!n||8s*myPT{!%kKIt+|z5RG^<`Gi}jM_@6*KPA7Jy=){z zOcS(E)E;VZPVu!eCu_BEkv;DM&wsbz*AZB?8%$_BA{Vuv zLl1cVn4?RyNTXI;9bAw7juW zd1}_D>!gz@msQx+F9ylrm7hBGd53Z1Ek&pYVGbx5nmnAoGg^C?w_9i&}SD1gYUKN4-;b^v8NN$7xVB`X62X2#W zaW2s>*o3t>Cqa~GXJCM}=mH}m`WW(yLc;n?%HSZ18y5&AHTSDfKfi~EE;seX&8y!(Vv8GU(|tx^QcNZ(l>`D1keS)o^1c*4I7b-BHX3Bl zrEHdGiUCZ5Fjhk%ne^Wk0LRfY;>cjU&t6mn01;D8vtnl=OM6vuqRl%_$gN;daiWYx z5(xmn%q*?;4GJd|=q$%Mjzsc*Tp5^~udy!F;)E#wm(At|l>-WNj`IvhGAW4!5Wv99 zY=c!&ixa9e$9ax3iG)-V2w-4lriu94;)Vi+<3C@L{~zhW=J(%=DMAS+$+@$7+!05d zu!sl=5fKmofI$pnnXZw2Q8G3u?V+l@X@6KkN;O?rS2 z(WMc482^+<(^mcY-pv`xC-l$d8>S+7*LJ?eEu7Eul6?P*e{6`USy9=QX5_wi2zTaA zY2>s!vPQ)A-UzwL7}_lJ(l1 z!m?={Xekgy#Mi*&z!Sjzzwp^8Fwj*xiR@o`!1caXmcSm&e~AIc31PCFAp;=*oIMf&P=iJg8h?NRKq~tH93VIW6qy628W3bTo*M>Cb&+(r zCtjXvdHBJNY&D^-0Mj9+gGS9ZnzuCeY6#TfD^{azRLxZ8S27`y4lwAumxoyuPKs@} zzcj>Y8-Cr5JtMR)!NmRrH)wJaWJP)&J^Q`;Rd4{`=de{us-;%hR_T{LRzLecgVn+2 zU|Zl_4V?(~`-xxzdg)ftKiTQ;eeRdGBZ3D8J14rVHRS1psBB}SwJT|5!Z z#^P&nQn6G$apX_bw5tcPWcx-Iu-joxw`3x7dm&I% zIACBUbJ56bxneMw4Kp-q-Y2DklQ)HO( zQF_TeC>D^UX`3-RsCs8PlbFXbZ8vp83S1X=19-p`b|Ia>ISjx!ZjAyip#ISTWEe!a zCjNIS5vqet&oy=Lpe2;G;wXgh*#aiY18tz#)H=FA(w+PI;H)LX6=UuQXkp+j8QYHa z0GlZ@0n@K{l)nn{ZXp%q-S3ISvMP|Hs3T;*EQx&7UIc|M(RPI}Y`q0LVaZ$AePZE| zqJ3IiFr=1;YoUW9zv__?osOG8i6<~FET8|!O!-N!0nsbdwM!mNmWEQt);-WL0t(h}4*1-WFb z`!rcxFt>CoWNOiKJ}}=^vvqm?g`<8b7}z-kL}L+h)gWx{F+yD1>##-xFX8%K(!;sj z?Wb*lvZs+g6k2trqm0uyr8bC1O01W1?la7j$9;1hcs=Y(H+$r900DwQgP}@*jYbD;LaZW3lM8vu+ zR@p;Iw%nDqVd0?lT~Sr`;iB8$*u`eTzrm_2h;b4E8U4Pjl0&UeZjXVn;-aw{G?yExG0V$XDAe#{L!qhr&DjM7b#G8t$>IDe!%43M(ob0hT?m6De0C{<`}Tfn)R|39UMZHbD@#E>E@u9C5>RcetBS4c~p$jw36V8H294=Dw20O4zQ-&;6a4 zp;zw$>F{PsEdVcZHCY=KXjh4P=ImN_a9~$tWZl zmn(klx|}=43cpdpOokHm+xwI)zS{zkSa<0bBS8p zE-6l8^+IPxpgDHyPsOTrbGG4ut&_-^tC>}j_WW%;K;_M@PUAmnk}`i#%qs{#r5iAQ z@Fxt|Rtt%h{v1qx98@OTv-IXMYo0n1V&@JnVm@#ie)TSu>z+->Du2Gm->$!?uB%0S z$0^VKcj)gjnzIJHb%h+~buCQ68Zx_JX@r2y)Jp*cntMhq#BuoylH64gQCN6>X#6DK z-6BS5J*ga~dufz*`7*4%-+QfHGgTeI4w92a=aJ7Dxu@=*HdXpcJ4*Ge#lD?tje@7R zcR4Tb;dW^{kby~A=1g`WeIKJx#~mrw!<_0tr8;?Th6GV4wddk>B;t*nGVEgmqlQ@4 zXEN=4%vx2xOBWhas%|?wcGmAaYdx6ytOSD`Fp^%8Sw)3exx*Wa|4!Xhre-77n2uZ& zzlEQ!J-*Wqez(H2og*Ws^pF~@53My@vEkJ0?U1V9~z>GYY#4dd@rr@}kRSKDE z|Di-(<2tSv?kqot-pyz0Qa?Vg!DZTGW zcYB^L%2`+Rb=J=_C$(iPrCtZ%{otzdmO9}+?MH}`yI&b->UgZ9rCzR24=hczGnn2s$w|^-oS8owkW$vbbqsV4AJsEVC z$kXs7&iEXPK5Bneyl2nskTFLqPgvswLzFV*IS6anAV}*PDa|G4e)=@*E^eSODIT4GEV9KTNVep@A+A=X_dd&3>?UEVDT zkBxsnO6~I+S%!Tl`99l!ec)gUmVT_Ve2wCyc-`YbqAEQbtu9E zpV{-e-_8Jy*`w`^ZO{hA@{j*?J*JO;>F+oYtn7uP=)|Eg^=5#jjo8&=(?iym0BgfH zGcOU_XHIfZq?CM*NLl_^i;IV`a4gs0Vxl12m!@_QQR19SXplbnsl0N~pr@yiiyhHR zhZJZ?M>mlWbl9-WHSas}6ntg`urkg3$&@;~gDU~12m~1h+_HuJvq>L|Z6S4zO(&hb znM~$g-|0GP_ulA!%HyVwxtTE*VYiSd!sVha;bvQkI^WRc=4v*KH8)8U6tanp*}6sA zswJft?)7TN1`R)vX-(#dD`Sb7TVABD{^ow?rrW9Bdp}!BzBthT#PUDK%SC!K(qAG< z$PWc|n0mQBb7%h%y`y*Yn?&Z^W2~=x@p`i?51*W~?n{t|e&^(>lLN56+NtA*7YKro z&`?5Qadr_)97Yh0dJN15xLX^)j>r=MEGaS1*r$BN8KVO)6RS34zdX5W60r5Wy3Mqi zY>BG48i9M4!rsknrFR0=1@UbEZq^Bhvy^EH3q5&<=t28K{XYFHsAVe%vqSL^WW za^2#5z;-qtO<(IQ>sgk}qzP2PF3l6T0Ag-K*&d5h&%MD@V6)tMct$s*^C2CmlmJG} z>D3$Zkt7-&NR$i+iP%SYNGdQH7z+{-|IGUHZ^;7dXOsOW|CyYd{8|?G(%#pYz0%ds zS^N4+J}vx9RMuy=H;aR?aPP@Bea4@4VBWTa0q*zhpp4^q7?iutu4!Txoa+`cWv43c z&Z_jUJKq08z-8c7S>c@q>(+(Svv!cv<9rx@O?xZsNMdJll4KS_SrVuU$){NC-n^xa zJ&6oiuU1x(?~gc6?x>BMYc02nj2(XWXLstTU)mI;(o*$t&hQ&NcQ~G_+0ivRGZhOW zFP#h>ZjvN!DcM*mOJil;To&3fY-M)M^Q z!SNQ)#RpNr&`n6_?DSZ*-giud4LUEM(-cA1(VfcXYEV>zdZv6Ag@yrq&`N_*89Yb? zaw6dH=liy12AJQ!(wo!iQ>)jPIODWDw>L*q*O!#`r3Pp9IY3os#3_0faqEUXAjuk} zVbcuwnnmYVWliFVWx?ceBZ>FX#{4HF4cj^kR$YcIm=lt`kD=brQimQa4iBgQA?ri8 z$u$_`It=js&0!=-qf-W7AUqg~F^w1Ot;*aCC_$5@M~51ctyte#mI;gP_WU5C1myt6m-OqP}%B}=Q!#LbAPV%wdR^z?^1uc3(cp_ks+QOViN9rfv`&U`4LCdbv^mqx=B8NI@@d+#hm z;mgd?Y}OzC1(sE6j$CLGNbe!|o-vlK*D|7!Y)91{w@--aop6@2$u>j~wb!6(sh~QEmpQF+L zJfCFRf{uH=J;nwSD<%8%0kG0c{eJv;PFnwDZ7UoLLhv1T0g8rOUfIta;>ta{$nqo*etr+SHEq5SVC{2Lr1mJbd%I=u zqI&Q$<~``+I#cBdUE*)y!E#mc4L~DoFk#8Bc8QW} zZWKP-?Y6IZrS0E8(bvD14MwLLFUIyrbOG|9}q86rhREokUK8O>z5GVznP*(4Au!e4E=`D4BlK3|YnMO~kHa<_cmA6TluhokVrR^92gq1@%}uQ)fC zo{AkSclEmr-gkVZU$!0R_v*8~g^NW=F081Z^+p$)31Z`2092&L_O3=5uAS1r4*gvv zAadsT7m82;PQE#Mpr)z4#^cu7iEo%g$eQ_=rEi~N8K|qBMIJ&WVu{Tqwf_!d`?aaX zVeUikU@mO+m#Bv-sTKLP8}K48F@3;hRY6&~%VNe1p+*vfssYSpheL797k`a@}GG(ht%sc{Ne?TUcqg`VFQP+9x_ zn3&f@{r9z%&q8<~>|?f{JxJ>Bzco3HBj~C`Q7X$$j*(PD&+rs`6CFE?6E(d~y6XU0 zyVp6A^Lz&<`nm=<$@=Z-+aG)uf&Z1xyNdnL#Spvrl{FR&xq*WK7)iwW+Ebbzgzc3s zAIow#jmnQ9rMaace4N6l0n(*6M5r{Ol){y%W03RI^kIpm{FLrr+`;|V8eA9_e$GDo zSCnz&bkB4dOo;FriJ$siBy}HQ>6hH)A15UYm*T{oI*5?wvP-%M zm2IM7nIX4|toNplNW@Yqdvyz!;Wo#p!~|Lj;Rj+JbFqiSoMUB z)k&NKoIiG8gDv#eaYd&3(61Ny459(VN;@qZ9U~W~{5eccU=0Y5Iez#R5%}H~{^Wmm&M~0UcR&iE zY8H&V1OZ|pnD6p7Qh!zY!Fr8kvb|}znSXLUUx-8 zY=1kz(xhiALo*`aG_}U(@15`;6 zNo5lWDA==M$0+6XQ=?!6)H1tyVRfteA-8$G$*o_@>7jBj5Oe$zMH6eR3Q`_~FPTO| z;XV5qe&cP@=SmpBlnyKvy!~KJO9-j~yEdA$&?oAsqVekd+C0P2oaW|PO^ZbK%e|39 zFbq~=+6ctahi@}?&=8e7A`7}>66}0>+G%;8dxBJc{7lO9hu+%KpDbZ7eQ9N8GHV9L z7v8zVLsi`lIVs&fg}I9j#~O^(SZY!}m}psO5ozNDz9tE{m<~QwIEEnx4$~PcnKq3% zC&JvBPoEYPf-AjWN32%1$K?$63t4!pRQYu1yaVcTRu}4iZ!3v7b<~o2li7+Hj(7wn z5{CAH^o$r`8QB~EYr=!aZ>6#P+sqEcqgQ0&xt|LXDd$=@T1=9nPho6D&Yk0ZN43+2 zv_0fb63RLw!PZXY*z-p<%6si;+EDcxIdAM0<$Q9dGnd#VFTlmf@fGv2QoM$dYov@m zPULwdd=>SE?$4M}lI=zD*bnS9#m=0h)EXxG5}Vcnf8&9L?&o3A0BxbJP7A*BzVp@m z17!l565d1hElr*E&o;hwGwFA(V3}fxMUK`+lDunpnPo_uAfF1vFev-^U3)ktmZ5~ zs;PwxAI)#x!^(B$!Ez>lP%poc5=Jx22AlkzB*hjIPX+O5$?XZ!7!yrta05G7k#`CbN|brPm|<4%XaIzHcoWzDE`q_%)Q-9;$~7 zzGuMu6uG_N&w97GV-;`A_`{%iq3Clsm+R#EC!bpAxS{>-x8J zO9AmAA4?NAq~tIj@P=-~d3bOuT;wN1A0)ica%0bdR94uad+*(7AS$!K^zBB0n`;V1 z$=K2hB=ER`d*;|D!bpuj6d%94=RoN{sS0X?e!gM_Fh~Y=GbRgBri|$hdsIc0${oD2 zi9k3fNw`bv_krL1kC`32uN6m9Ih~t`Neh5N7cXaGS4>?ra_JKKEv&-R{J8cQ_sRwk zg=)>?BAmLr2jLsIn`ux7!XIy0Ioc+HuL;;U3-W&%(K=@V)hy@~(LE1Uk2*#%B@=*< z7q;jLjR3m@o%w-;tbD#~w#iVzUY{zgu_a!Q*LtIpU#~jhhhAkmzb)dHQx4@anLc*C z{rK>a#~&x<#uHG6dMf24_R+MjTK4=SYu?M{7T!k;H?ldC@A8S{rf-MIn)F56JH$q# z&Q2QD)r1&Ij_)rZ6WggSYmy&nbd&W6QW@LzCOtBjRG-e6;zhH z#1{(G9TzI}fmsI*`6!*%fTd60Zdo~HUh1`^2C z(G^mHN@*Y@YdY@hai|gjv?>~bQB5(S{{6J|@%aG!EkXGeDepJ&1p&gpmr&j#GQJ=I z<0m=yzgdh=E`Q_YbMhFGx8E7V*LO|(%B}0p$ey}?i4jTc9i`J~DRs=YR1g=mofpx6 ziG$Dm3-)qoZD6zh{PkKeABXUaOg6EA-MT$(T#sjt+G5o%$qIjsP_m?fvn>uu zCJOzthdF%dEF4@8OmRBNrMJHH@=H!`l6wz z1|}W|33#%Si$Yw;E`rkn0i5^^w5LP@0@=cE(C1igXBK%KIN zQDi2stmGIB&?{5bCPYee>4^oD`WmLZVrv#|vy`Mq--K`3VHi3cpY4VP46Cnz!*X$& z%5FbK=|Y?Id@_*yoj5l5l_+X3u<+2~0)sS!wwTpdYx|1_+W3$pVxjm=w}5;Wg$9jL!J+QH?Sqn(4&*P5Hb4&vX`ldNexqXM4xbyZoPqme ze;8k$24;ypQ`7fz)~hI+D_+=cP}O7eR#pClzNfKwm6qz^{3BeT9P9Ns_VXd~Kz~?YBUD|PPgodpfB0m&P;nA2FMRD6(g7aI9Jy~7Dmo{9c z5$$~XPF4CD!x?{dG#sT-v)kc#Kni_yyMQ(z-%H!zRgH5k>BtE#N3ArqOO0ISScQp+4F-SRb;e0j?bYyd%m&g{kD`}-IfjmWN z;@S2Enxa0)wW(U0A<`R^gR;)&`5gU9shLR+qT!SR&IB+MfNFXz2niE2eCbDrww zS`+U0Xg%a83QRjxs^qeyfm;Gb-)y#yWfI`XC-}*VvnMA5^TvlFj74n zrv4#|F9{JEswCl3%dKz=@sR@hz2zm{r@F5tV%hu@zIed4WbB@cR|~swaB#D*^)T_a zutu+ccSJGuMvt`HeYAqB+7&vK&7A&j;gD;=@yp4x;PD-Tf1!}KaR>N zJJZiR%*?kBhe8{W3j#!*txqZr#8v?G9?=;8gHw=HCBI@lZj_!}7}~nY z{f%+`-d|lud#msB3KVG|}aAs z5A&3a==YG#A9MOkPZa#jZ)Pz*J0X|R=sHz`-@N?JfN{WH{GIO$UV(oGKKyMGqW^sg zUwrZRmy^r54a7l-RUp7D^8tagf*8dRcjOde}KQ%;24!y8XAMVNtE}^)DK_6_wtc;*=4v_QTjBpZ$jW4cHZ*VRd1(m>jVE z2EY#FD0hovv+Yr-lj>KWA#TPjrNF%&K*G*!$V*(IE(G|+Nu>rJnErm}z+;F_Wps1D z&=#kyG{@C>gzAAh41&D&& zpcYO+es{tPa=F`DF~IE!hB8BqDFqv8u`N~oRBLM!RTrMQw(QGVZlEo-{0!+wUyzjo zUt{Idx^C8t6SS;XGJrqG@9ZRkSbg=FglRkGZLqMLLd)m};_|8NyAAyXh#G8sD9eV6 z-UZ3T0?cE&Br?C*!*qPF_tX-|4d`1HpiVfLFO9ur;r|4#1X25zoBs8wH4i6s4(}LP zQjF~Swe|tMnm%as;sDO?EDdF4OVH~1^nPkmYnAFhhKBfk{=lKX^!1$+$L%O4UKfek z?QO1QoMd;bq?a#}?W8^}OZ={;VR#aWljiI_S&WnVRU(p`R2+f0skM7i)b>Oy(LXI; zZR)c!&1xwth40A9S7kn`+j(F`HHVAQTOL#2H`h5ras&L^Rz+?QXV0Qtb*NFv7*XpH zVuN1hUQItTNvfix&v2%ximgoX^<=|HX69YZc?NjSM*TWN>upj=J>sU;4iCkYDHiBS z0ydxOv}Yxocr4i7)S4p(_J0EzFnxXo2vFO{1<@0V(9ommD0fDQu)_->r= zk@q$H!^6i1Wbs*)$1IZQj}gIZ|Khxr;X^s|RID_9Q@+e=U_U{LSv?Rw$(gcJQ8BsC zzGKqYbw^Pno04~U^P3}P+x=Cd!oMAf3_ai$lQ^H&VIzNtWzIU3#OvChF2UGu_E7M{ zD~hMKN6GeY4M*$WD0{p-x+`mYaUrBNTf+XrPrsz245)=_k@YC-*9P`gHIH~pIvST^ zqpI&`u)j{qtF={H+Xr>HYg?iWMu*&CLfLpi`Y9cV4@Vg2D~@Qx7u;RM83Tjy$cK+B zy+mH`(2*+MrU&ndGp4#Y@`R5#71MMFdY_iz*qe-2)_?lFS=rlHS~*OW?}^GGRi*x% zs_-p&Wh5#Ce8e+=&v16D=f-qv>jFZX{hu@g(T`gG=l1(@y(Za)aDz}^xssB95hBhlo=mpu1Z9TQY1D1?E;piW+cLfDLoz2i)K5ZBCwJ}nZ9&^2yC1cqC)r!`Wi+|v ztyg**me7jDR6CO9Cb`9nZ+Rk{*y6o*Wc^Cq=8C#RVkgY%;zbuSYTtR>ISiR%F}iKO!>Mdo{C8s0>|NG9Z_35!Y&uVT5Syk z`3ivTeKFWe0sBZTZ9!TgJyJJJ`S%xT#Qj*WhqzqEpBlgLBHXRE+5rOc7<({eqCNeJ z$-cL}9EU?q4Zur)SsyX83$Zq7T_5MBW9!8F6nvl8r!otBeN7(mTc3%Z?De!Uvu;yJ z3m7T&A$vbM8ODquQ|`kJ{B@~mxfxsH6U63jE^C(+Qvp9YEk(RxM#PB4O%*1=Wx4^G zh6#0MhRB=~fC{D+F48%B3%7Xt&*V6yrY1WoYA9l8ap0~SqhPdPa^rhBC^d;k;Kyes zu`^tGF0NiaQN&21k96DZfx;rA*KZs s35((-IV1(+Tj!a*IU-cyUJI3f0|;UZ87rjyPnEV)(LPq8I5-ag0Jmv64gdfE diff --git a/invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 deleted file mode 100644 index 8fcc4321c7ef938a64db296f2ce380c632e6c06f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17784 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\ghOT3=ky0L(6H7h9+7U3rWN! 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 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 deleted file mode 100644 index b1c208a14c04f274f82586a3b42b4cd39b1ee8d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17176 zcmV)UK(N1ePew8T0RR9107Do65C8xG0J$Up07A6@0RR9100000000000000000000 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 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 deleted file mode 100644 index a822063f136c994ed1bdf1fce0c27fb99681354f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21960 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 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 deleted file mode 100644 index 25be677ce28b7872da5c708702fea7fd447e703e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21848 zcmV)JK)b(pPew8T0RR91099B35C8xG0M}#y095z@0RR9100000000000000000000 z0000QgE|}1avXXFU_Vn-K~zKliBJ&;3WB95f%|L=iaG!RHUcCAlyC$f1%x;UAPff^ zR=hQ1TNX3u4gmj98680dH-_HrNa*paR}Z+uuyGogVP8M{|IbM}#;8I47^r1kUxFUN z@RT81NkTPLRmZ3-;uuysXPGu+c;PzSo8CpA+p^^lrkYEi7m>{@$Q-7+&@3UgHIer0 z6$K(d(vmczpO|+Wi>1NFR#mAZ0@)=J6=k&&NoRrHl*{dp{Y=T{hH@8yaSI<+b6%oo z?Rl%`?q&l>IxNw${)vhM0wLqr5nDiEfE)=&@Ya98)879<(|QmNbVuX}wFh!Liur+` zTMrNzJ)$I~m1+SQ-9tbaBL*!sLb68+8zb@qA~BF?X)y=`gA*0S$g@v9>7V|doxLd~ zS~CfK6R{XN@rf0JN_X+lky0M)yHr{#=5Xm>^+knG&FZVJ0gz*pLs@A98N z4cv9;w)48Pt4pmz%tAO+ehvVl&ponDVUo-H3<9aJ7AX-zfPwZ*np1e+8ovrN5T;-U z7ak>F*jQVo+Ct*Kg6A)FWhEn)g7`~_;QPOYx`tRc_eD3p<>4WuLW^nn>Nm}2>C$4r z4kmpS6lfS201e;*XaEfZ&C^CatvodR+F)g^(3^q;U0TbMJ2%s^Mo@i5iAm-PNE0Dn zsu%k0EPr-;8T}KrUH+uZHD} zpoY@N_k8O@p~Sn_4u$){M$4Rooq=mozftdWl#0}mRY#asVB;S)#-w3ung9nt|7X)| zcMXSJhOp>uhpCc~t}Llla^?M>L(?IkHD?G+I3 z+Ci>EP|SAh4+g}nrZu47n{aw;?Cfj$N^^g8Zi?%9Mk&p8W5NPITxbMs>3nk0OKVCm z%s8LP6F>w7UBWO83&5t}) zQ!6FAYcYVcyrcB-xf{l2Z9DudubhP-HWDrPH&(!Yw*N~@y_gxXvPE3;jCdCm2`M%b zU&Tn}szj<)FVY};B±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 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 deleted file mode 100644 index b0d08940cecb820c35155bcce4d76d7e9f40e08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20432 zcmV)HK)t_rPew8T0RR9108h{W5C8xG0M{r008eiK0RR9100000000000000000000 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 L=?|qBUf_KIs?>U$ diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 deleted file mode 100644 index e78729184be2adb080feca2ea48ff6b97a1e11a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22336 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 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 deleted file mode 100644 index 2d12b58373dbb359d5176cb98413b7b5214dcfd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21768 zcmV)LK)JtnPew8T0RR91096P85C8xG0NfM+092>|0RR9100000000000000000000 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 diff --git a/invokeai/frontend/web/dist/assets/storeHooks-5cde7d31.js b/invokeai/frontend/web/dist/assets/storeHooks-5cde7d31.js deleted file mode 100644 index aa0bb74961..0000000000 --- a/invokeai/frontend/web/dist/assets/storeHooks-5cde7d31.js +++ /dev/null @@ -1,9 +0,0 @@ -import{cZ as zt,c_ as Ji,r as m,j as C,G as Cs,R as Ss,c as G,t as Te,f as Mt,a as Dt,e as As,S as Qi,o as Vs,d as to,c$ as eo}from"./index-e53e8108.js";function ws(t=zt){const e=t===zt?Ji:()=>m.useContext(t);return function(){const{store:s}=e();return s}}const no=ws();function so(t=zt){const e=t===zt?no:ws(t);return function(){return e().dispatch}}const io=so();function oo(t,e){return`${t} returned \`undefined\`. Seems you forgot to wrap component within ${e}`}function Rt(t={}){const{name:e,strict:n=!0,hookName:s="useContext",providerName:i="Provider",errorMessage:r}=t,o=m.createContext(void 0);o.displayName=e;function a(){var c;const l=m.useContext(o);if(!l&&n){const u=new Error(r??oo(s,i));throw u.name="ContextError",(c=Error.captureStackTrace)==null||c.call(Error,u,a),u}return l}return[o.Provider,a,o]}var[ro,ao]=Rt({strict:!1,name:"PortalManagerContext"});function co(t){const{children:e,zIndex:n}=t;return C.jsx(ro,{value:{zIndex:n},children:e})}co.displayName="PortalManager";var Ce=Boolean(globalThis==null?void 0:globalThis.document)?m.useLayoutEffect:m.useEffect,[Ms,lo]=Rt({strict:!1,name:"PortalContext"}),ze="chakra-portal",uo=".chakra-portal",fo=t=>C.jsx("div",{className:"chakra-portal-zIndex",style:{position:"absolute",zIndex:t.zIndex,top:0,left:0,right:0},children:t.children}),ho=t=>{const{appendToParentPortal:e,children:n}=t,[s,i]=m.useState(null),r=m.useRef(null),[,o]=m.useState({});m.useEffect(()=>o({}),[]);const a=lo(),c=ao();Ce(()=>{if(!s)return;const u=s.ownerDocument,f=e?a??u.body:u.body;if(!f)return;r.current=u.createElement("div"),r.current.className=ze,f.appendChild(r.current),o({});const h=r.current;return()=>{f.contains(h)&&f.removeChild(h)}},[s]);const l=c!=null&&c.zIndex?C.jsx(fo,{zIndex:c==null?void 0:c.zIndex,children:n}):n;return r.current?Cs.createPortal(C.jsx(Ms,{value:r.current,children:l}),r.current):C.jsx("span",{ref:u=>{u&&i(u)}})},po=t=>{const{children:e,containerRef:n,appendToParentPortal:s}=t,i=n.current,r=i??(typeof window<"u"?document.body:void 0),o=m.useMemo(()=>{const c=i==null?void 0:i.ownerDocument.createElement("div");return c&&(c.className=ze),c},[i]),[,a]=m.useState({});return Ce(()=>a({}),[]),Ce(()=>{if(!(!o||!r))return r.appendChild(o),()=>{r.removeChild(o)}},[o,r]),r&&o?Cs.createPortal(C.jsx(Ms,{value:s?o:null,children:e}),o):null};function Jt(t){const e={appendToParentPortal:!0,...t},{containerRef:n,...s}=e;return n?C.jsx(po,{containerRef:n,...s}):C.jsx(ho,{...s})}Jt.className=ze;Jt.selector=uo;Jt.displayName="Portal";var mo=(t,e)=>t.find(n=>n.id===e);function yn(t,e){const n=Ds(t,e),s=n?t[n].findIndex(i=>i.id===e):-1;return{position:n,index:s}}function Ds(t,e){for(const[n,s]of Object.entries(t))if(mo(s,e))return n}function go(t){const e=t.includes("right"),n=t.includes("left");let s="center";return e&&(s="flex-end"),n&&(s="flex-start"),{display:"flex",flexDirection:"column",alignItems:s}}function yo(t){const n=t==="top"||t==="bottom"?"0 auto":void 0,s=t.includes("top")?"env(safe-area-inset-top, 0px)":void 0,i=t.includes("bottom")?"env(safe-area-inset-bottom, 0px)":void 0,r=t.includes("left")?void 0:"env(safe-area-inset-right, 0px)",o=t.includes("right")?void 0:"env(safe-area-inset-left, 0px)";return{position:"fixed",zIndex:5500,pointerEvents:"none",display:"flex",flexDirection:"column",margin:n,top:s,bottom:i,right:r,left:o}}function vo(t,e=[]){const n=m.useRef(t);return m.useEffect(()=>{n.current=t}),m.useCallback((...s)=>{var i;return(i=n.current)==null?void 0:i.call(n,...s)},e)}function xo(t,e){const n=vo(t);m.useEffect(()=>{if(e==null)return;let s=null;return s=window.setTimeout(()=>{n()},e),()=>{s&&window.clearTimeout(s)}},[e,n])}function vn(t,e){const n=m.useRef(!1),s=m.useRef(!1);m.useEffect(()=>{if(n.current&&s.current)return t();s.current=!0},e),m.useEffect(()=>(n.current=!0,()=>{n.current=!1}),[])}const Rs=m.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"}),Qt=m.createContext({});function Po(){return m.useContext(Qt).visualElement}const Et=m.createContext(null),te=typeof document<"u",$t=te?m.useLayoutEffect:m.useEffect,Es=m.createContext({strict:!1});function bo(t,e,n,s){const i=Po(),r=m.useContext(Es),o=m.useContext(Et),a=m.useContext(Rs).reducedMotion,c=m.useRef();s=s||r.renderer,!c.current&&s&&(c.current=s(t,{visualState:e,parent:i,props:n,presenceContext:o,blockInitialAnimation:o?o.initial===!1:!1,reducedMotionConfig:a}));const l=c.current;return m.useInsertionEffect(()=>{l&&l.update(n,o)}),$t(()=>{l&&l.render()}),m.useEffect(()=>{l&&l.updateFeatures()}),(window.HandoffAppearAnimations?$t:m.useEffect)(()=>{l&&l.animationState&&l.animationState.animateChanges()}),l}function lt(t){return typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function To(t,e,n){return m.useCallback(s=>{s&&t.mount&&t.mount(s),e&&(s?e.mount(s):e.unmount()),n&&(typeof n=="function"?n(s):lt(n)&&(n.current=s))},[e])}function Ct(t){return typeof t=="string"||Array.isArray(t)}function ee(t){return typeof t=="object"&&typeof t.start=="function"}const $e=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],He=["initial",...$e];function ne(t){return ee(t.animate)||He.some(e=>Ct(t[e]))}function Ls(t){return Boolean(ne(t)||t.variants)}function Co(t,e){if(ne(t)){const{initial:n,animate:s}=t;return{initial:n===!1||Ct(n)?n:void 0,animate:Ct(s)?s:void 0}}return t.inherit!==!1?e:{}}function So(t){const{initial:e,animate:n}=Co(t,m.useContext(Qt));return m.useMemo(()=>({initial:e,animate:n}),[xn(e),xn(n)])}function xn(t){return Array.isArray(t)?t.join(" "):t}const Pn={animation:["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},St={};for(const t in Pn)St[t]={isEnabled:e=>Pn[t].some(n=>!!e[n])};function Ao(t){for(const e in t)St[e]={...St[e],...t[e]}}function We(t){const e=m.useRef(null);return e.current===null&&(e.current=t()),e.current}const yt={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let Vo=1;function wo(){return We(()=>{if(yt.hasEverUpdated)return Vo++})}const Ge=m.createContext({}),js=m.createContext({}),Mo=Symbol.for("motionComponentSymbol");function Do({preloadedFeatures:t,createVisualElement:e,useRender:n,useVisualState:s,Component:i}){t&&Ao(t);function r(a,c){let l;const u={...m.useContext(Rs),...a,layoutId:Ro(a)},{isStatic:f}=u,h=So(a),d=f?void 0:wo(),p=s(a,f);if(!f&&te){h.visualElement=bo(i,p,u,e);const g=m.useContext(js),T=m.useContext(Es).strict;h.visualElement&&(l=h.visualElement.loadFeatures(u,T,t,d,g))}return m.createElement(Qt.Provider,{value:h},l&&h.visualElement?m.createElement(l,{visualElement:h.visualElement,...u}):null,n(i,a,d,To(p,h.visualElement,c),p,f,h.visualElement))}const o=m.forwardRef(r);return o[Mo]=i,o}function Ro({layoutId:t}){const e=m.useContext(Ge).id;return e&&t!==void 0?e+"-"+t:t}function Eo(t){function e(s,i={}){return Do(t(s,i))}if(typeof Proxy>"u")return e;const n=new Map;return new Proxy(e,{get:(s,i)=>(n.has(i)||n.set(i,e(i)),n.get(i))})}const Lo=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Ke(t){return typeof t!="string"||t.includes("-")?!1:!!(Lo.indexOf(t)>-1||/[A-Z]/.test(t))}const Ht={};function jo(t){Object.assign(Ht,t)}const se=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ot=new Set(se);function Bs(t,{layout:e,layoutId:n}){return ot.has(t)||t.startsWith("origin")||(e||n!==void 0)&&(!!Ht[t]||t==="opacity")}const j=t=>Boolean(t&&t.getVelocity),Bo={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},ko=se.length;function Fo(t,{enableHardwareAcceleration:e=!0,allowTransformNone:n=!0},s,i){let r="";for(let o=0;oe=>typeof e=="string"&&e.startsWith(t),Fs=ks("--"),Se=ks("var(--"),Io=(t,e)=>e&&typeof t=="number"?e.transform(t):t,ht=(t,e,n)=>Math.min(Math.max(n,t),e),rt={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},vt={...rt,transform:t=>ht(0,1,t)},It={...rt,default:1},xt=t=>Math.round(t*1e5)/1e5,At=/(-)?([\d]*\.?[\d])+/g,Ae=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,Oo=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Lt(t){return typeof t=="string"}const jt=t=>({test:e=>Lt(e)&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),q=jt("deg"),z=jt("%"),b=jt("px"),No=jt("vh"),Uo=jt("vw"),bn={...z,parse:t=>z.parse(t)/100,transform:t=>z.transform(t*100)},Tn={...rt,transform:Math.round},Is={borderWidth:b,borderTopWidth:b,borderRightWidth:b,borderBottomWidth:b,borderLeftWidth:b,borderRadius:b,radius:b,borderTopLeftRadius:b,borderTopRightRadius:b,borderBottomRightRadius:b,borderBottomLeftRadius:b,width:b,maxWidth:b,height:b,maxHeight:b,size:b,top:b,right:b,bottom:b,left:b,padding:b,paddingTop:b,paddingRight:b,paddingBottom:b,paddingLeft:b,margin:b,marginTop:b,marginRight:b,marginBottom:b,marginLeft:b,rotate:q,rotateX:q,rotateY:q,rotateZ:q,scale:It,scaleX:It,scaleY:It,scaleZ:It,skew:q,skewX:q,skewY:q,distance:b,translateX:b,translateY:b,translateZ:b,x:b,y:b,z:b,perspective:b,transformPerspective:b,opacity:vt,originX:bn,originY:bn,originZ:b,zIndex:Tn,fillOpacity:vt,strokeOpacity:vt,numOctaves:Tn};function Ze(t,e,n,s){const{style:i,vars:r,transform:o,transformOrigin:a}=t;let c=!1,l=!1,u=!0;for(const f in e){const h=e[f];if(Fs(f)){r[f]=h;continue}const d=Is[f],p=Io(h,d);if(ot.has(f)){if(c=!0,o[f]=p,!u)continue;h!==(d.default||0)&&(u=!1)}else f.startsWith("origin")?(l=!0,a[f]=p):i[f]=p}if(e.transform||(c||s?i.transform=Fo(t.transform,n,u,s):i.transform&&(i.transform="none")),l){const{originX:f="50%",originY:h="50%",originZ:d=0}=a;i.transformOrigin=`${f} ${h} ${d}`}}const qe=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Os(t,e,n){for(const s in e)!j(e[s])&&!Bs(s,n)&&(t[s]=e[s])}function _o({transformTemplate:t},e,n){return m.useMemo(()=>{const s=qe();return Ze(s,e,{enableHardwareAcceleration:!n},t),Object.assign({},s.vars,s.style)},[e])}function zo(t,e,n){const s=t.style||{},i={};return Os(i,s,t),Object.assign(i,_o(t,e,n)),t.transformValues?t.transformValues(i):i}function $o(t,e,n){const s={},i=zo(t,e,n);return t.drag&&t.dragListener!==!1&&(s.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(s.tabIndex=0),s.style=i,s}const Ho=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","ignoreStrict","viewport"]);function Wt(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||Ho.has(t)}let Ns=t=>!Wt(t);function Wo(t){t&&(Ns=e=>e.startsWith("on")?!Wt(e):t(e))}try{Wo(require("@emotion/is-prop-valid").default)}catch{}function Go(t,e,n){const s={};for(const i in t)i==="values"&&typeof t.values=="object"||(Ns(i)||n===!0&&Wt(i)||!e&&!Wt(i)||t.draggable&&i.startsWith("onDrag"))&&(s[i]=t[i]);return s}function Cn(t,e,n){return typeof t=="string"?t:b.transform(e+n*t)}function Ko(t,e,n){const s=Cn(e,t.x,t.width),i=Cn(n,t.y,t.height);return`${s} ${i}`}const Zo={offset:"stroke-dashoffset",array:"stroke-dasharray"},qo={offset:"strokeDashoffset",array:"strokeDasharray"};function Xo(t,e,n=1,s=0,i=!0){t.pathLength=1;const r=i?Zo:qo;t[r.offset]=b.transform(-s);const o=b.transform(e),a=b.transform(n);t[r.array]=`${o} ${a}`}function Xe(t,{attrX:e,attrY:n,originX:s,originY:i,pathLength:r,pathSpacing:o=1,pathOffset:a=0,...c},l,u,f){if(Ze(t,c,l,f),u){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:h,style:d,dimensions:p}=t;h.transform&&(p&&(d.transform=h.transform),delete h.transform),p&&(s!==void 0||i!==void 0||d.transform)&&(d.transformOrigin=Ko(p,s!==void 0?s:.5,i!==void 0?i:.5)),e!==void 0&&(h.x=e),n!==void 0&&(h.y=n),r!==void 0&&Xo(h,r,o,a,!1)}const Us=()=>({...qe(),attrs:{}}),Ye=t=>typeof t=="string"&&t.toLowerCase()==="svg";function Yo(t,e,n,s){const i=m.useMemo(()=>{const r=Us();return Xe(r,e,{enableHardwareAcceleration:!1},Ye(s),t.transformTemplate),{...r.attrs,style:{...r.style}}},[e]);if(t.style){const r={};Os(r,t.style,t),i.style={...r,...i.style}}return i}function Jo(t=!1){return(n,s,i,r,{latestValues:o},a)=>{const l=(Ke(n)?Yo:$o)(s,o,a,n),f={...Go(s,typeof n=="string",t),...l,ref:r},{children:h}=s,d=m.useMemo(()=>j(h)?h.get():h,[h]);return i&&(f["data-projection-id"]=i),m.createElement(n,{...f,children:d})}}const Je=t=>t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function _s(t,{style:e,vars:n},s,i){Object.assign(t.style,e,i&&i.getProjectionStyles(s));for(const r in n)t.style.setProperty(r,n[r])}const zs=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function $s(t,e,n,s){_s(t,e,void 0,s);for(const i in e.attrs)t.setAttribute(zs.has(i)?i:Je(i),e.attrs[i])}function Qe(t,e){const{style:n}=t,s={};for(const i in n)(j(n[i])||e.style&&j(e.style[i])||Bs(i,t))&&(s[i]=n[i]);return s}function Hs(t,e){const n=Qe(t,e);for(const s in t)if(j(t[s])||j(e[s])){const i=s==="x"||s==="y"?"attr"+s.toUpperCase():s;n[i]=t[s]}return n}function tn(t,e,n,s={},i={}){return typeof e=="function"&&(e=e(n!==void 0?n:t.custom,s,i)),typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"&&(e=e(n!==void 0?n:t.custom,s,i)),e}const Gt=t=>Array.isArray(t),Qo=t=>Boolean(t&&typeof t=="object"&&t.mix&&t.toValue),tr=t=>Gt(t)?t[t.length-1]||0:t;function Ut(t){const e=j(t)?t.get():t;return Qo(e)?e.toValue():e}function er({scrapeMotionValuesFromProps:t,createRenderState:e,onMount:n},s,i,r){const o={latestValues:nr(s,i,r,t),renderState:e()};return n&&(o.mount=a=>n(s,a,o)),o}const Ws=t=>(e,n)=>{const s=m.useContext(Qt),i=m.useContext(Et),r=()=>er(t,e,s,i);return n?r():We(r)};function nr(t,e,n,s){const i={},r=s(t,{});for(const h in r)i[h]=Ut(r[h]);let{initial:o,animate:a}=t;const c=ne(t),l=Ls(t);e&&l&&!c&&t.inherit!==!1&&(o===void 0&&(o=e.initial),a===void 0&&(a=e.animate));let u=n?n.initial===!1:!1;u=u||o===!1;const f=u?a:o;return f&&typeof f!="boolean"&&!ee(f)&&(Array.isArray(f)?f:[f]).forEach(d=>{const p=tn(t,d);if(!p)return;const{transitionEnd:g,transition:T,...P}=p;for(const x in P){let y=P[x];if(Array.isArray(y)){const v=u?y.length-1:0;y=y[v]}y!==null&&(i[x]=y)}for(const x in g)i[x]=g[x]}),i}const sr={useVisualState:Ws({scrapeMotionValuesFromProps:Hs,createRenderState:Us,onMount:(t,e,{renderState:n,latestValues:s})=>{try{n.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}Xe(n,s,{enableHardwareAcceleration:!1},Ye(e.tagName),t.transformTemplate),$s(e,n)}})},ir={useVisualState:Ws({scrapeMotionValuesFromProps:Qe,createRenderState:qe})};function or(t,{forwardMotionProps:e=!1},n,s){return{...Ke(t)?sr:ir,preloadedFeatures:n,useRender:Jo(e),createVisualElement:s,Component:t}}function $(t,e,n,s={passive:!0}){return t.addEventListener(e,n,s),()=>t.removeEventListener(e,n)}const Gs=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1;function ie(t,e="page"){return{point:{x:t[e+"X"],y:t[e+"Y"]}}}const rr=t=>e=>Gs(e)&&t(e,ie(e));function H(t,e,n,s){return $(t,e,rr(n),s)}const ar=(t,e)=>n=>e(t(n)),Y=(...t)=>t.reduce(ar);function Ks(t){let e=null;return()=>{const n=()=>{e=null};return e===null?(e=t,n):!1}}const Sn=Ks("dragHorizontal"),An=Ks("dragVertical");function Zs(t){let e=!1;if(t==="y")e=An();else if(t==="x")e=Sn();else{const n=Sn(),s=An();n&&s?e=()=>{n(),s()}:(n&&n(),s&&s())}return e}function qs(){const t=Zs(!0);return t?(t(),!1):!0}class tt{constructor(e){this.isMounted=!1,this.node=e}update(){}}function Vn(t,e){const n="pointer"+(e?"enter":"leave"),s="onHover"+(e?"Start":"End"),i=(r,o)=>{if(r.type==="touch"||qs())return;const a=t.getProps();t.animationState&&a.whileHover&&t.animationState.setActive("whileHover",e),a[s]&&a[s](r,o)};return H(t.current,n,i,{passive:!t.getProps()[s]})}class cr extends tt{mount(){this.unmount=Y(Vn(this.node,!0),Vn(this.node,!1))}unmount(){}}class lr extends tt{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Y($(this.node.current,"focus",()=>this.onFocus()),$(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const Xs=(t,e)=>e?t===e?!0:Xs(t,e.parentElement):!1,I=t=>t;function le(t,e){if(!e)return;const n=new PointerEvent("pointer"+t);e(n,ie(n))}class ur extends tt{constructor(){super(...arguments),this.removeStartListeners=I,this.removeEndListeners=I,this.removeAccessibleListeners=I,this.startPointerPress=(e,n)=>{if(this.removeEndListeners(),this.isPressing)return;const s=this.node.getProps(),r=H(window,"pointerup",(a,c)=>{if(!this.checkPressEnd())return;const{onTap:l,onTapCancel:u}=this.node.getProps();Xs(this.node.current,a.target)?l&&l(a,c):u&&u(a,c)},{passive:!(s.onTap||s.onPointerUp)}),o=H(window,"pointercancel",(a,c)=>this.cancelPress(a,c),{passive:!(s.onTapCancel||s.onPointerCancel)});this.removeEndListeners=Y(r,o),this.startPress(e,n)},this.startAccessiblePress=()=>{const e=r=>{if(r.key!=="Enter"||this.isPressing)return;const o=a=>{a.key!=="Enter"||!this.checkPressEnd()||le("up",this.node.getProps().onTap)};this.removeEndListeners(),this.removeEndListeners=$(this.node.current,"keyup",o),le("down",(a,c)=>{this.startPress(a,c)})},n=$(this.node.current,"keydown",e),s=()=>{this.isPressing&&le("cancel",(r,o)=>this.cancelPress(r,o))},i=$(this.node.current,"blur",s);this.removeAccessibleListeners=Y(n,i)}}startPress(e,n){this.isPressing=!0;const{onTapStart:s,whileTap:i}=this.node.getProps();i&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),s&&s(e,n)}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!qs()}cancelPress(e,n){if(!this.checkPressEnd())return;const{onTapCancel:s}=this.node.getProps();s&&s(e,n)}mount(){const e=this.node.getProps(),n=H(this.node.current,"pointerdown",this.startPointerPress,{passive:!(e.onTapStart||e.onPointerStart)}),s=$(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Y(n,s)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const Ve=new WeakMap,ue=new WeakMap,fr=t=>{const e=Ve.get(t.target);e&&e(t)},hr=t=>{t.forEach(fr)};function dr({root:t,...e}){const n=t||document;ue.has(n)||ue.set(n,{});const s=ue.get(n),i=JSON.stringify(e);return s[i]||(s[i]=new IntersectionObserver(hr,{root:t,...e})),s[i]}function pr(t,e,n){const s=dr(e);return Ve.set(t,n),s.observe(t),()=>{Ve.delete(t),s.unobserve(t)}}const mr={some:0,all:1};class gr extends tt{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}viewportFallback(){requestAnimationFrame(()=>{this.hasEnteredView=!0;const{onViewportEnter:e}=this.node.getProps();e&&e(null),this.node.animationState&&this.node.animationState.setActive("whileInView",!0)})}startObserver(){this.unmount();const{viewport:e={}}=this.node.getProps(),{root:n,margin:s,amount:i="some",once:r,fallback:o=!0}=e;if(typeof IntersectionObserver>"u"){o&&this.viewportFallback();return}const a={root:n?n.current:void 0,rootMargin:s,threshold:typeof i=="number"?i:mr[i]},c=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,r&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:f,onViewportLeave:h}=this.node.getProps(),d=u?f:h;d&&d(l)};return pr(this.node.current,a,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:e,prevProps:n}=this.node;["amount","margin","root"].some(yr(e,n))&&this.startObserver()}unmount(){}}function yr({viewport:t={}},{viewport:e={}}={}){return n=>t[n]!==e[n]}const vr={inView:{Feature:gr},tap:{Feature:ur},focus:{Feature:lr},hover:{Feature:cr}};function Ys(t,e){if(!Array.isArray(e))return!1;const n=e.length;if(n!==t.length)return!1;for(let s=0;s/^\-?\d*\.?\d+$/.test(t),Pr=t=>/^0[^.\s]+$/.test(t),W={delta:0,timestamp:0},Js=1/60*1e3,br=typeof performance<"u"?()=>performance.now():()=>Date.now(),Qs=typeof window<"u"?t=>window.requestAnimationFrame(t):t=>setTimeout(()=>t(br()),Js);function Tr(t){let e=[],n=[],s=0,i=!1,r=!1;const o=new WeakSet,a={schedule:(c,l=!1,u=!1)=>{const f=u&&i,h=f?e:n;return l&&o.add(c),h.indexOf(c)===-1&&(h.push(c),f&&i&&(s=e.length)),c},cancel:c=>{const l=n.indexOf(c);l!==-1&&n.splice(l,1),o.delete(c)},process:c=>{if(i){r=!0;return}if(i=!0,[e,n]=[n,e],n.length=0,s=e.length,s)for(let l=0;l(t[e]=Tr(()=>Vt=!0),t),{}),R=Bt.reduce((t,e)=>{const n=oe[e];return t[e]=(s,i=!1,r=!1)=>(Vt||Ar(),n.schedule(s,i,r)),t},{}),J=Bt.reduce((t,e)=>(t[e]=oe[e].cancel,t),{}),fe=Bt.reduce((t,e)=>(t[e]=()=>oe[e].process(W),t),{}),Sr=t=>oe[t].process(W),ti=t=>{Vt=!1,W.delta=we?Js:Math.max(Math.min(t-W.timestamp,Cr),1),W.timestamp=t,Me=!0,Bt.forEach(Sr),Me=!1,Vt&&(we=!1,Qs(ti))},Ar=()=>{Vt=!0,we=!0,Me||Qs(ti)};function en(t,e){t.indexOf(e)===-1&&t.push(e)}function nn(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}class sn{constructor(){this.subscriptions=[]}add(e){return en(this.subscriptions,e),()=>nn(this.subscriptions,e)}notify(e,n,s){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](e,n,s);else for(let r=0;r!isNaN(parseFloat(t));class wr{constructor(e,n={}){this.version="9.1.7",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(s,i=!0)=>{this.prev=this.current,this.current=s;const{delta:r,timestamp:o}=W;this.lastUpdated!==o&&(this.timeDelta=r,this.lastUpdated=o,R.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>R.postRender(this.velocityCheck),this.velocityCheck=({timestamp:s})=>{s!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=e,this.canTrackVelocity=Vr(this.current),this.owner=n.owner}onChange(e){return this.on("change",e)}on(e,n){this.events[e]||(this.events[e]=new sn);const s=this.events[e].add(n);return e==="change"?()=>{s(),R.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,n){this.passiveEffect=e,this.stopPassiveEffect=n}set(e,n=!0){!n||!this.passiveEffect?this.updateAndNotify(e,n):this.passiveEffect(e,this.updateAndNotify)}setWithVelocity(e,n,s){this.set(n),this.prev=e,this.timeDelta=s}jump(e){this.updateAndNotify(e),this.prev=e,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?on(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(e){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=e(n)||null,this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=null}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function dt(t,e){return new wr(t,e)}const rn=(t,e)=>n=>Boolean(Lt(n)&&Oo.test(n)&&n.startsWith(t)||e&&Object.prototype.hasOwnProperty.call(n,e)),ei=(t,e,n)=>s=>{if(!Lt(s))return s;const[i,r,o,a]=s.match(At);return{[t]:parseFloat(i),[e]:parseFloat(r),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},Mr=t=>ht(0,255,t),he={...rt,transform:t=>Math.round(Mr(t))},it={test:rn("rgb","red"),parse:ei("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:s=1})=>"rgba("+he.transform(t)+", "+he.transform(e)+", "+he.transform(n)+", "+xt(vt.transform(s))+")"};function Dr(t){let e="",n="",s="",i="";return t.length>5?(e=t.substring(1,3),n=t.substring(3,5),s=t.substring(5,7),i=t.substring(7,9)):(e=t.substring(1,2),n=t.substring(2,3),s=t.substring(3,4),i=t.substring(4,5),e+=e,n+=n,s+=s,i+=i),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(s,16),alpha:i?parseInt(i,16)/255:1}}const De={test:rn("#"),parse:Dr,transform:it.transform},ut={test:rn("hsl","hue"),parse:ei("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:s=1})=>"hsla("+Math.round(t)+", "+z.transform(xt(e))+", "+z.transform(xt(n))+", "+xt(vt.transform(s))+")"},E={test:t=>it.test(t)||De.test(t)||ut.test(t),parse:t=>it.test(t)?it.parse(t):ut.test(t)?ut.parse(t):De.parse(t),transform:t=>Lt(t)?t:t.hasOwnProperty("red")?it.transform(t):ut.transform(t)},ni="${c}",si="${n}";function Rr(t){var e,n;return isNaN(t)&&Lt(t)&&(((e=t.match(At))===null||e===void 0?void 0:e.length)||0)+(((n=t.match(Ae))===null||n===void 0?void 0:n.length)||0)>0}function Kt(t){typeof t=="number"&&(t=`${t}`);const e=[];let n=0,s=0;const i=t.match(Ae);i&&(n=i.length,t=t.replace(Ae,ni),e.push(...i.map(E.parse)));const r=t.match(At);return r&&(s=r.length,t=t.replace(At,si),e.push(...r.map(rt.parse))),{values:e,numColors:n,numNumbers:s,tokenised:t}}function ii(t){return Kt(t).values}function oi(t){const{values:e,numColors:n,tokenised:s}=Kt(t),i=e.length;return r=>{let o=s;for(let a=0;atypeof t=="number"?0:t;function Lr(t){const e=ii(t);return oi(t)(e.map(Er))}const Q={test:Rr,parse:ii,createTransformer:oi,getAnimatableNone:Lr},jr=new Set(["brightness","contrast","saturate","opacity"]);function Br(t){const[e,n]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[s]=n.match(At)||[];if(!s)return t;const i=n.replace(s,"");let r=jr.has(e)?1:0;return s!==n&&(r*=100),e+"("+r+i+")"}const kr=/([a-z-]*)\(.*?\)/g,Re={...Q,getAnimatableNone:t=>{const e=t.match(kr);return e?e.map(Br).join(" "):t}},Fr={...Is,color:E,backgroundColor:E,outlineColor:E,fill:E,stroke:E,borderColor:E,borderTopColor:E,borderRightColor:E,borderBottomColor:E,borderLeftColor:E,filter:Re,WebkitFilter:Re},an=t=>Fr[t];function cn(t,e){let n=an(t);return n!==Re&&(n=Q),n.getAnimatableNone?n.getAnimatableNone(e):void 0}const ri=t=>e=>e.test(t),Ir={test:t=>t==="auto",parse:t=>t},ai=[rt,b,z,q,Uo,No,Ir],pt=t=>ai.find(ri(t)),Or=[...ai,E,Q],Nr=t=>Or.find(ri(t));function Ur(t){const e={};return t.values.forEach((n,s)=>e[s]=n.get()),e}function _r(t){const e={};return t.values.forEach((n,s)=>e[s]=n.getVelocity()),e}function re(t,e,n){const s=t.getProps();return tn(s,e,n!==void 0?n:s.custom,Ur(t),_r(t))}function zr(t,e,n){t.hasValue(e)?t.getValue(e).set(n):t.addValue(e,dt(n))}function $r(t,e){const n=re(t,e);let{transitionEnd:s={},transition:i={},...r}=n?t.makeTargetAnimatable(n,!1):{};r={...r,...s};for(const o in r){const a=tr(r[o]);zr(t,o,a)}}function Hr(t,e,n){var s,i;const r=Object.keys(e).filter(a=>!t.hasValue(a)),o=r.length;if(o)for(let a=0;at*1e3,Xr={current:!1},ln=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,un=t=>e=>1-t(1-e),fn=t=>t*t,Yr=un(fn),hn=ln(fn),A=(t,e,n)=>-n*t+n*e+t;function de(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function Jr({hue:t,saturation:e,lightness:n,alpha:s}){t/=360,e/=100,n/=100;let i=0,r=0,o=0;if(!e)i=r=o=n;else{const a=n<.5?n*(1+e):n+e-n*e,c=2*n-a;i=de(c,a,t+1/3),r=de(c,a,t),o=de(c,a,t-1/3)}return{red:Math.round(i*255),green:Math.round(r*255),blue:Math.round(o*255),alpha:s}}const pe=(t,e,n)=>{const s=t*t;return Math.sqrt(Math.max(0,n*(e*e-s)+s))},Qr=[De,it,ut],ta=t=>Qr.find(e=>e.test(t));function wn(t){const e=ta(t);let n=e.parse(t);return e===ut&&(n=Jr(n)),n}const ci=(t,e)=>{const n=wn(t),s=wn(e),i={...n};return r=>(i.red=pe(n.red,s.red,r),i.green=pe(n.green,s.green,r),i.blue=pe(n.blue,s.blue,r),i.alpha=A(n.alpha,s.alpha,r),it.transform(i))};function li(t,e){return typeof t=="number"?n=>A(t,e,n):E.test(t)?ci(t,e):fi(t,e)}const ui=(t,e)=>{const n=[...t],s=n.length,i=t.map((r,o)=>li(r,e[o]));return r=>{for(let o=0;o{const n={...t,...e},s={};for(const i in n)t[i]!==void 0&&e[i]!==void 0&&(s[i]=li(t[i],e[i]));return i=>{for(const r in s)n[r]=s[r](i);return n}},fi=(t,e)=>{const n=Q.createTransformer(e),s=Kt(t),i=Kt(e);return s.numColors===i.numColors&&s.numNumbers>=i.numNumbers?Y(ui(s.values,i.values),n):o=>`${o>0?e:t}`},wt=(t,e,n)=>{const s=e-t;return s===0?1:(n-t)/s},Mn=(t,e)=>n=>A(t,e,n);function na(t){return typeof t=="number"?Mn:typeof t=="string"?E.test(t)?ci:fi:Array.isArray(t)?ui:typeof t=="object"?ea:Mn}function sa(t,e,n){const s=[],i=n||na(t[0]),r=t.length-1;for(let o=0;ot[r-1]&&(t=[...t].reverse(),e=[...e].reverse());const o=sa(e,s,i),a=o.length,c=l=>{let u=0;if(a>1)for(;uc(ht(t[0],t[r-1],l)):c}function ia(t,e){const n=t[t.length-1];for(let s=1;s<=e;s++){const i=wt(0,e,s);t.push(A(n,1,i))}}function oa(t){const e=[0];return ia(e,t.length-1),e}function ra(t,e){return t.map(n=>n*e)}const di=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,aa=1e-7,ca=12;function la(t,e,n,s,i){let r,o,a=0;do o=e+(n-e)/2,r=di(o,s,i)-t,r>0?n=o:e=o;while(Math.abs(r)>aa&&++ala(r,0,1,t,n);return r=>r===0||r===1?r:di(i(r),e,s)}const mi=t=>1-Math.sin(Math.acos(t)),dn=un(mi),ua=ln(dn),gi=pi(.33,1.53,.69,.99),pn=un(gi),fa=ln(pn),ha=t=>(t*=2)<1?.5*pn(t):.5*(2-Math.pow(2,-10*(t-1))),da={linear:I,easeIn:fn,easeInOut:hn,easeOut:Yr,circIn:mi,circInOut:ua,circOut:dn,backIn:pn,backInOut:fa,backOut:gi,anticipate:ha},Dn=t=>{if(Array.isArray(t)){qt(t.length===4);const[e,n,s,i]=t;return pi(e,n,s,i)}else if(typeof t=="string")return da[t];return t},pa=t=>Array.isArray(t)&&typeof t[0]!="number";function ma(t,e){return t.map(()=>e||hn).splice(0,t.length-1)}function Ee({keyframes:t,ease:e=hn,times:n,duration:s=300}){t=[...t];const i=pa(e)?e.map(Dn):Dn(e),r={done:!1,value:t[0]},o=ra(n&&n.length===t.length?n:oa(t),s);function a(){return hi(o,t,{ease:Array.isArray(i)?i:ma(t,i)})}let c=a();return{next:l=>(r.value=c(l),r.done=l>=s,r),flipTarget:()=>{t.reverse(),c=a()}}}const me=.001,ga=.01,Rn=10,ya=.05,va=1;function xa({duration:t=800,bounce:e=.25,velocity:n=0,mass:s=1}){let i,r;qr(t<=Rn*1e3);let o=1-e;o=ht(ya,va,o),t=ht(ga,Rn,t/1e3),o<1?(i=l=>{const u=l*o,f=u*t,h=u-n,d=Le(l,o),p=Math.exp(-f);return me-h/d*p},r=l=>{const f=l*o*t,h=f*n+n,d=Math.pow(o,2)*Math.pow(l,2)*t,p=Math.exp(-f),g=Le(Math.pow(l,2),o);return(-i(l)+me>0?-1:1)*((h-d)*p)/g}):(i=l=>{const u=Math.exp(-l*t),f=(l-n)*t+1;return-me+u*f},r=l=>{const u=Math.exp(-l*t),f=(n-l)*(t*t);return u*f});const a=5/t,c=ba(i,r,a);if(t=t*1e3,isNaN(c))return{stiffness:100,damping:10,duration:t};{const l=Math.pow(c,2)*s;return{stiffness:l,damping:o*2*Math.sqrt(s*l),duration:t}}}const Pa=12;function ba(t,e,n){let s=n;for(let i=1;it[n]!==void 0)}function Sa(t){let e={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...t};if(!En(t,Ca)&&En(t,Ta)){const n=xa(t);e={...e,...n,velocity:0,mass:1},e.isResolvedFromDuration=!0}return e}const Aa=5;function yi({keyframes:t,restDelta:e,restSpeed:n,...s}){let i=t[0],r=t[t.length-1];const o={done:!1,value:i},{stiffness:a,damping:c,mass:l,velocity:u,duration:f,isResolvedFromDuration:h}=Sa(s);let d=Va,p=u?-(u/1e3):0;const g=c/(2*Math.sqrt(a*l));function T(){const P=r-i,x=Math.sqrt(a/l)/1e3,y=Math.abs(P)<5;if(n||(n=y?.01:2),e||(e=y?.005:.5),g<1){const v=Le(x,g);d=S=>{const w=Math.exp(-g*x*S);return r-w*((p+g*x*P)/v*Math.sin(v*S)+P*Math.cos(v*S))}}else if(g===1)d=v=>r-Math.exp(-x*v)*(P+(p+x*P)*v);else{const v=x*Math.sqrt(g*g-1);d=S=>{const w=Math.exp(-g*x*S),D=Math.min(v*S,300);return r-w*((p+g*x*P)*Math.sinh(D)+v*P*Math.cosh(D))/v}}}return T(),{next:P=>{const x=d(P);if(h)o.done=P>=f;else{let y=p;if(P!==0)if(g<1){const w=Math.max(0,P-Aa);y=on(x-d(w),P-w)}else y=0;const v=Math.abs(y)<=n,S=Math.abs(r-x)<=e;o.done=v&&S}return o.value=o.done?r:x,o},flipTarget:()=>{p=-p,[i,r]=[r,i],T()}}}yi.needsInterpolation=(t,e)=>typeof t=="string"||typeof e=="string";const Va=t=>0;function wa({keyframes:t=[0],velocity:e=0,power:n=.8,timeConstant:s=350,restDelta:i=.5,modifyTarget:r}){const o=t[0],a={done:!1,value:o};let c=n*e;const l=o+c,u=r===void 0?l:r(l);return u!==l&&(c=u-o),{next:f=>{const h=-c*Math.exp(-f/s);return a.done=!(h>i||h<-i),a.value=a.done?u:u+h,a},flipTarget:()=>{}}}const Ma={decay:wa,keyframes:Ee,tween:Ee,spring:yi};function vi(t,e,n=0){return t-e-n}function Da(t,e=0,n=0,s=!0){return s?vi(e+-t,e,n):e-(t-e)+n}function Ra(t,e,n,s){return s?t>=e+n:t<=-n}const Ea=t=>{const e=({delta:n})=>t(n);return{start:()=>R.update(e,!0),stop:()=>J.update(e)}};function Xt({duration:t,driver:e=Ea,elapsed:n=0,repeat:s=0,repeatType:i="loop",repeatDelay:r=0,keyframes:o,autoplay:a=!0,onPlay:c,onStop:l,onComplete:u,onRepeat:f,onUpdate:h,type:d="keyframes",...p}){const g=n;let T,P=0,x=t,y=!1,v=!0,S;const w=Ma[o.length>2?"keyframes":d]||Ee,D=o[0],N=o[o.length-1];let k={done:!1,value:D};const{needsInterpolation:O}=w;O&&O(D,N)&&(S=hi([0,100],[D,N],{clamp:!1}),o=[0,100]);const K=w({...p,duration:t,keyframes:o});function Ft(){P++,i==="reverse"?(v=P%2===0,n=Da(n,x,r,v)):(n=vi(n,x,r),i==="mirror"&&K.flipTarget()),y=!1,f&&f()}function ae(){T&&T.stop(),u&&u()}function Z(L){v||(L=-L),n+=L,y||(k=K.next(Math.max(0,n)),S&&(k.value=S(k.value)),y=v?k.done:n<=0),h&&h(k.value),y&&(P===0&&(x=x!==void 0?x:n),P{l&&l(),T&&T.stop()},set currentTime(L){n=g,Z(L)},sample:L=>{n=g;const at=t&&typeof t=="number"?Math.max(t*.5,50):50;let ce=0;for(Z(0);ce<=L;){const Yi=L-ce;Z(Math.min(Yi,at)),ce+=at}return k}}}function La(t){return!t||Array.isArray(t)||typeof t=="string"&&xi[t]}const gt=([t,e,n,s])=>`cubic-bezier(${t}, ${e}, ${n}, ${s})`,xi={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:gt([0,.65,.55,1]),circOut:gt([.55,0,1,.45]),backIn:gt([.31,.01,.66,-.59]),backOut:gt([.33,1.53,.69,.99])};function ja(t){if(t)return Array.isArray(t)?gt(t):xi[t]}function Ba(t,e,n,{delay:s=0,duration:i,repeat:r=0,repeatType:o="loop",ease:a,times:c}={}){return t.animate({[e]:n,offset:c},{delay:s,duration:i,easing:ja(a),fill:"both",iterations:r+1,direction:o==="reverse"?"alternate":"normal"})}const Ln={waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate")},ge={},Pi={};for(const t in Ln)Pi[t]=()=>(ge[t]===void 0&&(ge[t]=Ln[t]()),ge[t]);function ka(t,{repeat:e,repeatType:n="loop"}){const s=e&&n!=="loop"&&e%2===1?0:t.length-1;return t[s]}const Fa=new Set(["opacity","clipPath","filter","transform"]),Ot=10;function Ia(t,e,{onUpdate:n,onComplete:s,...i}){if(!(Pi.waapi()&&Fa.has(e)&&!i.repeatDelay&&i.repeatType!=="mirror"&&i.damping!==0))return!1;let{keyframes:o,duration:a=300,elapsed:c=0,ease:l}=i;if(i.type==="spring"||!La(i.ease)){if(i.repeat===1/0)return;const f=Xt({...i,elapsed:0});let h={done:!1,value:o[0]};const d=[];let p=0;for(;!h.done&&p<2e4;)h=f.sample(p),d.push(h.value),p+=Ot;o=d,a=p-Ot,l="linear"}const u=Ba(t.owner.current,e,o,{...i,delay:-c,duration:a,ease:l});return u.onfinish=()=>{t.set(ka(o,i)),R.update(()=>u.cancel()),s&&s()},{get currentTime(){return u.currentTime||0},set currentTime(f){u.currentTime=f},stop:()=>{const{currentTime:f}=u;if(f){const h=Xt({...i,autoplay:!1});t.setWithVelocity(h.sample(f-Ot).value,h.sample(f).value,Ot)}R.update(()=>u.cancel())}}}function bi(t,e){const n=performance.now(),s=({timestamp:i})=>{const r=i-n;r>=e&&(J.read(s),t(r-e))};return R.read(s,!0),()=>J.read(s)}function Oa({keyframes:t,elapsed:e,onUpdate:n,onComplete:s}){const i=()=>{n&&n(t[t.length-1]),s&&s()};return e?{stop:bi(i,-e)}:i()}function Na({keyframes:t,velocity:e=0,min:n,max:s,power:i=.8,timeConstant:r=750,bounceStiffness:o=500,bounceDamping:a=10,restDelta:c=1,modifyTarget:l,driver:u,onUpdate:f,onComplete:h,onStop:d}){const p=t[0];let g;function T(v){return n!==void 0&&vs}function P(v){return n===void 0?s:s===void 0||Math.abs(n-v){f&&f(S),v.onUpdate&&v.onUpdate(S)},onComplete:h,onStop:d})}function y(v){x({type:"spring",stiffness:o,damping:a,restDelta:c,...v})}if(T(p))y({velocity:e,keyframes:[p,P(p)]});else{let v=i*e+p;typeof l<"u"&&(v=l(v));const S=P(v),w=S===n?-1:1;let D,N;const k=O=>{D=N,N=O,e=on(O-D,W.delta),(w===1&&O>S||w===-1&&Og&&g.stop()}}const Ua={type:"spring",stiffness:500,damping:25,restSpeed:10},_a=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),za={type:"keyframes",duration:.8},$a={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Ha=(t,{keyframes:e})=>e.length>2?za:ot.has(t)?t.startsWith("scale")?_a(e[1]):Ua:$a,je=(t,e)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&Q.test(e)&&!e.startsWith("url("));function Wa({when:t,delay:e,delayChildren:n,staggerChildren:s,staggerDirection:i,repeat:r,repeatType:o,repeatDelay:a,from:c,elapsed:l,...u}){return!!Object.keys(u).length}function jn(t){return t===0||typeof t=="string"&&parseFloat(t)===0&&t.indexOf(" ")===-1}function Bn(t){return typeof t=="number"?0:cn("",t)}function Ti(t,e){return t[e]||t.default||t}function Ga(t,e,n,s){const i=je(e,n);let r=s.from!==void 0?s.from:t.get();return r==="none"&&i&&typeof n=="string"?r=cn(e,n):jn(r)&&typeof n=="string"?r=Bn(n):!Array.isArray(n)&&jn(n)&&typeof r=="string"&&(n=Bn(r)),Array.isArray(n)?(n[0]===null&&(n[0]=r),n):[r,n]}const mn=(t,e,n,s={})=>i=>{const r=Ti(s,t)||{},o=r.delay||s.delay||0;let{elapsed:a=0}=s;a=a-_t(o);const c=Ga(e,t,n,r),l=c[0],u=c[c.length-1],f=je(t,l),h=je(t,u);let d={keyframes:c,velocity:e.getVelocity(),...r,elapsed:a,onUpdate:p=>{e.set(p),r.onUpdate&&r.onUpdate(p)},onComplete:()=>{i(),r.onComplete&&r.onComplete()}};if(!f||!h||Xr.current||r.type===!1)return Oa(d);if(r.type==="inertia")return Na(d);if(Wa(r)||(d={...d,...Ha(t,d)}),d.duration&&(d.duration=_t(d.duration)),d.repeatDelay&&(d.repeatDelay=_t(d.repeatDelay)),e.owner&&e.owner.current instanceof HTMLElement&&!e.owner.getProps().onUpdate){const p=Ia(e,t,d);if(p)return p}return Xt(d)};function Ka(t,e,n={}){t.notify("AnimationStart",e);let s;if(Array.isArray(e)){const i=e.map(r=>Be(t,r,n));s=Promise.all(i)}else if(typeof e=="string")s=Be(t,e,n);else{const i=typeof e=="function"?re(t,e,n.custom):e;s=Ci(t,i,n)}return s.then(()=>t.notify("AnimationComplete",e))}function Be(t,e,n={}){const s=re(t,e,n.custom);let{transition:i=t.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const r=s?()=>Ci(t,s,n):()=>Promise.resolve(),o=t.variantChildren&&t.variantChildren.size?(c=0)=>{const{delayChildren:l=0,staggerChildren:u,staggerDirection:f}=i;return Za(t,e,l+c,u,f,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[c,l]=a==="beforeChildren"?[r,o]:[o,r];return c().then(l)}else return Promise.all([r(),o(n.delay)])}function Ci(t,e,{delay:n=0,transitionOverride:s,type:i}={}){let{transition:r=t.getDefaultTransition(),transitionEnd:o,...a}=t.makeTargetAnimatable(e);const c=t.getValue("willChange");s&&(r=s);const l=[],u=i&&t.animationState&&t.animationState.getState()[i];for(const f in a){const h=t.getValue(f),d=a[f];if(!h||d===void 0||u&&Xa(u,f))continue;const p={delay:n,elapsed:0,...r};if(window.HandoffAppearAnimations&&!h.hasAnimated){const T=t.getProps()[Zr];T&&(p.elapsed=window.HandoffAppearAnimations(T,f,h,R))}let g=h.start(mn(f,h,d,t.shouldReduceMotion&&ot.has(f)?{type:!1}:p));Zt(c)&&(c.add(f),g=g.then(()=>c.remove(f))),l.push(g)}return Promise.all(l).then(()=>{o&&$r(t,o)})}function Za(t,e,n=0,s=0,i=1,r){const o=[],a=(t.variantChildren.size-1)*s,c=i===1?(l=0)=>l*s:(l=0)=>a-l*s;return Array.from(t.variantChildren).sort(qa).forEach((l,u)=>{l.notify("AnimationStart",e),o.push(Be(l,e,{...r,delay:n+c(u)}).then(()=>l.notify("AnimationComplete",e)))}),Promise.all(o)}function qa(t,e){return t.sortNodePosition(e)}function Xa({protectedKeys:t,needsAnimating:e},n){const s=t.hasOwnProperty(n)&&e[n]!==!0;return e[n]=!1,s}const Ya=[...$e].reverse(),Ja=$e.length;function Qa(t){return e=>Promise.all(e.map(({animation:n,options:s})=>Ka(t,n,s)))}function tc(t){let e=Qa(t);const n=nc();let s=!0;const i=(c,l)=>{const u=re(t,l);if(u){const{transition:f,transitionEnd:h,...d}=u;c={...c,...d,...h}}return c};function r(c){e=c(t)}function o(c,l){const u=t.getProps(),f=t.getVariantContext(!0)||{},h=[],d=new Set;let p={},g=1/0;for(let P=0;Pg&&S;const O=Array.isArray(v)?v:[v];let K=O.reduce(i,{});w===!1&&(K={});const{prevResolvedValues:Ft={}}=y,ae={...Ft,...K},Z=M=>{k=!0,d.delete(M),y.needsAnimating[M]=!0};for(const M in ae){const L=K[M],at=Ft[M];p.hasOwnProperty(M)||(L!==at?Gt(L)&&Gt(at)?!Ys(L,at)||N?Z(M):y.protectedKeys[M]=!0:L!==void 0?Z(M):d.add(M):L!==void 0&&d.has(M)?Z(M):y.protectedKeys[M]=!0)}y.prevProp=v,y.prevResolvedValues=K,y.isActive&&(p={...p,...K}),s&&t.blockInitialAnimation&&(k=!1),k&&!D&&h.push(...O.map(M=>({animation:M,options:{type:x,...c}})))}if(d.size){const P={};d.forEach(x=>{const y=t.getBaseTarget(x);y!==void 0&&(P[x]=y)}),h.push({animation:P})}let T=Boolean(h.length);return s&&u.initial===!1&&!t.manuallyAnimateOnMount&&(T=!1),s=!1,T?e(h):Promise.resolve()}function a(c,l,u){var f;if(n[c].isActive===l)return Promise.resolve();(f=t.variantChildren)===null||f===void 0||f.forEach(d=>{var p;return(p=d.animationState)===null||p===void 0?void 0:p.setActive(c,l)}),n[c].isActive=l;const h=o(u,c);for(const d in n)n[d].protectedKeys={};return h}return{animateChanges:o,setActive:a,setAnimateFunction:r,getState:()=>n}}function ec(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!Ys(e,t):!1}function et(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function nc(){return{animate:et(!0),whileInView:et(),whileHover:et(),whileTap:et(),whileDrag:et(),whileFocus:et(),exit:et()}}class sc extends tt{constructor(e){super(e),e.animationState||(e.animationState=tc(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();this.unmount(),ee(e)&&(this.unmount=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:n}=this.node.prevProps||{};e!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let ic=0;class oc extends tt{constructor(){super(...arguments),this.id=ic++}update(){if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:n,custom:s}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===i)return;const r=this.node.animationState.setActive("exit",!e,{custom:s??this.node.getProps().custom});n&&!e&&r.then(()=>n(this.id))}mount(){const{register:e}=this.node.presenceContext||{};e&&(this.unmount=e(this.id))}unmount(){}}const rc={animation:{Feature:sc},exit:{Feature:oc}},kn=(t,e)=>Math.abs(t-e);function ac(t,e){const n=kn(t.x,e.x),s=kn(t.y,e.y);return Math.sqrt(n**2+s**2)}class Si{constructor(e,n,{transformPagePoint:s}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const l=ve(this.lastMoveEventInfo,this.history),u=this.startEvent!==null,f=ac(l.offset,{x:0,y:0})>=3;if(!u&&!f)return;const{point:h}=l,{timestamp:d}=W;this.history.push({...h,timestamp:d});const{onStart:p,onMove:g}=this.handlers;u||(p&&p(this.lastMoveEvent,l),this.startEvent=this.lastMoveEvent),g&&g(this.lastMoveEvent,l)},this.handlePointerMove=(l,u)=>{this.lastMoveEvent=l,this.lastMoveEventInfo=ye(u,this.transformPagePoint),R.update(this.updatePoint,!0)},this.handlePointerUp=(l,u)=>{if(this.end(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const{onEnd:f,onSessionEnd:h}=this.handlers,d=ve(l.type==="pointercancel"?this.lastMoveEventInfo:ye(u,this.transformPagePoint),this.history);this.startEvent&&f&&f(l,d),h&&h(l,d)},!Gs(e))return;this.handlers=n,this.transformPagePoint=s;const i=ie(e),r=ye(i,this.transformPagePoint),{point:o}=r,{timestamp:a}=W;this.history=[{...o,timestamp:a}];const{onSessionStart:c}=n;c&&c(e,ve(r,this.history)),this.removeListeners=Y(H(window,"pointermove",this.handlePointerMove),H(window,"pointerup",this.handlePointerUp),H(window,"pointercancel",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),J.update(this.updatePoint)}}function ye(t,e){return e?{point:e(t.point)}:t}function Fn(t,e){return{x:t.x-e.x,y:t.y-e.y}}function ve({point:t},e){return{point:t,delta:Fn(t,Ai(e)),offset:Fn(t,cc(e)),velocity:lc(e,.1)}}function cc(t){return t[0]}function Ai(t){return t[t.length-1]}function lc(t,e){if(t.length<2)return{x:0,y:0};let n=t.length-1,s=null;const i=Ai(t);for(;n>=0&&(s=t[n],!(i.timestamp-s.timestamp>_t(e)));)n--;if(!s)return{x:0,y:0};const r=(i.timestamp-s.timestamp)/1e3;if(r===0)return{x:0,y:0};const o={x:(i.x-s.x)/r,y:(i.y-s.y)/r};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function B(t){return t.max-t.min}function ke(t,e=0,n=.01){return Math.abs(t-e)<=n}function In(t,e,n,s=.5){t.origin=s,t.originPoint=A(e.min,e.max,t.origin),t.scale=B(n)/B(e),(ke(t.scale,1,1e-4)||isNaN(t.scale))&&(t.scale=1),t.translate=A(n.min,n.max,t.origin)-t.originPoint,(ke(t.translate)||isNaN(t.translate))&&(t.translate=0)}function Pt(t,e,n,s){In(t.x,e.x,n.x,s?s.originX:void 0),In(t.y,e.y,n.y,s?s.originY:void 0)}function On(t,e,n){t.min=n.min+e.min,t.max=t.min+B(e)}function uc(t,e,n){On(t.x,e.x,n.x),On(t.y,e.y,n.y)}function Nn(t,e,n){t.min=e.min-n.min,t.max=t.min+B(e)}function bt(t,e,n){Nn(t.x,e.x,n.x),Nn(t.y,e.y,n.y)}function fc(t,{min:e,max:n},s){return e!==void 0&&tn&&(t=s?A(n,t,s.max):Math.min(t,n)),t}function Un(t,e,n){return{min:e!==void 0?t.min+e:void 0,max:n!==void 0?t.max+n-(t.max-t.min):void 0}}function hc(t,{top:e,left:n,bottom:s,right:i}){return{x:Un(t.x,n,i),y:Un(t.y,e,s)}}function _n(t,e){let n=e.min-t.min,s=e.max-t.max;return e.max-e.mins?n=wt(e.min,e.max-s,t.min):s>i&&(n=wt(t.min,t.max-i,e.min)),ht(0,1,n)}function mc(t,e){const n={};return e.min!==void 0&&(n.min=e.min-t.min),e.max!==void 0&&(n.max=e.max-t.min),n}const Fe=.35;function gc(t=Fe){return t===!1?t=0:t===!0&&(t=Fe),{x:zn(t,"left","right"),y:zn(t,"top","bottom")}}function zn(t,e,n){return{min:$n(t,e),max:$n(t,n)}}function $n(t,e){return typeof t=="number"?t:t[e]||0}const Hn=()=>({translate:0,scale:1,origin:0,originPoint:0}),Tt=()=>({x:Hn(),y:Hn()}),Wn=()=>({min:0,max:0}),V=()=>({x:Wn(),y:Wn()});function U(t){return[t("x"),t("y")]}function Vi({top:t,left:e,right:n,bottom:s}){return{x:{min:e,max:n},y:{min:t,max:s}}}function yc({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function vc(t,e){if(!e)return t;const n=e({x:t.left,y:t.top}),s=e({x:t.right,y:t.bottom});return{top:n.y,left:n.x,bottom:s.y,right:s.x}}function xe(t){return t===void 0||t===1}function Ie({scale:t,scaleX:e,scaleY:n}){return!xe(t)||!xe(e)||!xe(n)}function nt(t){return Ie(t)||wi(t)||t.z||t.rotate||t.rotateX||t.rotateY}function wi(t){return Gn(t.x)||Gn(t.y)}function Gn(t){return t&&t!=="0%"}function Yt(t,e,n){const s=t-n,i=e*s;return n+i}function Kn(t,e,n,s,i){return i!==void 0&&(t=Yt(t,i,s)),Yt(t,n,s)+e}function Oe(t,e=0,n=1,s,i){t.min=Kn(t.min,e,n,s,i),t.max=Kn(t.max,e,n,s,i)}function Mi(t,{x:e,y:n}){Oe(t.x,e.translate,e.scale,e.originPoint),Oe(t.y,n.translate,n.scale,n.originPoint)}function xc(t,e,n,s=!1){const i=n.length;if(!i)return;e.x=e.y=1;let r,o;for(let a=0;a1.0000000000001||t<.999999999999?t:1}function X(t,e){t.min=t.min+e,t.max=t.max+e}function qn(t,e,[n,s,i]){const r=e[i]!==void 0?e[i]:.5,o=A(t.min,t.max,r);Oe(t,e[n],e[s],o,e.scale)}const Pc=["x","scaleX","originX"],bc=["y","scaleY","originY"];function ft(t,e){qn(t.x,e,Pc),qn(t.y,e,bc)}function Di(t,e){return Vi(vc(t.getBoundingClientRect(),e))}function Tc(t,e,n){const s=Di(t,n),{scroll:i}=e;return i&&(X(s.x,i.offset.x),X(s.y,i.offset.y)),s}const Cc=new WeakMap;class Sc{constructor(e){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=V(),this.visualElement=e}start(e,{snapToCursor:n=!1}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const i=c=>{this.stopAnimation(),n&&this.snapToCursor(ie(c,"page").point)},r=(c,l)=>{const{drag:u,dragPropagation:f,onDragStart:h}=this.getProps();if(u&&!f&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=Zs(u),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),U(p=>{let g=this.getAxisMotionValue(p).get()||0;if(z.test(g)){const{projection:T}=this.visualElement;if(T&&T.layout){const P=T.layout.layoutBox[p];P&&(g=B(P)*(parseFloat(g)/100))}}this.originPoint[p]=g}),h&&h(c,l);const{animationState:d}=this.visualElement;d&&d.setActive("whileDrag",!0)},o=(c,l)=>{const{dragPropagation:u,dragDirectionLock:f,onDirectionLock:h,onDrag:d}=this.getProps();if(!u&&!this.openGlobalLock)return;const{offset:p}=l;if(f&&this.currentDirection===null){this.currentDirection=Ac(p),this.currentDirection!==null&&h&&h(this.currentDirection);return}this.updateAxis("x",l.point,p),this.updateAxis("y",l.point,p),this.visualElement.render(),d&&d(c,l)},a=(c,l)=>this.stop(c,l);this.panSession=new Si(e,{onSessionStart:i,onStart:r,onMove:o,onSessionEnd:a},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(e,n){const s=this.isDragging;if(this.cancel(),!s)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:r}=this.getProps();r&&r(e,n)}cancel(){this.isDragging=!1;const{projection:e,animationState:n}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:s}=this.getProps();!s&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(e,n,s){const{drag:i}=this.getProps();if(!s||!Nt(e,i,this.currentDirection))return;const r=this.getAxisMotionValue(e);let o=this.originPoint[e]+s[e];this.constraints&&this.constraints[e]&&(o=fc(o,this.constraints[e],this.elastic[e])),r.set(o)}resolveConstraints(){const{dragConstraints:e,dragElastic:n}=this.getProps(),{layout:s}=this.visualElement.projection||{},i=this.constraints;e&<(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&s?this.constraints=hc(s.layoutBox,e):this.constraints=!1,this.elastic=gc(n),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&U(r=>{this.getAxisMotionValue(r)&&(this.constraints[r]=mc(s.layoutBox[r],this.constraints[r]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:n}=this.getProps();if(!e||!lt(e))return!1;const s=e.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const r=Tc(s,i.root,this.visualElement.getTransformPagePoint());let o=dc(i.layout.layoutBox,r);if(n){const a=n(yc(o));this.hasMutatedConstraints=!!a,a&&(o=Vi(a))}return o}startAnimation(e){const{drag:n,dragMomentum:s,dragElastic:i,dragTransition:r,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),c=this.constraints||{},l=U(u=>{if(!Nt(u,n,this.currentDirection))return;let f=c&&c[u]||{};o&&(f={min:0,max:0});const h=i?200:1e6,d=i?40:1e7,p={type:"inertia",velocity:s?e[u]:0,bounceStiffness:h,bounceDamping:d,timeConstant:750,restDelta:1,restSpeed:10,...r,...f};return this.startAxisValueAnimation(u,p)});return Promise.all(l).then(a)}startAxisValueAnimation(e,n){const s=this.getAxisMotionValue(e);return s.start(mn(e,s,0,n))}stopAnimation(){U(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){const n="_drag"+e.toUpperCase(),s=this.visualElement.getProps(),i=s[n];return i||this.visualElement.getValue(e,(s.initial?s.initial[e]:void 0)||0)}snapToCursor(e){U(n=>{const{drag:s}=this.getProps();if(!Nt(n,s,this.currentDirection))return;const{projection:i}=this.visualElement,r=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];r.set(e[n]-A(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:n}=this.getProps(),{projection:s}=this.visualElement;if(!lt(n)||!s||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};U(o=>{const a=this.getAxisMotionValue(o);if(a){const c=a.get();i[o]=pc({min:c,max:c},this.constraints[o])}});const{transformTemplate:r}=this.visualElement.getProps();this.visualElement.current.style.transform=r?r({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.resolveConstraints(),U(o=>{if(!Nt(o,e,null))return;const a=this.getAxisMotionValue(o),{min:c,max:l}=this.constraints[o];a.set(A(c,l,i[o]))})}addListeners(){if(!this.visualElement.current)return;Cc.set(this.visualElement,this);const e=this.visualElement.current,n=H(e,"pointerdown",c=>{const{drag:l,dragListener:u=!0}=this.getProps();l&&u&&this.start(c)}),s=()=>{const{dragConstraints:c}=this.getProps();lt(c)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,r=i.addEventListener("measure",s);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),s();const o=$(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:c,hasLayoutChanged:l})=>{this.isDragging&&l&&(U(u=>{const f=this.getAxisMotionValue(u);f&&(this.originPoint[u]+=c[u].translate,f.set(f.get()+c[u].translate))}),this.visualElement.render())});return()=>{o(),n(),r(),a&&a()}}getProps(){const e=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:s=!1,dragPropagation:i=!1,dragConstraints:r=!1,dragElastic:o=Fe,dragMomentum:a=!0}=e;return{...e,drag:n,dragDirectionLock:s,dragPropagation:i,dragConstraints:r,dragElastic:o,dragMomentum:a}}}function Nt(t,e,n){return(e===!0||e===t)&&(n===null||n===t)}function Ac(t,e=10){let n=null;return Math.abs(t.y)>e?n="y":Math.abs(t.x)>e&&(n="x"),n}class Vc extends tt{constructor(e){super(e),this.removeGroupControls=I,this.removeListeners=I,this.controls=new Sc(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||I}unmount(){this.removeGroupControls(),this.removeListeners()}}class wc extends tt{constructor(){super(...arguments),this.removePointerDownListener=I}onPointerDown(e){this.session=new Si(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint()})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:n,onPan:s,onPanEnd:i}=this.node.getProps();return{onSessionStart:e,onStart:n,onMove:s,onEnd:(r,o)=>{delete this.session,i&&i(r,o)}}}mount(){this.removePointerDownListener=H(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function Mc(){const t=m.useContext(Et);if(t===null)return[!0,null];const{isPresent:e,onExitComplete:n,register:s}=t,i=m.useId();return m.useEffect(()=>s(i),[]),!e&&n?[!1,()=>n&&n(i)]:[!0]}function Dc(){return Rc(m.useContext(Et))}function Rc(t){return t===null?!0:t.isPresent}function Xn(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}const mt={correct:(t,e)=>{if(!e.target)return t;if(typeof t=="string")if(b.test(t))t=parseFloat(t);else return t;const n=Xn(t,e.target.x),s=Xn(t,e.target.y);return`${n}% ${s}%`}},Ri=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function Ec(t){const e=Ri.exec(t);if(!e)return[,];const[,n,s]=e;return[n,s]}function Ne(t,e,n=1){const[s,i]=Ec(t);if(!s)return;const r=window.getComputedStyle(e).getPropertyValue(s);return r?r.trim():Se(i)?Ne(i,e,n+1):i}function Lc(t,{...e},n){const s=t.current;if(!(s instanceof Element))return{target:e,transitionEnd:n};n&&(n={...n}),t.values.forEach(i=>{const r=i.get();if(!Se(r))return;const o=Ne(r,s);o&&i.set(o)});for(const i in e){const r=e[i];if(!Se(r))continue;const o=Ne(r,s);o&&(e[i]=o,n&&n[i]===void 0&&(n[i]=r))}return{target:e,transitionEnd:n}}const Yn="_$css",jc={correct:(t,{treeScale:e,projectionDelta:n})=>{const s=t,i=t.includes("var("),r=[];i&&(t=t.replace(Ri,d=>(r.push(d),Yn)));const o=Q.parse(t);if(o.length>5)return s;const a=Q.createTransformer(t),c=typeof o[0]!="number"?1:0,l=n.x.scale*e.x,u=n.y.scale*e.y;o[0+c]/=l,o[1+c]/=u;const f=A(l,u,.5);typeof o[2+c]=="number"&&(o[2+c]/=f),typeof o[3+c]=="number"&&(o[3+c]/=f);let h=a(o);if(i){let d=0;h=h.replace(Yn,()=>{const p=r[d];return d++,p})}return h}};class Bc extends Ss.Component{componentDidMount(){const{visualElement:e,layoutGroup:n,switchLayoutGroup:s,layoutId:i}=this.props,{projection:r}=e;jo(kc),r&&(n.group&&n.group.add(r),s&&s.register&&i&&s.register(r),r.root.didUpdate(),r.addEventListener("animationComplete",()=>{this.safeToRemove()}),r.setOptions({...r.options,onExitComplete:()=>this.safeToRemove()})),yt.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:n,visualElement:s,drag:i,isPresent:r}=this.props,o=s.projection;return o&&(o.isPresent=r,i||e.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),e.isPresent!==r&&(r?o.promote():o.relegate()||R.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),!e.currentAnimation&&e.isLead()&&this.safeToRemove())}componentWillUnmount(){const{visualElement:e,layoutGroup:n,switchLayoutGroup:s}=this.props,{projection:i}=e;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),s&&s.deregister&&s.deregister(i))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function Ei(t){const[e,n]=Mc(),s=m.useContext(Ge);return Ss.createElement(Bc,{...t,layoutGroup:s,switchLayoutGroup:m.useContext(js),isPresent:e,safeToRemove:n})}const kc={borderRadius:{...mt,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:mt,borderTopRightRadius:mt,borderBottomLeftRadius:mt,borderBottomRightRadius:mt,boxShadow:jc};function Fc(t,e,n={}){const s=j(t)?t:dt(t);return s.start(mn("",s,e,n)),{stop:()=>s.stop(),isAnimating:()=>s.isAnimating()}}const Li=["TopLeft","TopRight","BottomLeft","BottomRight"],Ic=Li.length,Jn=t=>typeof t=="string"?parseFloat(t):t,Qn=t=>typeof t=="number"||b.test(t);function Oc(t,e,n,s,i,r){i?(t.opacity=A(0,n.opacity!==void 0?n.opacity:1,Nc(s)),t.opacityExit=A(e.opacity!==void 0?e.opacity:1,0,Uc(s))):r&&(t.opacity=A(e.opacity!==void 0?e.opacity:1,n.opacity!==void 0?n.opacity:1,s));for(let o=0;ose?1:n(wt(t,e,s))}function es(t,e){t.min=e.min,t.max=e.max}function F(t,e){es(t.x,e.x),es(t.y,e.y)}function ns(t,e,n,s,i){return t-=e,t=Yt(t,1/n,s),i!==void 0&&(t=Yt(t,1/i,s)),t}function _c(t,e=0,n=1,s=.5,i,r=t,o=t){if(z.test(e)&&(e=parseFloat(e),e=A(o.min,o.max,e/100)-o.min),typeof e!="number")return;let a=A(r.min,r.max,s);t===r&&(a-=e),t.min=ns(t.min,e,n,a,i),t.max=ns(t.max,e,n,a,i)}function ss(t,e,[n,s,i],r,o){_c(t,e[n],e[s],e[i],e.scale,r,o)}const zc=["x","scaleX","originX"],$c=["y","scaleY","originY"];function is(t,e,n,s){ss(t.x,e,zc,n?n.x:void 0,s?s.x:void 0),ss(t.y,e,$c,n?n.y:void 0,s?s.y:void 0)}function os(t){return t.translate===0&&t.scale===1}function Bi(t){return os(t.x)&&os(t.y)}function Ue(t,e){return t.x.min===e.x.min&&t.x.max===e.x.max&&t.y.min===e.y.min&&t.y.max===e.y.max}function rs(t){return B(t.x)/B(t.y)}class Hc{constructor(){this.members=[]}add(e){en(this.members,e),e.scheduleRender()}remove(e){if(nn(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(e){const n=this.members.findIndex(i=>e===i);if(n===0)return!1;let s;for(let i=n;i>=0;i--){const r=this.members[i];if(r.isPresent!==!1){s=r;break}}return s?(this.promote(s),!0):!1}promote(e,n){const s=this.lead;if(e!==s&&(this.prevLead=s,this.lead=e,e.show(),s)){s.instance&&s.scheduleRender(),e.scheduleRender(),e.resumeFrom=s,n&&(e.resumeFrom.preserveOpacity=!0),s.snapshot&&(e.snapshot=s.snapshot,e.snapshot.latestValues=s.animationValues||s.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);const{crossfade:i}=e.options;i===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(e=>{const{options:n,resumingFrom:s}=e;n.onExitComplete&&n.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function as(t,e,n){let s="";const i=t.x.translate/e.x,r=t.y.translate/e.y;if((i||r)&&(s=`translate3d(${i}px, ${r}px, 0) `),(e.x!==1||e.y!==1)&&(s+=`scale(${1/e.x}, ${1/e.y}) `),n){const{rotate:c,rotateX:l,rotateY:u}=n;c&&(s+=`rotate(${c}deg) `),l&&(s+=`rotateX(${l}deg) `),u&&(s+=`rotateY(${u}deg) `)}const o=t.x.scale*e.x,a=t.y.scale*e.y;return(o!==1||a!==1)&&(s+=`scale(${o}, ${a})`),s||"none"}const Wc=(t,e)=>t.depth-e.depth;class Gc{constructor(){this.children=[],this.isDirty=!1}add(e){en(this.children,e),this.isDirty=!0}remove(e){nn(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Wc),this.isDirty=!1,this.children.forEach(e)}}function Kc(t){window.MotionDebug&&window.MotionDebug.record(t)}const cs=["","X","Y","Z"],ls=1e3;let Zc=0;const st={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function ki({attachResizeListener:t,defaultParent:e,measureScroll:n,checkIsScrollRoot:s,resetTransform:i}){return class{constructor(o,a={},c=e==null?void 0:e()){this.id=Zc++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{st.totalNodes=st.resolvedTargetDeltas=st.recalculatedProjection=0,this.nodes.forEach(Yc),this.nodes.forEach(el),this.nodes.forEach(nl),this.nodes.forEach(Jc),Kc(st)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.elementId=o,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0,o&&this.root.registerPotentialNode(o,this);for(let l=0;lthis.root.updateBlockedByResize=!1;t(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=bi(h,250),yt.hasAnimatedSinceResize&&(yt.hasAnimatedSinceResize=!1,this.nodes.forEach(fs))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&u&&(c||l)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:h,hasRelativeTargetChanged:d,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||u.getDefaultTransition()||al,{onLayoutAnimationStart:T,onLayoutAnimationComplete:P}=u.getProps(),x=!this.targetLayout||!Ue(this.targetLayout,p)||d,y=!h&&d;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,y);const v={...Ti(g,"layout"),onPlay:T,onComplete:P};(u.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else!h&&this.animationProgress===0&&fs(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,J.preRender(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(sl),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const S=v/1e3;hs(f.x,o.x,S),hs(f.y,o.y,S),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(bt(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),ol(this.relativeTarget,this.relativeTargetOrigin,h,S),y&&Ue(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=V()),F(y,this.relativeTarget)),g&&(this.animationValues=u,Oc(u,l,this.latestValues,S,x,P)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=S},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(J.update(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=R.update(()=>{yt.hasAnimatedSinceResize=!0,this.currentAnimation=Fc(0,ls,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ls),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:c,layout:l,latestValues:u}=o;if(!(!a||!c||!l)){if(this!==o&&this.layout&&l&&Fi(this.options.animationType,this.layout.layoutBox,l.layoutBox)){c=this.target||V();const f=B(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const h=B(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+h}F(a,c),ft(a,u),Pt(this.projectionDeltaWithTransform,this.layoutCorrected,a,u)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new Hc),this.sharedNodes.get(o).add(a);const l=a.options.initialPromotionConfig;a.promote({transition:l?l.transition:void 0,preserveFollowOpacity:l&&l.shouldPreserveFollowOpacity?l.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:c}={}){const l=this.getStack();l&&l.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:c}=o;if((c.rotate||c.rotateX||c.rotateY||c.rotateZ)&&(a=!0),!a)return;const l={};for(let u=0;u{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(us),this.root.sharedNodes.clear()}}}function qc(t){t.updateLayout()}function Xc(t){var e;const n=((e=t.resumeFrom)===null||e===void 0?void 0:e.snapshot)||t.snapshot;if(t.isLead()&&t.layout&&n&&t.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:i}=t.layout,{animationType:r}=t.options,o=n.source!==t.layout.source;r==="size"?U(f=>{const h=o?n.measuredBox[f]:n.layoutBox[f],d=B(h);h.min=s[f].min,h.max=h.min+d}):Fi(r,n.layoutBox,s)&&U(f=>{const h=o?n.measuredBox[f]:n.layoutBox[f],d=B(s[f]);h.max=h.min+d});const a=Tt();Pt(a,s,n.layoutBox);const c=Tt();o?Pt(c,t.applyTransform(i,!0),n.measuredBox):Pt(c,s,n.layoutBox);const l=!Bi(a);let u=!1;if(!t.resumeFrom){const f=t.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:h,layout:d}=f;if(h&&d){const p=V();bt(p,n.layoutBox,h.layoutBox);const g=V();bt(g,s,d.layoutBox),Ue(p,g)||(u=!0),f.options.layoutRoot&&(t.relativeTarget=g,t.relativeTargetOrigin=p,t.relativeParent=f)}}}t.notifyListeners("didUpdate",{layout:s,snapshot:n,delta:c,layoutDelta:a,hasLayoutChanged:l,hasRelativeTargetChanged:u})}else if(t.isLead()){const{onExitComplete:s}=t.options;s&&s()}t.options.transition=void 0}function Yc(t){st.totalNodes++,t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=Boolean(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function Jc(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function Qc(t){t.clearSnapshot()}function us(t){t.clearMeasurements()}function tl(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function fs(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0}function el(t){t.resolveTargetDelta()}function nl(t){t.calcProjection()}function sl(t){t.resetRotation()}function il(t){t.removeLeadSnapshot()}function hs(t,e,n){t.translate=A(e.translate,0,n),t.scale=A(e.scale,1,n),t.origin=e.origin,t.originPoint=e.originPoint}function ds(t,e,n,s){t.min=A(e.min,n.min,s),t.max=A(e.max,n.max,s)}function ol(t,e,n,s){ds(t.x,e.x,n.x,s),ds(t.y,e.y,n.y,s)}function rl(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const al={duration:.45,ease:[.4,0,.1,1]};function cl(t,e){let n=t.root;for(let r=t.path.length-1;r>=0;r--)if(Boolean(t.path[r].instance)){n=t.path[r];break}const i=(n&&n!==t.root?n.instance:document).querySelector(`[data-projection-id="${e}"]`);i&&t.mount(i,!0)}function ps(t){t.min=Math.round(t.min),t.max=Math.round(t.max)}function ll(t){ps(t.x),ps(t.y)}function Fi(t,e,n){return t==="position"||t==="preserve-aspect"&&!ke(rs(e),rs(n),.2)}const ul=ki({attachResizeListener:(t,e)=>$(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Pe={current:void 0},Ii=ki({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!Pe.current){const t=new ul(0,{});t.mount(window),t.setOptions({layoutScroll:!0}),Pe.current=t}return Pe.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>Boolean(window.getComputedStyle(t).position==="fixed")}),fl={pan:{Feature:wc},drag:{Feature:Vc,ProjectionNode:Ii,MeasureLayout:Ei}},hl=new Set(["width","height","top","left","right","bottom","x","y"]),Oi=t=>hl.has(t),dl=t=>Object.keys(t).some(Oi),ms=t=>t===rt||t===b,gs=(t,e)=>parseFloat(t.split(", ")[e]),ys=(t,e)=>(n,{transform:s})=>{if(s==="none"||!s)return 0;const i=s.match(/^matrix3d\((.+)\)$/);if(i)return gs(i[1],e);{const r=s.match(/^matrix\((.+)\)$/);return r?gs(r[1],t):0}},pl=new Set(["x","y","z"]),ml=se.filter(t=>!pl.has(t));function gl(t){const e=[];return ml.forEach(n=>{const s=t.getValue(n);s!==void 0&&(e.push([n,s.get()]),s.set(n.startsWith("scale")?1:0))}),e.length&&t.render(),e}const vs={width:({x:t},{paddingLeft:e="0",paddingRight:n="0"})=>t.max-t.min-parseFloat(e)-parseFloat(n),height:({y:t},{paddingTop:e="0",paddingBottom:n="0"})=>t.max-t.min-parseFloat(e)-parseFloat(n),top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:ys(4,13),y:ys(5,14)},yl=(t,e,n)=>{const s=e.measureViewportBox(),i=e.current,r=getComputedStyle(i),{display:o}=r,a={};o==="none"&&e.setStaticValue("display",t.display||"block"),n.forEach(l=>{a[l]=vs[l](s,r)}),e.render();const c=e.measureViewportBox();return n.forEach(l=>{const u=e.getValue(l);u&&u.jump(a[l]),t[l]=vs[l](c,r)}),t},vl=(t,e,n={},s={})=>{e={...e},s={...s};const i=Object.keys(e).filter(Oi);let r=[],o=!1;const a=[];if(i.forEach(c=>{const l=t.getValue(c);if(!t.hasValue(c))return;let u=n[c],f=pt(u);const h=e[c];let d;if(Gt(h)){const p=h.length,g=h[0]===null?1:0;u=h[g],f=pt(u);for(let T=g;T=0?window.pageYOffset:null,l=yl(e,t,a);return r.length&&r.forEach(([u,f])=>{t.getValue(u).set(f)}),t.render(),te&&c!==null&&window.scrollTo({top:c}),{target:l,transitionEnd:s}}else return{target:e,transitionEnd:s}};function xl(t,e,n,s){return dl(e)?vl(t,e,n,s):{target:e,transitionEnd:s}}const Pl=(t,e,n,s)=>{const i=Lc(t,e,s);return e=i.target,s=i.transitionEnd,xl(t,e,n,s)},_e={current:null},Ni={current:!1};function bl(){if(Ni.current=!0,!!te)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>_e.current=t.matches;t.addListener(e),e()}else _e.current=!1}function Tl(t,e,n){const{willChange:s}=e;for(const i in e){const r=e[i],o=n[i];if(j(r))t.addValue(i,r),Zt(s)&&s.add(i);else if(j(o))t.addValue(i,dt(r,{owner:t})),Zt(s)&&s.remove(i);else if(o!==r)if(t.hasValue(i)){const a=t.getValue(i);!a.hasAnimated&&a.set(r)}else{const a=t.getStaticValue(i);t.addValue(i,dt(a!==void 0?a:r,{owner:t}))}}for(const i in n)e[i]===void 0&&t.removeValue(i);return e}const Ui=Object.keys(St),Cl=Ui.length,xs=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],Sl=He.length;class Al{constructor({parent:e,props:n,presenceContext:s,reducedMotionConfig:i,visualState:r},o={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>R.render(this.render,!1,!0);const{latestValues:a,renderState:c}=r;this.latestValues=a,this.baseTarget={...a},this.initialValues=n.initial?{...a}:{},this.renderState=c,this.parent=e,this.props=n,this.presenceContext=s,this.depth=e?e.depth+1:0,this.reducedMotionConfig=i,this.options=o,this.isControllingVariants=ne(n),this.isVariantNode=Ls(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(e&&e.current);const{willChange:l,...u}=this.scrapeMotionValuesFromProps(n,{});for(const f in u){const h=u[f];a[f]!==void 0&&j(h)&&(h.set(a[f],!1),Zt(l)&&l.add(f))}}scrapeMotionValuesFromProps(e,n){return{}}mount(e){this.current=e,this.projection&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,s)=>this.bindToMotionValue(s,n)),Ni.current||bl(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:_e.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),J.update(this.notifyUpdate),J.render(this.render),this.valueSubscriptions.forEach(e=>e()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const e in this.events)this.events[e].clear();for(const e in this.features)this.features[e].unmount();this.current=null}bindToMotionValue(e,n){const s=ot.has(e),i=n.on("change",o=>{this.latestValues[e]=o,this.props.onUpdate&&R.update(this.notifyUpdate,!1,!0),s&&this.projection&&(this.projection.isTransformDirty=!0)}),r=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(e,()=>{i(),r()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}loadFeatures({children:e,...n},s,i,r,o){let a,c;for(let l=0;lthis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:d,layoutRoot:p})}return c}updateFeatures(){for(const e in this.features){const n=this.features[e];n.isMounted?n.update(this.props,this.prevProps):(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):V()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,n){this.latestValues[e]=n}makeTargetAnimatable(e,n=!0){return this.makeTargetAnimatableFromInstance(e,this.props,n)}update(e,n){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let s=0;sn.variantChildren.delete(e)}addValue(e,n){n!==this.values.get(e)&&(this.removeValue(e),this.bindToMotionValue(e,n)),this.values.set(e,n),this.latestValues[e]=n.get()}removeValue(e){this.values.delete(e);const n=this.valueSubscriptions.get(e);n&&(n(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,n){if(this.props.values&&this.props.values[e])return this.props.values[e];let s=this.values.get(e);return s===void 0&&n!==void 0&&(s=dt(n,{owner:this}),this.addValue(e,s)),s}readValue(e){return this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.readValueFromInstance(this.current,e,this.options)}setBaseTarget(e,n){this.baseTarget[e]=n}getBaseTarget(e){var n;const{initial:s}=this.props,i=typeof s=="string"||typeof s=="object"?(n=tn(this.props,s))===null||n===void 0?void 0:n[e]:void 0;if(s&&i!==void 0)return i;const r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!j(r)?r:this.initialValues[e]!==void 0&&i===void 0?void 0:this.baseTarget[e]}on(e,n){return this.events[e]||(this.events[e]=new sn),this.events[e].add(n)}notify(e,...n){this.events[e]&&this.events[e].notify(...n)}}class _i extends Al{sortInstanceNodePosition(e,n){return e.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(e,n){return e.style?e.style[n]:void 0}removeValueFromRenderState(e,{vars:n,style:s}){delete n[e],delete s[e]}makeTargetAnimatableFromInstance({transition:e,transitionEnd:n,...s},{transformValues:i},r){let o=Gr(s,e||{},this);if(i&&(n&&(n=i(n)),s&&(s=i(s)),o&&(o=i(o))),r){Hr(this,s,o);const a=Pl(this,s,o,n);n=a.transitionEnd,s=a.target}return{transition:e,transitionEnd:n,...s}}}function Vl(t){return window.getComputedStyle(t)}class wl extends _i{readValueFromInstance(e,n){if(ot.has(n)){const s=an(n);return s&&s.default||0}else{const s=Vl(e),i=(Fs(n)?s.getPropertyValue(n):s[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(e,{transformPagePoint:n}){return Di(e,n)}build(e,n,s,i){Ze(e,n,s,i.transformTemplate)}scrapeMotionValuesFromProps(e,n){return Qe(e,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;j(e)&&(this.childSubscription=e.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(e,n,s,i){_s(e,n,s,i)}}class Ml extends _i{constructor(){super(...arguments),this.isSVGTag=!1}getBaseTargetFromProps(e,n){return e[n]}readValueFromInstance(e,n){if(ot.has(n)){const s=an(n);return s&&s.default||0}return n=zs.has(n)?n:Je(n),e.getAttribute(n)}measureInstanceViewportBox(){return V()}scrapeMotionValuesFromProps(e,n){return Hs(e,n)}build(e,n,s,i){Xe(e,n,s,this.isSVGTag,i.transformTemplate)}renderInstance(e,n,s,i){$s(e,n,s,i)}mount(e){this.isSVGTag=Ye(e.tagName),super.mount(e)}}const Dl=(t,e)=>Ke(t)?new Ml(e,{enableHardwareAcceleration:!1}):new wl(e,{enableHardwareAcceleration:!0}),Rl={layout:{ProjectionNode:Ii,MeasureLayout:Ei}},El={...rc,...vr,...fl,...Rl},Ll=Eo((t,e)=>or(t,e,El,Dl));function zi(){const t=m.useRef(!1);return $t(()=>(t.current=!0,()=>{t.current=!1}),[]),t}function jl(){const t=zi(),[e,n]=m.useState(0),s=m.useCallback(()=>{t.current&&n(e+1)},[e]);return[m.useCallback(()=>R.postRender(s),[s]),e]}class Bl extends m.Component{getSnapshotBeforeUpdate(e){const n=this.props.childRef.current;if(n&&e.isPresent&&!this.props.isPresent){const s=this.props.sizeRef.current;s.height=n.offsetHeight||0,s.width=n.offsetWidth||0,s.top=n.offsetTop,s.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function kl({children:t,isPresent:e}){const n=m.useId(),s=m.useRef(null),i=m.useRef({width:0,height:0,top:0,left:0});return m.useInsertionEffect(()=>{const{width:r,height:o,top:a,left:c}=i.current;if(e||!s.current||!r||!o)return;s.current.dataset.motionPopId=n;const l=document.createElement("style");return document.head.appendChild(l),l.sheet&&l.sheet.insertRule(` - [data-motion-pop-id="${n}"] { - position: absolute !important; - width: ${r}px !important; - height: ${o}px !important; - top: ${a}px !important; - left: ${c}px !important; - } - `),()=>{document.head.removeChild(l)}},[e]),m.createElement(Bl,{isPresent:e,childRef:s,sizeRef:i},m.cloneElement(t,{ref:s}))}const be=({children:t,initial:e,isPresent:n,onExitComplete:s,custom:i,presenceAffectsLayout:r,mode:o})=>{const a=We(Fl),c=m.useId(),l=m.useMemo(()=>({id:c,initial:e,isPresent:n,custom:i,onExitComplete:u=>{a.set(u,!0);for(const f of a.values())if(!f)return;s&&s()},register:u=>(a.set(u,!1),()=>a.delete(u))}),r?void 0:[n]);return m.useMemo(()=>{a.forEach((u,f)=>a.set(f,!1))},[n]),m.useEffect(()=>{!n&&!a.size&&s&&s()},[n]),o==="popLayout"&&(t=m.createElement(kl,{isPresent:n},t)),m.createElement(Et.Provider,{value:l},t)};function Fl(){return new Map}function Il(t){return m.useEffect(()=>()=>t(),[])}const ct=t=>t.key||"";function Ol(t,e){t.forEach(n=>{const s=ct(n);e.set(s,n)})}function Nl(t){const e=[];return m.Children.forEach(t,n=>{m.isValidElement(n)&&e.push(n)}),e}const Ul=({children:t,custom:e,initial:n=!0,onExitComplete:s,exitBeforeEnter:i,presenceAffectsLayout:r=!0,mode:o="sync"})=>{i&&(o="wait");let[a]=jl();const c=m.useContext(Ge).forceRender;c&&(a=c);const l=zi(),u=Nl(t);let f=u;const h=new Set,d=m.useRef(f),p=m.useRef(new Map).current,g=m.useRef(!0);if($t(()=>{g.current=!1,Ol(u,p),d.current=f}),Il(()=>{g.current=!0,p.clear(),h.clear()}),g.current)return m.createElement(m.Fragment,null,f.map(y=>m.createElement(be,{key:ct(y),isPresent:!0,initial:n?void 0:!1,presenceAffectsLayout:r,mode:o},y)));f=[...f];const T=d.current.map(ct),P=u.map(ct),x=T.length;for(let y=0;y{if(P.indexOf(y)!==-1)return;const v=p.get(y);if(!v)return;const S=T.indexOf(y),w=()=>{p.delete(y),h.delete(y);const D=d.current.findIndex(N=>N.key===y);if(d.current.splice(D,1),!h.size){if(d.current=u,l.current===!1)return;a(),s&&s()}};f.splice(S,0,m.createElement(be,{key:ct(v),isPresent:!1,onExitComplete:w,custom:e,presenceAffectsLayout:r,mode:o},v))}),f=f.map(y=>{const v=y.key;return h.has(v)?y:m.createElement(be,{key:ct(y),isPresent:!0,presenceAffectsLayout:r,mode:o},y)}),m.createElement(m.Fragment,null,h.size?f:f.map(y=>m.cloneElement(y)))};var _l={initial:t=>{const{position:e}=t,n=["top","bottom"].includes(e)?"y":"x";let s=["top-right","bottom-right"].includes(e)?1:-1;return e==="bottom"&&(s=1),{opacity:0,[n]:s*24}},animate:{opacity:1,y:0,x:0,scale:1,transition:{duration:.4,ease:[.4,0,.2,1]}},exit:{opacity:0,scale:.85,transition:{duration:.2,ease:[.4,0,1,1]}}},$i=m.memo(t=>{const{id:e,message:n,onCloseComplete:s,onRequestRemove:i,requestClose:r=!1,position:o="bottom",duration:a=5e3,containerStyle:c,motionVariants:l=_l,toastSpacing:u="0.5rem"}=t,[f,h]=m.useState(a),d=Dc();vn(()=>{d||s==null||s()},[d]),vn(()=>{h(a)},[a]);const p=()=>h(null),g=()=>h(a),T=()=>{d&&i()};m.useEffect(()=>{d&&r&&i()},[d,r,i]),xo(T,f);const P=m.useMemo(()=>({pointerEvents:"auto",maxWidth:560,minWidth:300,margin:u,...c}),[c,u]),x=m.useMemo(()=>go(o),[o]);return C.jsx(Ll.li,{layout:!0,className:"chakra-toast",variants:l,initial:"initial",animate:"animate",exit:"exit",onHoverStart:p,onHoverEnd:g,custom:{position:o},style:x,children:C.jsx(G.div,{role:"status","aria-atomic":"true",className:"chakra-toast__inner",__css:P,children:Te(n,{id:e,onClose:T})})})});$i.displayName="ToastComponent";function zl(t,e){var n;const s=t??"bottom",r={"top-start":{ltr:"top-left",rtl:"top-right"},"top-end":{ltr:"top-right",rtl:"top-left"},"bottom-start":{ltr:"bottom-left",rtl:"bottom-right"},"bottom-end":{ltr:"bottom-right",rtl:"bottom-left"}}[s];return(n=r==null?void 0:r[e])!=null?n:s}var Ps={path:C.jsxs("g",{stroke:"currentColor",strokeWidth:"1.5",children:[C.jsx("path",{strokeLinecap:"round",fill:"none",d:"M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"}),C.jsx("path",{fill:"currentColor",strokeLinecap:"round",d:"M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"}),C.jsx("circle",{fill:"none",strokeMiterlimit:"10",cx:"12",cy:"12",r:"11.25"})]}),viewBox:"0 0 24 24"},kt=Mt((t,e)=>{const{as:n,viewBox:s,color:i="currentColor",focusable:r=!1,children:o,className:a,__css:c,...l}=t,u=Dt("chakra-icon",a),f=As("Icon",t),h={w:"1em",h:"1em",display:"inline-block",lineHeight:"1em",flexShrink:0,color:i,...c,...f},d={ref:e,focusable:r,className:u,__css:h},p=s??Ps.viewBox;if(n&&typeof n!="string")return C.jsx(G.svg,{as:n,...d,...l});const g=o??Ps.path;return C.jsx(G.svg,{verticalAlign:"middle",viewBox:p,...d,...l,children:g})});kt.displayName="Icon";function $l(t){return C.jsx(kt,{viewBox:"0 0 24 24",...t,children:C.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z"})})}function Hl(t){return C.jsx(kt,{viewBox:"0 0 24 24",...t,children:C.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z"})})}function bs(t){return C.jsx(kt,{viewBox:"0 0 24 24",...t,children:C.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})}var[Wl,Gl]=Rt({name:"AlertContext",hookName:"useAlertContext",providerName:""}),[Kl,gn]=Rt({name:"AlertStylesContext",hookName:"useAlertStyles",providerName:""}),Hi={info:{icon:Hl,colorScheme:"blue"},warning:{icon:bs,colorScheme:"orange"},success:{icon:$l,colorScheme:"green"},error:{icon:bs,colorScheme:"red"},loading:{icon:Qi,colorScheme:"blue"}};function Zl(t){return Hi[t].colorScheme}function ql(t){return Hi[t].icon}var Wi=Mt(function(e,n){const i={display:"inline",...gn().description};return C.jsx(G.div,{ref:n,...e,className:Dt("chakra-alert__desc",e.className),__css:i})});Wi.displayName="AlertDescription";function Gi(t){const{status:e}=Gl(),n=ql(e),s=gn(),i=e==="loading"?s.spinner:s.icon;return C.jsx(G.span,{display:"inherit",...t,className:Dt("chakra-alert__icon",t.className),__css:i,children:t.children||C.jsx(n,{h:"100%",w:"100%"})})}Gi.displayName="AlertIcon";var Ki=Mt(function(e,n){const s=gn();return C.jsx(G.div,{ref:n,...e,className:Dt("chakra-alert__title",e.className),__css:s.title})});Ki.displayName="AlertTitle";var Zi=Mt(function(e,n){var s;const{status:i="info",addRole:r=!0,...o}=Vs(e),a=(s=e.colorScheme)!=null?s:Zl(i),c=to("Alert",{...e,colorScheme:a}),l={width:"100%",display:"flex",alignItems:"center",position:"relative",overflow:"hidden",...c.container};return C.jsx(Wl,{value:{status:i},children:C.jsx(Kl,{value:c,children:C.jsx(G.div,{role:r?"alert":void 0,ref:n,...o,className:Dt("chakra-alert",e.className),__css:l})})})});Zi.displayName="Alert";function Xl(t){return C.jsx(kt,{focusable:"false","aria-hidden":!0,...t,children:C.jsx("path",{fill:"currentColor",d:"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z"})})}var qi=Mt(function(e,n){const s=As("CloseButton",e),{children:i,isDisabled:r,__css:o,...a}=Vs(e),c={outline:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};return C.jsx(G.button,{type:"button","aria-label":"Close",ref:n,disabled:r,__css:{...c,...s,...o},...a,children:i||C.jsx(Xl,{width:"1em",height:"1em"})})});qi.displayName="CloseButton";var Yl={top:[],"top-left":[],"top-right":[],"bottom-left":[],bottom:[],"bottom-right":[]},_=Jl(Yl);function Jl(t){let e=t;const n=new Set,s=i=>{e=i(e),n.forEach(r=>r())};return{getState:()=>e,subscribe:i=>(n.add(i),()=>{s(()=>t),n.delete(i)}),removeToast:(i,r)=>{s(o=>({...o,[r]:o[r].filter(a=>a.id!=i)}))},notify:(i,r)=>{const o=Ql(i,r),{position:a,id:c}=o;return s(l=>{var u,f;const d=a.includes("top")?[o,...(u=l[a])!=null?u:[]]:[...(f=l[a])!=null?f:[],o];return{...l,[a]:d}}),c},update:(i,r)=>{i&&s(o=>{const a={...o},{position:c,index:l}=yn(a,i);return c&&l!==-1&&(a[c][l]={...a[c][l],...r,message:Xi(r)}),a})},closeAll:({positions:i}={})=>{s(r=>(i??["bottom","bottom-right","bottom-left","top","top-left","top-right"]).reduce((c,l)=>(c[l]=r[l].map(u=>({...u,requestClose:!0})),c),{...r}))},close:i=>{s(r=>{const o=Ds(r,i);return o?{...r,[o]:r[o].map(a=>a.id==i?{...a,requestClose:!0}:a)}:r})},isActive:i=>Boolean(yn(_.getState(),i).position)}}var Ts=0;function Ql(t,e={}){var n,s;Ts+=1;const i=(n=e.id)!=null?n:Ts,r=(s=e.position)!=null?s:"bottom";return{id:i,message:t,position:r,duration:e.duration,onCloseComplete:e.onCloseComplete,onRequestRemove:()=>_.removeToast(String(i),r),status:e.status,requestClose:!1,containerStyle:e.containerStyle}}var tu=t=>{const{status:e,variant:n="solid",id:s,title:i,isClosable:r,onClose:o,description:a,icon:c}=t,l=s?{root:`toast-${s}`,title:`toast-${s}-title`,description:`toast-${s}-description`}:void 0;return C.jsxs(Zi,{addRole:!1,status:e,variant:n,id:l==null?void 0:l.root,alignItems:"start",borderRadius:"md",boxShadow:"lg",paddingEnd:8,textAlign:"start",width:"auto",children:[C.jsx(Gi,{children:c}),C.jsxs(G.div,{flex:"1",maxWidth:"100%",children:[i&&C.jsx(Ki,{id:l==null?void 0:l.title,children:i}),a&&C.jsx(Wi,{id:l==null?void 0:l.description,display:"block",children:a})]}),r&&C.jsx(qi,{size:"sm",onClick:o,position:"absolute",insetEnd:1,top:1})]})};function Xi(t={}){const{render:e,toastComponent:n=tu}=t;return i=>typeof e=="function"?e({...i,...t}):C.jsx(n,{...i,...t})}function su(t,e){const n=i=>{var r;return{...e,...i,position:zl((r=i==null?void 0:i.position)!=null?r:e==null?void 0:e.position,t)}},s=i=>{const r=n(i),o=Xi(r);return _.notify(o,r)};return s.update=(i,r)=>{_.update(i,n(r))},s.promise=(i,r)=>{const o=s({...r.loading,status:"loading",duration:null});i.then(a=>s.update(o,{status:"success",duration:5e3,...Te(r.success,a)})).catch(a=>s.update(o,{status:"error",duration:5e3,...Te(r.error,a)}))},s.closeAll=_.closeAll,s.close=_.close,s.isActive=_.isActive,s}var[iu,ou]=Rt({name:"ToastOptionsContext",strict:!1}),ru=t=>{const e=m.useSyncExternalStore(_.subscribe,_.getState,_.getState),{motionVariants:n,component:s=$i,portalProps:i}=t,o=Object.keys(e).map(a=>{const c=e[a];return C.jsx("ul",{role:"region","aria-live":"polite",id:`chakra-toast-manager-${a}`,style:yo(a),children:C.jsx(Ul,{initial:!1,children:c.map(l=>C.jsx(s,{motionVariants:n,...l},l.id))})},a)});return C.jsx(Jt,{...i,children:o})};const au=io,cu=eo;export{Ul as A,qi as C,kt as I,Jt as P,iu as T,Rt as a,vo as b,su as c,Ce as d,vn as e,Mc as f,au as g,cu as h,co as i,ru as j,Ll as m,ou as u}; diff --git a/invokeai/frontend/web/dist/index.html b/invokeai/frontend/web/dist/index.html index a02ffb1bc9..a412552051 100644 --- a/invokeai/frontend/web/dist/index.html +++ b/invokeai/frontend/web/dist/index.html @@ -12,8 +12,7 @@ margin: 0; } - - + diff --git a/invokeai/frontend/web/dist/locales/de.json b/invokeai/frontend/web/dist/locales/de.json index deeef34194..cff09d46bb 100644 --- a/invokeai/frontend/web/dist/locales/de.json +++ b/invokeai/frontend/web/dist/locales/de.json @@ -18,7 +18,7 @@ "training": "Training", "trainingDesc1": "Ein spezieller Arbeitsablauf zum Trainieren Ihrer eigenen Embeddings und Checkpoints mit Textual Inversion und Dreambooth über die Weboberfläche.", "trainingDesc2": "InvokeAI unterstützt bereits das Training von benutzerdefinierten Embeddings mit Textual Inversion unter Verwendung des Hauptskripts.", - "upload": "Upload", + "upload": "Hochladen", "close": "Schließen", "load": "Laden", "statusConnected": "Verbunden", @@ -41,12 +41,34 @@ "statusUpscaling": "Hochskalierung", "statusUpscalingESRGAN": "Hochskalierung (ESRGAN)", "statusLoadingModel": "Laden des Modells", - "statusModelChanged": "Modell Geändert" + "statusModelChanged": "Modell Geändert", + "cancel": "Abbruch", + "accept": "Annehmen", + "back": "Zurück", + "langEnglish": "Englisch", + "langDutch": "Niederländisch", + "langFrench": "Französisch", + "oceanTheme": "Ozean", + "langItalian": "Italienisch", + "langPortuguese": "Portogisisch", + "langRussian": "Russisch", + "langUkranian": "Ukrainisch", + "hotkeysLabel": "Tastenkombinationen", + "githubLabel": "Github", + "discordLabel": "Discord", + "txt2img": "Text zu Bild", + "postprocessing": "Nachbearbeitung", + "langPolish": "Polnisch", + "langJapanese": "Japanisch", + "langArabic": "Arabisch", + "langKorean": "Koreanisch", + "langHebrew": "Hebräisch", + "langSpanish": "Spanisch" }, "gallery": { "generations": "Erzeugungen", "showGenerations": "Zeige Erzeugnisse", - "uploads": "Uploads", + "uploads": "Hochgelades", "showUploads": "Zeige Uploads", "galleryImageSize": "Bildgröße", "galleryImageResetSize": "Größe zurücksetzen", @@ -312,7 +334,11 @@ "deleteModel": "Model löschen", "deleteConfig": "Konfiguration löschen", "deleteMsg1": "Möchten Sie diesen Model-Eintrag wirklich aus InvokeAI löschen?", - "deleteMsg2": "Dadurch wird die Modellprüfpunktdatei nicht von Ihrer Festplatte gelöscht. Sie können sie bei Bedarf erneut hinzufügen." + "deleteMsg2": "Dadurch wird die Modellprüfpunktdatei nicht von Ihrer Festplatte gelöscht. Sie können sie bei Bedarf erneut hinzufügen.", + "customConfig": "Benutzerdefinierte Konfiguration", + "invokeRoot": "InvokeAI Ordner", + "formMessageDiffusersVAELocationDesc": "Falls nicht angegeben, sucht InvokeAI nach der VAE-Datei innerhalb des oben angegebenen Modell Speicherortes.", + "checkpointModels": "Kontrollpunkte" }, "parameters": { "images": "Bilder", @@ -370,7 +396,10 @@ "useInitImg": "Ausgangsbild verwenden", "deleteImage": "Bild löschen", "initialImage": "Ursprüngliches Bild", - "showOptionsPanel": "Optionsleiste zeigen" + "showOptionsPanel": "Optionsleiste zeigen", + "cancel": { + "setType": "Abbruchart festlegen" + } }, "settings": { "displayInProgress": "Bilder in Bearbeitung anzeigen", @@ -489,5 +518,25 @@ "betaDarkenOutside": "Außen abdunkeln", "betaLimitToBox": "Begrenzung auf das Feld", "betaPreserveMasked": "Maskiertes bewahren" + }, + "accessibility": { + "modelSelect": "Model Auswahl", + "uploadImage": "Bild hochladen", + "previousImage": "Voriges Bild", + "useThisParameter": "Benutze diesen Parameter", + "copyMetadataJson": "Kopiere metadata JSON", + "zoomIn": "Vergrößern", + "rotateClockwise": "Im Uhrzeigersinn drehen", + "flipHorizontally": "Horizontal drehen", + "flipVertically": "Vertikal drehen", + "modifyConfig": "Optionen einstellen", + "toggleAutoscroll": "Auroscroll ein/ausschalten", + "toggleLogViewer": "Log Betrachter ein/ausschalten", + "showGallery": "Zeige Galerie", + "showOptionsPanel": "Zeige Optionen", + "reset": "Zurücksetzen", + "nextImage": "Nächstes Bild", + "zoomOut": "Verkleinern", + "rotateCounterClockwise": "Gegen den Uhrzeigersinn verdrehen" } } diff --git a/invokeai/frontend/web/dist/locales/en.json b/invokeai/frontend/web/dist/locales/en.json index a99f54d741..3592e141d0 100644 --- a/invokeai/frontend/web/dist/locales/en.json +++ b/invokeai/frontend/web/dist/locales/en.json @@ -8,7 +8,7 @@ "nextImage": "Next Image", "useThisParameter": "Use this parameter", "copyMetadataJson": "Copy metadata JSON", - "exitViewer": "ExitViewer", + "exitViewer": "Exit Viewer", "zoomIn": "Zoom In", "zoomOut": "Zoom Out", "rotateCounterClockwise": "Rotate Counter-Clockwise", @@ -19,12 +19,13 @@ "toggleAutoscroll": "Toggle autoscroll", "toggleLogViewer": "Toggle Log Viewer", "showGallery": "Show Gallery", - "showOptionsPanel": "Show Options Panel" + "showOptionsPanel": "Show Options Panel", + "menu": "Menu" }, "common": { "hotkeysLabel": "Hotkeys", "themeLabel": "Theme", - "languagePickerLabel": "Language Picker", + "languagePickerLabel": "Language", "reportBugLabel": "Report Bug", "githubLabel": "Github", "discordLabel": "Discord", @@ -52,7 +53,8 @@ "txt2img": "Text To Image", "img2img": "Image To Image", "unifiedCanvas": "Unified Canvas", - "nodes": "Nodes", + "linear": "Linear", + "nodes": "Node Editor", "postprocessing": "Post Processing", "nodesDesc": "A node based system for the generation of images is under development currently. Stay tuned for updates about this amazing feature.", "postProcessing": "Post Processing", @@ -61,7 +63,7 @@ "postProcessDesc3": "The Invoke AI Command Line Interface offers various other features including Embiggen.", "training": "Training", "trainingDesc1": "A dedicated workflow for training your own embeddings and checkpoints using Textual Inversion and Dreambooth from the web interface.", - "trainingDesc2": "InvokeAI already supports training custom embeddings using Textual Inversion using the main script.", + "trainingDesc2": "InvokeAI already supports training custom embeddourings using Textual Inversion using the main script.", "upload": "Upload", "close": "Close", "cancel": "Cancel", @@ -95,7 +97,13 @@ "statusMergedModels": "Models Merged", "pinOptionsPanel": "Pin Options Panel", "loading": "Loading", - "loadingInvokeAI": "Loading Invoke AI" + "loadingInvokeAI": "Loading Invoke AI", + "random": "Random", + "generate": "Generate", + "openInNewTab": "Open in New Tab", + "dontAskMeAgain": "Don't ask me again", + "areYouSure": "Are you sure?", + "imagePrompt": "Image Prompt" }, "gallery": { "generations": "Generations", @@ -111,7 +119,10 @@ "pinGallery": "Pin Gallery", "allImagesLoaded": "All Images Loaded", "loadMore": "Load More", - "noImagesInGallery": "No Images In Gallery" + "noImagesInGallery": "No Images In Gallery", + "deleteImage": "Delete Image", + "deleteImageBin": "Deleted images will be sent to your operating system's Bin.", + "deleteImagePermanent": "Deleted images cannot be restored." }, "hotkeys": { "keyboardShortcuts": "Keyboard Shortcuts", @@ -443,9 +454,10 @@ "seed": "Seed", "imageToImage": "Image to Image", "randomizeSeed": "Randomize Seed", - "shuffle": "Shuffle", + "shuffle": "Shuffle Seed", "noiseThreshold": "Noise Threshold", "perlinNoise": "Perlin Noise", + "noiseSettings": "Noise", "variations": "Variations", "variationAmount": "Variation Amount", "seedWeights": "Seed Weights", @@ -460,6 +472,8 @@ "scale": "Scale", "otherOptions": "Other Options", "seamlessTiling": "Seamless Tiling", + "seamlessXAxis": "X Axis", + "seamlessYAxis": "Y Axis", "hiresOptim": "High Res Optimization", "hiresStrength": "High Res Strength", "imageFit": "Fit Initial Image To Output Size", @@ -503,7 +517,6 @@ "useAll": "Use All", "useInitImg": "Use Initial Image", "info": "Info", - "deleteImage": "Delete Image", "initialImage": "Initial Image", "showOptionsPanel": "Show Options Panel", "hidePreview": "Hide Preview", @@ -518,12 +531,22 @@ "useCanvasBeta": "Use Canvas Beta Layout", "enableImageDebugging": "Enable Image Debugging", "useSlidersForAll": "Use Sliders For All Options", + "showProgressInViewer": "Show Progress Images in Viewer", + "antialiasProgressImages": "Antialias Progress Images", "resetWebUI": "Reset Web UI", "resetWebUIDesc1": "Resetting the web UI only resets the browser's local cache of your images and remembered settings. It does not delete any images from disk.", "resetWebUIDesc2": "If images aren't showing up in the gallery or something else isn't working, please try resetting before submitting an issue on GitHub.", - "resetComplete": "Web UI has been reset. Refresh the page to reload." + "resetComplete": "Web UI has been reset. Refresh the page to reload.", + "consoleLogLevel": "Log Level", + "shouldLogToConsole": "Console Logging", + "developer": "Developer", + "general": "General" }, "toast": { + "serverError": "Server Error", + "disconnected": "Disconnected from Server", + "connected": "Connected to Server", + "canceled": "Processing Canceled", "tempFoldersEmptied": "Temp Folder Emptied", "uploadFailed": "Upload failed", "uploadFailedMultipleImagesDesc": "Multiple images pasted, may only upload one image at a time", @@ -531,8 +554,9 @@ "downloadImageStarted": "Image Download Started", "imageCopied": "Image Copied", "imageLinkCopied": "Image Link Copied", + "problemCopyingImageLink": "Unable to Copy Image Link", "imageNotLoaded": "No Image Loaded", - "imageNotLoadedDesc": "No image found to send to image to image module", + "imageNotLoadedDesc": "Could not find image", "imageSavedToGallery": "Image Saved to Gallery", "canvasMerged": "Canvas Merged", "sentToImageToImage": "Sent To Image To Image", @@ -627,6 +651,11 @@ "betaClear": "Clear", "betaDarkenOutside": "Darken Outside", "betaLimitToBox": "Limit To Box", - "betaPreserveMasked": "Preserve Masked" + "betaPreserveMasked": "Preserve Masked", + "antialiasing": "Antialiasing" + }, + "ui": { + "showProgressImages": "Show Progress Images", + "hideProgressImages": "Hide Progress Images" } } diff --git a/invokeai/frontend/web/dist/locales/es.json b/invokeai/frontend/web/dist/locales/es.json index 9c2b6bf983..d17cefaad2 100644 --- a/invokeai/frontend/web/dist/locales/es.json +++ b/invokeai/frontend/web/dist/locales/es.json @@ -73,7 +73,8 @@ "postprocessing": "Tratamiento posterior", "txt2img": "De texto a imagen", "accept": "Aceptar", - "cancel": "Cancelar" + "cancel": "Cancelar", + "linear": "Lineal" }, "gallery": { "generations": "Generaciones", @@ -483,7 +484,9 @@ "negativePrompts": "Preguntas negativas", "imageToImage": "Imagen a imagen", "denoisingStrength": "Intensidad de la eliminación del ruido", - "hiresStrength": "Alta resistencia" + "hiresStrength": "Alta resistencia", + "showPreview": "Mostrar la vista previa", + "hidePreview": "Ocultar la vista previa" }, "settings": { "models": "Modelos", @@ -529,7 +532,11 @@ "metadataLoadFailed": "Error al cargar metadatos", "initialImageSet": "Imágen inicial establecida", "initialImageNotSet": "Imagen inicial no establecida", - "initialImageNotSetDesc": "Error al establecer la imágen inicial" + "initialImageNotSetDesc": "Error al establecer la imágen inicial", + "serverError": "Error en el servidor", + "disconnected": "Desconectado del servidor", + "canceled": "Procesando la cancelación", + "connected": "Conectado al servidor" }, "tooltip": { "feature": { @@ -625,6 +632,7 @@ "toggleAutoscroll": "Activar el autodesplazamiento", "toggleLogViewer": "Alternar el visor de registros", "showGallery": "Mostrar galería", - "showOptionsPanel": "Mostrar el panel de opciones" + "showOptionsPanel": "Mostrar el panel de opciones", + "menu": "Menú" } } diff --git a/invokeai/frontend/web/dist/locales/it.json b/invokeai/frontend/web/dist/locales/it.json index 7df34173df..4ac5b6831d 100644 --- a/invokeai/frontend/web/dist/locales/it.json +++ b/invokeai/frontend/web/dist/locales/it.json @@ -73,7 +73,8 @@ "postprocessing": "Post Elaborazione", "txt2img": "Testo a Immagine", "accept": "Accetta", - "cancel": "Annulla" + "cancel": "Annulla", + "linear": "Lineare" }, "gallery": { "generations": "Generazioni", @@ -483,7 +484,9 @@ }, "hSymmetryStep": "Passi Simmetria Orizzontale", "vSymmetryStep": "Passi Simmetria Verticale", - "symmetry": "Simmetria" + "symmetry": "Simmetria", + "hidePreview": "Nascondi l'anteprima", + "showPreview": "Mostra l'anteprima" }, "settings": { "models": "Modelli", @@ -529,7 +532,11 @@ "metadataLoadFailed": "Impossibile caricare i metadati", "initialImageSet": "Immagine iniziale impostata", "initialImageNotSet": "Immagine iniziale non impostata", - "initialImageNotSetDesc": "Impossibile caricare l'immagine iniziale" + "initialImageNotSetDesc": "Impossibile caricare l'immagine iniziale", + "serverError": "Errore del Server", + "disconnected": "Disconnesso dal Server", + "connected": "Connesso al Server", + "canceled": "Elaborazione annullata" }, "tooltip": { "feature": { @@ -625,6 +632,7 @@ "showOptionsPanel": "Mostra il pannello opzioni", "flipVertically": "Capovolgi verticalmente", "toggleAutoscroll": "Attiva/disattiva lo scorrimento automatico", - "modifyConfig": "Modifica configurazione" + "modifyConfig": "Modifica configurazione", + "menu": "Menu" } } diff --git a/invokeai/frontend/web/dist/locales/ja.json b/invokeai/frontend/web/dist/locales/ja.json index 542cffbb74..007aa9b491 100644 --- a/invokeai/frontend/web/dist/locales/ja.json +++ b/invokeai/frontend/web/dist/locales/ja.json @@ -37,7 +37,43 @@ "statusUpscaling": "アップスケーリング", "statusUpscalingESRGAN": "アップスケーリング (ESRGAN)", "statusLoadingModel": "モデルを読み込む", - "statusModelChanged": "モデルを変更" + "statusModelChanged": "モデルを変更", + "cancel": "キャンセル", + "accept": "同意", + "langBrPortuguese": "Português do Brasil", + "langRussian": "Русский", + "langSimplifiedChinese": "简体中文", + "langUkranian": "Украї́нська", + "langSpanish": "Español", + "img2img": "img2img", + "unifiedCanvas": "Unified Canvas", + "statusMergingModels": "モデルのマージ", + "statusModelConverted": "変換済モデル", + "statusGeneratingInpainting": "Inpaintingを生成", + "statusIterationComplete": "Iteration Complete", + "statusGeneratingOutpainting": "Outpaintingを生成", + "loading": "ロード中", + "loadingInvokeAI": "Invoke AIをロード中", + "statusConvertingModel": "モデルの変換", + "statusMergedModels": "マージ済モデル", + "pinOptionsPanel": "オプションパネルを固定", + "githubLabel": "Github", + "hotkeysLabel": "ホットキー", + "langHebrew": "עברית", + "discordLabel": "Discord", + "langItalian": "Italiano", + "langEnglish": "English", + "oceanTheme": "オーシャン", + "langArabic": "アラビア語", + "langDutch": "Nederlands", + "langFrench": "Français", + "langGerman": "Deutsch", + "langPortuguese": "Português", + "nodes": "ノード", + "langKorean": "한국어", + "langPolish": "Polski", + "txt2img": "txt2img", + "postprocessing": "Post Processing" }, "gallery": { "uploads": "アップロード", @@ -46,11 +82,14 @@ "galleryImageResetSize": "サイズをリセット", "gallerySettings": "ギャラリーの設定", "maintainAspectRatio": "アスペクト比を維持", - "singleColumnLayout": "シングルカラムレイアウト", + "singleColumnLayout": "1カラムレイアウト", "pinGallery": "ギャラリーにピン留め", "allImagesLoaded": "すべての画像を読み込む", "loadMore": "さらに読み込む", - "noImagesInGallery": "ギャラリーに画像がありません" + "noImagesInGallery": "ギャラリーに画像がありません", + "generations": "生成", + "showGenerations": "生成過程を見る", + "autoSwitchNewImages": "新しい画像に自動切替" }, "hotkeys": { "keyboardShortcuts": "キーボードショートカット", @@ -59,14 +98,16 @@ "galleryHotkeys": "ギャラリーのホットキー", "unifiedCanvasHotkeys": "Unified Canvasのホットキー", "invoke": { - "desc": "画像を生成" + "desc": "画像を生成", + "title": "Invoke" }, "cancel": { "title": "キャンセル", "desc": "画像の生成をキャンセル" }, "focusPrompt": { - "desc": "プロンプトテキストボックスにフォーカス" + "desc": "プロンプトテキストボックスにフォーカス", + "title": "プロジェクトにフォーカス" }, "toggleOptions": { "title": "オプションパネルのトグル", @@ -410,5 +451,27 @@ "accept": "同意", "showHide": "表示/非表示", "discardAll": "すべて破棄" + }, + "accessibility": { + "modelSelect": "モデルを選択", + "invokeProgressBar": "進捗バー", + "reset": "リセット", + "uploadImage": "画像をアップロード", + "previousImage": "前の画像", + "nextImage": "次の画像", + "useThisParameter": "このパラメータを使用する", + "copyMetadataJson": "メタデータをコピー(JSON)", + "zoomIn": "ズームイン", + "exitViewer": "ExitViewer", + "zoomOut": "ズームアウト", + "rotateCounterClockwise": "反時計回りに回転", + "rotateClockwise": "時計回りに回転", + "flipHorizontally": "水平方向に反転", + "flipVertically": "垂直方向に反転", + "toggleAutoscroll": "自動スクロールの切替", + "modifyConfig": "Modify Config", + "toggleLogViewer": "Log Viewerの切替", + "showGallery": "ギャラリーを表示", + "showOptionsPanel": "オプションパネルを表示" } } diff --git a/invokeai/frontend/web/dist/locales/nl.json b/invokeai/frontend/web/dist/locales/nl.json index 70b836dbc1..230e3b5b64 100644 --- a/invokeai/frontend/web/dist/locales/nl.json +++ b/invokeai/frontend/web/dist/locales/nl.json @@ -62,7 +62,18 @@ "statusConvertingModel": "Omzetten van model", "statusModelConverted": "Model omgezet", "statusMergingModels": "Samenvoegen van modellen", - "statusMergedModels": "Modellen samengevoegd" + "statusMergedModels": "Modellen samengevoegd", + "cancel": "Annuleer", + "accept": "Akkoord", + "langPortuguese": "Português", + "pinOptionsPanel": "Zet deelscherm Opties vast", + "loading": "Bezig met laden", + "loadingInvokeAI": "Bezig met laden van Invoke AI", + "oceanTheme": "Oceaan", + "langHebrew": "עברית", + "langKorean": "한국어", + "txt2img": "Tekst naar afbeelding", + "postprocessing": "Nabewerking" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -301,7 +312,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -391,7 +402,13 @@ "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", "inverseSigmoid": "Keer Sigmoid om", "sigmoid": "Sigmoid", - "weightedSum": "Gewogen som" + "weightedSum": "Gewogen som", + "v2_base": "v2 (512px)", + "v2_768": "v2 (768px)", + "none": "geen", + "addDifference": "Voeg verschil toe", + "scanForModels": "Scan naar modellen", + "pickModelType": "Kies modelsoort" }, "parameters": { "images": "Afbeeldingen", @@ -561,7 +578,7 @@ "autoSaveToGallery": "Bewaar automatisch naar galerij", "saveBoxRegionOnly": "Bewaar alleen tekengebied", "limitStrokesToBox": "Beperk streken tot tekenvak", - "showCanvasDebugInfo": "Toon foutopsporingsgegevens canvas", + "showCanvasDebugInfo": "Toon aanvullende canvasgegevens", "clearCanvasHistory": "Wis canvasgeschiedenis", "clearHistory": "Wis geschiedenis", "clearCanvasHistoryMessage": "Het wissen van de canvasgeschiedenis laat het huidige canvas ongemoeid, maar wist onherstelbaar de geschiedenis voor het ongedaan maken en herhalen.", @@ -587,5 +604,27 @@ "betaDarkenOutside": "Verduister buiten tekenvak", "betaLimitToBox": "Beperk tot tekenvak", "betaPreserveMasked": "Behoud masker" + }, + "accessibility": { + "exitViewer": "Stop viewer", + "zoomIn": "Zoom in", + "rotateCounterClockwise": "Draai tegen de klok in", + "modelSelect": "Modelkeuze", + "invokeProgressBar": "Voortgangsbalk Invoke", + "reset": "Herstel", + "uploadImage": "Upload afbeelding", + "previousImage": "Vorige afbeelding", + "nextImage": "Volgende afbeelding", + "useThisParameter": "Gebruik deze parameter", + "copyMetadataJson": "Kopieer metagegevens-JSON", + "zoomOut": "Zoom uit", + "rotateClockwise": "Draai met de klok mee", + "flipHorizontally": "Spiegel horizontaal", + "flipVertically": "Spiegel verticaal", + "modifyConfig": "Wijzig configuratie", + "toggleAutoscroll": "Autom. scrollen aan/uit", + "toggleLogViewer": "Logboekviewer aan/uit", + "showGallery": "Toon galerij", + "showOptionsPanel": "Toon deelscherm Opties" } } diff --git a/invokeai/frontend/web/dist/locales/ru.json b/invokeai/frontend/web/dist/locales/ru.json index 0280341dee..822389d78a 100644 --- a/invokeai/frontend/web/dist/locales/ru.json +++ b/invokeai/frontend/web/dist/locales/ru.json @@ -9,7 +9,7 @@ "lightTheme": "Светлая", "greenTheme": "Зеленая", "img2img": "Изображение в изображение (img2img)", - "unifiedCanvas": "Универсальный холст", + "unifiedCanvas": "Единый холст", "nodes": "Ноды", "langRussian": "Русский", "nodesDesc": "Cистема генерации изображений на основе нодов (узлов) уже разрабатывается. Следите за новостями об этой замечательной функции.", @@ -53,7 +53,28 @@ "loading": "Загрузка", "loadingInvokeAI": "Загрузка Invoke AI", "back": "Назад", - "statusConvertingModel": "Конвертация модели" + "statusConvertingModel": "Конвертация модели", + "cancel": "Отменить", + "accept": "Принять", + "oceanTheme": "Океан", + "langUkranian": "Украинский", + "langEnglish": "Английский", + "postprocessing": "Постобработка", + "langArabic": "Арабский", + "langSpanish": "Испанский", + "langSimplifiedChinese": "Китайский (упрощенный)", + "langDutch": "Нидерландский", + "langFrench": "Французский", + "langGerman": "Немецкий", + "langHebrew": "Иврит", + "langItalian": "Итальянский", + "langJapanese": "Японский", + "langKorean": "Корейский", + "langPolish": "Польский", + "langPortuguese": "Португальский", + "txt2img": "Текст в изображение (txt2img)", + "langBrPortuguese": "Португальский (Бразилия)", + "linear": "Линейная обработка" }, "gallery": { "generations": "Генерации", @@ -72,11 +93,11 @@ "noImagesInGallery": "Изображений нет" }, "hotkeys": { - "keyboardShortcuts": "Клавиатурные сокращения", + "keyboardShortcuts": "Горячие клавиши", "appHotkeys": "Горячие клавиши приложения", "generalHotkeys": "Общие горячие клавиши", "galleryHotkeys": "Горячие клавиши галереи", - "unifiedCanvasHotkeys": "Горячие клавиши универсального холста", + "unifiedCanvasHotkeys": "Горячие клавиши Единого холста", "invoke": { "title": "Invoke", "desc": "Сгенерировать изображение" @@ -266,12 +287,12 @@ "desc": "Сбросить вид холста" }, "previousStagingImage": { - "title": "Previous Staging Image", - "desc": "Предыдущее изображение" + "title": "Предыдущее изображение", + "desc": "Предыдущая область изображения" }, "nextStagingImage": { - "title": "Next Staging Image", - "desc": "Следующее изображение" + "title": "Следующее изображение", + "desc": "Следующая область изображения" }, "acceptStagingImage": { "title": "Принять изображение", @@ -353,7 +374,42 @@ "modelConverted": "Модель преобразована", "invokeRoot": "Каталог InvokeAI", "modelsMerged": "Модели объединены", - "mergeModels": "Объединить модели" + "mergeModels": "Объединить модели", + "scanForModels": "Просканировать модели", + "sigmoid": "Сигмоид", + "formMessageDiffusersModelLocation": "Расположение Diffusers-модели", + "modelThree": "Модель 3", + "modelMergeHeaderHelp2": "Только Diffusers-модели доступны для объединения. Если вы хотите объединить checkpoint-модели, сначала преобразуйте их в Diffusers.", + "pickModelType": "Выбрать тип модели", + "formMessageDiffusersVAELocation": "Расположение VAE", + "v1": "v1", + "convertToDiffusersSaveLocation": "Путь сохранения", + "customSaveLocation": "Пользовательский путь сохранения", + "alpha": "Альфа", + "diffusersModels": "Diffusers", + "customConfig": "Пользовательский конфиг", + "pathToCustomConfig": "Путь к пользовательскому конфигу", + "inpainting": "v1 Inpainting", + "sameFolder": "В ту же папку", + "modelOne": "Модель 1", + "mergedModelCustomSaveLocation": "Пользовательский путь", + "none": "пусто", + "addDifference": "Добавить разницу", + "vaeRepoIDValidationMsg": "Онлайн репозиторий VAE", + "convertToDiffusersHelpText2": "Этот процесс заменит вашу запись в Model Manager на версию той же модели в Diffusers.", + "custom": "Пользовательский", + "modelTwo": "Модель 2", + "mergedModelSaveLocation": "Путь сохранения", + "merge": "Объединить", + "interpolationType": "Тип интерполяции", + "modelMergeInterpAddDifferenceHelp": "В этом режиме Модель 3 сначала вычитается из Модели 2. Результирующая версия смешивается с Моделью 1 с установленным выше коэффициентом Альфа.", + "modelMergeHeaderHelp1": "Вы можете объединить до трех разных моделей, чтобы создать смешанную, соответствующую вашим потребностям.", + "modelMergeAlphaHelp": "Альфа влияет на силу смешивания моделей. Более низкие значения альфа приводят к меньшему влиянию второй модели.", + "inverseSigmoid": "Обратный Сигмоид", + "weightedSum": "Взвешенная сумма", + "safetensorModels": "SafeTensors", + "v2_768": "v2 (768px)", + "v2_base": "v2 (512px)" }, "parameters": { "images": "Изображения", @@ -380,7 +436,7 @@ "scale": "Масштаб", "otherOptions": "Другие параметры", "seamlessTiling": "Бесшовный узор", - "hiresOptim": "Высокое разрешение", + "hiresOptim": "Оптимизация High Res", "imageFit": "Уместить изображение", "codeformerFidelity": "Точность", "seamSize": "Размер шва", @@ -397,11 +453,11 @@ "infillScalingHeader": "Заполнение и масштабирование", "img2imgStrength": "Сила обработки img2img", "toggleLoopback": "Зациклить обработку", - "invoke": "Вызвать", + "invoke": "Invoke", "promptPlaceholder": "Введите запрос здесь (на английском). [исключенные токены], (более значимые)++, (менее значимые)--, swap и blend тоже доступны (смотрите Github)", "sendTo": "Отправить", "sendToImg2Img": "Отправить в img2img", - "sendToUnifiedCanvas": "Отправить на холст", + "sendToUnifiedCanvas": "Отправить на Единый холст", "copyImageToLink": "Скопировать ссылку", "downloadImage": "Скачать", "openInViewer": "Открыть в просмотрщике", @@ -413,7 +469,24 @@ "info": "Метаданные", "deleteImage": "Удалить изображение", "initialImage": "Исходное изображение", - "showOptionsPanel": "Показать панель настроек" + "showOptionsPanel": "Показать панель настроек", + "vSymmetryStep": "Шаг верт. симметрии", + "cancel": { + "immediate": "Отменить немедленно", + "schedule": "Отменить после текущей итерации", + "isScheduled": "Отмена", + "setType": "Установить тип отмены" + }, + "general": "Основное", + "hiresStrength": "Сила High Res", + "symmetry": "Симметрия", + "hSymmetryStep": "Шаг гор. симметрии", + "hidePreview": "Скрыть предпросмотр", + "imageToImage": "Изображение в изображение", + "denoisingStrength": "Сила шумоподавления", + "copyImage": "Скопировать изображение", + "negativePrompts": "Исключающий запрос", + "showPreview": "Показать предпросмотр" }, "settings": { "models": "Модели", @@ -423,10 +496,11 @@ "displayHelpIcons": "Показывать значки подсказок", "useCanvasBeta": "Показывать инструменты слева (Beta UI)", "enableImageDebugging": "Включить отладку", - "resetWebUI": "Вернуть умолчания", + "resetWebUI": "Сброс настроек Web UI", "resetWebUIDesc1": "Сброс настроек веб-интерфейса удаляет только локальный кэш браузера с вашими изображениями и настройками. Он не удаляет изображения с диска.", "resetWebUIDesc2": "Если изображения не отображаются в галерее или не работает что-то еще, пожалуйста, попробуйте сбросить настройки, прежде чем сообщать о проблеме на GitHub.", - "resetComplete": "Интерфейс сброшен. Обновите эту страницу." + "resetComplete": "Интерфейс сброшен. Обновите эту страницу.", + "useSlidersForAll": "Использовать ползунки для всех параметров" }, "toast": { "tempFoldersEmptied": "Временная папка очищена", @@ -441,7 +515,7 @@ "imageSavedToGallery": "Изображение сохранено в галерею", "canvasMerged": "Холст объединен", "sentToImageToImage": "Отправить в img2img", - "sentToUnifiedCanvas": "Отправить на холст", + "sentToUnifiedCanvas": "Отправлено на Единый холст", "parametersSet": "Параметры заданы", "parametersNotSet": "Параметры не заданы", "parametersNotSetDesc": "Не найдены метаданные изображения.", @@ -458,7 +532,11 @@ "metadataLoadFailed": "Не удалось загрузить метаданные", "initialImageSet": "Исходное изображение задано", "initialImageNotSet": "Исходное изображение не задано", - "initialImageNotSetDesc": "Не получилось загрузить исходное изображение" + "initialImageNotSetDesc": "Не получилось загрузить исходное изображение", + "serverError": "Ошибка сервера", + "disconnected": "Отключено от сервера", + "connected": "Подключено к серверу", + "canceled": "Обработка отменена" }, "tooltip": { "feature": { @@ -507,7 +585,7 @@ "autoSaveToGallery": "Автосохранение в галерее", "saveBoxRegionOnly": "Сохранять только выделение", "limitStrokesToBox": "Ограничить штрихи выделением", - "showCanvasDebugInfo": "Показать отладку холста", + "showCanvasDebugInfo": "Показать доп. информацию о холсте", "clearCanvasHistory": "Очистить историю холста", "clearHistory": "Очистить историю", "clearCanvasHistoryMessage": "Очистка истории холста оставляет текущий холст нетронутым, но удаляет историю отмен и повторов.", @@ -535,6 +613,26 @@ "betaPreserveMasked": "Сохранять маскируемую область" }, "accessibility": { - "modelSelect": "Выбор модели" + "modelSelect": "Выбор модели", + "uploadImage": "Загрузить изображение", + "nextImage": "Следующее изображение", + "previousImage": "Предыдущее изображение", + "zoomIn": "Приблизить", + "zoomOut": "Отдалить", + "rotateClockwise": "Повернуть по часовой стрелке", + "rotateCounterClockwise": "Повернуть против часовой стрелки", + "flipVertically": "Перевернуть вертикально", + "flipHorizontally": "Отразить горизонтально", + "toggleAutoscroll": "Включить автопрокрутку", + "toggleLogViewer": "Показать или скрыть просмотрщик логов", + "showOptionsPanel": "Показать опции", + "showGallery": "Показать галерею", + "invokeProgressBar": "Индикатор выполнения", + "reset": "Сброс", + "modifyConfig": "Изменить конфиг", + "useThisParameter": "Использовать этот параметр", + "copyMetadataJson": "Скопировать метаданные JSON", + "exitViewer": "Закрыть просмотрщик", + "menu": "Меню" } } diff --git a/invokeai/frontend/web/dist/locales/uk.json b/invokeai/frontend/web/dist/locales/uk.json index 044cea64a4..8261aa82e0 100644 --- a/invokeai/frontend/web/dist/locales/uk.json +++ b/invokeai/frontend/web/dist/locales/uk.json @@ -16,9 +16,9 @@ "postProcessing": "Постобробка", "postProcessDesc1": "Invoke AI пропонує широкий спектр функцій постобробки. Збільшення зображення (upscale) та відновлення облич вже доступні в інтерфейсі. Отримайте доступ до них з меню 'Додаткові параметри' на вкладках 'Зображення із тексту' та 'Зображення із зображення'. Обробляйте зображення безпосередньо, використовуючи кнопки дій із зображеннями над поточним зображенням або в режимі перегляду.", "postProcessDesc2": "Найближчим часом буде випущено спеціальний інтерфейс для більш сучасних процесів постобробки.", - "postProcessDesc3": "Інтерфейс командного рядка Invoke AI пропонує різні інші функції, включаючи збільшення Embiggen", + "postProcessDesc3": "Інтерфейс командного рядка Invoke AI пропонує різні інші функції, включаючи збільшення Embiggen.", "training": "Навчання", - "trainingDesc1": "Спеціальний інтерфейс для навчання власних моделей з використанням Textual Inversion та Dreambooth", + "trainingDesc1": "Спеціальний інтерфейс для навчання власних моделей з використанням Textual Inversion та Dreambooth.", "trainingDesc2": "InvokeAI вже підтримує навчання моделей за допомогою TI, через інтерфейс командного рядка.", "upload": "Завантажити", "close": "Закрити", @@ -43,7 +43,38 @@ "statusUpscaling": "Збільшення", "statusUpscalingESRGAN": "Збільшення (ESRGAN)", "statusLoadingModel": "Завантаження моделі", - "statusModelChanged": "Модель змінено" + "statusModelChanged": "Модель змінено", + "cancel": "Скасувати", + "accept": "Підтвердити", + "back": "Назад", + "postprocessing": "Постобробка", + "statusModelConverted": "Модель сконвертована", + "statusMergingModels": "Злиття моделей", + "loading": "Завантаження", + "loadingInvokeAI": "Завантаження Invoke AI", + "langHebrew": "Іврит", + "langKorean": "Корейська", + "langPortuguese": "Португальська", + "pinOptionsPanel": "Закріпити панель налаштувань", + "oceanTheme": "Океан", + "langArabic": "Арабська", + "langSimplifiedChinese": "Китайська (спрощена)", + "langSpanish": "Іспанська", + "langEnglish": "Англійська", + "langGerman": "Німецька", + "langItalian": "Італійська", + "langJapanese": "Японська", + "langPolish": "Польська", + "langBrPortuguese": "Португальська (Бразилія)", + "langRussian": "Російська", + "githubLabel": "Github", + "txt2img": "Текст в зображення (txt2img)", + "discordLabel": "Discord", + "langDutch": "Голландська", + "langFrench": "Французька", + "statusMergedModels": "Моделі об'єднані", + "statusConvertingModel": "Конвертація моделі", + "linear": "Лінійна обробка" }, "gallery": { "generations": "Генерації", @@ -284,15 +315,15 @@ "description": "Опис", "descriptionValidationMsg": "Введіть опис моделі", "config": "Файл конфігурації", - "configValidationMsg": "Шлях до файлу конфігурації", + "configValidationMsg": "Шлях до файлу конфігурації.", "modelLocation": "Розташування моделі", - "modelLocationValidationMsg": "Шлях до файлу з моделлю", + "modelLocationValidationMsg": "Шлях до файлу з моделлю.", "vaeLocation": "Розтышування VAE", - "vaeLocationValidationMsg": "Шлях до VAE", + "vaeLocationValidationMsg": "Шлях до VAE.", "width": "Ширина", - "widthValidationMsg": "Початкова ширина зображень", + "widthValidationMsg": "Початкова ширина зображень.", "height": "Висота", - "heightValidationMsg": "Початкова висота зображень", + "heightValidationMsg": "Початкова висота зображень.", "addModel": "Додати модель", "updateModel": "Оновити модель", "availableModels": "Доступні моделі", @@ -319,7 +350,66 @@ "deleteModel": "Видалити модель", "deleteConfig": "Видалити конфігурацію", "deleteMsg1": "Ви точно хочете видалити модель із InvokeAI?", - "deleteMsg2": "Це не призведе до видалення файлу моделі з диску. Позніше ви можете додати його знову." + "deleteMsg2": "Це не призведе до видалення файлу моделі з диску. Позніше ви можете додати його знову.", + "allModels": "Усі моделі", + "diffusersModels": "Diffusers", + "scanForModels": "Сканувати моделі", + "convert": "Конвертувати", + "convertToDiffusers": "Конвертувати в Diffusers", + "formMessageDiffusersVAELocationDesc": "Якщо не надано, InvokeAI буде шукати файл VAE в розташуванні моделі, вказаній вище.", + "convertToDiffusersHelpText3": "Файл моделі на диску НЕ буде видалено або змінено. Ви можете знову додати його в Model Manager, якщо потрібно.", + "customConfig": "Користувальницький конфіг", + "invokeRoot": "Каталог InvokeAI", + "custom": "Користувальницький", + "modelTwo": "Модель 2", + "modelThree": "Модель 3", + "mergedModelName": "Назва об'єднаної моделі", + "alpha": "Альфа", + "interpolationType": "Тип інтерполяції", + "mergedModelSaveLocation": "Шлях збереження", + "mergedModelCustomSaveLocation": "Користувальницький шлях", + "invokeAIFolder": "Каталог InvokeAI", + "ignoreMismatch": "Ігнорувати невідповідності між вибраними моделями", + "modelMergeHeaderHelp2": "Тільки Diffusers-моделі доступні для об'єднання. Якщо ви хочете об'єднати checkpoint-моделі, спочатку перетворіть їх на Diffusers.", + "checkpointModels": "Checkpoints", + "repo_id": "ID репозиторію", + "v2_base": "v2 (512px)", + "repoIDValidationMsg": "Онлайн-репозиторій моделі", + "formMessageDiffusersModelLocationDesc": "Вкажіть хоча б одне.", + "formMessageDiffusersModelLocation": "Шлях до Diffusers-моделі", + "v2_768": "v2 (768px)", + "formMessageDiffusersVAELocation": "Шлях до VAE", + "convertToDiffusersHelpText5": "Переконайтеся, що у вас достатньо місця на диску. Моделі зазвичай займають від 4 до 7 Гб.", + "convertToDiffusersSaveLocation": "Шлях збереження", + "v1": "v1", + "convertToDiffusersHelpText6": "Ви хочете перетворити цю модель?", + "inpainting": "v1 Inpainting", + "modelConverted": "Модель перетворено", + "sameFolder": "У ту ж папку", + "statusConverting": "Перетворення", + "merge": "Об'єднати", + "mergeModels": "Об'єднати моделі", + "modelOne": "Модель 1", + "sigmoid": "Сігмоїд", + "weightedSum": "Зважена сума", + "none": "пусто", + "addDifference": "Додати різницю", + "pickModelType": "Вибрати тип моделі", + "convertToDiffusersHelpText4": "Це одноразова дія. Вона може зайняти від 30 до 60 секунд в залежності від характеристик вашого комп'ютера.", + "pathToCustomConfig": "Шлях до конфігу користувача", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Додати модель Checkpoint/Safetensor", + "addDiffuserModel": "Додати Diffusers", + "vaeRepoID": "ID репозиторію VAE", + "vaeRepoIDValidationMsg": "Онлайн-репозиторій VAE", + "modelMergeInterpAddDifferenceHelp": "У цьому режимі Модель 3 спочатку віднімається з Моделі 2. Результуюча версія змішується з Моделью 1 із встановленим вище коефіцієнтом Альфа.", + "customSaveLocation": "Користувальницький шлях збереження", + "modelMergeAlphaHelp": "Альфа впливає силу змішування моделей. Нижчі значення альфа призводять до меншого впливу другої моделі.", + "convertToDiffusersHelpText1": "Ця модель буде конвертована в формат 🧨 Diffusers.", + "convertToDiffusersHelpText2": "Цей процес замінить ваш запис в Model Manager на версію тієї ж моделі в Diffusers.", + "modelsMerged": "Моделі об'єднані", + "modelMergeHeaderHelp1": "Ви можете об'єднати до трьох різних моделей, щоб створити змішану, що відповідає вашим потребам.", + "inverseSigmoid": "Зворотній Сігмоїд" }, "parameters": { "images": "Зображення", @@ -346,7 +436,7 @@ "scale": "Масштаб", "otherOptions": "інші параметри", "seamlessTiling": "Безшовний узор", - "hiresOptim": "Висока роздільна здатність", + "hiresOptim": "Оптимізація High Res", "imageFit": "Вмістити зображення", "codeformerFidelity": "Точність", "seamSize": "Размір шву", @@ -379,7 +469,24 @@ "info": "Метадані", "deleteImage": "Видалити зображення", "initialImage": "Початкове зображення", - "showOptionsPanel": "Показати панель налаштувань" + "showOptionsPanel": "Показати панель налаштувань", + "general": "Основне", + "cancel": { + "immediate": "Скасувати негайно", + "schedule": "Скасувати після поточної ітерації", + "isScheduled": "Відміна", + "setType": "Встановити тип скасування" + }, + "vSymmetryStep": "Крок верт. симетрії", + "hiresStrength": "Сила High Res", + "hidePreview": "Сховати попередній перегляд", + "showPreview": "Показати попередній перегляд", + "imageToImage": "Зображення до зображення", + "denoisingStrength": "Сила шумоподавлення", + "copyImage": "Копіювати зображення", + "symmetry": "Симетрія", + "hSymmetryStep": "Крок гор. симетрії", + "negativePrompts": "Виключний запит" }, "settings": { "models": "Моделі", @@ -392,7 +499,8 @@ "resetWebUI": "Повернути початкові", "resetWebUIDesc1": "Скидання настройок веб-інтерфейсу видаляє лише локальний кеш браузера з вашими зображеннями та налаштуваннями. Це не призводить до видалення зображень з диску.", "resetWebUIDesc2": "Якщо зображення не відображаються в галереї або не працює ще щось, спробуйте скинути налаштування, перш ніж повідомляти про проблему на GitHub.", - "resetComplete": "Інтерфейс скинуто. Оновіть цю сторінку." + "resetComplete": "Інтерфейс скинуто. Оновіть цю сторінку.", + "useSlidersForAll": "Використовувати повзунки для всіх параметрів" }, "toast": { "tempFoldersEmptied": "Тимчасова папка очищена", @@ -410,21 +518,25 @@ "sentToUnifiedCanvas": "Надіслати на полотно", "parametersSet": "Параметри задані", "parametersNotSet": "Параметри не задані", - "parametersNotSetDesc": "Не знайдені метадані цього зображення", + "parametersNotSetDesc": "Не знайдені метадані цього зображення.", "parametersFailed": "Проблема із завантаженням параметрів", - "parametersFailedDesc": "Неможливо завантажити початкове зображення", + "parametersFailedDesc": "Неможливо завантажити початкове зображення.", "seedSet": "Сід заданий", "seedNotSet": "Сід не заданий", - "seedNotSetDesc": "Не вдалося знайти сід для зображення", + "seedNotSetDesc": "Не вдалося знайти сід для зображення.", "promptSet": "Запит заданий", "promptNotSet": "Запит не заданий", - "promptNotSetDesc": "Не вдалося знайти запит для зображення", + "promptNotSetDesc": "Не вдалося знайти запит для зображення.", "upscalingFailed": "Збільшення не вдалося", "faceRestoreFailed": "Відновлення облич не вдалося", "metadataLoadFailed": "Не вдалося завантажити метадані", "initialImageSet": "Початкове зображення задане", "initialImageNotSet": "Початкове зображення не задане", - "initialImageNotSetDesc": "Не вдалося завантажити початкове зображення" + "initialImageNotSetDesc": "Не вдалося завантажити початкове зображення", + "serverError": "Помилка сервера", + "disconnected": "Відключено від сервера", + "connected": "Підключено до сервера", + "canceled": "Обробку скасовано" }, "tooltip": { "feature": { @@ -473,10 +585,10 @@ "autoSaveToGallery": "Автозбереження до галереї", "saveBoxRegionOnly": "Зберiгати тiльки видiлення", "limitStrokesToBox": "Обмежити штрихи виділенням", - "showCanvasDebugInfo": "Показати налаштування полотна", + "showCanvasDebugInfo": "Показати дод. інформацію про полотно", "clearCanvasHistory": "Очистити iсторiю полотна", "clearHistory": "Очистити iсторiю", - "clearCanvasHistoryMessage": "Очищення історії полотна залишає поточне полотно незайманим, але видаляє історію скасування та повтору", + "clearCanvasHistoryMessage": "Очищення історії полотна залишає поточне полотно незайманим, але видаляє історію скасування та повтору.", "clearCanvasHistoryConfirm": "Ви впевнені, що хочете очистити історію полотна?", "emptyTempImageFolder": "Очистити тимчасову папку", "emptyFolder": "Очистити папку", @@ -499,5 +611,28 @@ "betaDarkenOutside": "Затемнити зовні", "betaLimitToBox": "Обмежити виділенням", "betaPreserveMasked": "Зберiгати замасковану область" + }, + "accessibility": { + "nextImage": "Наступне зображення", + "modelSelect": "Вибір моделі", + "invokeProgressBar": "Індикатор виконання", + "reset": "Скинути", + "uploadImage": "Завантажити зображення", + "useThisParameter": "Використовувати цей параметр", + "exitViewer": "Вийти з переглядача", + "zoomIn": "Збільшити", + "zoomOut": "Зменшити", + "rotateCounterClockwise": "Обертати проти годинникової стрілки", + "rotateClockwise": "Обертати за годинниковою стрілкою", + "toggleAutoscroll": "Увімкнути автопрокручування", + "toggleLogViewer": "Показати або приховати переглядач журналів", + "showGallery": "Показати галерею", + "previousImage": "Попереднє зображення", + "copyMetadataJson": "Скопіювати метадані JSON", + "flipVertically": "Перевернути по вертикалі", + "flipHorizontally": "Відобразити по горизонталі", + "showOptionsPanel": "Показати опції", + "modifyConfig": "Змінити конфігурацію", + "menu": "Меню" } } diff --git a/invokeai/frontend/web/dist/locales/zh_CN.json b/invokeai/frontend/web/dist/locales/zh_CN.json index b23ac8cc99..d4d7746926 100644 --- a/invokeai/frontend/web/dist/locales/zh_CN.json +++ b/invokeai/frontend/web/dist/locales/zh_CN.json @@ -481,5 +481,22 @@ "betaDarkenOutside": "暗化外部区域", "betaLimitToBox": "限制在框内", "betaPreserveMasked": "保留遮罩层" + }, + "accessibility": { + "modelSelect": "模型选择", + "invokeProgressBar": "Invoke 进度条", + "reset": "重置", + "nextImage": "下一张图片", + "useThisParameter": "使用此参数", + "uploadImage": "上传图片", + "previousImage": "上一张图片", + "copyMetadataJson": "复制JSON元数据", + "exitViewer": "退出视口(ExitViewer)", + "zoomIn": "放大", + "zoomOut": "缩小", + "rotateCounterClockwise": "逆时针旋转", + "rotateClockwise": "顺时针旋转", + "flipHorizontally": "水平翻转", + "flipVertically": "垂直翻转" } } diff --git a/invokeai/frontend/web/stats.html b/invokeai/frontend/web/stats.html index 89bfdffeda..0a4f3b313a 100644 --- a/invokeai/frontend/web/stats.html +++ b/invokeai/frontend/web/stats.html @@ -6157,7 +6157,7 @@ var drawChart = (function (exports) {