From a9c8b8fe4e2fcb4f44ff6ea2fe3047ba75299971 Mon Sep 17 00:00:00 2001 From: Alan Thomas Date: Sun, 5 Jul 2026 13:03:12 +0200 Subject: [PATCH] feat: add BookMyVenue application --- .gitignore | 21 + .../BookMyVenue_project/__init__.py | 0 .../BookMyVenue_project/asgi.py | 16 + .../BookMyVenue_project/settings.py | 140 + .../BookMyVenue_project/urls.py | 30 + .../BookMyVenue_project/wsgi.py | 16 + Django_backend/BookMyVenue_project/manage.py | 22 + .../BookMyVenue_project/users/__init__.py | 0 .../BookMyVenue_project/users/admin.py | 15 + .../users/api/serializers.py | 54 + .../BookMyVenue_project/users/api/urls.py | 11 + .../BookMyVenue_project/users/api/views.py | 26 + .../BookMyVenue_project/users/apps.py | 5 + .../users/migrations/0001_initial.py | 66 + .../users/migrations/0002_user_fullname.py | 18 + .../users/migrations/__init__.py | 0 .../BookMyVenue_project/users/models.py | 44 + .../BookMyVenue_project/users/tests.py | 21 + .../BookMyVenue_project/users/urls.py | 0 .../BookMyVenue_project/users/views.py | 3 + .../BookMyVenue_project/venues/__init__.py | 0 .../BookMyVenue_project/venues/admin.py | 192 + .../venues/api/pagination.py | 11 + .../venues/api/serializers.py | 256 + .../BookMyVenue_project/venues/api/urls.py | 53 + .../BookMyVenue_project/venues/api/views.py | 122 + .../BookMyVenue_project/venues/apps.py | 5 + .../venues/management/__init__.py | 0 .../venues/management/commands/__init__.py | 0 .../venues/management/commands/seed_venues.py | 293 + .../venues/migrations/0001_initial.py | 172 + .../venues/migrations/0002_booking.py | 37 + .../venues/migrations/__init__.py | 0 .../BookMyVenue_project/venues/models.py | 356 + .../BookMyVenue_project/venues/tests.py | 161 + .../BookMyVenue_project/venues/views.py | 3 + images/img2.jpg | Bin 0 -> 75878 bytes images/img3.jpg | Bin 0 -> 48449 bytes images/img4.jpg | Bin 0 -> 72069 bytes images/img5.jpg | Bin 0 -> 65859 bytes images/img6.jpg | Bin 0 -> 30862 bytes images/istockphoto-590034882-612x612.jpg | Bin 0 -> 42747 bytes package-lock.json | 42 + package.json | 5 + react_frontend/bookmyvenue/.env.example | 1 + react_frontend/bookmyvenue/.gitignore | 23 + react_frontend/bookmyvenue/README.md | 70 + react_frontend/bookmyvenue/package-lock.json | 17445 ++++++++++++++++ react_frontend/bookmyvenue/package.json | 42 + react_frontend/bookmyvenue/public/favicon.ico | Bin 0 -> 3870 bytes react_frontend/bookmyvenue/public/index.html | 23 + .../bookmyvenue/public/manifest.json | 25 + react_frontend/bookmyvenue/public/robots.txt | 3 + react_frontend/bookmyvenue/src/App.css | 38 + react_frontend/bookmyvenue/src/App.js | 64 + react_frontend/bookmyvenue/src/App.test.js | 405 + .../src/Components/Assets/LoginSignup.jpeg | Bin 0 -> 8722 bytes .../src/Components/Footer/footer.jsx | 73 + .../src/Components/Header/Header.jsx | 99 + .../src/Components/Header/header.css | 455 + .../src/Components/LoginSignup/LoginForm.jsx | 79 + .../Components/LoginSignup/LoginSignup.jsx | 59 + .../src/Components/LoginSignup/SignUpForm.jsx | 209 + .../src/Components/LoginSignup/UserOwner.jsx | 33 + .../src/Components/Pages/HomePage/home.css | 856 + .../src/Components/Pages/HomePage/home.jsx | 393 + .../Components/Pages/VenueCard/VenueCard.jsx | 78 + .../Pages/VenueDetail/VenueDetail.jsx | 528 + .../Pages/VenueDetail/venuedetail.css | 899 + .../VenueFeaturedCard/VenueFeaturedCard.jsx | 43 + .../src/Components/Pages/Venues/Venues.jsx | 352 + .../src/Components/Pages/Venues/venues.css | 616 + .../bookmyvenue/src/api/authApi.jsx | 39 + react_frontend/bookmyvenue/src/api/axios.js | 77 + .../bookmyvenue/src/api/axios.test.js | 68 + .../bookmyvenue/src/api/bookingApi.js | 8 + .../bookmyvenue/src/api/favoriteApi.js | 24 + .../bookmyvenue/src/api/venueApi.js | 20 + react_frontend/bookmyvenue/src/index.css | 13 + react_frontend/bookmyvenue/src/index.js | 19 + .../bookmyvenue/src/reportWebVitals.js | 13 + react_frontend/bookmyvenue/src/setupTests.js | 5 + .../bookmyvenue/src/utils/authNavigation.js | 13 + 83 files changed, 25426 insertions(+) create mode 100644 .gitignore create mode 100644 Django_backend/BookMyVenue_project/BookMyVenue_project/__init__.py create mode 100644 Django_backend/BookMyVenue_project/BookMyVenue_project/asgi.py create mode 100644 Django_backend/BookMyVenue_project/BookMyVenue_project/settings.py create mode 100644 Django_backend/BookMyVenue_project/BookMyVenue_project/urls.py create mode 100644 Django_backend/BookMyVenue_project/BookMyVenue_project/wsgi.py create mode 100755 Django_backend/BookMyVenue_project/manage.py create mode 100644 Django_backend/BookMyVenue_project/users/__init__.py create mode 100644 Django_backend/BookMyVenue_project/users/admin.py create mode 100644 Django_backend/BookMyVenue_project/users/api/serializers.py create mode 100644 Django_backend/BookMyVenue_project/users/api/urls.py create mode 100644 Django_backend/BookMyVenue_project/users/api/views.py create mode 100644 Django_backend/BookMyVenue_project/users/apps.py create mode 100644 Django_backend/BookMyVenue_project/users/migrations/0001_initial.py create mode 100644 Django_backend/BookMyVenue_project/users/migrations/0002_user_fullname.py create mode 100644 Django_backend/BookMyVenue_project/users/migrations/__init__.py create mode 100644 Django_backend/BookMyVenue_project/users/models.py create mode 100644 Django_backend/BookMyVenue_project/users/tests.py create mode 100644 Django_backend/BookMyVenue_project/users/urls.py create mode 100644 Django_backend/BookMyVenue_project/users/views.py create mode 100644 Django_backend/BookMyVenue_project/venues/__init__.py create mode 100644 Django_backend/BookMyVenue_project/venues/admin.py create mode 100644 Django_backend/BookMyVenue_project/venues/api/pagination.py create mode 100644 Django_backend/BookMyVenue_project/venues/api/serializers.py create mode 100644 Django_backend/BookMyVenue_project/venues/api/urls.py create mode 100644 Django_backend/BookMyVenue_project/venues/api/views.py create mode 100644 Django_backend/BookMyVenue_project/venues/apps.py create mode 100644 Django_backend/BookMyVenue_project/venues/management/__init__.py create mode 100644 Django_backend/BookMyVenue_project/venues/management/commands/__init__.py create mode 100644 Django_backend/BookMyVenue_project/venues/management/commands/seed_venues.py create mode 100644 Django_backend/BookMyVenue_project/venues/migrations/0001_initial.py create mode 100644 Django_backend/BookMyVenue_project/venues/migrations/0002_booking.py create mode 100644 Django_backend/BookMyVenue_project/venues/migrations/__init__.py create mode 100644 Django_backend/BookMyVenue_project/venues/models.py create mode 100644 Django_backend/BookMyVenue_project/venues/tests.py create mode 100644 Django_backend/BookMyVenue_project/venues/views.py create mode 100644 images/img2.jpg create mode 100644 images/img3.jpg create mode 100644 images/img4.jpg create mode 100644 images/img5.jpg create mode 100644 images/img6.jpg create mode 100644 images/istockphoto-590034882-612x612.jpg create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 react_frontend/bookmyvenue/.env.example create mode 100644 react_frontend/bookmyvenue/.gitignore create mode 100644 react_frontend/bookmyvenue/README.md create mode 100644 react_frontend/bookmyvenue/package-lock.json create mode 100644 react_frontend/bookmyvenue/package.json create mode 100644 react_frontend/bookmyvenue/public/favicon.ico create mode 100644 react_frontend/bookmyvenue/public/index.html create mode 100644 react_frontend/bookmyvenue/public/manifest.json create mode 100644 react_frontend/bookmyvenue/public/robots.txt create mode 100644 react_frontend/bookmyvenue/src/App.css create mode 100644 react_frontend/bookmyvenue/src/App.js create mode 100644 react_frontend/bookmyvenue/src/App.test.js create mode 100644 react_frontend/bookmyvenue/src/Components/Assets/LoginSignup.jpeg create mode 100644 react_frontend/bookmyvenue/src/Components/Footer/footer.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Header/Header.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Header/header.css create mode 100644 react_frontend/bookmyvenue/src/Components/LoginSignup/LoginForm.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/LoginSignup/LoginSignup.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/LoginSignup/SignUpForm.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/LoginSignup/UserOwner.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.css create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/VenueCard/VenueCard.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/VenueDetail.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/venuedetail.css create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/VenueFeaturedCard/VenueFeaturedCard.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/Venues/Venues.jsx create mode 100644 react_frontend/bookmyvenue/src/Components/Pages/Venues/venues.css create mode 100644 react_frontend/bookmyvenue/src/api/authApi.jsx create mode 100644 react_frontend/bookmyvenue/src/api/axios.js create mode 100644 react_frontend/bookmyvenue/src/api/axios.test.js create mode 100644 react_frontend/bookmyvenue/src/api/bookingApi.js create mode 100644 react_frontend/bookmyvenue/src/api/favoriteApi.js create mode 100644 react_frontend/bookmyvenue/src/api/venueApi.js create mode 100644 react_frontend/bookmyvenue/src/index.css create mode 100644 react_frontend/bookmyvenue/src/index.js create mode 100644 react_frontend/bookmyvenue/src/reportWebVitals.js create mode 100644 react_frontend/bookmyvenue/src/setupTests.js create mode 100644 react_frontend/bookmyvenue/src/utils/authNavigation.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..1e4f29705 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# macOS +.DS_Store + +# JavaScript dependencies and builds +node_modules/ +build/ + +# Python caches and virtual environments +__pycache__/ +*.py[cod] +venv/ +.venv/ + +# Local configuration +.env +.env.* +!.env.example + +# Django local data and uploaded media +*.sqlite3 +media/ diff --git a/Django_backend/BookMyVenue_project/BookMyVenue_project/__init__.py b/Django_backend/BookMyVenue_project/BookMyVenue_project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/BookMyVenue_project/asgi.py b/Django_backend/BookMyVenue_project/BookMyVenue_project/asgi.py new file mode 100644 index 000000000..84755a3f3 --- /dev/null +++ b/Django_backend/BookMyVenue_project/BookMyVenue_project/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for BookMyVenue_project project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'BookMyVenue_project.settings') + +application = get_asgi_application() diff --git a/Django_backend/BookMyVenue_project/BookMyVenue_project/settings.py b/Django_backend/BookMyVenue_project/BookMyVenue_project/settings.py new file mode 100644 index 000000000..871fd7204 --- /dev/null +++ b/Django_backend/BookMyVenue_project/BookMyVenue_project/settings.py @@ -0,0 +1,140 @@ +""" +Django settings for BookMyVenue_project project. + +Generated by 'django-admin startproject' using Django 6.0.6. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/6.0/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-$%r^q!lcrf&9g^r(b9$lv((05^v(1z8fg+uh8j=@&0#b#wl&uf' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'users', + 'venues', + + "rest_framework", + "corsheaders", +] +AUTH_USER_MODEL = "users.User" + +CORS_ALLOWED_ORIGINS = [ + "http://localhost:3000", + "http://127.0.0.1:3000", + "http://localhost:5173", + "http://127.0.0.1:5173", +] + +REST_FRAMEWORK = { + "DEFAULT_AUTHENTICATION_CLASSES": ( + "rest_framework_simplejwt.authentication.JWTAuthentication", + ), +} + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'corsheaders.middleware.CorsMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'BookMyVenue_project.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'BookMyVenue_project.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/6.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/6.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/6.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/6.0/howto/static-files/ + +STATIC_URL = 'static/' + +MEDIA_URL = 'media/' +MEDIA_ROOT = BASE_DIR / 'media' diff --git a/Django_backend/BookMyVenue_project/BookMyVenue_project/urls.py b/Django_backend/BookMyVenue_project/BookMyVenue_project/urls.py new file mode 100644 index 000000000..993419c3e --- /dev/null +++ b/Django_backend/BookMyVenue_project/BookMyVenue_project/urls.py @@ -0,0 +1,30 @@ +""" +URL configuration for BookMyVenue_project project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/6.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.conf import settings +from django.conf.urls.static import static +from django.contrib import admin +from django.urls import include, path + +urlpatterns = [ + path('admin/', admin.site.urls), + + path('api/', include('users.api.urls')), + path('api/', include('venues.api.urls')), +] + +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/Django_backend/BookMyVenue_project/BookMyVenue_project/wsgi.py b/Django_backend/BookMyVenue_project/BookMyVenue_project/wsgi.py new file mode 100644 index 000000000..e8def9cf5 --- /dev/null +++ b/Django_backend/BookMyVenue_project/BookMyVenue_project/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for BookMyVenue_project project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'BookMyVenue_project.settings') + +application = get_wsgi_application() diff --git a/Django_backend/BookMyVenue_project/manage.py b/Django_backend/BookMyVenue_project/manage.py new file mode 100755 index 000000000..d4a628ce7 --- /dev/null +++ b/Django_backend/BookMyVenue_project/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'BookMyVenue_project.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/Django_backend/BookMyVenue_project/users/__init__.py b/Django_backend/BookMyVenue_project/users/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/users/admin.py b/Django_backend/BookMyVenue_project/users/admin.py new file mode 100644 index 000000000..10d44acb8 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/admin.py @@ -0,0 +1,15 @@ +from django.contrib import admin + +# Register your models here. +from .models import User,OwnerProfile,UserProfile + +admin.site.register(User) + +@admin.register(UserProfile) +class UserProfileAdmin(admin.ModelAdmin): + list_display = ("user", "address", "phone_number") + + +@admin.register(OwnerProfile) +class OwnerProfileAdmin(admin.ModelAdmin): + list_display = ("user", "address", "phone_number") \ No newline at end of file diff --git a/Django_backend/BookMyVenue_project/users/api/serializers.py b/Django_backend/BookMyVenue_project/users/api/serializers.py new file mode 100644 index 000000000..05c6b6286 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/api/serializers.py @@ -0,0 +1,54 @@ +from rest_framework import serializers +from ..models import User, UserProfile,OwnerProfile +from django.db import transaction + +class UserSerializers(serializers.ModelSerializer): + password = serializers.CharField(write_only=True) + address = serializers.CharField(write_only=True, required=False, allow_blank=True) + phone_number = serializers.CharField(write_only=True, required=False, allow_blank=True) + + class Meta: + model = User + fields = [ + "id", + "username", + "fullname", + "email", + "password", + "account_type", + "terms_privacy", + "address", + "phone_number", + ] + + def validate_terms_privacy(self,value): + if value is not True: + raise serializers.ValidationError("You must accept terms and privacy policy.") + return value + + @transaction.atomic + def create(self, validated_data): + address = validated_data.pop("address", "") + + phone_number = validated_data.pop("phone_number", "") + + password = validated_data.pop("password") + + user = User(**validated_data) + user.set_password(password) + user.save() + + if user.account_type == "venue_owner": + OwnerProfile.objects.create( + user=user, + address=address, + phone_number=phone_number, + ) + elif user.account_type == "venue_user": + UserProfile.objects.create( + user=user, + address=address, + phone_number=phone_number, + ) + + return user \ No newline at end of file diff --git a/Django_backend/BookMyVenue_project/users/api/urls.py b/Django_backend/BookMyVenue_project/users/api/urls.py new file mode 100644 index 000000000..51e18de75 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/api/urls.py @@ -0,0 +1,11 @@ +from django.urls import path +from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView + +from .views import RegisterView, MeView + +urlpatterns = [ + path("signup/", RegisterView.as_view(), name="signup"), + path("login/", TokenObtainPairView.as_view(), name="login"), + path("token/refresh/", TokenRefreshView.as_view(), name="token_refresh"), + path("me/", MeView.as_view(), name="me"), +] \ No newline at end of file diff --git a/Django_backend/BookMyVenue_project/users/api/views.py b/Django_backend/BookMyVenue_project/users/api/views.py new file mode 100644 index 000000000..c0048284f --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/api/views.py @@ -0,0 +1,26 @@ +from rest_framework import generics +from rest_framework.permissions import AllowAny, IsAuthenticated +from rest_framework.response import Response # type: ignore[import] +from rest_framework.views import APIView + +from .serializers import UserSerializers + + +class RegisterView(generics.CreateAPIView): + serializer_class = UserSerializers + permission_classes = [AllowAny] + + +class MeView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + user = request.user + + return Response({ + "id": user.id, + "username": user.username, + "fullname": user.fullname, + "email": user.email, + "account_type": user.account_type, + }) diff --git a/Django_backend/BookMyVenue_project/users/apps.py b/Django_backend/BookMyVenue_project/users/apps.py new file mode 100644 index 000000000..4ce1fabc0 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + name = 'users' diff --git a/Django_backend/BookMyVenue_project/users/migrations/0001_initial.py b/Django_backend/BookMyVenue_project/users/migrations/0001_initial.py new file mode 100644 index 000000000..e09718cce --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/migrations/0001_initial.py @@ -0,0 +1,66 @@ +# Generated by Django 6.0.6 on 2026-06-20 22:22 + +import django.contrib.auth.models +import django.contrib.auth.validators +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('account_type', models.CharField(choices=[('venue_user', 'Venue User'), ('venue_owner', 'Venue Owner')], default='venue_user', max_length=20)), + ('terms_privacy', models.BooleanField(default=False)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + migrations.CreateModel( + name='OwnerProfile', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('address', models.TextField(blank=True, max_length=300)), + ('phone_number', models.CharField(blank=True, max_length=20)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('address', models.TextField(blank=True, max_length=300)), + ('phone_number', models.CharField(blank=True, max_length=20)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Django_backend/BookMyVenue_project/users/migrations/0002_user_fullname.py b/Django_backend/BookMyVenue_project/users/migrations/0002_user_fullname.py new file mode 100644 index 000000000..22b5bf3e2 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/migrations/0002_user_fullname.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.6 on 2026-06-21 14:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='fullname', + field=models.CharField(blank=True, max_length=150), + ), + ] diff --git a/Django_backend/BookMyVenue_project/users/migrations/__init__.py b/Django_backend/BookMyVenue_project/users/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/users/models.py b/Django_backend/BookMyVenue_project/users/models.py new file mode 100644 index 000000000..c9d2845ef --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/models.py @@ -0,0 +1,44 @@ +from django.db import models +from django.contrib.auth.models import AbstractUser +# Create your models here. + +class User(AbstractUser): # to store data when user signup + ACCOUNT_TYPES = [ + ("venue_user", "Venue User"), + ("venue_owner","Venue Owner") + ] + account_type = models.CharField( + max_length = 20, + choices = ACCOUNT_TYPES, + default = "venue_user" + ) + fullname = models.CharField(max_length=150,blank=True) + + terms_privacy = models.BooleanField(default=False) + + def __str__(self) -> str: + return self.username + +class UserProfile(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + address = models.TextField(blank=True,max_length=300) + phone_number = models.CharField(max_length=20, blank=True) + + + def __str__(self) -> str: + return self.user.username + +class OwnerProfile(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + address = models.TextField(blank=True,max_length=300) + phone_number = models.CharField(max_length=20, blank=True) + + def __str__(self) -> str: + return self.user.username + + + + + + + diff --git a/Django_backend/BookMyVenue_project/users/tests.py b/Django_backend/BookMyVenue_project/users/tests.py new file mode 100644 index 000000000..ee3033474 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/tests.py @@ -0,0 +1,21 @@ +from django.contrib.auth import get_user_model +from django.urls import reverse +from rest_framework import status +from rest_framework.test import APITestCase + + +class CurrentUserAPITests(APITestCase): + def test_returns_fullname_for_authenticated_user(self): + user = get_user_model().objects.create_user( + username="alan", + fullname="Alan Thomas", + email="alan@example.com", + password="test-password", + ) + self.client.force_authenticate(user=user) + + response = self.client.get(reverse("me")) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["username"], "alan") + self.assertEqual(response.data["fullname"], "Alan Thomas") diff --git a/Django_backend/BookMyVenue_project/users/urls.py b/Django_backend/BookMyVenue_project/users/urls.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/users/views.py b/Django_backend/BookMyVenue_project/users/views.py new file mode 100644 index 000000000..91ea44a21 --- /dev/null +++ b/Django_backend/BookMyVenue_project/users/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/Django_backend/BookMyVenue_project/venues/__init__.py b/Django_backend/BookMyVenue_project/venues/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/venues/admin.py b/Django_backend/BookMyVenue_project/venues/admin.py new file mode 100644 index 000000000..1431f5290 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/admin.py @@ -0,0 +1,192 @@ +from django.contrib import admin + +from .models import ( + Amenity, + Booking, + Favorite, + Venue, + VenueImage, + VenuePackage, + VenueUnavailablePeriod, +) + + +class VenueImageInline(admin.TabularInline): + model = VenueImage + extra = 0 + fields = ("image", "alt_text", "is_cover", "sort_order") + + +class VenuePackageInline(admin.StackedInline): + model = VenuePackage + extra = 0 + fields = ("name", "description", "price_per_day", "is_active") + + +class VenueUnavailablePeriodInline(admin.TabularInline): + model = VenueUnavailablePeriod + extra = 0 + fields = ("start_date", "end_date", "reason") + + +@admin.register(Venue) +class VenueAdmin(admin.ModelAdmin): + list_display = ( + "name", + "owner", + "venue_type", + "city", + "max_capacity", + "base_price_per_day", + "status", + "is_verified", + "is_featured", + "updated_at", + ) + list_filter = ( + "status", + "venue_type", + "is_verified", + "is_featured", + "country", + "state", + ) + search_fields = ( + "name", + "owner__username", + "owner__fullname", + "owner__email", + "city", + "address", + ) + list_select_related = ("owner",) + list_editable = ("status", "is_verified", "is_featured") + filter_horizontal = ("amenities",) + readonly_fields = ("slug", "created_at", "updated_at") + inlines = ( + VenueImageInline, + VenuePackageInline, + VenueUnavailablePeriodInline, + ) + fieldsets = ( + ( + "Venue", + { + "fields": ( + "owner", + "name", + "slug", + "venue_type", + "description", + "amenities", + ) + }, + ), + ( + "Capacity and pricing", + {"fields": ("max_capacity", "base_price_per_day")}, + ), + ( + "Location", + { + "fields": ( + "address", + "city", + "state", + "postal_code", + "country", + "latitude", + "longitude", + ) + }, + ), + ( + "Contact", + {"fields": ("contact_phone", "contact_email")}, + ), + ( + "Publishing", + {"fields": ("status", "is_verified", "is_featured")}, + ), + ( + "Audit", + { + "fields": ("created_at", "updated_at"), + "classes": ("collapse",), + }, + ), + ) + + +@admin.register(Amenity) +class AmenityAdmin(admin.ModelAdmin): + list_display = ("name", "slug", "icon") + search_fields = ("name", "slug") + prepopulated_fields = {"slug": ("name",)} + + +@admin.register(VenueImage) +class VenueImageAdmin(admin.ModelAdmin): + list_display = ("venue", "image", "is_cover", "sort_order") + list_filter = ("is_cover",) + search_fields = ("venue__name", "alt_text") + list_select_related = ("venue",) + ordering = ("venue", "sort_order") + + +@admin.register(VenuePackage) +class VenuePackageAdmin(admin.ModelAdmin): + list_display = ( + "name", + "venue", + "price_per_day", + "is_active", + "updated_at", + ) + list_filter = ("is_active",) + search_fields = ("name", "venue__name", "description") + list_select_related = ("venue",) + list_editable = ("is_active",) + readonly_fields = ("created_at", "updated_at") + + +@admin.register(VenueUnavailablePeriod) +class VenueUnavailablePeriodAdmin(admin.ModelAdmin): + list_display = ("venue", "start_date", "end_date", "reason") + list_filter = ("start_date", "end_date") + search_fields = ("venue__name", "reason") + list_select_related = ("venue",) + readonly_fields = ("created_at", "updated_at") + date_hierarchy = "start_date" + + +@admin.register(Favorite) +class FavoriteAdmin(admin.ModelAdmin): + list_display = ("user", "venue", "created_at") + search_fields = ( + "user__username", + "user__fullname", + "user__email", + "venue__name", + ) + list_select_related = ("user", "venue") + readonly_fields = ("created_at",) + date_hierarchy = "created_at" + + +@admin.register(Booking) +class BookingAdmin(admin.ModelAdmin): + list_display = ( + "user", + "venue", + "event_date", + "event_type", + "guest_count", + "status", + "created_at", + ) + list_filter = ("status", "event_type", "event_date") + search_fields = ("user__username", "user__fullname", "venue__name") + list_select_related = ("user", "venue") + readonly_fields = ("created_at", "updated_at") + date_hierarchy = "event_date" diff --git a/Django_backend/BookMyVenue_project/venues/api/pagination.py b/Django_backend/BookMyVenue_project/venues/api/pagination.py new file mode 100644 index 000000000..623787758 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/api/pagination.py @@ -0,0 +1,11 @@ +from rest_framework.pagination import PageNumberPagination + + +class VenuePagination(PageNumberPagination): + page_size = 6 + page_size_query_param = "page_size" + max_page_size = 24 + + +class FeaturedVenuePagination(PageNumberPagination): + page_size = 3 diff --git a/Django_backend/BookMyVenue_project/venues/api/serializers.py b/Django_backend/BookMyVenue_project/venues/api/serializers.py new file mode 100644 index 000000000..b90bcd586 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/api/serializers.py @@ -0,0 +1,256 @@ +from rest_framework import serializers +from django.utils import timezone + +from ..models import ( + Amenity, + Booking, + Favorite, + Venue, + VenueImage, + VenuePackage, + VenueUnavailablePeriod, +) + +class AmenitySerializer(serializers.ModelSerializer): + class Meta: + model = Amenity + fields = [ + "id", + "name", + "slug", + "icon" + ] + +class VenueImageSerializer(serializers.ModelSerializer): + class Meta: + model = VenueImage + fields = [ + "id", + "image", + "alt_text", + "is_cover", + "sort_order", + ] + +class VenuePackageSerializer(serializers.ModelSerializer): + class Meta: + model = VenuePackage + fields = [ + "id", + "name", + "description", + "price_per_day", + "is_active", + "created_at", + "updated_at", + ] + + read_only_fields = ["id", "created_at", "updated_at"] + + +class VenueUnavailablePeriodSerializer(serializers.ModelSerializer): + class Meta: + model = VenueUnavailablePeriod + fields = [ + "id", + "start_date", + "end_date", + "reason", + "created_at", + "updated_at", + ] + read_only_fields = fields + +class VenueListSerializer(serializers.ModelSerializer): + amenities = AmenitySerializer(many=True, read_only=True) + cover_image = serializers.SerializerMethodField() + venue_type_display = serializers.CharField( + source="get_venue_type_display", + read_only=True, + ) + + class Meta: + model = Venue + fields = [ + "id", + "name", + "slug", + "venue_type", + "venue_type_display", + "city", + "max_capacity", + "base_price_per_day", + "is_verified", + "is_featured", + "amenities", + "cover_image", + ] + + def get_cover_image(self, venue): + cover = next( + (image for image in venue.images.all() if image.is_cover), + None, + ) + + if cover is None: + return None + + return VenueImageSerializer( + cover, + context=self.context, + ).data + + +class VenueDetailSerializer(serializers.ModelSerializer): + amenities = AmenitySerializer(many=True, read_only=True) + images = VenueImageSerializer(many=True, read_only=True) + packages = VenuePackageSerializer(many=True, read_only=True) + venue_type_display = serializers.CharField( + source="get_venue_type_display", + read_only=True, + ) + + class Meta: + model = Venue + fields = [ + "id", + "name", + "slug", + "venue_type", + "venue_type_display", + "description", + "max_capacity", + "base_price_per_day", + "address", + "city", + "state", + "postal_code", + "country", + "latitude", + "longitude", + "contact_phone", + "contact_email", + "is_verified", + "is_featured", + "amenities", + "images", + "packages", + "created_at", + "updated_at", + ] + +class VenueCreateUpdateSerializer(serializers.ModelSerializer): + amenities = serializers.PrimaryKeyRelatedField( + queryset=Amenity.objects.all(), + many=True, + required=False, + ) + + class Meta: + model = Venue + fields = [ + "id", + "name", + "slug", + "venue_type", + "description", + "max_capacity", + "base_price_per_day", + "address", + "city", + "state", + "postal_code", + "country", + "latitude", + "longitude", + "contact_phone", + "contact_email", + "amenities", + ] + + read_only_fields = ["id", "slug"] + + +class FavoriteSerializer(serializers.ModelSerializer): + venue = VenueListSerializer(read_only=True) + venue_id = serializers.PrimaryKeyRelatedField( + source="venue", + queryset=Venue.objects.filter(status=Venue.Status.APPROVED), + write_only=True, + ) + + class Meta: + model = Favorite + fields = ["id", "venue", "venue_id", "created_at"] + read_only_fields = ["id", "venue", "created_at"] + + def validate_venue_id(self, venue): + request = self.context.get("request") + if ( + request + and request.user.is_authenticated + and Favorite.objects.filter(user=request.user, venue=venue).exists() + ): + raise serializers.ValidationError( + "This venue is already in your favorites." + ) + return venue + + +class BookingSerializer(serializers.ModelSerializer): + venue = VenueListSerializer(read_only=True) + venue_id = serializers.PrimaryKeyRelatedField( + source="venue", + queryset=Venue.objects.filter(status=Venue.Status.APPROVED), + write_only=True, + ) + + class Meta: + model = Booking + fields = [ + "id", + "venue", + "venue_id", + "event_date", + "event_type", + "guest_count", + "message", + "status", + "created_at", + "updated_at", + ] + read_only_fields = [ + "id", + "venue", + "status", + "created_at", + "updated_at", + ] + + def validate(self, attrs): + venue = attrs["venue"] + event_date = attrs["event_date"] + guest_count = attrs["guest_count"] + + if event_date < timezone.localdate(): + raise serializers.ValidationError({ + "event_date": "The event date cannot be in the past." + }) + + if guest_count > venue.max_capacity: + raise serializers.ValidationError({ + "guest_count": ( + f"This venue allows at most {venue.max_capacity} guests." + ) + }) + + if VenueUnavailablePeriod.objects.filter( + venue=venue, + start_date__lte=event_date, + end_date__gte=event_date, + ).exists(): + raise serializers.ValidationError({ + "event_date": "This venue is unavailable on the selected date." + }) + + return attrs diff --git a/Django_backend/BookMyVenue_project/venues/api/urls.py b/Django_backend/BookMyVenue_project/venues/api/urls.py new file mode 100644 index 000000000..9a8e77ea7 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/api/urls.py @@ -0,0 +1,53 @@ +from django.urls import path + +from .views import ( + BookingListCreateAPIView, + FavoriteDetailAPIView, + FavoriteListCreateAPIView, + FeaturedVenueListAPIView, + VenueDetailAPIView, + VenueListAPIView, + VenueUnavailablePeriodListAPIView, +) + + +app_name = "venues_api" + + +urlpatterns = [ + path( + "venues/", + VenueListAPIView.as_view(), + name="venue-list", + ), + path( + "venues/featured/", + FeaturedVenueListAPIView.as_view(), + name="featured-venue-list", + ), + path( + "venues//", + VenueDetailAPIView.as_view(), + name="venue-detail", + ), + path( + "venues//unavailable-periods/", + VenueUnavailablePeriodListAPIView.as_view(), + name="venue-unavailable-period-list", + ), + path( + "bookings/", + BookingListCreateAPIView.as_view(), + name="booking-list", + ), + path( + "favorites/", + FavoriteListCreateAPIView.as_view(), + name="favorite-list", + ), + path( + "favorites//", + FavoriteDetailAPIView.as_view(), + name="favorite-detail", + ), +] diff --git a/Django_backend/BookMyVenue_project/venues/api/views.py b/Django_backend/BookMyVenue_project/venues/api/views.py new file mode 100644 index 000000000..654ac18b2 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/api/views.py @@ -0,0 +1,122 @@ +from django.db.models import Prefetch +from rest_framework.generics import ListAPIView, RetrieveAPIView +from rest_framework.generics import ListCreateAPIView, RetrieveDestroyAPIView +from rest_framework.permissions import AllowAny, IsAuthenticated +from rest_framework.permissions import BasePermission + +from ..models import Booking, Favorite, Venue, VenuePackage, VenueUnavailablePeriod +from .pagination import FeaturedVenuePagination, VenuePagination +from .serializers import ( + BookingSerializer, + FavoriteSerializer, + VenueDetailSerializer, + VenueListSerializer, + VenueUnavailablePeriodSerializer, +) + + +class IsVenueUser(BasePermission): + message = "Only venue-user accounts can create booking requests." + + def has_permission(self, request, view): + return request.user.account_type == "venue_user" + + +class VenueListAPIView(ListAPIView): + serializer_class = VenueListSerializer + permission_classes = [AllowAny] + pagination_class = VenuePagination + + queryset = ( + Venue.objects + .filter(status=Venue.Status.APPROVED) + .prefetch_related("amenities", "images") + ) + + +class FeaturedVenueListAPIView(ListAPIView): + serializer_class = VenueListSerializer + permission_classes = [AllowAny] + pagination_class = FeaturedVenuePagination + + queryset = ( + Venue.objects + .filter(status=Venue.Status.APPROVED, is_featured=True) + .prefetch_related("amenities", "images") + .order_by("name") + ) + + +class VenueDetailAPIView(RetrieveAPIView): + serializer_class = VenueDetailSerializer + permission_classes = [AllowAny] + lookup_field = "slug" + + queryset = ( + Venue.objects + .filter(status=Venue.Status.APPROVED) + .prefetch_related( + "amenities", + "images", + Prefetch( + "packages", + queryset=VenuePackage.objects.filter(is_active=True), + ), + ) + ) + + +class VenueUnavailablePeriodListAPIView(ListAPIView): + serializer_class = VenueUnavailablePeriodSerializer + permission_classes = [AllowAny] + + def get_queryset(self): + return VenueUnavailablePeriod.objects.filter( + venue__slug=self.kwargs["slug"], + venue__status=Venue.Status.APPROVED, + ) + + +class FavoriteListCreateAPIView(ListCreateAPIView): + serializer_class = FavoriteSerializer + permission_classes = [IsAuthenticated] + + def get_queryset(self): + return ( + Favorite.objects + .filter(user=self.request.user) + .select_related("venue") + .prefetch_related("venue__amenities", "venue__images") + ) + + def perform_create(self, serializer): + serializer.save(user=self.request.user) + + +class FavoriteDetailAPIView(RetrieveDestroyAPIView): + serializer_class = FavoriteSerializer + permission_classes = [IsAuthenticated] + + def get_queryset(self): + return ( + Favorite.objects + .filter(user=self.request.user) + .select_related("venue") + .prefetch_related("venue__amenities", "venue__images") + ) + + +class BookingListCreateAPIView(ListCreateAPIView): + serializer_class = BookingSerializer + permission_classes = [IsAuthenticated, IsVenueUser] + + def get_queryset(self): + return ( + Booking.objects + .filter(user=self.request.user) + .select_related("venue") + .prefetch_related("venue__amenities", "venue__images") + ) + + def perform_create(self, serializer): + serializer.save(user=self.request.user) diff --git a/Django_backend/BookMyVenue_project/venues/apps.py b/Django_backend/BookMyVenue_project/venues/apps.py new file mode 100644 index 000000000..9d33cfd19 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class VenuesConfig(AppConfig): + name = 'venues' diff --git a/Django_backend/BookMyVenue_project/venues/management/__init__.py b/Django_backend/BookMyVenue_project/venues/management/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/venues/management/commands/__init__.py b/Django_backend/BookMyVenue_project/venues/management/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/venues/management/commands/seed_venues.py b/Django_backend/BookMyVenue_project/venues/management/commands/seed_venues.py new file mode 100644 index 000000000..349e6eb5c --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/management/commands/seed_venues.py @@ -0,0 +1,293 @@ +from itertools import cycle + +from django.contrib.auth import get_user_model +from django.core.management.base import BaseCommand, CommandError +from django.db import transaction + +from venues.models import Amenity, Venue, VenuePackage + + +AMENITIES = { + "parking": ("Parking", "bi bi-p-circle"), + "air-conditioning": ("Air Conditioning", "bi bi-snow"), + "wi-fi": ("Wi-Fi", "bi bi-wifi"), + "catering": ("Catering", "bi bi-cup-hot"), + "stage": ("Stage", "bi bi-mic"), + "sound-system": ("Sound System", "bi bi-speaker"), + "projector": ("Projector", "bi bi-camera-video"), + "decoration": ("Decoration", "bi bi-flower1"), + "security": ("Security", "bi bi-shield-check"), +} + + +VENUES = [ + { + "slug": "grand-orchid-hall", + "name": "Grand Orchid Hall", + "venue_type": Venue.VenueType.WEDDING_HALL, + "description": ( + "A premium event hall in central Kochi with elegant interiors, " + "a spacious dining area, professional lighting, and flexible seating." + ), + "max_capacity": 300, + "base_price_per_day": "25000.00", + "address": "MG Road", + "city": "Kochi", + "state": "Kerala", + "postal_code": "682016", + "latitude": "9.968500", + "longitude": "76.285900", + "contact_phone": "+91 90000 10001", + "amenities": [ + "parking", + "air-conditioning", + "wi-fi", + "catering", + "stage", + "sound-system", + "decoration", + "security", + ], + "featured": True, + "packages": [ + ("Basic Hall Booking", "Hall, seating, and basic lighting.", "25000.00"), + ("Wedding Package", "Hall, stage decoration, catering support, and sound system.", "55000.00"), + ("Corporate Package", "Hall, projector, microphones, Wi-Fi, tea, and snacks.", "35000.00"), + ], + }, + { + "slug": "royal-pearl-auditorium", + "name": "Royal Pearl Auditorium", + "venue_type": Venue.VenueType.AUDITORIUM, + "description": ( + "A large modern auditorium suited to conferences, performances, " + "award ceremonies, weddings, and community events." + ), + "max_capacity": 500, + "base_price_per_day": "40000.00", + "address": "Palayam", + "city": "Thiruvananthapuram", + "state": "Kerala", + "postal_code": "695033", + "latitude": "8.506900", + "longitude": "76.956900", + "contact_phone": "+91 90000 10002", + "amenities": [ + "parking", + "air-conditioning", + "wi-fi", + "sound-system", + "projector", + "stage", + "security", + ], + "featured": True, + "packages": [ + ("Auditorium Booking", "Auditorium, seating, stage, and house lighting.", "40000.00"), + ("Performance Package", "Auditorium, stage lighting, and sound system.", "60000.00"), + ], + }, + { + "slug": "blue-lagoon-banquet", + "name": "Blue Lagoon Banquet", + "venue_type": Venue.VenueType.BANQUET_HALL, + "description": ( + "An intimate banquet venue for birthdays, engagements, receptions, " + "and family celebrations with catering support." + ), + "max_capacity": 180, + "base_price_per_day": "18000.00", + "address": "Mavoor Road", + "city": "Kozhikode", + "state": "Kerala", + "postal_code": "673004", + "latitude": "11.258800", + "longitude": "75.780400", + "contact_phone": "+91 90000 10003", + "amenities": [ + "parking", + "air-conditioning", + "catering", + "stage", + "decoration", + ], + "featured": True, + "packages": [ + ("Banquet Hall", "Hall, tables, chairs, and standard lighting.", "18000.00"), + ("Celebration Package", "Hall, themed decoration, stage, and catering support.", "32000.00"), + ], + }, + { + "slug": "emerald-garden-lawn", + "name": "Emerald Garden Lawn", + "venue_type": Venue.VenueType.OUTDOOR_LAWN, + "description": ( + "A landscaped outdoor lawn for weddings, receptions, exhibitions, " + "and relaxed evening celebrations." + ), + "max_capacity": 400, + "base_price_per_day": "22000.00", + "address": "Kumaranalloor", + "city": "Kottayam", + "state": "Kerala", + "postal_code": "686016", + "latitude": "9.591600", + "longitude": "76.522200", + "contact_phone": "+91 90000 10004", + "amenities": [ + "parking", + "catering", + "stage", + "sound-system", + "decoration", + "security", + ], + "featured": False, + "packages": [ + ("Lawn Booking", "Exclusive lawn access with basic lighting.", "22000.00"), + ("Garden Wedding", "Lawn, stage, decorative lighting, and catering area.", "48000.00"), + ], + }, + { + "slug": "skyline-conference-hall", + "name": "Skyline Conference Hall", + "venue_type": Venue.VenueType.CONFERENCE_HALL, + "description": ( + "A practical city-centre conference hall for workshops, training, " + "business meetings, presentations, and networking events." + ), + "max_capacity": 120, + "base_price_per_day": "12000.00", + "address": "Kaloor", + "city": "Kochi", + "state": "Kerala", + "postal_code": "682017", + "latitude": "9.994200", + "longitude": "76.291300", + "contact_phone": "+91 90000 10005", + "amenities": [ + "parking", + "air-conditioning", + "wi-fi", + "sound-system", + "projector", + ], + "featured": False, + "packages": [ + ("Meeting Package", "Hall, projector, Wi-Fi, and microphones.", "12000.00"), + ("Full-day Conference", "Conference setup, AV equipment, tea, and snacks.", "20000.00"), + ], + }, + { + "slug": "coral-crown-wedding-centre", + "name": "Coral Crown Wedding Centre", + "venue_type": Venue.VenueType.WEDDING_HALL, + "description": ( + "A stylish wedding centre with a dedicated dining hall, decorated " + "stage, guest facilities, and convenient city access." + ), + "max_capacity": 250, + "base_price_per_day": "30000.00", + "address": "Punkunnam", + "city": "Thrissur", + "state": "Kerala", + "postal_code": "680002", + "latitude": "10.533300", + "longitude": "76.201400", + "contact_phone": "+91 90000 10006", + "amenities": [ + "parking", + "air-conditioning", + "wi-fi", + "catering", + "stage", + "decoration", + "security", + ], + "featured": False, + "packages": [ + ("Hall Booking", "Wedding hall, dining area, seating, and lighting.", "30000.00"), + ("Premium Wedding", "Hall, dining, decoration, sound, and catering support.", "65000.00"), + ], + }, +] + + +class Command(BaseCommand): + help = "Create or update the six sample venues used by the frontend." + + @transaction.atomic + def handle(self, *args, **options): + user_model = get_user_model() + owners = list( + user_model.objects.filter(account_type="venue_owner").order_by("id") + ) + if not owners: + raise CommandError("Create at least one venue-owner account first.") + + amenities = {} + for slug, (name, icon) in AMENITIES.items(): + amenity, _ = Amenity.objects.update_or_create( + slug=slug, + defaults={"name": name, "icon": icon}, + ) + amenities[slug] = amenity + + owner_cycle = cycle(owners) + created_count = 0 + updated_count = 0 + + for sample in VENUES: + owner = next(owner_cycle) + contact_email = owner.email or f"{owner.username}@example.com" + venue, created = Venue.objects.update_or_create( + slug=sample["slug"], + defaults={ + "owner": owner, + "name": sample["name"], + "venue_type": sample["venue_type"], + "description": sample["description"], + "max_capacity": sample["max_capacity"], + "base_price_per_day": sample["base_price_per_day"], + "address": sample["address"], + "city": sample["city"], + "state": sample["state"], + "postal_code": sample["postal_code"], + "country": "India", + "latitude": sample["latitude"], + "longitude": sample["longitude"], + "contact_phone": sample["contact_phone"], + "contact_email": contact_email, + "status": Venue.Status.APPROVED, + "is_verified": True, + "is_featured": sample["featured"], + }, + ) + venue.amenities.set(amenities[slug] for slug in sample["amenities"]) + + package_names = [] + for name, description, price in sample["packages"]: + VenuePackage.objects.update_or_create( + venue=venue, + name=name, + defaults={ + "description": description, + "price_per_day": price, + "is_active": True, + }, + ) + package_names.append(name) + + venue.packages.exclude(name__in=package_names).delete() + + if created: + created_count += 1 + else: + updated_count += 1 + + self.stdout.write( + self.style.SUCCESS( + f"Sample venues ready: {created_count} created, " + f"{updated_count} updated." + ) + ) diff --git a/Django_backend/BookMyVenue_project/venues/migrations/0001_initial.py b/Django_backend/BookMyVenue_project/venues/migrations/0001_initial.py new file mode 100644 index 000000000..34f8a2c2b --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/migrations/0001_initial.py @@ -0,0 +1,172 @@ +# Generated by Django 6.0.6 on 2026-07-01 20:42 + +import django.core.validators +import django.db.models.deletion +from decimal import Decimal +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Amenity', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True)), + ('slug', models.SlugField(unique=True)), + ('icon', models.CharField(blank=True, max_length=100)), + ], + ), + migrations.CreateModel( + name='Venue', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('slug', models.SlugField(blank=True, max_length=220, unique=True)), + ('venue_type', models.CharField(choices=[('wedding_hall', 'Wedding Hall'), ('banquet_hall', 'Banquet Hall'), ('auditorium', 'Auditorium'), ('conference_hall', 'Conference Hall'), ('outdoor_lawn', 'Outdoor Lawn')], max_length=30)), + ('description', models.TextField()), + ('max_capacity', models.PositiveIntegerField(validators=[django.core.validators.MinValueValidator(1)])), + ('base_price_per_day', models.DecimalField(decimal_places=2, max_digits=10, validators=[django.core.validators.MinValueValidator(Decimal('0.00'))])), + ('address', models.CharField(max_length=255)), + ('city', models.CharField(max_length=100)), + ('state', models.CharField(blank=True, max_length=100)), + ('postal_code', models.CharField(blank=True, max_length=20)), + ('country', models.CharField(default='India', max_length=100)), + ('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, validators=[django.core.validators.MinValueValidator(Decimal('-90.000000')), django.core.validators.MaxValueValidator(Decimal('90.000000'))])), + ('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, validators=[django.core.validators.MinValueValidator(Decimal('-180.000000')), django.core.validators.MaxValueValidator(Decimal('180.000000'))])), + ('contact_phone', models.CharField(max_length=20)), + ('contact_email', models.EmailField(max_length=254)), + ('status', models.CharField(choices=[('draft', 'Draft'), ('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('inactive', 'Inactive')], default='draft', max_length=20)), + ('is_verified', models.BooleanField(default=False)), + ('is_featured', models.BooleanField(default=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('amenities', models.ManyToManyField(blank=True, related_name='venues', to='venues.amenity')), + ('owner', models.ForeignKey(limit_choices_to={'account_type': 'venue_owner'}, on_delete=django.db.models.deletion.PROTECT, related_name='venues', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='Favorite', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorite_records', to=settings.AUTH_USER_MODEL)), + ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorite_records', to='venues.venue')), + ], + options={ + 'ordering': ['-created_at'], + }, + ), + migrations.CreateModel( + name='VenueImage', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image', models.ImageField(upload_to='venue_images/')), + ('alt_text', models.CharField(blank=True, max_length=255)), + ('is_cover', models.BooleanField(default=False)), + ('sort_order', models.PositiveIntegerField(default=0)), + ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='venues.venue')), + ], + options={ + 'ordering': ['sort_order', 'id'], + }, + ), + migrations.CreateModel( + name='VenuePackage', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('description', models.TextField(blank=True)), + ('price_per_day', models.DecimalField(decimal_places=2, max_digits=10, validators=[django.core.validators.MinValueValidator(Decimal('0.00'))])), + ('is_active', models.BooleanField(default=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='packages', to='venues.venue')), + ], + options={ + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='VenueUnavailablePeriod', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField()), + ('end_date', models.DateField()), + ('reason', models.CharField(blank=True, max_length=255)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='unavailable_periods', to='venues.venue')), + ], + options={ + 'ordering': ['start_date'], + }, + ), + migrations.AddIndex( + model_name='venue', + index=models.Index(fields=['status', 'city'], name='venue_status_city_idx'), + ), + migrations.AddIndex( + model_name='venue', + index=models.Index(fields=['venue_type'], name='venue_type_idx'), + ), + migrations.AddIndex( + model_name='venue', + index=models.Index(fields=['base_price_per_day'], name='venue_price_idx'), + ), + migrations.AddIndex( + model_name='venue', + index=models.Index(fields=['max_capacity'], name='venue_capacity_idx'), + ), + migrations.AddConstraint( + model_name='venue', + constraint=models.CheckConstraint(condition=models.Q(('max_capacity__gte', 1)), name='venue_capacity_at_least_one'), + ), + migrations.AddConstraint( + model_name='venue', + constraint=models.CheckConstraint(condition=models.Q(('base_price_per_day__gte', 0)), name='venue_base_price_not_negative'), + ), + migrations.AddConstraint( + model_name='venue', + constraint=models.CheckConstraint(condition=models.Q(('latitude__isnull', True), models.Q(('latitude__gte', -90), ('latitude__lte', 90)), _connector='OR'), name='venue_valid_latitude'), + ), + migrations.AddConstraint( + model_name='venue', + constraint=models.CheckConstraint(condition=models.Q(('longitude__isnull', True), models.Q(('longitude__gte', -180), ('longitude__lte', 180)), _connector='OR'), name='venue_valid_longitude'), + ), + migrations.AddConstraint( + model_name='favorite', + constraint=models.UniqueConstraint(fields=('user', 'venue'), name='unique_user_venue_favorite'), + ), + migrations.AddConstraint( + model_name='venueimage', + constraint=models.UniqueConstraint(condition=models.Q(('is_cover', True)), fields=('venue',), name='unique_cover_image_per_venue'), + ), + migrations.AddConstraint( + model_name='venuepackage', + constraint=models.UniqueConstraint(fields=('venue', 'name'), name='unique_package_name_per_venue'), + ), + migrations.AddConstraint( + model_name='venuepackage', + constraint=models.CheckConstraint(condition=models.Q(('price_per_day__gte', 0)), name='venue_package_price_not_negative'), + ), + migrations.AddIndex( + model_name='venueunavailableperiod', + index=models.Index(fields=['venue', 'start_date', 'end_date'], name='venue_unavailable_dates_idx'), + ), + migrations.AddConstraint( + model_name='venueunavailableperiod', + constraint=models.CheckConstraint(condition=models.Q(('end_date__gte', models.F('start_date'))), name='unavailable_end_on_or_after_start'), + ), + ] diff --git a/Django_backend/BookMyVenue_project/venues/migrations/0002_booking.py b/Django_backend/BookMyVenue_project/venues/migrations/0002_booking.py new file mode 100644 index 000000000..46a59c760 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/migrations/0002_booking.py @@ -0,0 +1,37 @@ +# Generated by Django 6.0.6 on 2026-07-04 21:20 + +import django.core.validators +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('venues', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Booking', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('event_date', models.DateField()), + ('event_type', models.CharField(choices=[('birthday', 'Birthday'), ('wedding', 'Wedding'), ('corporate', 'Corporate Event'), ('engagement', 'Engagement'), ('reception', 'Reception'), ('conference', 'Conference'), ('other', 'Other')], max_length=20)), + ('guest_count', models.PositiveIntegerField(validators=[django.core.validators.MinValueValidator(1)])), + ('message', models.TextField(blank=True)), + ('status', models.CharField(choices=[('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('cancelled', 'Cancelled')], default='pending', max_length=20)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='booking_requests', to=settings.AUTH_USER_MODEL)), + ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='booking_requests', to='venues.venue')), + ], + options={ + 'ordering': ['-created_at'], + 'indexes': [models.Index(fields=['venue', 'event_date', 'status'], name='booking_venue_date_status_idx')], + 'constraints': [models.CheckConstraint(condition=models.Q(('guest_count__gte', 1)), name='booking_guest_count_at_least_one')], + }, + ), + ] diff --git a/Django_backend/BookMyVenue_project/venues/migrations/__init__.py b/Django_backend/BookMyVenue_project/venues/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/Django_backend/BookMyVenue_project/venues/models.py b/Django_backend/BookMyVenue_project/venues/models.py new file mode 100644 index 000000000..e6edc2d29 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/models.py @@ -0,0 +1,356 @@ +from decimal import Decimal + +from django.conf import settings +from django.core.exceptions import ValidationError +from django.core.validators import MaxValueValidator, MinValueValidator +from django.db import models +from django.utils.text import slugify + + +class Venue(models.Model): + class Status(models.TextChoices): + DRAFT = "draft", "Draft" + PENDING = "pending", "Pending" + APPROVED = "approved", "Approved" + REJECTED = "rejected", "Rejected" + INACTIVE = "inactive", "Inactive" + + class VenueType(models.TextChoices): + WEDDING_HALL = "wedding_hall", "Wedding Hall" + BANQUET_HALL = "banquet_hall", "Banquet Hall" + AUDITORIUM = "auditorium", "Auditorium" + CONFERENCE_HALL = "conference_hall", "Conference Hall" + OUTDOOR_LAWN = "outdoor_lawn", "Outdoor Lawn" + + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + on_delete=models.PROTECT, + related_name="venues", + limit_choices_to={"account_type": "venue_owner"}, + ) + + name = models.CharField(max_length=200) + slug = models.SlugField(max_length=220, unique=True, blank=True) + + venue_type = models.CharField(max_length=30, choices=VenueType.choices) + description = models.TextField() + + max_capacity = models.PositiveIntegerField( + validators=[MinValueValidator(1)] + ) + base_price_per_day = models.DecimalField( + max_digits=10, + decimal_places=2, + validators=[MinValueValidator(Decimal("0.00"))], + ) + + address = models.CharField(max_length=255) + city = models.CharField(max_length=100) + state = models.CharField(max_length=100, blank=True) + postal_code = models.CharField(max_length=20, blank=True) + country = models.CharField(max_length=100, default="India") + + latitude = models.DecimalField( + max_digits=9, + decimal_places=6, + null=True, + blank=True, + validators=[ + MinValueValidator(Decimal("-90.000000")), + MaxValueValidator(Decimal("90.000000")), + ], + ) + longitude = models.DecimalField( + max_digits=9, + decimal_places=6, + null=True, + blank=True, + validators=[ + MinValueValidator(Decimal("-180.000000")), + MaxValueValidator(Decimal("180.000000")), + ], + ) + + contact_phone = models.CharField(max_length=20) + contact_email = models.EmailField() + + status = models.CharField( + max_length=20, + choices=Status.choices, + default=Status.DRAFT, + ) + + is_verified = models.BooleanField(default=False) + is_featured = models.BooleanField(default=False) + + amenities = models.ManyToManyField( + "Amenity", + blank=True, + related_name="venues", + ) + + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + ordering = ["name"] + indexes = [ + models.Index(fields=["status", "city"], name="venue_status_city_idx"), + models.Index(fields=["venue_type"], name="venue_type_idx"), + models.Index(fields=["base_price_per_day"], name="venue_price_idx"), + models.Index(fields=["max_capacity"], name="venue_capacity_idx"), + ] + constraints = [ + models.CheckConstraint( + condition=models.Q(max_capacity__gte=1), + name="venue_capacity_at_least_one", + ), + models.CheckConstraint( + condition=models.Q(base_price_per_day__gte=0), + name="venue_base_price_not_negative", + ), + models.CheckConstraint( + condition=( + models.Q(latitude__isnull=True) + | models.Q(latitude__gte=-90, latitude__lte=90) + ), + name="venue_valid_latitude", + ), + models.CheckConstraint( + condition=( + models.Q(longitude__isnull=True) + | models.Q(longitude__gte=-180, longitude__lte=180) + ), + name="venue_valid_longitude", + ), + ] + + def clean(self): + super().clean() + if ( + self.owner_id + and getattr(self.owner, "account_type", None) != "venue_owner" + ): + raise ValidationError( + {"owner": "Only a venue-owner account can own a venue."} + ) + + def save(self, *args, **kwargs): + if not self.slug: + base_slug = slugify(self.name) or "venue" + slug = base_slug + counter = 2 + queryset = type(self).objects.all() + if self.pk: + queryset = queryset.exclude(pk=self.pk) + + while queryset.filter(slug=slug).exists(): + slug = f"{base_slug}-{counter}" + counter += 1 + + self.slug = slug + + super().save(*args, **kwargs) + + def __str__(self): + return self.name + + +class VenueImage(models.Model): + venue = models.ForeignKey( + Venue, + on_delete=models.CASCADE, + related_name="images", + ) + image = models.ImageField(upload_to="venue_images/") + alt_text = models.CharField(max_length=255, blank=True) + is_cover = models.BooleanField(default=False) + sort_order = models.PositiveIntegerField(default=0) + + class Meta: + ordering = ["sort_order", "id"] + constraints = [ + models.UniqueConstraint( + fields=["venue"], + condition=models.Q(is_cover=True), + name="unique_cover_image_per_venue", + ) + ] + + def __str__(self): + return f"Image for {self.venue.name}" + + +class Amenity(models.Model): + name = models.CharField(max_length=100, unique=True) + slug = models.SlugField(unique=True) + icon = models.CharField(max_length=100, blank=True) + + def __str__(self): + return self.name + + +class VenuePackage(models.Model): + venue = models.ForeignKey( + Venue, + on_delete=models.CASCADE, + related_name="packages", + ) + name = models.CharField(max_length=100) + description = models.TextField(blank=True) + price_per_day = models.DecimalField( + max_digits=10, + decimal_places=2, + validators=[MinValueValidator(Decimal("0.00"))], + ) + is_active = models.BooleanField(default=True) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + ordering = ["name"] + constraints = [ + models.UniqueConstraint( + fields=["venue", "name"], + name="unique_package_name_per_venue", + ), + models.CheckConstraint( + condition=models.Q(price_per_day__gte=0), + name="venue_package_price_not_negative", + ), + ] + + def __str__(self): + return f"{self.name} - {self.venue.name}" + + +class VenueUnavailablePeriod(models.Model): + venue = models.ForeignKey( + Venue, + on_delete=models.CASCADE, + related_name="unavailable_periods", + ) + start_date = models.DateField() + end_date = models.DateField() + reason = models.CharField(max_length=255, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + ordering = ["start_date"] + indexes = [ + models.Index( + fields=["venue", "start_date", "end_date"], + name="venue_unavailable_dates_idx", + ) + ] + constraints = [ + models.CheckConstraint( + condition=models.Q(end_date__gte=models.F("start_date")), + name="unavailable_end_on_or_after_start", + ) + ] + + def clean(self): + super().clean() + if not self.venue_id or not self.start_date or not self.end_date: + return + + overlapping_periods = type(self).objects.filter( + venue_id=self.venue_id, + start_date__lte=self.end_date, + end_date__gte=self.start_date, + ) + if self.pk: + overlapping_periods = overlapping_periods.exclude(pk=self.pk) + + if overlapping_periods.exists(): + raise ValidationError( + "This unavailable period overlaps an existing unavailable period." + ) + + def __str__(self): + return f"{self.venue.name}: {self.start_date} to {self.end_date}" + + +class Booking(models.Model): + class EventType(models.TextChoices): + BIRTHDAY = "birthday", "Birthday" + WEDDING = "wedding", "Wedding" + CORPORATE = "corporate", "Corporate Event" + ENGAGEMENT = "engagement", "Engagement" + RECEPTION = "reception", "Reception" + CONFERENCE = "conference", "Conference" + OTHER = "other", "Other" + + class Status(models.TextChoices): + PENDING = "pending", "Pending" + APPROVED = "approved", "Approved" + REJECTED = "rejected", "Rejected" + CANCELLED = "cancelled", "Cancelled" + + user = models.ForeignKey( + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + related_name="booking_requests", + ) + venue = models.ForeignKey( + Venue, + on_delete=models.CASCADE, + related_name="booking_requests", + ) + event_date = models.DateField() + event_type = models.CharField(max_length=20, choices=EventType.choices) + guest_count = models.PositiveIntegerField(validators=[MinValueValidator(1)]) + message = models.TextField(blank=True) + status = models.CharField( + max_length=20, + choices=Status.choices, + default=Status.PENDING, + ) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + ordering = ["-created_at"] + indexes = [ + models.Index( + fields=["venue", "event_date", "status"], + name="booking_venue_date_status_idx", + ), + ] + constraints = [ + models.CheckConstraint( + condition=models.Q(guest_count__gte=1), + name="booking_guest_count_at_least_one", + ), + ] + + def __str__(self): + return f"{self.user} - {self.venue.name} on {self.event_date}" + + +class Favorite(models.Model): + user = models.ForeignKey( + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + related_name="favorite_records", + ) + venue = models.ForeignKey( + Venue, + on_delete=models.CASCADE, + related_name="favorite_records", + ) + created_at = models.DateTimeField(auto_now_add=True) + + class Meta: + ordering = ["-created_at"] + constraints = [ + models.UniqueConstraint( + fields=["user", "venue"], + name="unique_user_venue_favorite", + ) + ] + + def __str__(self): + return f"{self.user} likes {self.venue.name}" diff --git a/Django_backend/BookMyVenue_project/venues/tests.py b/Django_backend/BookMyVenue_project/venues/tests.py new file mode 100644 index 000000000..269e5476e --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/tests.py @@ -0,0 +1,161 @@ +from datetime import timedelta + +from django.contrib.auth import get_user_model +from django.urls import reverse +from django.utils import timezone +from rest_framework import status +from rest_framework.test import APITestCase + +from .models import Booking, Venue + + +class FeaturedVenueListAPITests(APITestCase): + @classmethod + def setUpTestData(cls): + cls.owner = get_user_model().objects.create_user( + username="featured-owner", + password="test-password", + account_type="venue_owner", + ) + + for name in ["Alpha Hall", "Bravo Hall", "Charlie Hall", "Delta Hall"]: + cls.create_venue(name=name, is_featured=True) + + cls.create_venue(name="Not Featured Hall", is_featured=False) + cls.create_venue( + name="Pending Featured Hall", + is_featured=True, + venue_status=Venue.Status.PENDING, + ) + + @classmethod + def create_venue( + cls, + *, + name, + is_featured, + venue_status=Venue.Status.APPROVED, + ): + return Venue.objects.create( + owner=cls.owner, + name=name, + venue_type=Venue.VenueType.WEDDING_HALL, + description="A venue used to test the featured venue endpoint.", + max_capacity=100, + base_price_per_day="10000.00", + address="Test Road", + city="Kochi", + contact_phone="+91 90000 00000", + contact_email="venue@example.com", + status=venue_status, + is_featured=is_featured, + ) + + def test_returns_first_three_approved_featured_venues(self): + response = self.client.get(reverse("venues_api:featured-venue-list")) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 4) + self.assertEqual(len(response.data["results"]), 3) + self.assertIsNotNone(response.data["next"]) + self.assertEqual( + [venue["name"] for venue in response.data["results"]], + ["Alpha Hall", "Bravo Hall", "Charlie Hall"], + ) + + def test_returns_remaining_featured_venues_on_next_page(self): + response = self.client.get( + reverse("venues_api:featured-venue-list"), + {"page": 2}, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual( + [venue["name"] for venue in response.data["results"]], + ["Delta Hall"], + ) + self.assertIsNone(response.data["next"]) + + +class BookingListCreateAPITests(APITestCase): + @classmethod + def setUpTestData(cls): + cls.owner = get_user_model().objects.create_user( + username="booking-owner", + password="test-password", + account_type="venue_owner", + ) + cls.venue_user = get_user_model().objects.create_user( + username="booking-user", + password="test-password", + account_type="venue_user", + ) + cls.venue = Venue.objects.create( + owner=cls.owner, + name="Booking Hall", + venue_type=Venue.VenueType.WEDDING_HALL, + description="A venue used to test booking requests.", + max_capacity=100, + base_price_per_day="10000.00", + address="Test Road", + city="Kochi", + contact_phone="+91 90000 00000", + contact_email="venue@example.com", + status=Venue.Status.APPROVED, + ) + + def booking_payload(self, **overrides): + payload = { + "venue_id": self.venue.id, + "event_date": timezone.localdate() + timedelta(days=7), + "event_type": Booking.EventType.WEDDING, + "guest_count": 50, + "message": "Please confirm this booking.", + } + payload.update(overrides) + return payload + + def test_guest_cannot_create_booking(self): + response = self.client.post( + reverse("venues_api:booking-list"), + self.booking_payload(), + ) + + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + self.assertEqual(Booking.objects.count(), 0) + + def test_venue_owner_cannot_create_booking(self): + self.client.force_authenticate(user=self.owner) + + response = self.client.post( + reverse("venues_api:booking-list"), + self.booking_payload(), + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(Booking.objects.count(), 0) + + def test_venue_user_can_create_booking(self): + self.client.force_authenticate(user=self.venue_user) + + response = self.client.post( + reverse("venues_api:booking-list"), + self.booking_payload(), + ) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + booking = Booking.objects.get() + self.assertEqual(booking.user, self.venue_user) + self.assertEqual(booking.venue, self.venue) + self.assertEqual(booking.status, Booking.Status.PENDING) + + def test_booking_cannot_exceed_venue_capacity(self): + self.client.force_authenticate(user=self.venue_user) + + response = self.client.post( + reverse("venues_api:booking-list"), + self.booking_payload(guest_count=101), + ) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn("guest_count", response.data) diff --git a/Django_backend/BookMyVenue_project/venues/views.py b/Django_backend/BookMyVenue_project/venues/views.py new file mode 100644 index 000000000..91ea44a21 --- /dev/null +++ b/Django_backend/BookMyVenue_project/venues/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/images/img2.jpg b/images/img2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4634d6e0d37e11525fb08028e9fc4ed33f4598c1 GIT binary patch literal 75878 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%0AM*|(Uv{Wq#Lkc+3^YN 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 CW=B8( literal 0 HcmV?d00001 diff --git a/images/img3.jpg b/images/img3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c2bfd475652bb366e00e8142ba50fe6405407c3e GIT binary patch literal 48449 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ⓈzOuObT)-4YS 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 MRTb6&z>j(V+3BEG;Q#;t literal 0 HcmV?d00001 diff --git a/images/img4.jpg b/images/img4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab57a57518b308f9eb4dcbad8be1c501f42ec3cb GIT binary patch literal 72069 zcmbrlby!_IvUy<04z-5$KnS7et!aZ zst36^0RY-zf>Zn3kUpSO&lpeI7W-qFheCII#F z5Dc>S78Di`5(LO826@{<-C%w!4luZjr##!2p4V(FE{^hS7UKFs`rfKAXBVvyUzkaV zfhjb^4Jz%(rl>$D7bFwp;q3wQvu6qNaQ8&W1j)1g6)uCR|7jLvQy?Ue^L2ERF;>&~ zHx1^OJlnqq6BrmM5GX3(5dmW;z=&W^Kl>oCCxZQth=0jYgCU^4 zF5Z4FUY;y}WZFA;`TNPUvHe@Hx3ia@7sA=g`ycWDVe3ELe=YtmCT(v&s2IiwRWD!I zKYSP+(7%I1_&EyxPl~^+e@zu+V`2HXUQL*vU$C}^JsgJ6)YdTlM+!!&0Q^s%%iq4g zfWuv!{Qg6~BlI77Z+~C+zgiukf-rZO2h7tCfuR+~sQMSW-tPX0f2c9G`6FO|n*Q>* zJ30ws6#iTGzZw46p&o>R=-+VvAML^r2#N>^Nr8n#z#`KBD8mRdc7Z$l{fEZ?x99l& zrNMAHLS_Do{=fZ@jpZNIWmJ7(jxLz7{Dq6vHUL}Wt0&Jn4h+q zJe!!Lu(Xhbn6StnB>p`t84H+$iJ!gSU!4ABAp+yxe>}M^! z0tU8+`@;S*Df;_)Jo3N{%HKmCKQ;4{zB&%?K}lUnoo-?&Sq{hyBwE#dO=d zz&+*v0Ew9`jCmORWz_8b?DbtdT|D9cApL)sod7SWy@Q~dzBc%Qv7wf>ingh`8d%*@ zRsDgfiMq0}s+PKernZ5)wtt#A`_U;zbfu73jd9= zoZz3;fNA`qfXKeXj zI{tG1(eXd!63YFBL+>xp|A!&}U9{fzz6h9Uus2Me%NX`An7I`GlhMprPvMWp{@>>F zuec zu!8_3|2a_%*na;>;R&Gmzb(1nYXDUM;hj79ckl@D@$v5x65b`DAtfOuCSjzcBBNnv z<^ZuVv$1mWNeXiEi1Dzp2`LMUNy{oIC~yd-Qjl4gkQ$!TNI}`>%qzN8$i+@i2X~e{QCj z@?SleD;74U@AoQz2nP#*O^QQ`X=xn!%u2vgM}PxljUbEFw#Nr%^7C+q17~&kfwb6V z;?Z$76%3#zQeu+OCePkQJU>yL_7=%3G`A~hR1*OB@-7xP;F%J3R|&1177ec|P$YGL zMJtL*2gDJ^SfN*wr{{aX3KU(}Cy=B>w$nVDqSe zA8Q9jTAAft)?>v48n?=s-Z z4vfl%O5_oQRD{$*!c@dO5tPo{1Ng@L0Cyd^uVfuawYzM_6D%pc9X9ZjsoWCN zT zLJo{osbG3bL{16<&hDaj2g3mz+*sU%dEy~I+Wm%|s`XBGrwV|zl;Bid3Tv)`FS&ys z#B;+wrh@SNYNh>h=IJX%=kn)C0kzy&Ivi0f1S$h|%}R8!T0$DyJot;`PKo<`Hf;%2 zH%-W@MWTI{j5$}cy_24UZ~O<7lwe}VxLg*n@6uiK-0i2-%|TaBHS=u}Pp;$aA;fm& z!_fhv)p;B;V@Fe7*_29H{8_qGx&ReQzde4|j8tJ9sO4a8PN~@PB0UT2KEjbMOTf>_ zDfeyN(%a4#l~)QLp>%zSiuIeW-6%7$m#iTW?z2#e7#CPyk;sJULf%`}j2L5jjDcJIq7j<_7W4L%;7?b}n()|lbs)sglHJNDnRMh-b zg&(V*HUA=)0TcpJ1~ei2Sxcdo+r!a*Eyizcg&7BIb53+3uZP67vJ7@{i z%yjwVP@+R!(ejrm1-jG~B&XufO0e$C3;8rB)u8Q=Z|$0RVigU7{W;{(x9B$0b`D%^6UAVjNJ~V+N82>0q5b1hMxRGYK^XiIjXC@7h^}IDgGJcXr>SJ zUkbA1(Zx)|_e*7r6ORN1_9S#ftNAlEGw%-+*AahoV;h^O%Q(~})a7`Vz>;R)^SUU{ z!+3vD;t1?e1D+EXFOr!~T1k4HGC#nPTKIul6TPbbN_uZZpHX^u#H?#=uFzJ#uB!uL zv%Y~yFEW~FdR9M|b9rNJqS5S;m}SaP@09P>; zuu`cJ%wOI#f01sfmzhF4fOXyt8E=i~G*?S{k;KsF%oqF0`n2!4YFo&5RB~qAfjE=* zwM>oJT=sr%mk?E%%HOM;4rmT&sn~5p733W^kU3`PBYJ7D?I$xA-5)T&0?csmEW`AZmo0YGGdmnQGt8$ROx5}*&H;7?aqsqGj$?XSdltB{E2L*`R~QZ+ikhDg=t+&vnryF+SRj$;d$Lu@UYAqb zpz(65{5i7`qUOTmz0Jr-Q`3rQ=~8Avmkej1+G1^z1-neQ&cwO4O_t;ONOE=3 zoxT!~5Sv!*<>UQjZF?3h{4xnrwfQ;vtEpa(s|=&u?~`ahH}c6aR5yj9LTT3SsY~#s zY(MHKPdvSvre#^K(8P(Zfm>l4^|w4Su4wWYI~;E~(4FWdSrgjGtAEG)MB<)TfB?=f3?S=sO<{UW84V ztt4sJR5Zfn-rKh!XJ$H>eS#77Mjnfv%?`Z>2*2yh?n*JV%?rMU02}+A4;nWDWsy$$ zaK-{TfBc+aEEvOgMO$6R z=8lAJ-`$2nrX)!=YjN(W>dg9{84Ai^XNM0BRzhqwwMwFEIu(I|?yqgyFD!@&3M{0X zd;Bxw>bmxNy!!*cg-AeM9OJ;q_Ln*n6)kXWJexxpjwN!BxMM_5Mk(xs^(i)0-|c!VPfe znm&B5CooQj(aGr*5Q12Lm9gxfcTv-k=ag!1eD?hYu{G1ZCWF}cfOcO}jHxMnh;2Pb zx#j15yiHd)%BXWCJnWfW)nbm;k=`F`e4#b969h3g!+!W7{fM2OieJ0*!SUEzAQDwKt!8J-Y4fzVJ+!Z%F4?FB*7+j?(B7XL`}n?eDhM zSXwWQ8OY1t{~~XY9~bi?MAT|L=!$keHxz%7UTD#Cxzg9K{c~N1AD1i)ZQ0p^KC8F& zd_~l1i3(>~kxXKg9y1=3oV^Toeo^qYPkPLYkZFRy60(*j5Hzv2S0|gr4madGKPiPY znAF9U4d*r-jeu0e{P`Pfoi1k4y8*j5A9VCY4j>#Gy=_}FC7!O2d=~}$mZXCN7``jK zoGPF<<`S5E*eo%(W(9uj^wE8W0~Wgc9@~D4KIsr@g)mbCXAZrRJ~|k0uN|JcFxERF z+U&>_d}yxF?AQAWUYulEN+$ttG4QXHZGYqbATj8&9E}0OSmw>1* zAX6Q+T%d z`;Yp9iku}$K@F0y`uCmPOmX{&f%2zrjDx8c2i`+(^<@Fjlw>B3?iomYG!cX7u>QVBC28vkL)V>5HR{mK z_&h-^B1Gqa)#6U>M;B8!mx1U?h*R{r@1?WwRz0=cN~3yS!0G&wn7(~*N?wQRY;(N~ z(x!8rq{V+KPiUwA(|&2A{B@-=u;X%vqnY8p17$shUNrgYj*Rz5Cx6sQz-EGmzk#G@ z1^S|d$7bPggV69u=%f?T?3r}5y+g*xlHJn62ZBDyi{-1F<+-vHq(;@QOE zODp=BRsJPO*^9Z3y0p;(l1_BO=*7kKPJv-@eSx?$w)pdhw83&$LnC@?dow$0US`+S zHt|7`MnF~m6`f}_6}?}D+YgUFC@&=~@~W3uBb%KysrPjJWuNrb!*X+WJN2!mHD%`N zBuXJ;dkdV4A}h9j=hxpJFUEIUyL1igze9WWFFIeCysjG|3~|lBT2AuW`LVh*onp8& zSGvAG^bFuU@n)+R(J1`3vT#FS1bO1XUlBjQ;;Ln4TH6B^S4wyI{-MEo zzmirJ`S}moJ>Tsx$=4qOzKCzY3xaL7*8TbC>gs)Nu1Z`N8hB9o2Q6WmPx-Z8J}0n{ zx}CII3QvAtBqy>G&@I2PI)XFQdqMY#{*o!N+foR>3v%AM_$1`;>hhvxXCK}UhWq4h z&A6$Uz+^b&_h-@VX?iS>p*CHyz-`OeKx$j??J{7s&QX zXM2Vf*;??h#a8pYh`YF+{4&9%b1`#pJzd&6dO`dC6}+u3`&{foSIi(%;(c)N*DJ;w zi>bcUNLqa{^0vLP{+$oY{yQLUipbri?87XNx0T7iUd)ZCKZ~a*46buC6nNn=`Dx@) zt+|&ZV$J2p4Y7Z<_=w^8G*5!vuZ9vCa~PR#-@EGn$@bp^7!Lchr<>u&J?WxzbiF88$#86 zN7eV!16=!^vjzd%_@n8YF6-LY)(78NX|em$v`KaNAr4Df0wKdGjGiy@5CL5wVPFUZ zwgs)V*AO1~GJJfwf9WyRR>@rC9=!KddvVzRD$5w}q5DjJ{p`Ub{tknZagHU(&Pahm zi}ui`M*(Hi^cK~%PfE}}7b6lEhhH=eqFY`X87&w}PCPz5XvCSG8i(y)F0_7saSW3n z)lrWZ=3UT>KkFP`Y+HI%8Yx)(L1FmJVSIC|;qhgS0eI)(PNRHCGHQ>>Gc@e|MnFq1I}fl#o?KWa;smi6zFJ~1lHZh6PnkdQf5I6@pwH^*c9@ZuBVDtCjjeJUPA z)3APib5na4wYA5Sy*iaFONY)nUhIB2gHJ%%>!m<$*|jrWBes-x7)HB0-n%i?xlk1& zDlY=B;FIz+htn6xOkJ(m%-?Sivw1M1Zk==B#>j|3iz8*O|VDguzl!tk2fP@BGa7@J-);axjepUZ~juygRVA9 z%)++5B5Gr`n&5oS>2E4>1~nwV)yisiK>;Vw}Lpb>`_ zB*xIGQ@CS^HLTBS0Zg8t_5Cd!;8ER>&|8~<1S5yr97h9#5HlW26>q4br)O~27R5Qa}EsE?a^J`!_RX;tk^1~QTPCLKL8)8iDz>&w{uQQaA4oKmsG*tG-%>820}@o++;xdk(*UEx%d#K*~nP5WQj zF7|Y0Md!Q7QT0fRt|ea-3Po#&t@MnAMM(vSZ9G`6*HXSZOi+eXX>c*SN5$~tax8?` zvsVISo_SBcV7UMcgXN-c>N1_rY)mAcS4hQ^quSot)owBNJnu@d@16vM+`Ha6W-ZM5 z*ffjVteNfZqsa7>NU>P)RY=`{tqZ=z{L?aSi_$GtpM4B^zQ_qttD_NS?GZu;j=XI- zq7P+q$Hy1-*7&K|`ouX(jV6T&Ajq5m0hy+XHl>;bzKZ;zcK*3)E)i?uC58hpesN1w zbIDGu5;??}l|YT)e!0keYn0V!cipa_k&i%yGg<8lu0ZDKq%zf88FLA^wUPZ{j;D%g z&si5@8a1^07T+|d=7KnPx1u3`#_^>)oG!z4<9_O5#ze`)TVVJ2P7`WWiIjyEUkPkn z4Tz}9>Tcg7HE(a@1Xg>ZR(!zFW}tOeoIfgUuD1AaIl&lFe|WxTPA_hA)>6*PqgIdS zjclWxHKEsm`6Rd?2V!ViIjZm0Mewn*Xkn8AtTw4kSsx%5S)TFLQbck6PnrQ`goZKVo@F z6ZOXv?V_q(Gt~h10Y>%!>^4Vn^0x43P-9)M0xBNs{(*r+bs49eD`_}kGrn?NGgATn zmI=EF8~CdXS*#hKDGfKE9A6zD4>MEM`uIjwD!d8!O%d_6`04}zrMg86iJ$hA?#_*R z%d;;ivv#YLx!KZYBK1V9VYwn?9I*=knc(6eF=<#KQUEqKHUJj~2Z)17*8a`H0&vL4fut0y!Ypjc_t`~+ zM8#BaK}sB|;%W~t*;#x{&K3(7`=^bbo}R(`e8h;tn?TVKeqW*F4~nJ9knHU2OWLB_ zi-QrlC(&x3out3*!Y38%&n^xJNBA!WM`}eyJAMXT6=`t7b5hKuzs5{{TXYDbz1k`a zE~3f4g3c6uJNvEy&2r+D587+Wt8?44-k2XfbR8bRu}BUoR8$rEwilQ38*oRinLdkC zUO{>jE2qq^;=Z)&?NfX6boc4w7{02V*6HB5t;?2!k)Js`am#w=qRgeqI;?u=u*n`h z$HQT_Wx>GHk#@8so5SNGHiw{}a#J4~<5HHU<$M()w`P)|Qnq8&BN@=x(XQbwhWK6k zTyxR;t&Ps_QNh#W9gPA;n5yBUz8$BcrEmXld~%qNio=Q zEgd-l9MGf0BpEn^X`yxwWCw$1lOb1yE3IP+y_3GfX8jb?9JybOy6j_d2r#E7MeeS( zS$xy);Z$#6S^A+1CjkS(hnyiX^H}s?uYhQg$}hD6 zAd~i@M+DZ`509TOb@hp!noB#tuY8U^#jG_24jKWDosyDXy?bj574!!Zhk=}Uf_0m8 z`e7#PyAH0bccd-x<6^)F=11G+f#czK9Y4oYr^)v((!5>BS%vTP1VHz*nu%Mq-4OX?hUno`1$L>J8n)|<0A9qqzW-l~>U>f!|s{6t^2PaA2l0UU1 zAJGddDy$t7DI|V8d1hrPMA>6u{K?fcyr=ndyR1+^o)}~C6mcR>CiGx%5aaFNMZdq< z%_P0xwIhU7wBS9)oxGc^MK+$3hz2??Wk(bA;h%j=eTjDBKuaA|J7s(pZ@*Y7TbYh1lc6Q9DNl9%JN27H>MxRZ=C_DG>)K;Y0bez1)FPx>LRQyuXKM8E zuN*tpc7~kv{m*QDVNyAlwRo^|asDoje7)LM(Z0^-p_{^H$>U*){5f`!qN1&yUs4~W zcy=;9XHgg5Ywx1r#hN0~h#1OJ)bWU&^f#9c6dqlYRxHtzaDuXv29GEf9Z^o+d8fwo z%;)}XECq^Q!>Y8(b5#pv)flstB=%5GD%5!vejH>NzYl_UoS(Id?mEB?bns| zSTo*qMk(V2JOXF4f{+S(l)-#XN00EQekeToAV@($!A5=`S#wun>Lf-K5_b+fpJPf4 zprGgskA7U!u@*>XaAp}fuX;avJ2XV#HZ8?`_|x^LgCB_GM?&}p1Y<=Mq$IZ<5RY^& zVsb&pn-O=z6D&SS6TuOB|cwOp+6##6ExddT^5vZj#zYp3v6Y0}B>pF8{IZ#Hog--Yza zD!pZCkTaA!Q!q^Qy<;iAJ{skFP_}7V_USX+UMm0U>2*_+<|^z>XuO%{f+>12(A0k@ z9?Ru(;pV$*1?l9lvv$qxk@r~~;Z>jUSCnOz4`UZ`iTFdJZ*joDxi>`K?}95{QXbLR zPm}g>AN#I}GBl6k=QCSb zzsdE;x7b@d%yU_&geGus=!t!`xT|6{8BjmOI^c%yc)AghqE*P&Y!2QyeC+0+J8j^M zBTZv>8JR%r${*la@KddK>%IUF zTRKvvaYf3XA1CiS^n!D1tmt1%55&CbV;QhjF+Zw5u2YaIn*I%F|2CrciI)^r7fRK$ z_|~Bn?~Sn;M{w6C4mBQWtcj+R%~u~VM8i3@i4RS3<^yr zd-v&e@?)9`CukGd&ym!#v$!(^73-@bL-P$?5!3Pdjc&`tzG0hcnn%JW?6w5~ABng# zmLJ~Bp6R893=XnqL6xOa*zd&ik@uIxCwmZh;Tqn9y?ovT9+xtz7xb8zW4udmL|K^= z8>%;H@Qz?pXaY`3UUL;LX;xe5ffK87Xa*HY4Y7|e{iuwzNvZtwH05V>@U_Tr)a3OI zlVW`qn{FOeC=(~a$eQLPZ1TXaN;qoKDo@aGxh?knZhLQ;Bzcf07c~35^}u-rxW1b7 z++I|wa47VQi^I%&L$B23Ee`ZD^-5ib2lYAAq3@^|*Jj9W9OwWDu=y%%%foU=1QXg$ z#C^oAEM7^Jd*Is^>UYBT+Hh@_w=%}=z!vpk?Ng7@X~g3L{C?5hdn^GX9buixGztqf zyoYtM?3Mn89t)q_B3Kz?vgB7K+f3~tzLxq}B)G=41kq&6v2y%|B-z{c6!E98M_sjE zECO|=)iZS5_LokYG7o0Yk`L3NlFZff-! zQGM`%zHf0@K8K5#bB}Ixt>JNt@~Zi(ca{EuSkb4} zGw#!__a(JJ=>uby)tZHhXAHX8Eh{(53OR!ZLYdfnAp?RrkL;UK={j$#LOt%kSnSW> zE|A*#nb#s*w;5K_qcBE6#;%c_t87XL3>Evd)_ra9>9md0sbyfvICPrj=3DNF%=8;a z?$d`IiN(0b?PgWeL>ILD>3S-%Klq=@>@qQkxpq5OAzvb(TWQBqlXqW_+@hhB`&MjN z6R4PuP-b*dQQ73V>2<7<{jfzLt*lRFGZp@#3gz>}I4{pyVUd(TR-#!q{D{XZ4GHD> zs(l@%)D^GP#FJjq>}-;tPwmerLz_;%6@HOxc-5Kv#)hx4R2A2Clx6y)irvupWMZ!= zabmt)G(e}yMo$yvlU=m+8xXh4JGC32*7v^bH(>RAdScVbiOS=mP_zFBeCWeS4JHMb zYA0?O;vg98U@vHH?o)dDRnYLA{mz9CBUu%LhPg%4^B%$ALR+rwm)pnK$3*g z+a}NGyEaMOs~mxp$+WRC)1#3Ck&~^+Em`lUy})4{#THJVpt*471FR3EsU>T~&tH4} z20%xCbUCN1<(AD>*Bhg~804Bw`Q&@W*C*~ol z<~9EvD)S@Z7pRi@2~p8CaDS~?Zrwpc$ETntG*7q1>QmJ5@7J_PO4t;Go$d{-_bl#O z407H{)=Zn{V)Vjuk<*-)cYnbol@>_<=2c6gxsGpFt;G}is?56p>B%X$J^l#GoafI^ zvk%`cWPQBqN%^G?6|=drwiGj7II5gx-`cKFE;DuSfFDV@exN$VJP}vD>+m#HW8~Wo z-5zqDkjH-j;6JyHE&xtryC4~aa2G{K(@D@99jKjUBLrHf_* zZI6Z`7Z6{Zy5HK;$GoH~VW?!ENGSgH?1wmeT)9dKj_Mh4Tf6rUMM}Hh0D6Pp0F~5J zN>q7>Kzaq2mO=b>gQ0<6rD0#XjqW#vp3@(Kb4=o))e@(Bku9|Y&xiEepgDQE`So(D zk@vcZqv~ba-@UpInkq3oXCC^*a4DB*MnRbT02B@*x z6$Em(%*U6?4S8x|hHP^^`QFC>wz13-S$^y9G=w_Lgiw12`8DJY1w0e#O&sw$`ei6K zw0T^&j+g81Lphe?tgDwF;iNZ~BencS546Q4Ey^iMTJ3p{e7oab{+VvqC-hIlhRtuG zMv;wt`~;GloRD(=`LD~}@qDTZ^@Zq2zSRi#1i_{?DRoN0g@yP6_oO*0wt|ob-f4%0 z<7ur2^Ixj+c|_x77^kE{m20NNl@7(**Ls^?@AOn#(^>I>{%WI%>e-D~V&-ges)O zZrB0@^p3Q{68svsx(?IzHJR2j?$^9isBC_SN6kXpvYZ26ZIr>fRi0Gdfw(yQv(O9= z7okjA_JMw$#>K_G$j#}s&YvUAO*j)D*6Atm*bnR;%wN`O)}Ynp)IDD*H<}?rJ#4*u zHR$^8-gv$D)+9lQX)Q|t$A)_g!d9~i4?mqJs#T?CB$^D-YK>5|WGmj#{|3+<^Jd)^ z_EKj#mj3d_c1qN;{oJhc*^QHMBQLh`=bSm;!r5he3t?DYMVoPt8>2U4a!_Uf(;=>3 zVF$w$f9VZShYuW(zHz0RDGv}jeTe{?1czw{iHtCU!_fA%X;jS>yg=9 zOI3_>BtK6JE;zP3iHg(%Rx;+wJ6O|eUi=}Z;pJW#yF_`-HAfIh*$7R*&mD6kIP|=- z6I8WHZT+QsHp^tl$*S>6Jt!kQzQv`+UBcbO8+^?2m1@=+Tr-%f=O^UXT^@zj7f6m;U(CAiX!9-#$x_Jj zd?`3d@JJvYYG2{_Uyd5$l*<_%}e1LW(8l zycphUnC8I06yt23Dr_sj9I9P5kJiI{268cHuog(&qKkO$I38nlpleNclT3;1=clbV z)BaNu&Q^R*6rv*V{`1us5~6jnO`W_V;d`A=#<)t~D6Vwg<%RzSSPMVdc+uCt0tOV< z{gl`Ctp$hcIN8rH!w03`Jb^yG{V4cCVNcNmKi)vGTffPtC*GCCNY6D*J)z!H{`({* zm7=Hb)B-7+brTPFYM~%ANP5_5Tet51)3$=Zp|qxAd;zscq{e=ius z4Oh|c+wnlE98A_&>%k0`C%rR*F>J^OYXDKjpe%d>a##Ytji@%3f2waIC+|QmQMH3P z@O_H*lL~wA`eK5Dg5gXUQ!r;(FDVK$w0o6I zy8k`YNQ-e@Nam+c<#07sOS2F^$W9E=M?X4o&(j6Z>dwvi+W=uivBEqkljd2!lN0nh z@R+*CI&o_4E^E6a#Vqk~U}J2ccUUWP*COwe694uW*00=st3NmMcdCVkuuXAsPI$ll z*?12Ez*#TyKATW%{5kAzvikNjM@YLzbYFO#m7Y{|E>_onrsDJwlr|c^ z?B8_rrl$xp4AA@@B}veXZ>HVI=PXyyW?Kstx<({MJY=Rd7+n!cClP(pC6Feu9Q5gR z>YKg_UJBUzN!X9M+sxYCfv+xg{`}MWuO;m)EoTHKPr3_&w=OUC?|}Q1Q8wNuH$}@l zwo0~bn(aELUmOy`qP)NR^_zX#DSEyk$Dw0&Uf|`ZYKdB4bZug>pIzd7wRo89n)Ge{ z$&%Joif?Bp?A>)_2j4x1(D&a9Yj=?$CEg==(;KIjx1QI!*7x52vUB>t9({sXenqNW zh0S6Dbib18*HKdbY2ypNS0GGHFB#y`9(revW8ayPy?{~rIGRmY>DYd=l2-l2@g4zqjx{cQ+&tOx-S(9jXFUZXm!ZICt!0t+ zw6TQmZjNrfZQKGwWbzghabOqFCijAp-vDMZy+Ov0$NmL!N>3l;tG=gwA6S&gH#Y1l z9%nn|uw$K|c;rLna27mGFi6tbY!PF?*=+I%QgRgEaS!pDbV<AmZu4=>rF-Cw2d+Oo7W;gsVs+OnNUx zS(E}2m!bh&bai6Iq`UZ)Ph<${?ut`b`T_j;uur0g;anTc&4UBD)V%FsA2c}SX>xPw z`Y+wECj|wM?^M#{O!H6vs#ZvmYZlMdH!P)~fTWnu{07K3sb&>^QZZA4P0cjM*ofS7k^0e>>HnD=4Hut{0TS%j5wD1=0e*zA>5d>-7lJN=uL#k^>% zi1kbCb7acL3cYg~g~SrINjiP@H6W?xt8`8+M-f`02z-_Z`F$y_HDuUxBN0XBcXQ_H zMkYx7UQ+nCxgU&*aNwv_Z�s8G| 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 z zSp3v_d&(;nWA}QMs?*-ep#?~&P`W~|jCgJ0qT-&O=KHxvhBH;KU%6_i75&tyIe0i| zS5c~~gyq7e%?%wWQKTP52iyWoE*6(6fQ3s`89mCvoj~LoKnJzdgB4VEQmhDEvDsQe ziypoh@n3XK?uws&J=7|z?h%n(O_@0r4sCUn*>qWST@HRRjL{fJ{Dd?>xLV5*q^vM& zNKviP5K)_;1(a^;tL`CHLY>Aulxm3-r@5!yPk#-JbXS8nD#p9*2q@FXgc&4t6#3mwz8p2Ggb-}Pyuy*u8qVxSwM4~)4-70wCnp>y%^$?; z!nIVJc0dZA>y{x@1#!BU>ZRK{bSg*RYgIWeV1^nvF)0-tf$-(lgpYd{SIWU%3xC2)cypwi}u{6z?FH(MdZ ztF#&{Vciu7JFV_-RolTHo2OqKE(@qTC1R!vmnm;_WC|=J3%ei%Wk8V{AR6CQ1^)mq zeL$|ckAg?MHKt1Eheb(g&k;b*8qal+(lSyVFs43gH(4Ff=v*@%A{BDq#c`UPwS|On zXjKjTbTU-Ph0Nbn*AgU!bY<2sh8ZTo8WUYqve7hLBeLQ#HIzi!=;5wveccszPlLYV ztM0{w=AeBQYE>O<(V&B>!s^HHr*MZ=~B zw(zN64lNOE^Hz&gV0oh;#jdczF$LIv5{P|Y961{;tTX^46Z@hKP1N5-e^fp1Z*@-w z813WiE9#6ICh<)@5N;s_gc(g~;g?*M?Org0%~%5}qYa~s%DRE`Sfv)zeN`%{2pLl0 zRcP`=5{+Uv7fq2Mm=|2Cs+3i#(D)~Ieyge%n;LW1gQLgtgcz6W)(sW$kNPn;u2 z5yA#k2wKU*r-F*L@PMi+sTM^+6wP4!uKaP(BHXt?1> za4i%Ph9c=YsOF|h#%4^Q;%}Y%Y;7xL23|I9q^35!d7{!xXC-Dvx})7Q$6s-Vq>+-1lZ@pk z!&n4sDXj)&vU{qBY~0^Pga8`v#H5@@Rl>o0%Ez=L605jo*&*zj;azA{&KMI)A!zSq zA72%0qgZB(TL&NLF}RXQ0zjmy_+_lXkh1sVvYv7<KrU&_ zG~G!az5(tfHDCR|(Nt6)RN;irf6)!3_8NtUWyOOe*?u2q%2q9;VqmP5KsJ(w&M?4| zWlJYQMrd89>ZDdErNTTJs}-WX6o~B$+C~DQzN$#!ZOBEfbD0_Ho9#@N+#J>hKiX15 zNT^=b_{2xUMN-^ABc$TJld94O#j2Lf-lz-Fd8V$&_wYdR5L^L;GGO{FPRp$pFvupA zvWupIpaqL@Lv%n~p+tXWf`$xnAlees2w`i$Hl}L{2c+k`FC-OP;t2l$^@U&kqUL}M zP$5%66wO01%d!P+HjdfEMG3e??`WKY_Hn~%i=bG-=0qGNVNeCF*?Fw}6;zc_7bx^t zGgMfd7#c38WwXEuiM*(TJ=O}7oG2)bqanJ5Qd-h%gPF9Jb;&amrKYvHL-ulS*+g~j zzlX90p!WS!ObT8oi2g5B&&#-Ye7pfZ=jxhT{4};oIkQ|g2(ZeyoY1Y5Aa6ua@O3L% zr%0BIg@N=O&76@fjtdYdqGzW603ZCoZUP4ro#on=e)TsGuit#a@tv&Mbs&=X`WwQLGP*-`~ z=i&BYZ8$|fOPYZ|6c$cWE{!U%k-YdZWHR1dbID?f!YoscP9HUoy_a78;Hxd4n#CM6 zuSGRM)a#tDW=?3s^iMAXhLiI}v<<{eO@GN#kEe!APAqW^YpecuKtPeM`0-U@pNcEl2DR3pjMdZyIiic4--9cy zrqqEZ0(*9usP>MHH+51&`g@(3k_=HnX}$GNFBfJ@@}}mAn$GTumQj&iycqJxZp7=UsA`4_ z6)tuz%W0H~D3gc}Rm##KQJ8DvDyHbPd^b&NI4(OVnL4h!h-wpeGCqhJSA8g^z#)@n z$;rQ&4(N8>Wo665uYhmc{z94lWQm01q7tDQ$x+mh2BA)F%|`L!U^R@9Y*cDdAc#$C zU|9|uZm#V@`YM>4tICN{>$*+UztM4eC;?%4!Xi*j4iZzaz1NH|svhd;<170o@dkjI zd9TxTXt-5qm~;p9OgrS50Rd*kmzsKSbUW_4va;n>V&q&pAk`=>u5>7LpQ5Uxj4EzD zlSswv@W>-oix`j7RMA5R;mt>gyfYG=pDv9<6n4!u&TYk!(ulqTq(o?mtp5P=8+j=k zb};@BoYFRhq~Yhp0pB5F-6}6Ds-K#omN4xdqQqOnKW5k~8+LAQ6jwCRZ-F!M0YqDj zh|FfD3&C46IH`T-a84x_;f)i)0QXHH$ISv>2C%6sMXK44;r&{Nebr8z2S5mR-1Hq3 zo1k361gILqhVhL+R`7DCK*HJ zQ3i^k;W(|D9?Y@MYr%lMsBB;}*dgrjxHO!Q)T6Y;MzWpO!LD@B&FWRw2bg1l1z~ZR zm@{yzDnhZ{BX!p)RUj&vPusT`d}L^uwArxVj9Pl8$oNx9FaSdi*Jq4C3Hvj!_N|-d z)C(+Y;j$p+jwdcchA7vjfjc1E~(VoPfE6NS_Wv8h{ zk86=95T1yZxIul>BJ@py4;qHI!({!|R$D>Q-$XpVs_P=G6vD*cMT-?~s&O4tp`W!T zuoSrQ4u})sZp=Cv@hlMb#?l<;6zFVE$q8--IJW3>@aO{KtL+~nvgdM#Im95= zxWEvuu2ssM)z!+GDsdTCS6GhK;*mt`J4YN^roV`l>|jtW0;?wo8cfeAg@7Cyz`;v>5gSe|Ivr4%(PC+kxf?%~ z4=jSkIcd>x0%@YKh|x|Q(*tfwpmKXBk;$(bAM5%rvvHyggTlt5IS=tFzDA&_4{wpG z1Fk|8Z0BervNN%sg6jjA=9!0d2;dHhT-!GHa+2^~G*H$GYPml}Z} zd-Ye(R9XwKyAB#D4O%M|Z-qxw^a@<|wjrt<(&smb`O!<63IP(X6-t0}3O%7ToRc5{ z6Ifd(Y|j-0pQ3Kam;?Y&85voFr>61Kv;%dR8Fg$s1Az7m)cMH*$ye5vWF2u3CmPn4yX4_AHsz`7kv{2 z>G~=*JEwIY(KLZ2uLg*;dq4w-q751bgaP=K00>t<(Ha$EplYYGH}qY41r@~|l`#)B zJVCSZEt4Y^1kiima8-6i?x{3T8B|FYSmwH-&A%7zF<+t%VCACOlK{D+{P`%yCJ(}Y2p^&xOpOay z+W@%TSgL|-u(k+qRZtfe%Jj09{{W}Lec66hkbo2&Ra>19mcr_} zjWdg>spwJW6;8t0s+StyvZRkC$srM1Y7_jE;ztn+{WHrQixF)Nl|UU~P7p}RObRGF zI2y{6>bX;a9J(sc{80hd6jIphB?C29-DOc7l+vOklsH4XIuZSw!RZxEKGz9#q$kX( zTrBaz=Av!@T;9lyrq2jDmZpq2NoiL3Cvxdt$$)U&(`EgZ(ZPg?JXZZsifWw?!(y>C zG;ni5GqlEG7>w>wn8`@>Q;hnrwlr0A{{S&S=H99&n4m;xWg6JgUg{d?9py$i>=)X& zp>xldMc4xs4!J2*>j&o&WVYeql+pm z_{{WPrJ&~_;{$xc51=UGde){4PVt(=j8Q_NGodg!K@o+@ z%PS~6UTTdBTXbQ>l8O72u8Q9gT=VcAnM&8L6lh^op|dokZ)bhf7-%b+8p^VRpHyN1)l12AS40bf zvgRYr8pxf~#Z{UvlSE$UMI}Oq43#6v4$A9_sOQ3>JHc0fkp9R3U*;4YET`^G?!GT1 zc+br@^(&O3OjS@4fQU~vQ8$I2=$>K%Cl|>|0&3$6m`7#KJrOP17OHJ0%`vaV5N=SZ zM~r!<)l8?hNdRZ!Z0<0r>Z`ScA;kAW<4J0aZT|p@4WA&@066z_A!haqx*b$v*^lR6 zYqS3V^ihq5baH;oPYo366J-!)pNJ{Jh|PdPc1#`0=VN+P^i!)>EwfEHazT3i%yw5( zs$jw$=Ly(e?V0SDM$o$QMr!UOte{)~9n;gvpb=Gs?F9B;YqRx5@(v%uREtb*1|c^b zi5XQ<%|2*|C&_XYCAQ5thWabJ%{F#(*x69|8Wpvn5;Nb6L^vjT?j4hRsO1UYnh=1b z#Sr+bq8u&tQePC&Mhr))909&to6%K{C-Z-0_J8+H{g!vcwvkGTuPw&pbwEQ~@Gt2>#(w;jCW8;UTQM?laG>x69_hK{TD>eGT%5=+mrmNMbW2p;s9}*6i2XU zoXW1jzw#?;*0ThU#VdxR7WM~+P7zk7V07^gg*z70Xe;o9IQFJfV-)o%#F8tbyr3L7 zertzmJ=PO2o7-_sR|;`_kZtIjX0d)^RBrP@T6>j49fGj#ywjhUYPDlkU`m`Vr*!f8 zP?7MdLS*+qY7xrn971Up0Hd6%D6)CSRJjgP&rIxCOX;t1+j5eBt zcp5!Zp^+^=5+pVu*4%B~G#M?xDHKfLdrm4RVr#FeVH0fA2?mCQCv{V*hc-rjtAW$d zsC0ogQK8=(_KqNs1(OYeXw$*jLe+Vv07cf&o0wioBqFhD#;ztwM}{a=(L-_z7GyzR z;Z76rE3D4y-+Y3r@2$GZRktvAR#Hrks2nuWUbtmG8H&)qX|j&U3?xZgS@>TFNv?>1 zYoY@T@PxoyME(g9R?mXsu!ls~>fO)Y93|vS1TcWmP7qZXGu>r8hEM z8y1yXeHWS)%X_M5KcYMZrF?%RMmJG& z9o7g`ROp?@hSF17-WJcV?%Ms^It3z8mX7Mf)f`Z+3It7;H^~Wc^iJ-YQ=?zF+jURw zJ9z23`+(Ir#(RpgHi){q5NQkl!~iG|0RRF50RsaB0|5a5000000RRypF+ovbaS(x# zp|Qd6AkpFRF#p;B2mt{A0Y4#+X?>;km-}-60B&5la^90Y37*oQ(p#%M-=9rA7EA3j zGuC%XC3-MSy`uLR`!a}gI@zNWgus;*k|az;WR;R6Ois_tt{+BBz+K8dwn=bau{iT7 zG3l9d$@A%niA1ShWqFm|l=YeGGuBhqQ`S?~Vp%aUF)Wr#I!iiB?K~yDCB3D+XS+Nl zc$MhE&+)#5rQD-gj3`D_qi>1bl?EQeIyvn$ka zd&`!1p7SKM?j`h0b!WWzndv>hhrIWm^D{F(xS0MP-iMj*E6WbaUL|*wbe_}Re9SA) zrOdL1=WNcZ@CCCnGXU{LFbXHB!0a*X07!x&{suT^>&a)ml& zb%*LB=v1~}X=kdYW@oxwx$WtR?$3GeJ^g*AdQA42>pkU4?Fg>(9c7aHOM6W9nDaB@ zW39)J1hl~w#IwIwpGxZ%@J&OLG+fO@_AXh~Q(!fVI`n{`*6g_J8P*PvguQA~(&o6B z);=l}m|U!SHiM(-T|E+1uR$H-A8{+vy-M}Dezp8+SFOvJ>FxXvTJ-jm^{J0DvQp0I ziYqupSbCM#eI-mr{CXWx775&)HscV$X{Le6;h6|;h)_j~5(fU5xZ0ISD$$Q3B^f3> z%M6nuQ3sm3aVdiX8$r?6@u^;kh$$%US5I2>RIlYyzm<8F+Eku?oZkuJ9Kc zrx}Qv;Nzp(TGi^(%56^_77eU5S=;-7YHx59sZz;lUX?IQmDP_0bb8c4j?;dZ=rLo6)o&E4+Q+nl z0RELLrhOK>$7Zn5V%coi>ZQ8M?WuUj*n$aBO92CNg1Ki{AT3}smC-E}1sz{_Ez`5o z>6%2HK>%9m4HEkN`Wu^_lE0JO5MI)wEBIgjH7XHqapqy(d_61Dy2}Xk6RmG)(fdKV z{6wY>Wu0XllFp@Jmp2D2T8nD=L+N z>@!qK`9kf#RcW%~M5)8m(%^POIk##502(~s6j8I*{dy5RCETfAmHaMWrAnFsWlaax zSmE-I1rF1F{{WF$%4LBt=Ct*dEt_+xf^oazeUdR{>_bx}8mvSS@=frSb8%`d`tb+A ze*p=zk*FY@pF>SLjRFs7aB^Nu3A@4kD#T|HiFVh)54(Nm_5$Dy0ShMc5(sU4jdqqw z;=Cna#k9PzcRKXn%{^+#^ES@?`$shh9F8r9~DuJVgrgI5;+0D}aOqbye) z>qN^Fu*&o=NAoVfAh47gvt4Hx4&Uwo`~l%#+)Gk7T_FBNXYU)T{*+)RerT9 zRL}k$lPsXyFQF@}@jqJPTYc9mP|e;L1FGkpT(eL-nTebVg0}vV1-rb>dE9YXbga*O zOI|$z;DV7>nrF-eas$mn_-+BJwNmJs2ZN-*F<5A-Lm)7}5#9%G*#2ArePC^=xOWU) zE8j0U_K4)RVHF0ba$o$7bgLQS1MrlTm$X$abXTM4u4a$ZPUhi}wt5jFzvRXew>gvP z7f{uQ7t941EM?RzLa-vDslO8Y%k;O*!>GgDxrW}%!(~h|lla&1%c6HP!SgfAG5jw5 z+98h_hF+ddKD7p&3(1vg4ymtwOe%p&YYP%;(S4vCfp|M}F(HE+uM=Xt31?E8*YFL# zU~993P$ufa?&8Bqmg&}|i_S&ZS4TtIS;MQpGRmsEeKR^D&AEwbbj+=(croM_mOW+$ zo)OMfZ>&FtO_WUGFhgfaVQeO<@<>rs}QVQ`;ALMqI8+SWKOuQ4Upk(!(y$CyBYLsyB zAhbNpqbBYN+%`V&j0=G4I3g;|pFh+9wNovZD6u@+ODGoo5Gekmg)tcB+QdjBA-VgR zUecvZ%a=Rm8D5t$E4-wx^1UhSO6zR!Cze<6uCpng)f>MY%L3f$%0|Ye!p7>jmaDah z2BXig%LSR%AO6WSwT$35? zjKiGCo_n#ZpocYb{D)!hxL0QBMtbo%6;?iAvF0_(rK`543tR-rzP^bLvzj-H#5Pvr z+uBlLP&?>?NH=bHj=tR2&%njb(`T{^i5)bks*RN0mo7M*RBgfbPs~mTCz#eV=udkU z(4sFy3#MGTf5DmUDdtrD#QntjLs75hWa16qS$iKe zc%Xpm-PH$K#$e2u*{El1b*QR{%BBoFOdy37Lw#mC85MAzJF(Z$gP5(B5jQTac4erR z8{O)P=z2tOS6of-S839;tAVR#QyM{A6OT?kEoQ9d1&qADvXbr!t~Rl3JBcY- zZIdN)!rL|uB%&-FaZdqK^d=ay3P4dNU0JeMX2!mGe;R=Op zffZU&ZaQsn-|rJ5`@~6f*6H*Bs!Dso=vK^-(oi@x)>oABjmdcCBZi8t{bq`|TA(37Z>C-)i%;FSRGty$4v9RD zQH3Qb!2 zC#y3E4*hDP8=*=c)}SVB%SQX|UKdj>KC#VG-Xiqpq$yA;<(W%Ryl(;^&sL&3RugqF zD^AeDbA4fJ)(e?t-5A62JpwskK(XdrdTOp**zER}-RhKIw8W#(mrpoMHhq9%}o9FiOrtlO+s zF~vBK=2|9};ybwdMv$V};PD$A8B(X1;swg}SR_Q8d4jRp!g5~d3e2dO?oO@*tMQ4N za{zQpC%2_TPViTyN|aH^-aFK+ZqTcU%-MHbr=7Cj+ATI9GNRy6(%vcUFR@be)_92J z*Hcl`_cDTuXDx9FqQu|v5z<~#@m`0a1ShhZ5d#Ykyy7sZHfOie<)fL~ zmuQ;|JEhw*$1?*4tXy2H2C1n{v{ZXu9;JF9fbwc!SgTUQFevSE?@_Ne*XYzVVm&W0##i5BUMW=m=GmI zshkW|O7vmP1-{b0tPLXyb@Ul!WpO^_=;@LMUWVTD6RHF(&@NKi&fQ=Zx^$lpM~IO% zzA!-jlc^jG~6*+ z63-1nA9~MOrpHMr2q@#2BUOh}dEB717S?*qI!08gtY2mu)Tc*AW|x7NG+)*g%^C*k zUp_JJ2lp(`3l+p|e5rM65Wy?aaJFN$YVQ*-60sd8LvgT;Z@#6@%4K>>YCPP^7-sIP z5~E9%xx{DaRIKY>gQTyjB?~GoQ&4@0R(3^b40Z1)JUG1lp~qwsa89^)hsc|68JBgo z*A6N>R=okzareyN!*)X@{LZ2WXnTmZri5+wb%7(n;Dz7;&_8NidIpXb8aQ~Xy4F4B zVh)=QlLFveGt8p7ec5+_Q(GnniT;@Dx^qg35wU#3FgS;a%9D4}3Dcvi%(^%R1kY)3 z3S(Q}X`5M3m+m0w!$8I(xd5h3VUK^A#UViG{kU9(dm7$zhQ&A6|Hr7(JyMD)5*G)ju%Q*x}ww0)O{QnVLCag2hQQ&5~1 zuE~BhF6@@A-q}9~Fx*MjFzUR)DjlemndDF?^9CJ~y4uFvRIVmvTrq`)Z&+T+=d2;31Prjjm~>ZCKY8SI zRNU%juV8nDSA&jgYMQUcgztXu%o#8-vpho_&_b+(W~B@&aB1&w zULd_+`zV>r5*~rTnrXxU`J7IPT+J)mRI;HqglG(*%Nth=nn-0zs2^+a!>CqANYiQH zZG4_5N#z#%K0dOMOO-74U-c?gw;{KX?+?gPF~Ia-wan%1#XcrVs9R@VGVv(rs%qag zELtZfmDfMIgu6QB=bq42lNdI~sSMjH7|fzTwOp||6%yPPn!3{geiT(^reCPeqbAyk?(J_wN7-iWD_-e+|nEU_M7Q*R)Q_hO)Tnxm1In3%B}!vt}%w zXCOE9W}&+^o8k-cPVtPrZdMG!5nQNJw@2P!G<1$oVpI)4jau53mvL3sd1y+%1>-uF zRu<`E)}{myu*Tf;5l%?PDf`-K1}%oi82up@>_$DSq(Iyq6g<^TVqu!+7_P8Fz=G%w ziwg=f3Z?ybGYZ&-j%XoJy{Xmy*@))fXYIhmNk|a=Q!k5EGDaCuCeVX|7~i}yQG_|W zKbQp+886MU+kv+_eW!8&pz+&K zO8{G6`c zWzCu;yk?L3YFNSsPM5W1Ayh`yIerGWek*@GP;pd zZZ7MYU)8p6y~WDFipkfXJ>%`Xpm;Au*hv(D9#JL{*vVaGbpU@hB-%xAhW<*Hgj8Ou{T1b130wrD`CtpM;j6JEUPS z-mg-_349g>H&vKa&~(anp!S;7=Vtq-XA33IH{v2*ZOnJ}#JkN$w%puMJE;~XMh7nE zVssO=33zY&l>j%5>T|)ElHwU(4&YH|v7>ufagXIU%qmUhx2N|2j|mAD8=;UUTv#TV;S#Ma&m0825<|kX+{b`T*Q$pm-mw*aDU06RA%OK(;uec#`%6hy4{3WHAmx+;Y#J6nj%TZ_7QsgbB_DGgqB33~ z$hXchC?f&5Tc3S=#YQc789lcJqcA+o%paa$_=sxhm$9xQLyPGs4{L@h-+d2eaK;(iGA!MSS*(OLB)x}FHEG{Sk+Gg*RI$oG40*UkyDT3%&5!IwQuzP-H5VQ@R?MB*Z zr2Pef4?&@YQ7P0}rm?$)bQw?UiBu4_V|d3{Dxgp?aD8FWnWr!TV9>A`$5_lt9PDQi z+f!!it?E<;mS=S5x80i-OCGqFKT|O)CzLQwUS zm4dt)&a(vPL2x?Ym^G`iWZDv_<}~6>#9;eM3Up^#31^9RXHey@6{uKN)u%j6>4%=u zft(+Cnkqv|TMRk4=GoTuXY&iXb~%T>C6sAAfgg#d%=;|FoV?0?(eCLhbqe<-?a4aC zIb-~O`%K3*i+;MyS~I9A5Mv_Lg0u@UJH&$yaU{(0lGb90mc%v#T4{^+HK|dm#*IoIFGs)TW1fL3xJmK)*)!o zrL2RfTc81zQnza~Cb=}{)BJ_S;I>Z<$Kg_}6TX~Pdy>38`i8k4Kgnlx1-{6uOJCLI zRBREWn*AcJj6176`goO8(ZtPdJ(-Hx7r2kaq3dIXQD2m2*@%4;7Cph~TRq@%>L6l0 zL#@R)t9NHAztUalCf=@8gbjt&!C-PRZkGcTLa9pY${%0Fz3j|d9wEO3N@ObX9uBZ{m|OeeCc+%bBe1Q3a~wH*`@gOtH(g^!x4PH&Dh)g49hEG( z;^h)zG?`jj++tXRzv~MS{0+Y_HPv#nuRUgIRg6_j+ZYbnOcB;XHf>6SpLjxrgSP0Y*f6O3v;5Qb!61+Ogo zQm`=(7_Qu#BNiG89OE8Li_`=H1qRyU_?U^H%Ngqwu5bn%p7NT&T48ei;ezeDH<@8$ zqWV+vuqG_u-f;5}9`i?-H|B7Lmi0}E-dYNUwP~8N`o-e?wL1%`+HkI^3SAk#Izbg1 z?#YpD_MUTSR$E}Xb|dvBuu_$-#JQm!I}*2fUJOoDdLAO?Ve(~#)$}y!n}V+ZNCmd> zzTba{>hnVzZ{`IJS?c~J&aVo@+=28;5g@&+Jf#jGS8fiV(6+8Ju~t3DA7W-DXlsGl z?JGO|D(2&#vKe)O%B{RYn;QY{)B2Stj?PPe*-GswrNMB(VCxLR0@aI(#}2OS14fhW zKEfY)eTnxUXofr=Z$oGauKxfi6{iPJMNQ~Wq9F(DohRtRyx7|N8PU7Mq8$}b*ew>G zk)p-0a#k<2DUAXxnlsZfuI(AO#C}Su*((bT#QLRY&@~Kv`c%_ESF5kz5v)xZv*{~b zwSH8J`N$Ws1VtgSGjTM{Tf|m{op~Vjr0WZ6cL*j1$0{N=FdPsEB^p$2AAjhTpJHQ^ z#OX5`o&;0N97UL~1R+>f-8=ish*mSo@9PVCRl39`qE$tVy2wyzUo%wvXXQ4-_w@O4 zg56yd{`DUS7iT@-+zKY&*E1$1E>z{8TW+Q;4s4Zsq2@&Gzd!8yZLqB_Tb+NB&fiz% zG(+{HN3uo!?Mg&DC(!fcN z2OE|ypml^V7^fc*l&Mc>3++370(0JFR_1j&}uN@^TV4^Cc%rCyv$QA-tH zw9a+2AQ#5t0xd^DeY<_5PVF=aUZBM`qdAy+#I+jUUeUsal;QW4qQtocO3R-ls&I$W zRoQ$-`7C!3S>96Kj1dPUYdh-Tie%Sz;YOb9L&O21E_Dg?R-gc_Q%_C3Dw$G&r_%hl<;%nU=Q8R^b;0WWIN2f>GvPRS$mTtE1faK#w2AsL7wG^X&OC) zPuf)LiB62Bs{E3vpKU_T6zT*3ZxAP+nYb}fShe;MRhTZWx{*@GF$4IO&JH@t?Mvwu zRlwKl;vWzd`D4Jq^MHF5Ul5?BE-&3f89?3t0CCzJz_-&@a>mmNqsKm~pfhsHN zeRnd`%PIOzZDxB{{fKjUaa^LF0xrWpSw@=gD0e{CDpHd1?1tsYpKF|{Pk3gl9g(2x za>X9f`3KCXg4ic_6RW^xSHI1a+zr*Fr3mkStC#B9Z-zxw2MIM*2=KV~DwsL1|oTQtroeCQA&tI;v4-VVDk+OapkXGnO~mr zvmMTcwD|d+mJolz^&*cBtiGwRMGa^UNd>6l(oD zb6w^1C^+JYHG+WpA#5pKUY`@E@6=rBvjhPNf!bBy(Fqsk&v}EJ)XdV3F)C!01j;p; zkGdjV+uB=7drOOGMvz#Z%%X%vb|3(Pb6-MTno-0xxC4!^EvDftIAD5Bq3H4N5q+qJ zSwiJ+U_P}S2YY_5BkT^DviOv{)vmidOtxhfz9Kp$irh(hj~SQQfCXkI4xyCqDbvJT zTwq)G#D4veO=THi+$)Of3(gT*6T?slY#gjHSanzPIDSy=<3)9%M%Ft&Gf=3Z-g_|h zB5>=d6C&RZo+C=Y?NxB#zkp0lYi|QyHv%JKjo6p_m~OxTxPI68$(9)KC~vuvX0WFj z+y}fF&{5(76ytq|aPMYt$%})xC)HJ;J^mpx5mp{hfKX_MKBk_A6P_=$`$l$PCER(I zeBj_>zo_QG9KG=ej3Z8P-TmN=bagWlT=4>0cu?nmZc{s4%Krd6(ZNSD<}|tcyUTqO znSSQ$+>SF)+^@v@B8%AN+B6pwi^0~*PO}0-lEAl^nvA|@m2L=Xg(7feed^D@=27f6 zr@{W?No8khhowO7)jCZ1`#FxbYg;b$Ff2nA_o4HCS1)9x2DFMWB zLjdadl(sGzVZ~0O%0G0_O;&Sa;4}t@ui0M^2SaPI)?`Kl^9^#@$j*PrN|fxuZ-}F9 zmux*>)D1=fYc%g+>V&h{D8$Qy0`JUuY2s%hs1D!sjv~_^ihv`yWbxOlD1zKvU6Ast zriFK(PM}N(g;`>6%+SQjl8gtuG8Ei@MT<*ESShqhk z3zl40dVp`G!*@|x!T6$p6`Rf`Ik*~eFp`3SIb+Otj!KUX7t0zuEL%#pxkixZj&o51 z8t^e$hE23)vmRn6L4|4tbNy~rBWu@rnV=*OHxdX%hU3AVzmk04$v))6_i8VN7tog; zpV=G@%j9b@Scl_fue8o)4y@w=Ee8QP?+QSWWmU?A!%JYp3kvpQcxvaf`iSq*8?V>e z4@)vvR&fP-8bV%YkK>$lR&Of5+m?HfjM*D6qbM#9_Yj4f)1D=P+4VI#TOh;h5#Rg7 z33*e6O_=@68j81=EfF?;2NK~YrZg4xm4S$BE*}qBpJRYmaH>)t{GlsRm3c(<6=EZKC`#@0$3 z%Ciuw@n6(NCep2p=pbXpBesT`rdy0!q{{XU*uwyCU`DKB{P>#QG7O=++>A&fPiuoqcD<+%5)27N3|BqtAy?f_%)ad0@ckS zDc&fTec|?GVr$#>pFsRg&i??J`@N;$1+24~OMX2IqW;r40qq%b3c>h=9$aEpG-O&qu) zu_VrVkESB8X};)kdj9}vQN{%?+E6s9z)UtPjdz5Ac$>2*1 zQ^)k33X3jgxFHHNtdV5R5T)&v*mA=zw-wV^f5?_?j{C(fY+J+c(gN%C_KsBDrXP*7 z)R@y0=Df@$U~{APp$>C;Fn|q?r7z4FC~Z%*+`Tkr8xVyAUU+F@vA*sPSNAbEUG_Y}5JwOC zc8)LD^8}+j;^w`aM(hye?W+4kB0MU!%)pL{u|2A3I-bWPyTfq;Seau|(-3O;<_$%H z;PN}gAgP>zdhR09)~|?w--H)OUo!@VnV63nK~PuAD<-+AfLqD6oSq=-z-efYnUs(? zbI0Zo=yn~3=3Yf~)bNl>u75g-f}SB^cpO&c5@G+{rVu*VOB| zW*o)O=!iA+R;F|zcPgs8r`z)}=-6~ME-JTqEAJgRO^svTqDnuj=_`}a3T_uA>u|P; zy@acv%d(B&#RIYy&bkqJsAYrJCF)0`+E%kw*~=e=&q5I^LZD}I-~na-06C-sb%Wu6 zB)*h>?7N`otj~#qhB{U=2H@E2d`HiNFEWXcXAx?HP>Q`kk^4vx5!YUDdigjSSM zjmimt>5ZEO4jiy7422my;x}r``BQJR8shQGH3U-{>2h||tW@sG-ho|E7pdmA98FBU zby$<{8$L`(Hz?g{&?q@tL8KIvPAQSm-Cfe48%RtAM5M#Pq&o&oO1cJ&9*i6?@ZIP8 z`yKE59`|wVuN}|*#PvM)eVx~Nou{$T@0jYM18*vtIyd=Gs(cUMge?M{?OUg|Sr176 zhJk5lEt=bCb?^MxCY$#f_*3>5z;|YJf3fp!hi<-aHGZU_U>&QC0 zF{vP^x(WG1mV1^{hAHSzb#{`nu5)_?cGbGX_a;M=>a*+!HgFFgHiNUW=b9NluMA{! zozIHn8uF{&{xZjDkzR18se>Mt+l=3T{bw>H&!{H!nR*3&?Ml}ii4Cfgj{Nb!DGQ7c z{Ni{X#i&tUYfk)jy4{)m@h*HTmoiyq=p@NHpF6TS-N@BDqfw$Ry5p3-#Qo4`i=tE^ zk=^fFkLF7ZmR>~5sR%LqG5S`)CKseDfJ>@aS3K%EnSV)nWZ*3-J-lO1dz18-5h3oN zA7xYUIr{#Md?8Er&Ch#X0M-0>QX#4&K0l#{&ye?idBP+Y>L7*;)W+8A*DpGu>yHZa z`rA5waC^jJomih)+-5iTqvvbhfxe}&_<0{nOOQKPZF&EY;6G$~%Z3z+V#&FARvWFv zrf?q3efe&NagzQK2Us4|IX2IeKyBRoCqNqD{z zZGS5ED#RF6I?w^$8?gGy<59hvxB1@2AND6nXc1C#6|ZlTLUs-H0}doj#t(Y!g<_iO ziN3!15J$_foeh&xuZXMq;sS(jsS4&!lGwOOBX8#}(=B5PlgK!1Tg$-Guz`ZhI1!hE zIHiZp%6lc%gZgo>9!kBk>bSU=nLUIgHJa}kt6K!#^K<6h^?r(Okag=%x!rVwy1h7I)3NyR znpXJFXQJ_by#eMq%{hxt&(d9E+KQ#o@v^U}F0D(yS*K4-=)%5L*u6LYTOTnCqK(B! zEd)XApURQA%AJByZ@+=X7{5FH%ClY#*udPWu97eoa5IOR75|vLReSfD!LGHBTxDd% z3uGJY9BY8lijZ=Xc`~BcX1z+#6JJs)PPt(^Vf@iID`l$YD;B&wf9>m=VSoQLDCGVp zT(nUeW%#RSGjXi5@P@x~@26QU&p$o1=JV>1+~slmOjW(~tUcMMe)u@9Iz&}ECdVyc z(e^6M-}UeT-4_8OFKbB!QW3IV13iwpG-bLKDWYe6?1@9+8^>b=F(7;3$?{_2&1Q#|#|qO}-HenB~0vv-jb98~=ieQ25=pFwD9KUO6C6y@QXhbIJqJXjD;WoQo8hGOS!v^d#$FeN^^Fd+qZC=WELh zubSSrKMmHbh9gZS{b79X=-g(e`MWCyX*1fLDA#T>&Yg$^zdznJv;9s>Rb-w^&XS=I z>Y?(zXNLY{2Xs?kcKmtU$vCA4_7FEypmnnLa>xj_wDA9hvnp95rK%rhi3#s$_D#zD zX^R3VN!qoNI14=p6cF^p6KrzX*OG*|ISOFLHyOk!ZyDQp8cC>5Bejfy7Sj_B_h@l{ z#`^y1=zndzPyNc|=SZi9;>26v@2dXkpz6GqrMlCaXOUE3aVuCvN^V-_$dH;7S-jzx zy&rE#k=4_sCjOLV@%IG5O>6hm6srnqK){`OO4c{-Fb6?S`s23yDhVzV-#2SSy=cfeY*Qh$sBtQphjp@^=rk7Yj6yz?%Bojo(0KwL4iWG zCDM;&pUxo(oOK>ceLE3V&PD|~{?K2%r&zzi_1cDWOse-@LLYkvoVKYcQtIV)uhAD0 zMU|u00hG}%v*FipV)r|0o#)Q)KbI_^9-8YyO4xHrZ3dSva$AwYCd(bWk4gz+**k5g zbC3SUUuo8MyG!P$aYVJfuZ@}&wR`ikO0ZHkT~Eoo6+!$aW-yDYiHoIjgcxErrt zmm8J75PFfTX&$%w`9UMHj$1uU&!aHe)JJqOk+phSD*IP{;C-$4R)tZ0Whf_Q-oiCC zR~$=`t=2{eE7TB7G3U^BR6OP9%h zJq%IiYm#H9CW4=ktOja9$d(BjCgcARyycq?{q~FPt%G>-3t#f$V-lb*tpmd(HWov|b*?pn$kEr=k&g>@)6|gokq_?u2-fk_A;RWp# zPmk(I0LUbJj8cu0y1n4BuoF#VsGiSE>xAJ|`q;qpq)KAo6yo>3QgrlJ1Iu(-Sgb|< z52ZCRORNJMTfseFMkL|*k4o`3sonZxfxYaI3Y@0-hkK|u1#`0__lc>N8NPpCt5Rz* zOHwa7t}CbXn+fufKB#u+wDFZmQ2tsE3DM=mc^h6(%6mUg?(?;~f3ovAM)u+~j9=s{ zCI92>syXU`(IY&D#=G#dyERk!E32`Fv*kCk*YWbKZ>q5|+k8_vHONP_eZV&j&Ra)K zN`QYXy|d}}8_$WGH*1AD;AoSwj4$lq7k)8OU%%)EYMrhvNYSz^{dm3{&ny@MNk-X? z|4ccHnyBO2oWE2*EuUL;X6Wt2%;mQZXN4!~1l%vTLq`F+osA|FRrl2|@pveqHYeKu z3#WFGvSCTHQ4Q1A6Bp*}(dy#lU;Pnu(6=!GrA|(Y2IBx7gSZ+Equ5xZFML9c8r$4v z@3ejy&(pb@Skb*mK1gS*_9sg$^^3JhDZo22O64zXdngv}fJ`1G6+1TETNuxHA&?L{ z{{7ZyQpne5<%}}Wo8FQA;gIe1!xKfYxLoq4T+Iuo%F{I3Es~ic#uB@Gk5QCscc?i6 zYLovFaFW}2k2GBRD!KCwXs9p;fj%eqw4b|$o>kW`hA5)|qZp+xi?0=DS(rFAh%om| zUrsC_g0)r6UVU@>wk1$w;4DPP039^sm>h&n_}aDPr+M`dk=QI;b}BdBiKx*uWKk< ziByI`8>#f;cUvexPlA=Tj_XO<=aD8I5QU3h2|>}3?big}*RUA25BtKVlp^YQI@5~~AOO{Pd@noxwWL$Av zG@f|ef5g`L`Tdc=Cg_uBk(ThuXQMuLIqFZ>@E1~oP9WX*clZ7dJ%4ZBPD5pmSTE&J z3Ke)j_~5V=di;k2r%}GhloPB%tH}O}Vc-G%IP;M9J%y;d*eiARt*_gb%C2j(lgGT)u1tw*hC z8GnwT>eOG)fb7PXKG!qB67*Ey9yeFyC{AAU3 zVtyN|J-0sb*6(WM#y<_i{ax$nWE->}W8zukqLcPQ@R3^F{iu0ax5?7rfyzVPsjo!q z-`P|c5Vy(1BoAWuDWR5ba%XwI-NLHtJfr(F*7f0=Ka$vg)w86$>3NuIGb7@My-Rr! z(m6Hv9S^U@gpFi*I zXlBOUH9MDmSX`9!IYpboOU3~=dHzOi@5M6qe)pQ9$#uZPtG7jFN_S(Kb~^f;t~R`9 zk9FRhgw}MkeG8jg71K8QNj|q4yE~c6DZoX-sn$VsLkK|* za|)@J+U2&?K$qFJZX|-EJ<_tAp8ZOva)%}g#!;Op9?We5^C}o-S`f zXjX-*?#fbi*S_IOXHUA%gG9+F-qwZtyya6Icj8VYn}PQ!DE{0L%9R4~zDcPFYMA<+ zANt1F*C?gh`WZly8)?^4+#kXukRR-5GJcKFkm2MsRKGVpt`L0j%axAnTl3$V@~=ay zJbG%k5N6u6KOQAW^7|y-6jV~$sE({Wb z6S76O{^7J37ZK!x5GG0&<6^A23Yv5>u!zeD>W8vUSCXgT9A++7YE5Ua7yTN~oYU>E z_hUJ9VMT_gRCow8Ng@^z#-@fl!2;JZ(sxE^47lhmyBCb&tTXD#%xDxM1 zd^1g>7c;%Vx_3mF_^0%{(77poBb$7>2jTaZrNqo#cdggBPYU&TKRXwr{B~`bDl&0y^`;ymDvaW#d=&APm+?{R z2R8S=CsD7}|G>$P>B@sVrznMN{b**_2k{Dg8a^ad!A7~HZ-{8W{q5NijHtX1`Vmn) zN;UhBfQCh%I#X5{Z}=7#uKK(Jqk*^S|G5Wr$m#Bj`jj zoq5JB^n(`B8t^xdO5E^{V7EGr3p_U!QFcKf&A08yT`C}cpGEG}xhAM+-TJPc}H`HC!A4--4?e?u#9Jr14F7Zh!KIor{*Gai#Q{jn~q9A0a+ zQ2%klBa+QsFh}#4s@|hv+dZoCmHf7k;m0VoMiF|(H(?zC^ZL*UQYsFDlqOdGket0> zqB+%LU0W(&gp**s(6@1?xkukl*024bN~oth8)FyOz03MN#!)Ti(EJC23s3#ySddK6vPH7=R8hEe-pe--`@s`Lx) z*G;!H&;@r`U0r?m#FYhhAwNlfK*t2}H?o^7ZYDQ*l~>K!{|5eipbJ0?OV8=5j(`Qv zR3L=S%c_-u-47yOdA_vrto;ep3c=x?*tPn}{Ckno@04RT*1@g#`Am4PeALIR-4{>M z)8|cVZfL}JtNMNv3iWroCWFKE!~xZpa&)v{na^RmY47dp?W^ibPJq_wdT;{5nHP4} zZ{67=pUY0n>ZvNW%U`!|EJ)o*8B*f*;cVw2tVRbRS$0?M@afjml{2)z?{(gl*4KK<|T5UR`~^KfPmC!;vmNXPdz2`;Rkn4%aK97fo>Xx?T? z-3<)`kUuq4pnQsAP#XkDtFU;e-4JnWVOPj85hggdlXWUX8mo3TZ->sAA2zF8L2@SW z2+_-QM!e#hIUMx(j!cF^wjQ z?FpJ87CBE;Y(dLh9ZlE29(nJo9nEJ3^w6|Z*R<%5))gEPvvEs*46RMUta|(N+>c`* z{9T~u?BnfcwN!Vs-d_?#xp67rNG>=<}J93?BioHevXcv0K z6!1{d1?&1L^Isl`bW)#Dt}W3~a#);$fhe~frzcPA=kqYVom52cQrtg+z->XB5|(n| zFj|YHbcHtec9IO&`OI!n$ud(|-_TUp8usX95mN4=cb-9T+3YXlg1)k7nqN%|sXJ&w zj-rDinZ}%kgYIO+PF1cUXZ51MfqYki3NT_%K1bDj-cYlU!^K#JI@^phde_Bmo;8Q! zz02EG#`70q70-{tPPXhTt|Eiv;|5XlV#ir|v_TDdWq~;&39ZEG)dx@p612)+Wzh>V zH1SMfW+*`R&!@MG3^mUnqI}~%7k0rrIQ=0fPq~ZO@EYe{GuM1Bfls*ZsniDX4KjBktSNbe4DBlGlk{eA^4f5Nd|y1AlTA#_8KOOu&Q> znVe8u{kgPz(UWGFz?SRoOuGknzBaYnsR9twt1u1svc#-w%)WD0X*DrVR&|T$F8nHru-cXK`^Ts6OeT_9O`iA`5UgZ~Bcj?DE6+eHhtP zH6>W4cc}`bWje=z90;ke9L`+}4J)#|>3f9Lq z9ZXjf0%Z6U1ocyX%p_$2Oe!4Rup7_%$c{E$^RkVwo3tMPv)r?V8B= zdl~i?uQ}eWJWnQg5)3vUQKY^>^czArT%ABqg;j9Q7vZ*Lvd$uOMr|(wIbl(|tLUZO z)y+l%g|Wy(C&QrPVD>r4Udd8|aKbjQMQbULSDthEDwCpruG>oE`FcjcCFTT=ra}o}1oEjg z;Rm(XmIRGq@)!0~;hidkPVv}`kL_}&p_rWW4k{jAYx4uh^Y+=0=h_PJutXln*2(US z3A0t%NH8SWShcbr))GNR5C61`7nW$5Svc(K9i2PDS-$b*AclH%ZcRn6GPnsyHLjz%{0fi~BvK@(TY5=9~|T;1TXz zSdVUJvojwJ<$3dyjjhugL_m*+1zbAMZQSERrPghPbB+6C5j-8)SNveK`e@8?%Lblr z2pAl{yp5d7;u3yzdE-GL$M)DwRC&0D9wAjy|3R{D!tBn5Oj|k!Kpt%t6Zl|@JiBN^ zNqvs!^6A=0X}95>OeJcdTlhkG&_99=Yeuh2{Xc>4XBIys;0cc=qN32rsl2`phQ6~9 z5H-NVUsZ)7xLJ0%a9H-nqD`B#jErk36~$7)QvHQX0{}}M6F^zi^i5tk>2)USUffc# zI}z`N23n#?Adv^NUJ;S4>PuUm4W51xk+3HUdld!l=*u=u7;z(5Xn1T8 zbL;IxXVSw8f#6*yq&=sS72{YBYcjT)YniTW2k+|bOUDJ zM^x2$KE-&#EOf0t1^>!Zgwl-{6;4t1+0n z`ErO3xCME^y;W{`8@{M;*=X3JXlPtl#d5jSrtRKpXzH32I&!dKzn?RQ4)P(RGfL%3 zP4?*DZ}6+-JO4)zOgz08MmXX_GeoXw-#8Q!FU#=zU;)Sgl3rM&bzf2PSjqFf(%9XM zqp6j)8q>1Mm|hVJMCuvJdI)b)H1!*H z)`bnSaxkm*$mInu4|Uc1 zhp7A`7_lDQK&=*0C<|zC*~Zt##5D&M%5Jt0ZzmCpDe%a0+xQ&VFOIGyB=e0?w>=v| zlL43c<}y_}7K7xP`Ms%#>7oFZ11ay}BRsh?L9i3K93`=Pyfk%n<=_N{&;&+9D>L4l zy}vLbHkc2J6#!3Z2x*k%Y6?!&_+#hPY7n1z)iIi|FAJP;l;S(eNKoMCn(vn6R{BLm zsF-l1&1Eh5kD%j%iP6@kkYonNb5_Hlgk^yyG2%(C!$pCLS?7k zw^dsa9V7I#Ya3jPWnF>7TMvK)!1jV?WK$uf-Lt+Mycb?h5UByiq0ORF_k8#`=VEPg zQmBr(qjt-dDenG1|4 zJGD6bSl_zj=%D#BawWOoqQ*%*C-;@)3aCLB7*0~_67R!EwR7tud}Ws45;TkC07CK& zKt&3c8tS?3w`kL8H{{MFf13{X_Z8;KbTIL;*>y__Fp!IZRhnSX?(*U)_h$1m8<+1c zDG$#jT~TN+T&UK>rXpG1ngfNs;|N!_n!{hr z-s^_N&@Y(P2)OF!TGnKBq=Ay6! z!NHkw0`+GSB%>EJYmFjPvEw&v^|xPAFAHV+(q`8izD8_ZM*R7s9k7O;zz7U160=c$ zutcP8o$}=__Hf2!x;mKyRp|}ZxH{uhp|96PwAlt)G`p%&bAw0%lDIi`B-sG;!AXP; z)EH1OC(xl%p_`Oh>g&`Um*y@O0Xka*hPt=GAp?0&dZ>rf@==E^NfVM?7 z2vK3nEILH@W1!-@Q}HxnD#OZ931#6bP);iv9hxZ*;3;m(3`kZ0U@wH`Zo}rqL|XGj z#vKzzc3(Jz2pCW$$p$3|bPt{)Jf06fjS;;mo5C39;)BjLT;I!CKY~%fCHJIAN@fY; zPRJ$yYfAfySCWH`e?XRV*7t2MO>GpCIEhyD%LSu+0Hqj$&EqOD_!z^TczCcu%u+LZj&l`mLsx3kmbMu$#9T!|;~el>3uCNEcRI|CtGs_6ZjZ{6hD ziI=coW6#?K4)rNNr)pTLija#GoqD9i_0bi*6_NHSs+;qIS3dd&1A0~SOK78v=tyC^ zXMSkYwWWvT;j7sQ$E`rEB{*@19JlC?Gq(^6Ic4>NpxM)q#-TDG?Mwd)J$4e!4G?^ChJ}4qo*$(`)?g5CH>MjwmDX*C@GH z{NcVNk2$z}m7fUCD6t0z9aVZf^~IsBP4J{93&%@sx0p!f=X^Egs0z6}_qqHO+x%e5 zSiv=b|L#;@?8wK#Uv^IqW~325v-(&})`fro2+qAW!gq8DR&^yDvoxd>5><$BJ6-_+ z6bG6Cj-4#Y54yrOMC=23-n{1X2 z$cp$|TxF}xck%^!Mt&dz&sKy2HOn_CYPvly^ebvxD4FSqm2m{8+}oM1{w2vy3z48yQ|J4Z&NPXx9lx7(!4`&LRMT*3ze~1Y4K=zm(-9oOp3W>Vn z(7t4x{|Me80?m%Fv|KBYL$4*%7GWF5LtU1|I#u8H>}nhxpWpw`GyH^MviLbSg+Sga zeY8*C6&Thq>_-;MgVjvSvgyyJ(8@}=R^B*BnPgrP_P>hbAlFA z`(|RM-@$ohXua%VZ)aV{0r_)r|um!?ilF2Ee#S^+Fwgc zJtg^a>mANQzDV+s>uwNAkA@FBx94Gb!LX>F{#?hA!CTjmX1d)Y!gG)5RYkU$whgh- z08$Gn-BM{>HnrYAhsiL6-FpHV!DnKdbFol)dB#p?=NY?ppoxYrc#=3q0klGC`ZADy zZSA*XR18@`qJ%jn|1CV`lYt{yewiFI=&Oq8royVzFsJR`0n}L$&O!sY3|8V2StOF} z%G(1jN8-%K%t6+&{5G?;hKG+7()R^yO@9AfDZPFky_B|VrrtCu9(c}3r}g(g=a?mRK9RT8{YOprhg23x2|cB zTU0E)^E$St{eU%s4@x8Z_e)pWP=KB~_)eKqM!=Fthw{S1l>o2h)~(n|GOz6c5oZ6j zk{ByT>3J~cC%t+DLyC3z765lDvMk;HIiL&YS1~kD23NlmFh7w5HScfY|_4@IL}@q&hx^u8!)v;UZ@W z8!uW!m<>F_9QY0C7{mS%3_x!SL0bdmHv&yIGPe$Ap12;-`u&EQA5L`_KK?X_k(-9q z)uUMyLdkP`<&S<@RM9^IlS6#9?5N|&&CRp$=260;&hL41I9*ChWF2K#?; zYhLdoyfB!gTHW|s7v_Js^?xRM^l;IJ8_{|MyG4+j&vpA>ZfPV+-IqYD0iz^-c*@%T zVjzjHqzky~&XuX+($c{!Chi_dn4+tjlELPbF$xKgla*DK#Z_He9=9Vpsm(fcPk%l9 zi-L>RQ>oI_>r5lw^|dR4yUm^U6Gd|v4Y`8#(?A%$uBh>Pe^m;SEBosP+Ozi-?R^ay z`6~NB&zsr_v@dOp`2`XmVlJT2sIl$@KZ$DwQb8 zAWT|MTqrHICtXFcCGTk1vYU*|V_MZ4r8jMn+18Z`wEdO%ePFu7QLb66UB0=tw$6K9 zr4o-C9d&mjC;F}|V6}D4Z70aPwPimHy)&qxx~+_H9B_i^J`<5D=u7Od6>;tqt)UX8`fJm0CWxZCk{wN4X0I@tqzZSO3ZZ1J$svK z8#H2y%5$lMn>aYrOZ}j>aWm@4b`l$!qFslP(|Z$V_D3u&h$OaMu?eM~*Q+C1|9pq| z`;wB|k<_uw5d)g*${dq8kOmBs^0E{gtzl7me)a%8*evX0e&RWh#_zTH@kkxq zq!H%cuI@FdM0*f>VD4s|p{%PBfD!kDxv_&!`0?)@bq~QuHZ0mqx zPZPb<*tgGRDso#aPaGF@zeg~w>OQnP^J)HVRovEhED965taa&4OU%i?nzfqarl#Ha z{jn~zo{pP}#7u-8&bVnv1LeM?LM5 zZyO}8AtWiXR*bq(hVgHAvl8b`FXbs)tJd`Sj)8R60g-(oh3vaJ9#lFeJYiiSQHro5 zI3GID_?2)`q9lio^fs$VHcLA%w=NIo!kJy5K*-bcTq#LWvsR{~x{G)IBwRV2PjBWT z_RU4mIz+a{HC?q_*cMn*95`J_-ZEEJ`gd$UJe^gf!^y5mAHCEO z<5`dyMnREY#WdSS>%qOXCUDqQCdkt);phh;!8Ts-P)STz5Uu$va?PLOA8zlH+x=XX zw^Vc{<|n)(c~jVA#~_4}n?kUIUac*;MbYh3MT=4(_aR9Tc%;uIp3vmSNZ zff1GBHe`1d2~?p%q-JZ1?nc0O#I@J&A0FM^If65jwPD7jckIkX-i5Q}#)IL^rP!lLNcFQ;Okz{OdiKU}zY%3p8wlEdeb8@LA20K-t)FnOi~ zLqQA&wa?z*70xWbtzhs9Q`I3yQ$)X_qv8(aFam)ocKJLE+ahS zwqLd1)t6n%Evl9*3nT_9BM3*Mz7!+0JX#gyKr^7OcKkX(qAG(0L5X_Rk z0ODnB!7wz9xLFo1PS1^VxBi^uW3=%u|aQ)qX}5?*ikFt`9~UXqKUH7nTpdON3l>d zgyvXo2(v_1leb5KiKE}hmAoo?PA21}>(f6firiVKArz!bCeGK=gi-FIEU zxLwssLHA-K+a^^_#rmDPpc&=@1&n~I7+ISwmahTaIOi7b%#FnRR5YKp@v2TPX+#t~ zF6GVL)}w`-&CwTLPll}p-l+yWFT9E#fTScQTTQ$;QO4|v9!?DBF?E%h6yo>OK@tgb zClUh%IOSj!@PVt$wREWasdgjvD!7qPnP%5S=~tsEuanW^1*9h1Zw;cbT5*_g;|kNFL+4?+RPD z)fNhc3JEC9ow_so-RV4m7PqAyVSl1UuHYbCdMj#nV8Mr4VjwXj zLLiU3gxeWtP!_))x_&{)$%DB$jCqTAc~q%l((msh{b;5_GEwev!iGLo1tWco4p|H9 zossLz9P#jZK>sz^p-a47#$mmO%PLtE8!dXBbkg~2ep?jcp0)*(Qq`GmucWHo?d26r zm)V`U!(I{yeX3np=6|qjATm84q8y3RH9QcL+U4{nR!ApbUXahJP{@%rv~nQdL~mFe z1=;$?wp=BqVz>bdAimWHj^!l zCa|3_`Y<4AT{<<^5NOi|GWuO|1yB6~W`slnoejG)po_Lm_x^RWa=!czZ{m7_puk?8 zkwP7_+7MNwp^=N!xp*u3D_{YQ{SlMo24Jjc;yN;qtu^j}52 zkOX?<%YlmMzDZ#)N2o4!Qo$Ti}G_~g@uaee2e4+z_HA5t*e}Tg%gc4r{LYEgGD8< zxaVv3R!nERR)H%ll{p}k|389PpWAwd@XqFu2VwbF>ZdOlpCSQER7*M8PBTp1v!z4! zEy|MKi{S>)BEwVik_Fy+?B_Af|Gb6ELy8Gsn`!B`hIZT&CUx)zo zKA!}V>d$`+=yYSD=~O%R`bUu8v_K|nCYdhJro;ODz@d7*dJIBkKLQ7z=1SADGxP88LDGt%fUyv8;!=b5l|kAWm9&**FUTQ8U6?I1Z*-V&F-F!wTDi@#A@LA5XF7SP z3VG>0qB8d7Yy>6IE4d-7xl#XBVd#b?eM4c+so-G952P#1S+-_Bf2WozMeh{!W7vLz zP1%ZE^W|}o71+8Z)*i1jgX`_g`Fy;X!;~-I1}EP*64Xo>^zv8MdF&LO{W$oyx0jf| zf3L>T$Yy5xfX!XLuZqqb^$SOX>mss(@^s*g<}n?l0aH>h=U;^5XBTTDfQm~@&-2Bt z>$xv;+!Pyk$YO^?v5QcmixCA;eMD}!v_R9Gskm! z)bzpbj@*5r1as(dJKf4Z0#GM2JcEubBUp@-CW+ax1&}roobTR<1qp1&h1M$kPGER2 zd&Gk^$WnCrrnb|?Za{W^l{)RrqzyH9EMikJqv$6aTij7mwUh?RXQ2nR6M`}lgmtj7 zg}~(lDxL{i$!0}x-K{Ud2ICSA-+w#i?H>yWXiIoz-<5|iFnQSK=&H%t<^s5Mx*W;+ z;H&VcUm622`}JqIK1j!T;~v+IoN~JT-Y#9eE2<%E#`}`IzaQSOEa;cp8W`Kqk_93k+xKh&cL%X+hDn%pvf;wg zB+2nJwmU(g`O2-t5aL1gl9dB2;6h?iUSve%IbnPuPm*?=Lt12GQCagxK;7>Z84}f^ zj)KKv0~vhCk*6(jxk{BTbo$iajU{CEx9-B6~Db2qg2#%6^T7F5&c4psMBgSK(%!4hvH&Wk5vA#?U%%#`pW-$A^fm+Uujt7&-pDof{SlJa z((brwhhHL1Azs{hB0ij5tX4Yi%FqT|2*aB9UnWdYfo4TJt+-mD%s&D-?h;lG6J}^} zY0u(ShI;-w65B3{>5_Z4SOzgkq<2#)qU8vQM*#0|ldd9cW6&Y#9(q2Y=FULR-knO9 zm*U_~=+g%JSwxr#iQfxA*>Y!Qbz1dk5ZEv%{t#rC#UU1W>lH#rK>2R;C+lC(w# ze8mIBlpe0xR~=-PL>fFsKu1mKH+}Jl!|tZCvy;d0D!Z!_x&lcD;DYs8b9nX~4YzJj z6wbDALxdMXE}H)cY8BABT-T8(YGJS04L%Lw#S~e^+wsjCRn)Rei&9d)t9!kiKtyRc zg*Rzj5UILND;FH1ofH}r(qi?jhfIZVY*^RFi#}*#6+QTLOc0Z;q|D6eG%KKtdNDI$ zR@}MRmYPW9>y3aROm{l;uRLc|Uq`!0vc-3jMk=(2YLi5#qG(@#T>%B#nu_n^<_Z^` zQtTzBt`(z>hirhHV`uNr9HwOTLJ}Xbu4k=2Zd!Y|s}M$R7+@7#V8A=4kgfOrgp)7b zsdp@rAbfa|huuQgJ+;+BcZBGIs%74@{o3wk#m{pwtZ9kJus*^q()VPA!xMd7rRbjB z2M_S=oDG{BEp0c|5$6`x&9^~gfvAaKL-XH*Kt)Zoa(XF3^1P!GT>c#9-`8zJbO_9| z9*m?{5m>G71S&(3FB{uucHG?7r}G2a7I&8p{tr6Z)bk%A+hU!&*pROPoze@lWGgb` zLL;#pORe=65|I@NJa??DO_t?juBjAwcn^FF7i&~FEhLfyLUBqKoQ@*Bsx}_gVNP*Z z>HXuW3+eWwAakt4<$oC32asA`-_}rQ`d6pK4uw0MV{Y$2X}=ub8}R$)ENSYs@sLr% zQ^A)vP9u-28Y~6+TJeFS!UPcvhQYAOb6l3p>T75snW>=A{{tlb-(Rt&Zl!hJFcvwv z?{EMOdi9K_!ZN^vFaxM(5$ur%3<^Yj1?X#H+#KwH$<_Tht88DE7C{u8 zf(kwr&Nov-cg>k1nqJw^rO>@4Ff_CFZAi&2pdL|v^rY8wy-=25CvZKnmua|nBbXLQ zij?V^@|gv}-ouVo6;rY4hmiB-N?8N>B4%ccAJBhwT@D^z#x{v>#&dG&G~Z~ET617t z`of-7W9pWx&<;|S`@vSPl+RZ*o4%S&(r<&dG%G@P%pEjf)@LM{JQ=2|S0>KLn3VOL zL9(3*y$d}$2-A0aohQsLAh>QoXodm@DEI<<)ga2R)R2Tp0}qe>#&c>^X^w->I7j?@ zm$8Lyay4|O&4=X(m*^2ZM7l1zp5nVwL>I-2T=tAi=|<{i1R_@b{Us`#2GW``IM&0q zuDKmj03py>A5ULIY*}g%a!jzfCFsnl4H1&f50?WM|!rJY2rb?m4zRpT%z0MgMjxzWiTA;n%td<;Y)%(*Qi?zS0%uJ%48h z)J`LoXhT}fZN%L%yTQV(d>j6cpb0MekHGSa6*o$3UOTlRG@U95J`>}+mL2(xCw40M z?aF}a^4e{ZXVj6S0R`6T|1(X%vwDf}l->UbzIc1)|7)7?KhK2mqcsdY@Be3-K+l4+ z`$tegcie!pI?FKQu?5l9EV9^kptb`kpp_(NlRL`yqLvN1FcwSWgY1EOh zPep|4@PXA&MHJN>SuBa)%1BQ}?=juTQA8xx_#eUZOP*H%fz|6zc%L4xcI3)YhReyL zrW2-{1{_){@)LaTvWRDdyZ)*+M5eRn8$H(`D?rt2{iZCO?+;dWLkx8$dJu*r!!`T! z`~(H5SSB~@+~36Iw9P#cAxx;NCS(urM%X_{{l z3vP$?)*930coDv1kQ?k@v@Ktw-cFb zihU<7IAt^C)~e|rfu1QoT{w}SD2rHt! z6nlh?*=+w}T`FAr!AC{-I!v?Mv9PylWlV^Mr+2rP&<)MoW!uHXIG{x?ycNw8F>J@bxKtkb{iFLT z%9nQSOmzRFqL#pqc4po!w0)PTkILKSh#?PkY|5JG&UMNr`#*wc`hzpPEJ|;2*;GRr znqmgUa$Dbl`Sd4TZJQS`6k!(JzR7v#LC-q9f*L)iY|x$RcPgbm!=?o1X|mv_Q-srK z3J~C+&HckfD-7f=N+D^7`0=T!i^ChshcNi&ZGcUpR6Vz)w!-p$--S+n+kJ?>C090L z%40lg0*IO!0jj_kX@uc1DxB<4L$|m-12QLE()Izr`EoP-5Q?h1GO{%p|)@ z&(eo`nXcnpSJ2W8oRa;&roNx<{V?u;{Ua#n-WqvDtgM{l8rO%TtxDEWGWs=O^EzU)6@H}I8GjnCfz!CQvsvZl4GpK?CxhPg zJ=K)wIB53C&`B8vZ5wE#UP>5Bf0i^H+1%d#fFTHWiB&1qe5lC3&Kfu(&w4XV^Nhp?3;CNskN0qqd>^&W38XVy(TwhS4jUyUtSM2v^O;)2ng8+#9)tZ`+iih4}A*# z8`j|Pdm#ht-de|C!52pf#cix}By`?UOihmXN8t0rvk0=-L!(fme4SPp^Zx*vKxMzu z-6v9^PkR~3Sp1PIz?u&3>-5eDLhIaRvx5xeWnYKz!Aw`gtJl)E^pDXbw>+OT+gXQ?d zGsoN<55yNgmB2S|;sK!eE?QJ9^BzWeBHA8XVq{AxR?82}0p*rx&w^={cp~EpJC-go z?bI8W?SqN7WbJq-`Qm1_HCEtCLcm+{i=V{Z3t@Puvq_B}GAyo!^(>{8B?;pxmw%`|grf7le&yhJ{XtuApEK%WdsGm6{LPuq?3K41 zBpct{OSq=XJCr2VN~!pQSCQSkxTj^IPW0C5F0SH$wn7pM%fR>UF>Pb_!bbV89I1PR6YgnW??Ddn#O=xg^H_Vp1D zY#yKi4NNWs28F+ZFJCO?VgsQcql|GW1_FY=S6>X~V^dDa-E*AF-36vq74R8_iD|+f zN5-EShtb?gTV>_JRf@S`jfx>k;HqNvtuUZZ0UAlyQc8Aee0PDrksvWNEYNBi+Z;eZ}!C@BaYdPh|3c z5cgnufP|g}sP z>?~1TgV42g+_YSc4Or`MT;dwYlOoXM@YxfIfK`V(y~DO;VF^+jE0L|Sm_f7JKY84w zQEioOT()m9%P^S%cEnmg5CX+JRXUaUD2mZT#LD*$(C}Lh&w^3lf^>Url;u}KoCyyR$w0M@ z2dH@7Uc;4I0)}J4IlhWFhZy>np1x4g(z%qdj6%IsdT{+ zqBvk(O*l$^?kG7Fqi=WUCkOukJd84r;ugz?P*@tr(B#j%5B-NTT5^JAA7dWtxS+|k ztIEGn9uaoLj9&z5gbGJf0MsuR1ebX}NKwO2QmWood_{T?pxb_>Odp9)81)90$WXZp-9eW$a$&cu!qVihp?QY+*KQeiXlTQ? z>QfTC7xe=*$!ev~;^KFy0`YHMleZ#am%jXb!<4?sMuD%y5pDu2@Mwl$RCbhZ%YG03 zR$yW?#3)B`H4BtIupKAdM$uPw47CUm>lU^DsePNF-w| z+e`-FN>q7u9m(u0_b9FJr|J#a{u`N^PKuQQRIvu4SN{M5#_^+PCml*)5HtqwAMWAk zR6+A8Aj%zL8ofQj%$9hAWve3E2Q`R-u@4dI#7-g)5$MW#f-=rldGUo1KevgF@fs)l z5FkxJUlHY796+KQ54n1>#8hafqORa74#R1jcIS@~i!Q;Jx|Mw07mIvDqNu0unt&V( zU_+WTzb})xjI}n>!IH$i7r2E1X|PyBC33fV(W^Qey9a6p6!fZtH09K{-qD^8!8&*EYM>O;zwa8E z@CI(H^ubeWx^$i6+^HUltp5NK^Ax3jC-D-tv}xX z05RSjkedGhQvfE8eKuAP(Rx@o=DDFuprG2a76~K!3rDOL1 z3r%0CLJ7nIfT{A8oAHDFb1!j=x)=M8fBYnLmqkCQvd{kj4N!>$cz^MOg0%ua`2&XQ zAS$ZCuNU<^C{K9TkNFZJ<-09^pI=gk3%r3Jh7ZIMnitgKzufK(rV6%Wv0q=uY#AFd zYeN43%&@nTu5vk;Y_BGzj(;Qw$w+gn!w~WMnG`}DAJGJ<6ZI=b80;8>a-~Y}Pb_#K zbV}}gMGe1jW<(Z3i^8$PpZ^g^BnsFk zN~{BLYj_H)fT-%A-ES6jvb*h0 zXBFHdl3rXdeCzWHZEY;fGnRST_x}LK9l*e6frR;vsw}K*WTv>NPEZ3{U;DoG6>kK@ zMF7LDVBVk<*=vPg$Ns=$6>iWSWL~j+_?OCy02yDeFUDhd0y0Mndxa*WLdQ>Db+!ds zr6(a(UFsmQu;3N!sEXlQ1aOtQDkR`di(i&I+*Va<61;&&3NV>x`5w0e3iVa`YvTO$VVln-ft1LwdY9m{y#B~Q=8Pu0nlj}5o!!^Q%{Y# z@fj&%z{RS)_|d04K#<)RQj!gPX0u1}R8jU6+ar`Xap1V{APaoKF6ek?#!1s0)hl zpaq1;(dMO+8dKB-uo|ix8~Dvc4m2XJ^j?+UiB&;d>ZO52)gy5PiCg921FK&sb$}Tm z@a22HU?W1-ZgD|h#5IUP6e-12G5!0`GPe3GTJvfn(-E7{71C;Ax$#Y%6lca4E22Gd%seqgX-chZ_Il> z3y5}=R)@HYv(W%%r9}KLhM3- zxn9FWq|~6W3(nabLJLh9$rKni4~UZ>78dQA_=r#r6?V1fmReuYBmKfiV~bDK%PKpY zAq8s$tau?kacPIX20=l2!LvRpya)UwX=7QWJefpDy^bo%Ne zyh>HtZkE(7{Lu=a3KaYQ05NARw6#l@KkZE*mrC#>r77`a#5%}XHrfZTn1=gR)bDGT zm`(sfreS%mG;gn%L?bT6s|&tA5USEb9-Z?XHJz02ocQCJOk+&^UW~JxVip8w6`w8K z`vseQW?5@$e^iBhvkHL1!1*UehnNdX?U`dW@}?bw?i>r+J;mgStt4LzLzlz@OarIX zPDs8VhF3^Uf_Q)VuTT$C&mU6}4yCvwXKUVI#!KbF51*_MIzP`bqZjcMh|yhl3jjGd zUoz=#34p8x{Qjmfx#SQI?OQ-_*Yozm77Ph8%6sqgEXt!D0NvKE@3~6>O{DSUY8tA? zE(?`B*PtMxRr2vI#cL@dk0%Ml1+2j|l@J$Izn{FpX#rTU6b*WnMSa0-y8a?6_Uc)t zv`rZepTy;=WG@D5=sx3GKt}J1IsX8YItEct5gb?e#GoR?Yfq;c#xdp)11N|B{&DN^ z3jshjTRi=SNn)(k3w3q5mXw2SW2!O#075%3i>vp2A2 z+McsJ=gmM(nUp+AJBYwh`m^&8aEzzV=265Tz+M=rLN(I>E#5JKP8d_5l=y@t++PuP z{96PtpDHcb_#sUdDjVHE6wr#G!;(739YJD<8|1vz>I~1fu+!F9La8y94F++jq1IF= z7ncfo>w;vEAjK_r$lM0pE1*1AxZQOTl9)Wy1A1Y=S~R%Lwa=Kkn7PwD_c6O`EMn%s z=<;9GwC;gSBI&5!xpy*v=k*g0I3`a-HQ1!QTD+U!&-WjQgjCR+zpuHi#m>1x&ws>a zguGK}K{OWdR9gyZ{-vp*hDCUSh#{1g%K~|Vm%_cPK+ym(f;W)$scHHGv;-bhG zR@rN7ip}GRcBav=2a?2WsBr-_fbCjwUCP6)MXGm30>3i2K)C30oRrmBnS85@V8ff; zZNtN60_SpAnAjh~8d}?-E!Wcss^k9vnTR=zgbr3Htj4kgHa4!X8E659&?!cQ z0Q;!_0DMgr5r6NfBtWI`nndw?^#SFDd6rB(ELTAi(KaG=6Sy(dx{q5jhPA6R@dfq3 z09MCp&#Uz|j+}&5X38!KPLar~fxF&wel;okfp}O5baU`UE)W0=3f>ca#R!&{0nv{i zFg;K^A+X~OHxiVfT`bjk(KMMVtB?6HA==nVD#*Cpg>MrSL(Kg_pb@2l1?A^{qA!+g z@L-%ja-^0c9m?q3#juL6<9?;#R19!=9O`ho4Ox}J=Boby5DXzN^lyoF?HfomW8YbT z7}APDadq~zA8~n#Soo?um^FEYc3^CkU9hsYt$XG_{24}vl2R&;Qq4tzA_CQYRY4*J z5P)3G3|pYF*D%5fX(;e_{{UFPZYcKIy_MHd5LV(k7mVNa4{On3Tc=?2yQmG!@Rjo` zqr9=rRd0g;!efp)j&U_dCz|g@zcq5zVeO-NI?mYlKh3u6{Ik&z+F)FbKWh6SQzBWL zPjLE68lI7!UZuMmASFi-JA|s3-gOP+HfBB|Rx@u>fF3t9jUV`gv9-_KXq_?a9fV6D z;7rq>?GnrySGWrIY92^LM#cyiNH^IFa$<8XjODA{#Flha$3?NQu#SlX`HxB*xZ6i* z`{E24Wu(x+j`TS9&deO4YX@a3yk1td6bV5w8{amMub6}kjGHCx%Xmpk^>c+#EsCVK zZ92JHrjRNiQ81aKkYbC(G!2%hSFzf2xv|VKQFd*-yyxmygL%a%intZtqzKM_5BUz2 z*g=pF@AnuAfYUrNT^AVDkK`q)g%$4kuNasuVOp%m4SsH3Q<=Dn!t+$D&{iQZjk(>Qz*FO;h0a__f1qbdti1-0o1EN*D2sAfa?q7kSZCQ@uC7>F&al$xV zM!uy}QSEn1mF{JQjMPPO(cCH(h^ESa6A-fnfFR2m8NA%TPnOKm%IkgOrdFNu(VR6D z`_7;tNG8UGXw}u;YPA48JZfOQFdQdY%uOReI4%|d3#-Lzo6^@Rf}63O(z0<-Xj++7 z6e1^zd`qEW$xaOi;FbZPg>bg#^%G>tj6HV%<4;Vbk{pt}1c})jIF0TIt8Yf;V+CC_ zOfHP#m_r~BZ~n!JwNj!y<@GC&FR7UPh6R^hlL02*A2N#dvSuOi9)Mse?of*y9WYNZ z7StMRQoWUC;+d0=O0K=dqbL**M+G9W!Q4tHe98rN`C>_p0Iolt4~SG0pk@?n;m4m4 zu9M6MU+&@9Rur}s)2-LvacZO#Fe~J`_+BNafd?&2*i%ECrff^BwyN=k8sf{wE|4ox zM=ERM$!{^wBWN6KUQxd|nE?nFC;Wb99qx^G2=Pi^7Q!Mzhd`IjLd+jobWH%ZloO4` z!2#`}*Caw= zkyK@Cv-yg+3<9BUJz@$gqXTvhx$0jDDz$dse4-!3L^oo+suhoUe~Cj1;j56RmM@=j zqN)Q%%+FeU4Q@38nE}y)=NLG#>M;Wbg97Pn3NRO8m26V%WXE`!ab@_?1o{np7`)V4&dCan22~%~PQ21Xr_BDXHNjT0^nxk{B)& z59%_D0}NDZcpSzBA0c4t6ytovRX{-7b!Us_0@(okfH&c_xHgb{f<50pW;r&pAt&+{T{#UnDb<;=L`W8~87 zO`3yCZZk&@>93ew01`_T5q~h_Fj_)-3u*qigu)MwX$TCGlbxAPoOnOsq5hi5Xk z+okTKkIG6D;$JB9b`P0wxlNlBs+5P|v@J%&oraPN6bhr+Mf<3O%rHEqdS)ZA6gpa5 zyx=`SxT+6j?OH+)d9vsp`;S&~x}e%~LkMc30A>Ylw7^SB?sd%$x%!Bx&|o?^j}*R; zT5No7SY=VZ$wtFuJrIN-Gk4m;(Rit7p#|A_6W)LJV4^I_8+xoO)#^MP6LAA~&9{$T zz%8y~5oA{huE*5PF;N`KSk=6F%|-JHgIO10O#xSy5CpEM0O)b+#6skamCq10a4KjI zFZB^T$%Cg6vs@d9Q!x!CMg5USmm>o3^HGAjfIkGfZ`UyR09uGIS$~Z63iq7Q1aiE) z7V0O9V57^xGAAZUn=g6*$#<@4<(QU;rw|L(Ic+!2Q5rL zCOiF5v7`z-5E#+<`TnE56@^!w?3BDzG$~#66Ow@VFc2yU6x)Ir7}f$_-8|eaVeDi- zxQRBcmR(-|0ExNq{-vK3wmAN##-l-Q?M3`TBG8GY+sj{hm_c0KRXfhK{Yu~H^d+_9 zU1Wjj4m{?A?~Y?2*g&P&gZ}UC1sYvA{{VWF7nsY7nS6{Fq=}ds zwYjNc&QHvBS2}uN3N0#)JwV?V_+T$STP`fv4HgH(iB(Z)MTIoSbo_k8HkVfUU+>|V zjp39j8p;KpUdT0qf;4n-y-Iinm`qxWU;53OV1Tr7N+aJD)V&3%Q;;gwj_&uep?F>) zDU7bSUG7{Y8X>0ZHPiJ9u|g7FM~s>-vA(lLM@p*FtSre^=eP`SK&fOS;@2-jHVy!U zwhzK_!C1tk4HZ(Rvhzcr%#aBTD4f6CDpf7?w$?pgT%bx$s#0+!m}z<(3i{scCq22Yiu z94=O7aUxi0mKyK>0FcsZZ!{A8OyKlBJCwV|Qz~B)iusn|?tLfm83UpvV$HJ5UF*{g zzG1S!n{ZcL!bbL5qCTl_tG5v)D7GU(6-6s}t~C!}f#R_&v$df4T)T{x4KzCw7~Z)G zuw|y(U^QOOq7O{2AswpL)=ae*lR-#;6f9QOoM61g2$&Q&x>K&lm{obh#dTM}pfv%= zUUA9U;$wUM=k1vXnRlo9h2J7D!-xYNpVV$6dn1ue#{LU~FJ!`bi0h2B5J#Fd=1|i6 zfYwh-_be@jp4iLEZ8VT&+YHOcjb30=Z7301qJ!lqA~K*0_gT>CFsng!moxs^t+L0M%sFd>%cV zL->N00m;Wds3MiMC~EMQ2KWB}AU%mlWr;&rtnU@yFmt`AU8J$$awbdnnR25FLuD*e zg|(AAf#>?&WmvyYRdvh&oJ%QNRkXY-a1Ttc7%2jRm!sf&Ee&~@PVa0LcZqf3e&8~29Ik>=qn@1mfB-pW{{WfG*njYy zTvrUH*0_Uv5nVtsF0ps@+!o0KFR^WlimI({ALpVu3O8yLoO5!eNF*hd(*$XuHG7L{ zRy6_D7GM(tDcrEO3W`BveoQM@GFYvd4Tu!0Z%%y6Xdz)R7RiopjP6q(sLB*V2LAw6 zj`GxoefS|&jF~@iI-Z$Db>U6c17^~zc@mfk4=Q6DiwtN`iw)V)`R5kPBFq%sP?+VC zbh(+61KLW&^)Qaaq5|bZCyy`+(OA^8ceKBfR@vRmEaID}rAlb^F>7Gx`1+WEZeJ%q zHTi>q>h&f)i40vVe*XXyV?XKux_Ni+5nUAm8?-S@VOlSk71Rv1x+s+4s#n7vPz0me zYih=>yqdL!TNS;k+XJCR3c0t>)L1mF%b^@#3}{D8Irsx(Sa5TpvWQlWtyODw2R3sI z%7p;zPBOPh`NUj0bY*cfb_Ef`YO+>{H&fl#8@(Bbf6 zyaVoL2F^&-aOt|Xdj@h5VCIqW~kLlclrToLg;B!h|w4 zYKC^*+@f7$CFPKne>;YF;1vf6Wou3k+{4Re3T$=;Eziu#uFx&vuX4fyD@r(u=Bwqm zo98c&mzkQ);{O2pjVKNO08-lzaal0M!67niVpvT6n~7xVDy|1;Zx2q- z%p3$3gToTorjBp}@Q=(55e2An6m{lVZh#DegJ{KQ+G+gM#W`Mzy()QZ9Kay!=f8Bn~UsaAFX0a%P)aTp76G zhcI;6a4#%bxS&``Ws#NPY@xn)9dcTkFy!9WhZvd@_1I~#*j4Q}s6wMwFc`Hrw=E^+ z<#SPrOeIB?niMY>wKNAcb9rup)x|M+;^5e{XOw8m#I`V+O{ghGQkUN1qT~T=k!P)% zt!_AK*xr=wt(cc;tTF4q-_*Lnd!DLzAH8q(p;y6Ri0N>tpxu6=Ar>27;wILiaQTI{ zY3gaDHp2^yaVtjItb8y+S|x=u&M9f;V^MT%4V>Lwjbfe6DBYk0zRIHf95xxuBH(V> z?|Ra?WqC_=>vre3L_uU}Ldodrx|b>_)#PvF>Qb83OT+ow%ycjzWm)qUwifTyGRF-J zM$o}nxBScKcFNcszvp;e85)I5`a?6yQ=})oXkW;fLp-iDp_6) z5xCiCt1mkW`j|?do+1h~X zP+vS53)Kv>cw+|NKT%`Z+~7i*H@kJYo*6m7?l)!APAiF(JU0B4Tbv<&CPR{b7k-ck zbA)#+@7mVC2?~*{er3^cDhXS&@e0ABlJD`%aqK^@{xAETu%jjlTJ;*-rEpU4YVL-` ztElI8(NjZ48XnYSur@iRISsgPDOH~CuV<;ugivVEz~_JOG13LcJr}$;<>z+~?1PCM zF)eJXiHAJ(-tRVeCJz)TvX7eIMMzjM6cI zs^%I%8no~c>fK^#!bww-rwSE}%V3V2=)2Kb5zU&ZaRUsNdS+4EhfP7FV&6BM@T%Y3XwxZdjWQ>rjN(=mp5Y>r zpK!1A$+@V0y>wiXgP-(Fb{~3M&qN;N-d# znTha(1`cVva(!cL!tnv)aw!_&y}E}$H=%0G3Sk}Tm{KazS60QC67}&eqO8lbIx8G$ z;xVdw2S)UApm@G{rC~K%ZyDH)-8GDG%e@VX7Q;b8noBnGr=r!|EN+^ir`Rp=l+$0N2VDXn^%%i{i}*A_oO{Id0jaof}xX2E{gqV~p_ z+a1vgy5|rud`ig5blHOC4Gjbcte~dEy6-R=a4EFC=daNfqSdLf#_`XO<%k)Gpbz_~ z)?Ao4R&Kw+>J6yeCeW;Av&h#`OuWay_4WQ`P_cxBY~fI=r7FI;{-QFdTT*CRIC)RR zOt9J3!9f~Lt#dNccCL{gz~C59mV-vB^Wly;b$21*(d%7810cl`UL4wUvM*?ip@tV> zV$8Mf4n`^@S6&)%G@qF=P-m8IS!y`O#|*26rzuDfp99eV<2+p z@hr1~p;cEW>b_6}Nq`X`H(4&kDbmo1L@)mUBC!Sa1aiO{O6K4JqM!vTQmu%Ug0t>j zFOKS^+0ge`gR55$C`zq>&k~~;l&Q+YC7aFDW+hOnt(pkm!H9E^+OD@n;@>8Fjq)3k z)U&~Db@yU7wkx^5+Uw#rTV!v6Ri76ZsgSOSGAO;`$1j=EWu&!6xA3qVh+JpnZ;QnPG zYA{f?RpX9uW?UO>8@0Ly)|>-1)yx2ZHU%pzP-#J$xFCFr3?1M;pkEtp@AlY3izGZL zyD^5NH!KJJej}H8j0eQjIe)mSdaubY{$G-2Rj^8}ji~%e%tcEL0adq@YW3qSk-d~< zWMtM+Jc&s$31EjQj4N6cH4N!%BE?^+vb^1A#v&rB_i>2r9bHC+rHD~%am~xU3DTa| z>-|u`R4Iz~f4o5RBmBb(=s({v5Zobi6~CxAu(1CCV^W>g^JckMqOZ`wz8#XRsuW)S z<$NX$Z>j<9IJ(zs{YnD2Y`PCCC|Q+o_&OjE(QOQ{yyb5jf#CTzJ%TwntWm{757smq z%RUkOc#9`6=OT|Te&VgPFXaTQ1(|kxkI|5s+2q&v z#6M9{a%Tf|b0A>>OuE}Ij$m*ut(A`5Ho7HJ<#VvJUJZHUETn>o&6EBoGMpyqVElv^ zUda%*>v3fqpWF(=w6Pvji>a=C1`)E@2cKS`Tha4?MQd#Cp`>kW!UUSKv~Vm%5M2U? zS8o~eW^#u&x6g>OUgoG&y*BvOLXSWy2=gP(9YCaT zmfMaxn9Lp+g(`&RL;emUaf8y<0dLMvmRgtCft5Kw!ety^>Pyh0J}w#`p%23n!Ec=d z>xf7N6DTUH_=#op=6MN!68Uhyj3zV`0)f$T!j-SuQ#FU>$M=r-ficvURU0-moJ$Ie zAz>Tc`hrmVAjSPp8zeMBt>un$y8eZ2vH0C`c!%!Q$BIGq$vt=f%f!_;lo@Z^OGg(E(q z)G2__I61d>YpL zw#M2^8$}jfd}B9olGO0OaAWe!3*i2tuybeVg(S_nlz^KAEJG@rOy94{${&Ei(%D& zaEll>7QB4azv?fh6HWVE$Jv^f`TqbBWooV(&-#efl~TLk<{NCZPklo+1}vdi-=EyC zCXuFBS{4AeP=++4tSt|s7mgrc)NoWAfvVa020DogZ;$bsK(G?uy^=D!4>znx8KXTbg&0| zl}vhs=74r)OG?lY>00kMH~nyT-j9?XWW&*>)M1Tvfi@tWo_gi%eyAr)y{nKV%e zkDG=%+Pw*z3Ms`B=B0^hn9I+;cmDvzQ|3wkV$HH`L>lXy zYT%aF@-c*`$ar~=hyreJho28HScna#EBVwon}FCLmJn4s7;7QbB~iXIlQ2sH zlFkCrz9zw(;M_P0ZZK`kqyhz6s{EWriD+?rF)jVy2lk1Gy1!DWb(R}m7pco*m_WiJ zK2nKxATfnNuWRtj4tQaUu*&IUp$q1&qeZf63*ck0AOKj4>QDd%6FhY&00UM(s1aV6 z-Wy0Pcw+Rak`fhL0Bh!F0AX3d=22B*#Txd)&Sgid5eNvSujWv|B2AT*Lel!Ua+frX zsKcNxF^)&d8WI44#!a=|XC&njp$lN16;pVwHx+0GYg#M>yI-gbtfD?5fqG!i#E$-` zKBa*F00d#1_=tRBH)2a+Jz)9DP@cO&*RTUxDWjUG4D1rCU{&2Ayj{`cg01jkVM=~~ zNUZDJ7J)n$b-FL2{Yvw<2oX8#vY2M~ny|kBa8~#C=sW`C3vAaZ;>`$mKn6mIqy$!HYm4X}s)Fu}3X3Zh}M zFfbylJot>sMFCFC6yuG{p|IVFcjt(_($%J;!z<(rG z-8o|LcPp2LK*6)jq)AAzSW2@OQi?_X5Jw7>m9IGsHdf`qrZoU+*=?m$jN&6;R1suo zU2iRC%uh#X*Hw;N1uMa%|%*@=gbL*0Kq9&o6i{M zGME%#M&0*FX7j2`#TGcOa;}u-yf6le0RV(7*uF%WGE!cmLN*=#jQAo0%EAh5TffK4 zzNB4QXn4O-a*CRxKSZMrpo2*De0K$63D77%5!qj23n6-oETO!&`TRiJK{h(nYpX>C z681ye`nU>TTDSKA;=xK?eZ*BL^Ka%DmClL$%Au(>s`H+6Ul2RcQD`m2d;Cf^n1B`Y zdA8`OOvr(?wVn*{;=a~{F%%1Jb8D8LxO}YqQS2;%E@O*fheG(4J*y>L=oB`mqJ)mHU&%kC1$H6=uDA|#lIe< z3ag|N%_@pnSNo_+o9S7)EYX!~&LuF!@G{m>L9}eBMXC*rgOKz5R9!(0f!MliDl1;b ze42@Y+!3`cmqKqPXCf(U%J`XUMXLP7ys@5rW;o!DifrbLy-FNv zKa@-Y(s@yzxSd%hDu)-Fuf5K=wSi@Y-HeYAGg?^!gE+1Y9Y>3hRm!`w8Do&koEJe% z8wj!?M}{W6+xU8ywySL2sqvmYJw-I>K#G2GmhfL83I(|M3A~355PxX0A`t8-3#@Jq zUXsT&0cL0x{E+^sY7DEwC}Ha)v@32ZrSdDEc$Lzdp+#2N*Nn^MFjjH^UpkG}3MPOE z{LG=yT4Z3PS~t81CI@sy;oeKXBt9pgCQ1Wky~#2E@6 zi-#?y7n9LIQf(EWI6H3gz9o*L3a*NII>bPmYk<%O!o`f{j$q`Jipt1d>^mSCkxeXr66MY{{X=+H~BoP7Cxh_>?N35n8g`?-8z? zHAQs|2X+dF4A&TP10ZYDk=Zl47*`9ZGkd)S;x>kZ76seF58Xy`Y}g!!oaL@B%xd>^ z;VuX**bn=G2^QI~rTVBa46jy(ozhHF6=Xb7X?T4eC3>jqB%)^c6EL%hlpN&-Ek7~K zSZ0>9#6^ni>#@adp_0^A#qGxEl%S<4aCY!Sx;`2|#7(0UYOV_MZvOyL9oNxfv%enN zhSmxuvVrM4xcxy>7&XAf*IzIrI&7f>ZcRFhI(=uR+<+~Wg|0>!OT@5^VMVyDENmNs zKwV_yc+&iqoC_^>5|-Uv>OX@^(-kOIFlzHN=5I}c*q3G2++HqGuCWn2we2|*xNjK)W;L$xVc$&1h;o3U%+ z026|(xDG2kZU^-2v@C1JHNX6KTpn%G=&VjgE$zN_60U(YX6U4qRb^ukn!B+U8#c94i_~OL zKx#N!JQ4y1Rd5h})$G|+4sIk>1VGm54wrjeHgPQkcKaTR32e*`Z0tgs!sV%NmG zs?dSO%35p%;v)qNpe#o?onpDWhGZt?3f3un#>b-QhT75=A*~<)1XgloIp>(HB8?s9 zGef674&!Q}1#t`(hU@%9AUp!ir0$OxgNNBbRin0+?}AWDC^p#!k2NlS##o1w^i3}@ z#ec{Cqpq=k31N+k&2tQCqswNJ%;wIxggOhT(PsD^sd&G?sXWpi_o`hKP1jWx5gwsetVSt^ISyhQ~dbR`Xxxl#I$Zjc56 z$)Fh!X3k<{Y_`*yMne0=@fG-?N&@+TOAy7hfPNo-7>EE0=)sO^*uy1gJD7vG!K%>K z+~u&>B=rZuwGZcBWN;E z8;y`D$<V1;(0R`ht*1m>L6jj$%edAPNGi?yj$x)gAR*idA!Gtvtq{ zpcF0kJ2g+S&Y%-qH3$u6v%j4{B8q@m7Oe04jLQM2rS`$B)_-+OY}yqSJrwZ_*no)A zn_~_xv8drdP_w!>#o;$vm)XjX0`26xzZG4<9MTl2VYTj(>rpc%B>-UU+WFpKy1@ew zS!lWZer5{$fS~Nmz%n~QO{i8OfGC!h7;%)G=XhaZY%-ou#1& zYTN9r!4xA^E`U-ahdPz9lPtQ?L1ZDeL9B7Ex`5Mf z9`Wm{T%wunQA6Uv{FFIU~8XqAq4=ob%T|oxlYuwSzCBE-gB4gUczy0s?Nt} zs)A3Az^+Z$thb-2vJfZ&+U>vQS+o^KHNlr#^)htdW_LZA9yp5QWwWieoT74A5ETSk>=sqswsF>?Lvn=eRqnenURhW! z#YpP~HR=#z`l{0|v3A63NM-H*$+jx~RrQY$ptdC&tv0dl0FMw~vp`UM5D7A2oL)9R zY{%V`0gp)>)&w_k;EwRZ?`ed3kqV4xvJlo>1y*zTfXsz3wfq%N}`^inLpRWa}5r#622@!=lO` zcG2XBhXq>$$+N~ksCCN*W#l|L$erp`OOc4SgS_Jsn>f`}t($zI1zMOe6*b6->L}s9 zL8V2MruJ0B!zvcmC|*yofMb3UYhx;P$1o!*SB{zmyj@qA7&f&F#xHO*)Vvzo6<+<^ zRb7fy8dsPzb_T4=b>NmN;led)(Ek8b1qx$gs@V$?+U6xhGB`1;JVmHJ8?0t7+g*@u z6=7Y}GFLLlQxFJ{MGB^Qu<<|a{D3(}Xvqb>YQtvRumE!r;mBG%Pp z2-Pd2{lpBmWm#iKi1RDh>8B5Ju*?x!CwyXBXc(fL9k}Jk5K5v_LOC#A?p_`iM>tn_ zgdHQb!qB6Se~7g#d zUDN6|l5?B+e^4J`X3OjU05btIDA(2#zU3|o&4+oj40(k?wk`@y9|QjYB?y)_14%=b zmiTZ{Moi(&e&CjjI9OAH_I$%wA!_3pU$HV#QI*b$uMnX!iJE;Zft7?v@bOdXE5cZ1 zXW#pXV2Zb!MpOZdVbw1ykwXmGigDY+3W2S?AZ9pEXiDHTrM<1%Upndn9MWyhq&CU4 z86owizquck+T1SDPQI;*?=t3+E(>VilpA2a&+uH#E3Su(DGdwcNc)We|imS*$lz z0o=uyTF8l?cdW(|z6zdRb~3+J(OWFMQGTT(z}OJ(TiR3N1vr&wdh1`rvj7mBs~}Uk zYs4e&H+huu0i>#mt8S%{#$XBL55&Aege|lmU!o{CGTKI4!df+i<}Im2C^n$=fNBDU zM4!9!(v-NtY&pXaP=59A7;jh#K4ExzF^55Zo1){us5+Ac~61U%19hmiYew z23kCpKL?&-i-XWQPqG3NF+e`ztlMOdnk$%!Z+H*uOs&1Dt#Z@Nd6&a>g5GQ(<{+n` z$YYJM3aMZL!73D(3gr!BHJg^GZ0foo%06N`zlrt6t|fiPvG|K_9$S_S;%ChHO!WgU zE2&Q9LL#D}oo@7~{@7IkpgDX(K<`&5BB6XLCEq6(EXtx3Ui6=EZLtUnUV+QQD1rtD zHOq5BN?E7wS<|Ku*<%W@DDMnwRF6?D*t8MvUjCtZMj0>05Q44BRpcs{%y0pmu1ETd zQD@ip7_`V1q4E99HAcZ3er1g3ncA!R<{D$P;m zpW(o^3^O~(&0Ck-c)*7BG}dkdD+1P>zv4tu&2-(AYtt28OWU+C)@yz-E!(?LLb5H~ ztgsEP!}*C|Yhp^zcPxz9ql+x1z40i>i`&V!_CVV`b5t`cM`n3M-U<1QIGKcpJlSo7r

JGpECgft1m@dO17fi~s_ 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 Ita6|K*;ULm@Bjb+ literal 0 HcmV?d00001 diff --git a/images/img5.jpg b/images/img5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a05dbc4fedaea14ebba2bf8459b746ed27604cdb GIT binary patch literal 65859 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

)Pp$_HS``1VHc|o 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 z zuC!M4hn#o9NUC9g_i+J52Iu!3Ba(!?XKEDjlW-MSu~=QT=5pQp^n^+TET^HZ8v8~4 zG>VC{Doe<-l(~vG>S;dcw{n&9OaB-1K80}bV5#Y+hZJkPW_&1(*_TkX>2l_G3^I?v zg0O=(qE{|RTiXI-ID9ae8()zNCjwRmX$w|HrX_+m;xiM_`GLTRF1oLTM_OM)3L*~s zbHmD4t*L#s>SBQPS(Gh=@v~#Jj*|z66BBdSMFKk`UH0KV(Hs_|MOV*8l6a6&*}*T# zD~0uf)n4H63+3MC9vKv-{q_%({Eg%gQ%Tw&2dc*O((?Pbd8>NxufNW8zp?H8^?SE) zyOZOsiP|$7w@|g}k?pE3%`MH`Wj(Ul^u8!C1%O_m*jymx*JwAJW)|gF%S`bW&ZOxq zV4?;IOI5y8*rkPV(pem*;XL+Rf|ybYvhB%I*^)6(+s?Ze;UjwRf%JksGPE%k3HHi5 zSOoM0>66T$7X5%2Sa@q~+716Ji-ajXYE1r^W2$NxT27D3*C)Ix-dUIf^ZuksEAeF; zh0ox{zzga^_5y|~E_fv+!dHC5}9J67$nVBk9 znni!ZOC5`rEMqryj?jqBGy7PhG2C6xWlc|0L8Ny)Xnr|3-zUr-B)N|!bpF{JHUcb$ zgNZt9sSMHw%^Nvm;b+eV6)b;fs>F6AGx2HZhd3oMS0lT~ia00co+5qw9@El5Bb3LX zkzL|ke74zCR-OUvV}zjutoj@?^q^9H54AbU=ssk|G4==4eA+~b{r_eN&W-N@L#R&+JWN(Tq;#(5s64hSm!g42Pr}t)kq3%k@M$ zDYq@0Zg*}iVU)Ho&;-=9B#2ZG`s7I%N1_@`Lz#*H67KsoYPbU-aF;;um^q=;Rim_} zX|BlUznV?q_K{p3M^Y8QmlTTv<{0EtGhtNo80Y#oUQliO8ACFYLQ~!CW*RD}JmVRI z%xQq-=`ACg??OCE+56&5Lg=mU_f!bH#1~f55gSp`XWbDpNEH)9>_h?i$gb8G(ZI3_ zD!rU7#f_-Qsl{T4Li3u)Vfz?oWT3*5f@X>L)oY`v@%2sbwK^-#?-0YJ_PNjuPRuu8 zEh!GC*6Wwn=kE~1SMl=%l;Vl=jR|o~n+~hgeY&%5n&HI|O(i5(1zHH#0t_e(7Zl)v zgME}i?ZW{ zrgBH>Z3U%1$F>?&jRE^oC4Xl3KE6%MD8GCX=cjBE+UubjBO&rq-rm`Yjss5GySP>2 zRRnZ5u0XQP0^()}q(~m|U6B=#$O@>IZ^iz-_knRZmzP$r9X#8~WiiY9a=e%nN~FyX z9;3OagXtCLz{lu1;>U;<6bX`aL3S;DF_hwR9d&}?>%FtdPDk)0KO4HlzcpHhbiS%obwmN!-rHi01brd?@P8& zRnh+8I3B$y39t+$l4^GAz;W>)YupF?O7WNBpuN86K*Zv~1qrXOVw|L%))^FmiIZIS z;B4oJ<1f;d;J73yXbuOK7oefN7jX-SK*){A`{2&YUmBfbm-m;lKC1W;Eq@ zKh+mo*mBPFxkXd|9yS**(a7iW;Cwbbvw{@T)Q);xFB#<7xo6Av&A1u=c%X~Ru`K?H z-hnTr_jXJ=Z&S2gyd%}D@i8+ad?D0i)o6v>2ke!nyWm&*7E!^zRca92TG*AzUOhm> zw>*Sg){Ru$QCDzE+|lnVo&jE2#L;5)gVhJ&eLMN|GrQbW>Z2=wv=FC}{ zugQZ%>j`z9v0$tiP2}qlUhK*4&+445F_MMfY^eYV!!|`J@3<6&f*@3Dn%_hwuC!uj z7ghDjiqA zGCqtuZmZ5C>h>$?y}s{o8{?a$Q(En!x)e_oUo!GWj#9@OZm2`0QU>xrqG{$gYUWUY zHNfzRa%Sa56?}(1&q5s&MMUD?=h#zVi;m;!svxjXU3F;pN(H}@_Ti_x;WQ^&N%;KB zERD?zle^L~x?!50YF9U~NAA>hG?`Jj58x^O;3I^!tleSTCdh~)G6E+w0N6iOz)XMg z6WuChP0&Gyr=2gwbY`c1Xso}o*Fl#p&-}P!+#qE~94=+b)k=i9v^h8bl=P_IPFjJw9gMkTU|n{WX|+b6ZZQo~uOTJ3gE?IrQ(>4JOD*9F$Js`HB1>)g zeGg`m|MQhUc_}yRwR`v7JFDp?mDJ0Q7wFmu*1vOa3YZfzgpD+{Wx3)3fAZv^GHVe_>kvrfXK?`k$fH1;xo97Op$t zpRHo%4!kd9h=1}^g+YR@i}uGiIhv)eRGTaza`Oh-o|SU7XjbFpIGu{u*w+WvXHw&Zr8he#e_O zq4?@?Rdo5R#jFeH2v(> z{DJEQ=!QB@x!c~lzIFj!^*PZs_{ak7vr`1|g_O?*%6;?w5h!R^{p17RAQwx7l%pnp z%qzBAJEQz~ac@cX!pZ`=X70#mY3DM{lRvT*+b(3f?dtrMlkF9Doh1J#r5u{d zIf)|Y0*j?W(K*))_Pfr>s3i!yk6WX_7!aGDH`-6$q~l1nVG$3WoT63K*o$8dvi8mp zx?82~v23BShJz16V~uw&EJjc+Z@Hp7M0dmc&OiWI3TW*vKn-$JrMencc9=hAvjD(`J1iQWq;y=kC;ty1TOl;-3J(Ghwuk(?406 z4yFHOj?(@U4gEJE9ZLUi3YT?&iAjS%Jcl|%Va?HlxBbMbcbfn?4rND}6uaIbutrl} zWTNIBlOYZatY=76zI%{6-tduZ(%HftIR4i&c3fpX*?0Ww7yki%s{f7NO(D7KgxD&_ zp#N^yaJQ+zQ+}4T;He%Lj)wTVC+fcD+Q~A!Q$OnO-qopRaHCK*xZIy?3)J{9+c`-Eq*FF!4L;f=u-q{Q*kU2a553$HK!sQD4_XCe)va`L<2GxZHDR{poYv z|6Acpo(+!1L)6%e_m>aE)`6r1fEjUKH;S>I__S|nme0$%6++6E`0Q>}6krnihQ2r> z7=`;asZK|t!L%1K3*8-4;Ons*sE6&Y?D~VpXP_mUf$HthClqKTz9BC9Rf-h4kKl3T zDyFQAq1e!1me*sMtNzgow1Zvy+tM?H_Le{M>H%PtnEilwtv+0caBc~dGUdjS#5nHz zhnV-n&fc2_|OEMRzI9y)t8)$BOyR9$es8u z3g6Ek*}W-Ryof(m9{+%mt>XY4ex^#Ay;n~9`suQ@FIBfwc4b9W00Jov7b51cI;g`` zO@%j-H>vNr0S@L7MwS7&D&4_8UGd1V$Bw}|qR$4?K4!jydJ@<cb3_$4_Mcus|VNmjCAuR1m0+DUnu`PfqTk35$v4^VG{3O6v*UdBMgh08ki5M2SY|6;a|xfGF|5U z^qJKqZ?$qU*L9_`-YMaDOazS26S?nYI9lQ0F~c9m&iWI#gG6TRj9vNApaaJW%UGu4 z?q9>Uw_Q5>xxX5#+?__8)wD`Ob8&?KBQ-;DIood8Ku5Sq>Nb6T{SRh)oxcs{f*lx@ z8O^wiy1W(@wh9P1Uq>ZK2{W~ITlwR zUeI1Kh# ze(VEDEiMYR7t!a?-<9d_Uvcx*E12fL%P?8wpT4gcqqlQG??ds%i<%*n+yE>{BV9f) zEUzZ@j50;X$xuUy(z?H5GEt!omw{(Wslr)f%5vN2_@iSQEI3vB^mEm7%h40+_009V zI8?R465_k0N#2}hF(N;*bJ-Mp9xgi1WwbR7FLBu+57j(H?B`BUob=CaTQ2^`TzO=3 z30adnJYF|iBhar+U{{mQbrsJbwl($Bz8i(g`K2e0PgjNO;5?;~<>nU(Z%s=d)9Fyz zIpz~TUL#=qQ|HqyTVhBWnRRPZd&LFPaMthTtM7<7$S9Ljdv)ZN{383e2J8kZe5TVb z@W)0PTFTw<@NoK?-3Zgg@z~b?BZ;Oq{eE_ic?mL`u}Bn+J5$x(j|gq$pNsnL_FS1Q zj4=oC@KtJxJ}}ofY@^2CwQ7sXk!((2Ip^VnB}wjDTrudlGL>LbsD3@j^KYghL?oN-d=d z%cf7pb6>mkz=8)dF;Mh|JI;e`Quh6VAI%n5t7t?4 z;Yttf=(2RNYCf?d@nhsLULa9JBQhT6O%>Ubw;eoOqBtZ^hz(bS4y5FXOwFqGf8~~j zzIgk%oY->5K)I!=OQDFc3VQz}WN&5Q@WUMLNLTaGMe2AlZ78y{(Pv$Dx#BIMw z@YS5ZO1(jSq8_@^Y5Rjz4HFTpA_&A-%H3Ey@n{Gtw@%|N2^kc-b^&mz&IO*kg=#Ha zr_8H!v6=LnbZ2;q>co}!{IKLbYG=(9b`8~v?@|0rWQ+hB0I_W^U>UH2re9CPL!2>A zxtNXn9RaM`T+&WhKR%1DTb`&2MM0%~MUWQ3XMI^Ti+uq!c!m12csa5g*EM0yGT(mQ zD$2&-1q2i*isY@d(>4kewq(+5LGW8#_K>f7?uOFP|Ol<#||`Px}F?U ze-%^)7Cea&i!BO~Mu9t-QQuaOetFRjnDV7BCPigwMC9hW{U&_Oe{}dt(+Z|u0JwjfED7jy1d`J4l zo??>xpRNL&>buTFv1g#WqHl^zcEp{>8#YT;HuI{R%GNMQLTFm)UG`)#W$x*aAC6c2 z^bG`s0>EU$pt04CPY??2mi8hV8hCI)cf%HPiq%r~$9iaZ(T`|4+Rr@aj0P>Xi{+Za zu7kDCDmDXWPw{Kk2<_$$slN}{#biPA^vDd^CrWoI(f62&a7TjT@H$;%cllRg zr?LPwh*49WfB8>+&2(c2br%h8Y18^hoWJ)Fv9ukZfV3&+Z`$Hy)wyOfw+w+PV z_IZ)UwUbqmlYTYP-Vb*f#uQM@Y?rYU7;TE1GSOL^Bi&5m>RSu|yECoVVA=^`j#$R3 z*1NE@>FAjZ2-s-=Fj%dr+;UtqNmE6^^4K&$fz`gz~cl!Q8_^^P$Eon43FB-@A0GI0Umf%G3@=fCJ(tOW8lKZNUBM|Dgd`PH9kk0#CqA-pUf>2 zuik4Vuh7vdF6$R0Of2EYlQN1OuC(fsMP}Pc7@a+geNt(;J!+*^`F=V_4&XIkB(cX% zBl_~)r;Z8jYnajCQIn-sgp=73phm_5YI^E(qU zc!fbpi2!EFx?(!yocHm9(2GxeoVf83kzON?BJqRAEx2QntK|BrW?*S*H-k>1-Or6= zG{_vp6VYP+Ok}8v_g4-f#TOoHD-nq{Vx3H-P-fk2erqHhuU5^&M_OmB)<2_djkRgU z&F8Cp41Xn?Xd_}PoO(^C0;y?RJ?+2U&pQ%iD0fM*0XepqzO;~F(sc5`J03Gs`eZm< zy(`eKwXLyNtedO6ZC~+L!;5a;YKh+@OJF=?9*};8qa0qv7HagRD^VLk8;|S4Rd;{7;SI@QG(cK z3cF9%vfP2IVeGP!_n4?@jH;LDn={n>AG&y;-ls9Gq*%Mnw`Kt=Tm-#H7s8ilrcg@& z_t0r$R;e7iEsG7eSoF&_ck-&IF3FsDCsk&6b>D6Q({+pW(}jfoO@1G=O4K)D4UFpK zQ+UE1U?DP)df?j;$_1tGdPP;;sB64BY2X?czbA%%u29hI#d-Y4`y0e5_=X9gy{0Uw zDx0yA{Hp@R&VNE#og)md;fwefyr|kXJ>Mw`+agM<(|?{DxZ>yJVO?gOR$@$XtM%5A)bXJ-s!pMUEy zY8ZS1@u~Yn{2b*Ei^zG?BTe;ZEg-WZ%O$7Tz=Y6p&UugAJw{ayEbEh=y+UZ%*O9|T zGGy=xhavy$QzfJRXERa@#f*;cyq^S2-{Y4l=CoAV>$NMc6Qs-@orm5&nyksmhkI#@ z;8{2Et_qD@#`I~d@>P&*)vT>yMb6)q?8=zP-QRmt(F*mGA5DG=N|_U(31lmO@bOp- z^T*-WQh@QQr2JP5xN(<$Vc<5n8;|C zh?^{N_q|`qiAIHXF8zU}_Gx|brG$Fl+`GoScv?d5S0@n(|CITO*13*k3z;C#guFSJ zzs@2sd`$9)sEE(xhn!=@nXuHW)462M7R1qX(N9B~TbZy&R;|0XY4#pjl2{h%L!K)v zijSwWUxDY*gN^M#d4J8yv8C<3i^15&cL2RgIT%y6cc9b_#pS(*mbcpdu7+;cSQ`hu z6z)e@{ThZ1SLUGH@|W)XuFz!>A)zOL?*jcX0XWaCbz(X&^ImxR zFGuOjk_cflLhQu0`W`SSHZbQ%=udlh5v$g+KSiU!53((Fbdfv~@Qq?IKisH%5HBQ&By(BfP`m(aLNu4q>Ydk}IW z^t?5NVRE`OgSDgh)uy*@dn{%WYzTX@@VudVz&bQs*oKJWCx~I`{cx=lZG(~P1%62K z4vt%vevTlEeY#4ASA`1hADE+Uwy1bg!@Bz)X-CvN2X7|OQ_QU2hXgA;a|BY< z&Od}cr|?J&=7mXlPW|d7d|00bi?De(zY4uJ_IVpf`4T1Mtz&YYQ105wUEEq9S!(?# zudkF7{qQa@T36IvB0!;>Mt8d2RG}l3VA!`0 zOB<>6tN2YoYzyG*^;jm=d%&vwabo5ApjCXOFNAFk4*;q;a5F9FRTK&Yu#sY`o$^_0 zq{g-W;ueSF7U& zJx3D>d|1pQ@N#2^FmS0R&fmyFX3%=FZY+cu$J$V{PnoaHq#CeG{T=7NnZ}cP-roug zO5XfUH8Y^ufVP|Ghw|l=>em!aE^#Fp8cmxbI%YB+)4w!PvCYvgU3RFZB6h=h$#MW* ztIWi6DU2qhXo;e(2OPRb?R_Xqk;Fk1dv(#!_nP?@hn%|5PnmewRae`nTE%(CRgd%8M0NVg@%RG+OI4^eP(-&EeSKFG!^eQL?Nt`S@nqP9 zrn@v+2F^j68gsva?frPpq`Exz(Sb?18w z{Z3hZ2_jtwas;5OAYECL#rRAa$iG~|gv*9a^8H1qs?d36B z0~Ov5+A+6!D*H-d=aq>KlR2`|TgXiKA=7)~D#z%$n$7&QLexgXW zFZwY;I8fAsX)KAp>O-_w(|8khS#F5j498yTgiP`2R}i99QkoGPyCPsRq(-p4L=B%ow$D}D13xh6JR|r;6eydhq%YRk z=|^r=&VC%jk%Sp2zxv&MWTlX47WA9ZGbTIZJf?w4*OkQQ0~pHd$oL`x;5=_u0IO*v zi0(f1hLL!}SMRh|_C{s!6!eD@JB~n8w&2h2x#!co5~-9Qn3&7nZx_l85X{v~PZbgk zD*2~7@dYNZe~x~Mb%|NQpXw9CQ;`70s6_)H=BfBoRcL-#AkbIA_eCVlF4%00Hp=1Y z;#;M1W3KKhiPlFQUoq_fpD$$A;Uw<%^zhs5{G6YcTJQ^a?1zkd{EwKQ0vEhzsP?=y zDy*g>%?>FiWc3#v*b*kiAK#BKuSn^bI5|8~daioddb?(Hq1g=|Zw%HL`jG34-$VOa zRQrj5EX)N;^K?~Y3Z+o0c5y2%ByD_;x2rN64 zcsyn0$(jZF_3nFlY521SC)cbF$2LnlhZ$ypCh)GlBJxBc%E&~e^;mG)16WYP6mJ%N4Iiu- zL-JPOCzl>69%jUu{2gVJS@0pg19To!a{X!EsppH|MZ&xAdv#Gz069lMvO?3UQ2#Wo z8sl<6N2i$dmmJxU{AO^Ea7X#G)J1Q?L)!kgL1u&Wm46OU=M9zkua{<&XCk?tbgs#K zs-na@v8t++N=gA3>%!2D&%yIbW@+VwFhZJGWB#m}Cm95f6rR!RMQ*(f{HkWi$Gibu zbAEWjIL1!+1mm5G7newp=&PH@#GqkyAqOMK3PD-p)=ysSa6HG*p_6iw_=p=>+TP`* zM1vHa2XE`AE|p6${$fuay7N6^`Lvg;yt}{*yZ8K3A0uSTwDvI?E?_rP6X}eTo*~pa zLS4CUvx-}q50ly^eO}tsdMkQle38N5sZxh3_-B01 zet!15b3>8srjstv`6Ej23yT-4W1?@VxJ*4w)52C{B(n~B{X;dY4MjiVoxc&cs?QCz zqY5800pEv`?VjPtnhla!fG~_NR0P+|gj|XmTr_eG`4DupyyV3mx)0vHp4Hk zgl8aMiMfnwhI72FkFj!_%BDJ2G1lzSgk`K<2_1Xk*0?{z$09Uy>%bn3RJC*hPJvp- zLs~?UmTI{;-+~$wXJO?VGIchWlB&iI8YI6@cNVz3Sq>)aXj!N$N{mG(?P)2v*je+! zLZj)sR>t2Gn`{uQ#AfP(mkx!4WGwZf{K{X|Bs)0~;n62apNW)s8Ig_Q7M)S(ZVhm6*7vLR2o5>kt+D zhR3tj%6Ko3CzGxt@ z^BHZf)Rbu)eDy7_vVdY01?q8*wGkiFDlSW~l->_<2YT@S-g{iK?}v&vV=o9;*u!f( zW;_CE0+JgDZzO@$#PQE{TsbUeVfkCjvHCCms8&hIXR-0`BG@`a_o!FJ!->Xd%7V+Z zcTCb%lVLNYG8TPnTAn7^8&=rd>J87G;bYENvYA z(*-7V;B=Fn_-U;akpG)K>WCM749>t5r_*AMockys@!%Q7o>#SbuS}%wP;klKQA37= z`Z=319y6DX(Hs9vK=c%2aKs9%MX<8k17@;eQHmmm7L#C6Lqg+Z5MESw&^2SpS1~d_ zW;;Ir%y-yXT+pCNoSq6|Vf4|$V$BmvX>42#TWW$yYR&rR90ZcA zseH`)_CfAS#`A%Xh5Jn4;=8cr9BNk*_9*5yq@Qufp40w0U8|jKi*5+G_bKmq-e_+l zrZbNt_$r7C*i7c#oC#TfPJefrfd=Ee3`ze@PFuCl!rOE|uczyEZ{hv8)IxQiWGMuu zi5{dkxzQVahx~RH_UVr$h$*zSc`M-$b1iI9zqyJY6`v9__!wPZ+!vG^ycY^9IrE>h}C&Qv}xKFjP^8 z4gUWT^%ekaEM3@ea3~HfQrz2%LmS+^SPQqfTcEgW2rk7Pinc&$3&jbfxI+`5xC9Aa zEVxU*^uGW9eX~20esi+V#0to z~qEcba4z=@tRi`OhFHIY#|cu6WfeHoc;n75cDZT`Xs+AP>P8E;o_{Ct_A&b49L&gqa$EjQS8A@U~rU;W=HySm3jsNB#7gL%s@ z)m#eoN$e16S(B$~2KftHdvplTP*3`lW!-{1t={P4M&9uGoEh7@?dKuALHGI}4p*=8 zhexaYk4U~}jd*{I7<%mZK73aq8xianhT=7_(M|P@q%-|$?Qf2{86Vtv6yGWHSvU4T z9Buflgug0ujn2IOo1 zxSig>!y)_mVfzqDzao96Eh&VSuFvIQ^f?T2&+rGZfozTsm8Nb&6{axm2dwYOgkiuZ zdBt}QJPta8$$o8KcL6*NeU>*NiRa9qs#E^we*j^5Zp-$!f!P74GUOunZDX2tdZh{*XV=KcwxXn_GkpZu2-^}xe z>Ca19(D_EriEfIvuV>=7!A}BnHcoMmw=A3ULUrYi`6q+)+Ux_y^l7$#`nP>bmhR^6 z(9aAejFqKu3*l(EW5pL7#tl5tg}`ufez7js3}OqTi7IIqwR=hAGKs{2jryGh{J^)T z^o{6V{j4t4lSHcIPya?m3l6JY=oND4DCaG3lvDF}r|+(ie(JMALvsDwY<+*+ILNEj zWwTguR0YI3#jD^A;c3g;FsDupTbjJ6UjF&i;}6DLmUVU&&oM!?r(>^-ZLOK>H9jty z?W+Qpu5a^WdN&*WPc2!b&tAmpD9{)P5kp9!ixAK>NR!-41W+OEhz7ntOWa{^BMcEgIVEEuS7WN zkEH}DnTpt(DCYtSW8;pbl_8oHOjM5#WE=$IX7|-DM05IO+~P;+{s6+q**Vi0D|sUa zwb&(BVV^vFCw@(S9&%WA5PQdteCae1Br59Ocs+bdIoEa_e?q;*W4kRSClRUjjpm?p z`(sE?&9IbPl!?lOr|N>8p;-*@GgrS3tx)Od*o^3z%j?1SA{(=j@i(!bC8R0tc}YWK ztN!)U8xA|o8BeA*FS$@icq%}8r2gpZ4sDd7u;9m(Fx@!qnjL)&VTbvHk4gWY6$*ql zAb(Quw;VH!%@xM@Q!UCcIi!5%04a&2$eWC9%f`PkxQV|hko@pNzpo<3k3Qcp?%iky zYkuvp{Uh z0<<@OTlTNT%RXXV$A&ONEgvM) za^L>)&uA;$N87aOeb9OEw^U`f%3mg^P?Abp*}0Ej7C<(ujjzfui;k}|+eJ(SHF(3O z(cho~7ddLL^QX->7#qTnN|PTBr8xP20=Z z$R-FK+;l&s^6%JLPCk2k{rLp30j8u?I#HdO^HRHrDORY^rG0OBSJ9=lX=nz<^5^lh zGT`PnoE9OnN9umj%J|S7{_BisXR+`huC?JDi+kl;#3XqIj%vBKg5fzo6y`SvW(DB> z(&A!yO`(zxi&~mrDx6;mH||r7pYuuh1IWCJ*F8<9-)KHNPUB9^JjZ)&Oc0PnT|3F`KMnNR;MlZ>i+8C7oS={nnhyf`4HK$5ODx z(Zfo>p&&)oTf{yGGgEtB6C{Qp4Q@M>d5Tnkc4A z@s8XR@C(d?(2Xj7E~^(}2hpQN1a)_+)B4{^+-fYIM9WVG*s3gE6~X-VF;sN+Z5RTf zo86TAn9gGu7=sVGvam&#V`Otx+`B(X%$CoX_{Ts;TD@bGsq? zR}&#lvUbH(x_LYU88)AduAk}7f_A+pd`vG=`tD1wib?bPouFyK)S34gSH+DG>I?F< z(49NoMY;G}wPQJ-2R0nXsi(89!DF-Vv$p}?C&m0n_JqEng`BXQ5<#Ka_y682$@0ol z%Zkd{l9HK}=O#Y=y@?Ts%DIiLbjIHru2;x}7@~dc%W)Y@jc=RRLZ`2aVWB(&p*+Fm z=DGiV_tn&K(Kw|)CR)1YLB|z9jQ=T+jO_qgC-5EVPWNAC^B<7*p>@vCIva;N+uGjG zuESpB9KJu?Q@Pc+jVqN^AJNuQ2y3VJykAjx68bZA_r)K8UAaS*SsBq*=uPOte{msn z0z`E9R1rz_)$>tjJx02V`PaYOjKlW<{>b;jAFQ+jL1@qc&%Wf=TdZbkJ_GKUUlqTp zsDBjp9ddn}g$pk69$+OVpVl5rm7$pkK1wN9d}P{t_kM5cE#`Iic}sU@huZq3lJ3_D z+h0!Sl0N$}#rjXh-=ijX9llimn%wh^`sMcrkk}IBi-9GPU~Kp>t_d+_d=zJVg+A}c zen-0~&eKpi-oCA%3G-kRLeEiM@9*a3f2-+OVE3GS-u2=cQOa=-ijqb&nx|*;4*)v( zwuU~G1J^4_#{2zGLvLwX-3*tyxWbb5Sd}K^!Js><^O}~W#_et63}?r?kM#SE8N9f= zZJYnLLR$xV7Qm^!H`23^yC2d|&prnVb=?|*yw+fukYB%cfkcJ;+zHNrQ3f|V(SHv( zrSo)|BoECO&)yz*sk4=8-`uH<3NV{J#)lJpwZ<6-oW}fsd~Yv_UriwD{xY7P)_h=K zWvFhpJJsyX^-l|`9H|rQ%k(GE3xvMOqu&gZmFbrR+e9f7Oh-y zsAVR1lxiJs$|GBR5PbNz)%c4taQUUgPkM|t<))z@qXZYW&9x=!M0d$|p4>yGgT7Lqoi0$L7g6ryT zgUGH9yc4T$$b(dV*{v?|_l$o#R#Ym~O}sV6JhpD9u>6C}c;62@ww+JDh;US)Eu{Ru^vg!J<0zAxKkyj)yx%bn(HE6B$>AIDc3nNtglsQ_}QO`GQw8I;kvmY#$0FpPmGai+y1mj4ZlRg^` zU%%|6{2?2{hYI{x5jY&HX^A1MVTTPo5SM+wR#b7OYW0cmKB9Y~A^$G5-})!&ZYt~O zk#yoK(DaZ}u5+(+Qru&XAI}qn_SNKBK?##5{iL-krL)*ul0gSKgbS~3{s6Yo+lTWr z%J6|8v#ZM|oDxGE{wPWtCmrPyF8kM=N@w%sZ&hQ=6dNKEUnj33zv&JA6EdYZ`s*m| z`)F>bT%d@I%_tKDjl$mSg(XRo-x`4sR!XH3Xx~9XtD<{&mexYytRT%6Z zHxtI0E>G=xtE&n1LmvJCpu_&P%USsYxcCEDAbCk-!wLXoAErfee({;QbVNcrp{K4} zNf5=oYSzAByNFNTqk3pmWN-tN(@d8V)bL=%H`$ZD6F_XX_W7S*U#hX#inyU|Iy_NH8R7dVgvTvtTTGh#!UxWn5|wB$r>mW{O}1`h$Rwc9oro9l zk0*jJj%8V)n;s?H8H>?019jU;`{7tqZ@SeNe{+?v#q?syYhF44{^h2KuBA_;iO>$~ z1F)C!xBLOXC>5Q=-eW-v{Kh^bU4awtHqtFQGe%s0X!AAfxvpq%Hn@tVI}27|Yt~+a zF5K-J8j*Gck#*|^%P3`Shso<-u-&~SpI(=X#euhQyhu7!gvZ}xx&%swTn6h_A$)-6(Xl}^EfDv zhXWFEWUFMB%@W(_a;_MbyXU2Ka7I2QTo$dP!;spWK_kUPGuR9A(&k9k;n&T1_!u13 zbu7dTh6LoRwNaJ@*&j)!`LV4J8c-kQ93exzX+R=Q#{#*5TO=1$#cvL5e4Pb+Td`+jnnhm}aBBvTl-Mp(^COy|7Mh5i=t@F+ z@YS3voT<6wu6dw8B}R-tTg{M`hL&O*c0Z3|+^i^QyoClAUc;_qT`yg0`iC|OBtSs2 zz(}_KvaMr>H7_O?B{pEbTMz$_?r1PHByYG*r($t|d9%03l<3<4No@*9N#dtm*!l@e zEHfFKG)Vy>PI&u^+!J3eHs|_X?$PeVK=ho=6-&JE){9k+f$3lErX11HF2h#+Z}fNYWe!@1+bq>bO8=j18&_o!Md!VQ}F)BhieT zF%ryuhXas6&uq=xIoa%zTCavKj71j{%hD9pd>T%)Ipq{T&JIxHYiV+69tf4*+&3n= z6u-mo;14m~;}0S_Wy%WMX@2PASXt3r1Vv9GfIoWEtxy-U?lz>YF zhNQM<1}K9U{?!YKJ=(6{sno_N_Ko(^TPK%j2sbcYTD3sx7@-*$mnBJ&z{)Oxk?fMNSxQa9gXJ#i+bWO%dV z$ncE*;8*{|LU{Svigu2DYfKK!Wpqu;te-y-dJ@y8I1$1Jb2x)Xy6_MeRTE#20g4Hu zt;u#i6ByehHk}u9^g{1bWBUR)vuJKZFG3jUut{c1XxMGL$_XCxP(7U(>H*JZo~O;E zhg`a+EOoF5u0e1gh^nfBu4f8O+17DgmSk@vPyX-w8jzeRWDQV=#51C>? z_Ihj-=`o^cC2}Qk1+JF@uaPlElQ!c9NoBBdejkn++NNRPYZfe^e0l_D8-e+CF?E4F zScDV9XJeVGA~1+q17@;2Npw%}5#?sakZZC*$h=Ra3-}M9^JkzPnRYSL{5whWvpYY$ zJ&c1AU4&t%`dq|@2QtbvEr-&=lzE1R1pFjzs1~}@G*Si9nwq5A9(|5^!pin?It0w1eQ*VIEF`AGj3AQ z=B5-YtKn910!2z@sp0det*)_9$s}b;vOcj7;^%3fwFbMKQ0Dj3y|kLvtEnzNa0j{t zH~WYm4X&fs-s}3Fj?zI<{!F^z6t`KITup0lU~DTWRgQOUOe=}?Z82K4hhekaVOP|I zq4c6nfjiq$RkJSrYk>|yo%E~xb=>tF9kQF`XZMiZf85^y(DbMn%7BFnTXO7|DsepB z)*|rMDr0WxDkL8>Y8Rfa-}+KEM9mWw2Sw5ex-^i}O2y~d$t&YC+sLN*jf@4R;nM_% z#kA=f#`N%X3i8_*$62%J_t_#+=dJ_E7+x8hk7@VG3^dTMreBpiBl@gU5qI992q(*X?6T2I2S>LYcRb;`p)|f5T&t zma9iP5GLJ2FyQ4*KKpuUnc~t!kayuo?p_YKZvOk@F&|%anReg9BX!uz3nN-wrS&Q|o zp*3L6R-9Y}Z=9V0mx!_qi_UDqU1O>TX-h-e{`+Nf@#Xd6nUa3QdW#qixz20z&ejh~ z!&V*CadEod>rE?bc)J5z8~M_{E>}QY`tV%1UEK^Ebk34*&F363zpupq2T*+DMkmA; z6uzcD9N^%IPqc=;9lxYH-K~3W!O5mm?n>Ht& zZA-T!-FQg><`(*W{CGNb(eE1Og0%5Veo{3ATicq==p06J9!~nIgHw9Psi+$&UJS+ZG^^n&zoT;(2}Bb(6yHJ6F0qMSTK-k_Y*Fhq=wnq{l4T$=Jk!-1|g`qO#+_t0D?9Lfd>X z{m6s{rhvw>SQwlX%~@T0S>8n%6&&Vyv;`C4Xi%Nw$IH#SR|n$Zt~RVujkDO*A$VYf zHZzf&Lr|`rDs!nOyHV}>_LBaVlLrF}7lyWsO^VXRGH9bKad5uZNZu4B;>zz1uXVk! zHIQs3hcN9T73Jb@SAwM8Y@mofQ%a2onvqo#7aGN|b-%j8)FXRQde*voh6gXuH`9h1aa?PSbY@&qYJi$4R% zVC;&m`KombY1_9Y7w+I5@)3KjV?Ql;5;13Uf_cQB6Kdu$#)*{=xxLVOdt!#9w;fB+ z1EF;NocouycZtKv*oFhzC$@zGf0!oB7rm& z=k>1HqQljj63vzda%H!26-xzCvS$y+kkVa^)L%+vtgv@OPr}VH1!3Ii6ThyfJ`635 zJi1M$}ImbCA!Dm?<}ZjKZL;zmb#ZD#4c4=8Z@9G*-8?b(AZ_>O19o6uY}PD zRhEp%Li&jM{I(zh32Dy_E|N9Jce=p|{ZNaeG;R*Ag1=oOEI6E$n zRK>&mT%myH0C6jkrK6c_Y2Q}oF2}WQ4D0+|fj#09m0+7~b4jb_3?1U=ZNkigBa9b) zcpnbxO}d{wU4q4Fg*jRGuD7ab*M)7162dhuxTFe&IR&xd$Y>z0|PB8Gew30c>0j#5u z+*`CaXb0F8(~yp)&d0=1;@+V=Cq5HX0V{g8wJ}Xc>py@L&oKJfHX&Q|RyF|gx|#*g zPGa4TY52g7=4?JqU_S9f{fQ>xqwXlJr0JZES?y$KJhl`rn55i6lyQFwGK>0Yot z_e_koVK9o#do(h?f6_KY+gC zz7@<;YTOE`X%^%-xcMQv5^_WjN~~v?O@~Y4eI%W|kav72PjzuG>$JIF-CDTj*f$wL zn$Eui;a?-mr0uk=B?YUg^{5qZt5Q)b=JmrYGg%>$VHYmzX@!?X3eSpOApGg1)B zqI&DzaqAAXv}1w9r1daPudHVlNQMPqgoho2OVyeoE5rvKLj+!iM(v@37GgudzvW!V z#1Kq$FT`YbjES{>r7jpjQfva|$a>2Hle$9xCiSO()A`M8W844Qq&@`WmjhIQX`P1A zzkWJs{w6|ylmAZtPq@y9IbT1N&wtwa2k;~%v3}rhfV0U2lA1KVn_5$yt~B^=()28? z)A{1R{jw9n>b|uy(wXmffXwFm?*N1Sq46hk?{9^Kz4FICzrs4RR5`bNdmb zj#6p;n@v`06F(+fOr8g@cQcrea&u(%ch~aB?{#`KnPnl+o(Wa#xv0^w6>sE!vkGthx z|4*6r*T)D&`pAzMT}4Bpol*jEBVSK4!HCQBF}%S>+&u9{f7GX+JOwk8l0F)f&>RnXGXQfH)6;@D|7k6(YMZdw04yQM!c>RoudU}hGw2%@da zE~YG|c#&#f(I>|l`D;|{%b>^Y=EWStA;LzmjUybyd^ppMhOdszP|w?lKOLjx^L+Up z?@&;jmO1I(_Kbt9T2^p!mN+3HfqkqyZSc#S4P8j+lO$98;L*4jYrnNedbSsk;29c{ zQSltSFc-jFK*OTDE9@en&i~|_n!muQY7n@D`vME)$`0Yo+pdCvU!a1 z$|B^>3BUpSD)w10aH+KwI;J@P0{IDRt~Q9TDSb@q9LH}5%Ra_6-`d*KQ#^ht+Z6|m#4*|1HwkDHOvsY6+#}M8macj(cm-WK% z+%2{mXuV8lg6PUcLBZu&2uP+juO_e(J3``|Og2If>1~qvBWbO+{;`v$UzrJJdM#fN+DOS03?;(iiNJ1BA25786?8k;+VV>2;;nn zNcVsz)-QO^c6wj=x;M@6H>9GWIg?W8U$Mk&zR)>h|1`u*4PD?7&v84f+n*l zW_(H)$4EByiVoAW(@8&`>e90*C?@=&DNIxxStUe=n;^y(5D6_S8Xple|vt>F#F}q zebu!-M2Scm7!*7oD`JZ~%qChH5PjXV1j~sV50M-B*k5KfpcN1)4i5u0)=40S(@r_! zDvTH9(k{a{JbjeXL-HM!Q=f~V6uS0iS(n>MHq%d|7%`5tROh!KeJUL>tY>zNqsHRd z!0%d!pls@+46S-{L+kyN7+SEVF+$?^`H)DvhKJ^SBV!X@%zx{*GA*Ob#;jNnlSm;$Lt%=;&A_QnUpK_b6xYZ zA#(W`29*L$f(QawhU2{)FN+g5&&$}BS;#d}Zjmy}`Nzb5l7!05U0dX`MI zCn;Jza^7iR%iwhgTa{}CR!DYQPD^hNzZ8@foM(ONxE7q#ScGjva!8$Dzr1XPQA!y{ zJRR~$1OplaGnnn9Hx5xNUreuFy4=z4tQF}66-7@cr8RRHJYH&PmLW@)IwR#kK&c#IE>#6LoMb}LS97-m zSBsGawV|#fb7Z;I)vkV%#urh0NSy;u#glkGnO?Q--J+VFHNh6eIFS99D+2GBFOIx=0UTy$iC1sR;Ny z`wQC8to^QR5g==|y;%C9iOXloZjgqe24C~E#t3FO(-~fMxvL4GQ6M06V0mlAH!NkA z&pyP;q)yW(G)qC1FPR?DIuQD6z&L`=b2oSDR!E!VLuLiX`Tcgr}aq;YB#|~!hMAN;}roG$FZMseD7~_w%?JvYGt-&?gxGz zK}j4V?-^@8%;Nx`5e8w4qc_&rHVDyb1>rj6qXQz{yU783>Lw(6VsS@We8oyJ^xiwr zc`W#{dV5*@ka?=uoQSRr`KKTk8CHwxn2T(!_1U!4qO;ru&WbO*2i<`X5oXcQ^iR;R zY%L0W6XJ?5`qt6wK1XthJQr?Mx6@894BOkTM>+~&yLF~IUJvr>P$nZxAa#;Lzo{=( zm9XoL>2l(p_uZlclP^qW?hhT6D+*Ivi=Q0^tG_`njRizzCHSGLzh9?GGH=|PPi`|1 z3A{eP=?kB&oPnQ7d;6Yu1*S_X1-rr+2uk*>ma-K!a7aPVdsRlDz?>BAU27)Hw0aYtfSxlV9{Axk-nGkCY5&mBJZ>)+8tqNnSJ-(jC7Bl^9!R@Xh-qK}yF?EU`&ao)8pfO=02o?wZ;x2NV)+unmpU4fD=D49D-LKAcZz+n zI#;nx=GXw4S0M|dY}Y@jHTFr0sA=Q}K(#FJxcuQ%CZ2qi{cPY<66lc2;-zEoQq9bp z7Z7I_iVfGuY*?}h(aPKK6tlf6>*4*V4J2aGCElCfjY~%*>49CyT-P4yr%PJsO_cGg zH*Y~o=Oa@ypQ9>ESa)=JP(7WQFEig2wV|)xLBR%U9{SF9VJE&kN1ZkySvVFr=|DwU zlOg2vjDDu;Q}$w z!ATI4v5_5P`*jP!8#NduX7cT~ZSOADfG3`QYs4A8l^IR>0nk4{OyuOYKW;V8>nVlwbiwwqG5dr~tkJQ%}tQnkb@OU&EqmUtuA5&D>m6_00 zEl*|=(z*e}KLRTFd^)r-vWJM1(g4}n60K*5{}!3WfCK9VSS6t}r69B74;Ifcb9C6d z8>X9buY;Y`-cJuJQyp7WCJcIOvUu%XFrpkv;>gcph)#`UPwr+;^dc*QNHwu}iqULh zF{e=#H&;XR^YwQ})^F-xnRJ3x_ER@NGR6&@enC1|eRf7Ew1L7o(!(oX$zR{lfe_Yt z*~ZW%ap>%gS)OEIwo)v41q)d)tj!D%;gNKidX4VBLvxr~vAFBQz$FOA#OR8TboE39 zES0+4Y>tbv9 zu=lr6;s^`Z_H`pP(;-*E%9_%q^&(|qweB-D0hQ>nspUAO7=De?DA22A5?P9eFR>!* zk9kV!;E8gAV_SIkk497a!h!v>2Swu-`7FL)@$wg%LwYsv4*;G_)76b+ zh^3NYzl1-p^1l)51d^3XAOXS0gjyv#5BcW;B{!s^Y0{9{&#wm(HVK0*jJuS6q zr{F0d@u(OnZ0Q%U_0Kx|^hfxa#X5Hs>&b+}S<2@ZM5(hiDn6iKTrqWVd6I2834yD7 zmUA9d8_|1sb~N(0X^UDSU-&8WjAYC<5u2e>Tx`J^-HE(-n9O6R*^`W++k1{&8|iFD z#IOnCeh*n0wkz!28WDn+ zp=F`#3TK`w$rjDv7LSS=h{B2`;r^uXNgZnyqvCiCG||Gg&yvRW!l1O|reTHBgCA!< zMUlI|_Ba#gW}1u8+8Sfn@3C$@geZQ7j|>&ba?1xhEVTT%N+=3G1=S#Mi97Of$pRbo z`9i^+Q&{2w>s#`$(=}G2!5e5zS}a?*_}MDQ!sPM>=^Ccp!7VXm@(dfs2@5_?3J=oM zr1E^%uxSlshklW_x3|)G*L$!yR^-Q4rYf7=^+(BkHktp#>aAx=wXd>1o&WKy5UP$= z-yg$xD2U06kBv}T$bu4^bwpEUvY1X0%5*2dWcB|i#sRq zHZae!%3@zk1__rCgOK7MwHZ6%%WG?E>(ikuk&rtJ%(|Ar1Kg6}SMw2=xDQMe3^_N=K}KJ*DBjh4 zd?=S=QJm`Bm>mucw&bd0IU;IuV*uy#bsPw`syh=8avTtSB zD+7}YoOM1=ZXKK9;aESF%e}=b#Z&>;2>HH)&*4<~Fw0k7WN5`r*lmZ1K<_!*XzVWJ zD=oNFQ^59IZc3s{PXFH0$4IE{T5h^K>|Xa=+yf&~ts6V%_$?jCA9AnBT#$mO6_pDP zWr49BU#G?p90m(+Da4)v{s8L#0CwNbo-#t_hdXaETIhO=-&kJs$}Zl)?a)5heN^=x zeoDI~LnhIbe$jP7+}{?!+c1od>?v#9ydiBd%H|~ zNV0c3;GNKSe@J_oaq)24+JC8;AeWeP?hs6i6zs4Ji4GPdxWo`WC)_TRA3l^ZZe#w? zA5EFKjlLw7+Y5ekV`KXZH`*UEMgP z_iZy}p$kAot+QxavQ(fX&jx1uQEhLQz9*o-f($z>N0vSv!=%Ln1fnUN)VlNFPe*c^ zefMm_EM@lHgff$%{u6hY8@IBqg<|L=k$I<0aDtI=(Mq%Hr;X}Ktx=xGyHJC%rKlZi zVF^YBciuo_vKer9*rhv1U_N4@;1p|O+2Eu(ukHX;zfaH_=+3`Ud)bOh$P=3A0@mro z^4lV=IHER{&iQb<9GHGDop!oxI<%~MBK8OkFdbd?J8e$OK_?u-L;e7Q|NnSuZzgp+ zWQ(~1!)eWEk)Ft!t+^}8o!V*to&ja4sx{@7oIi9UmUh-*f7Vu0z73`a0>`GYe!EX& zocwxJf0ttDTjo9%i*FQ*IBE`WBd-8?u!H0Gj=a-$R+ssTti4MGgvcW2;XpyI zjkHNb2&Q}%n!`94i@ohO%&|79R6acLkbk2s$8#}pGGQbT>_<&MU&FQ4Hk&{3PEd&X zGW}%P6z)XE=4qih5?J%%Zl+?9wtcg$Is0^AcYWxJ$i4n9L5{rqgr$rV>zPDC?_O~R z>nv9w%y~6b<=Ozu!*FN^T>Tw-{X29AJn`z|$RI*kI>pFRr+?|Yfjg@Cx;YOgTHI)=U_xCF1?b{vBvh8C5= z_H|(HjS&AOxz>H!dBGpr+9!%niTjF^0yRf1^iFa%?yW3iR;%5aHrpjPvF*%g$f5G?SB9ak4{alF?BOLvegFtTE(Kh(e{;up0onR zpOSLb=ASa@LwL`Kxh+Gruf=lP`Zw8pRS7hQEEG>@Q`@391lhE+bD$<`0(#lF%52vpI-Im)FK$u(p(#D4MReyOlxh1$(YV%NmXHzw|ZV% ze8lI68T?_ZX&m0+JWxTpp7TSxBrwrafc!}4cn`A%@%%5}>|erJJPfe+FP`^*YY-Sb zuV;ALM~b@c@uTBaRw4QSOE*g~Wg20m{7AB&!X&_9?ZoGXm@(goVNr~GxRXEHl)cF$ z6aNg6n75RL#kKhlZT4%|S$(~?Bl0M6Rz;ZD1mKjUmSlz?puKb%V3(}lNriZ8!l+g2 zOvdq;#@(ZjHsevY;%k-sNgh;QoTqbj=LY<1%_0ke?$J~G)!VQp6i1XTOmV-y@vC@5 zt!q_wu;Qoar{*6dyCtn7vtr<;1uFN-kJ?e}0D_#hos=r2Uo)mr{3Xn8b9+MqdW&`R zE^@VC#!ngRbtdIx8jTDDj#oS-nV(o!jOth zcj)jAqro;^>x1=oWF*uqT*(t}5&ze4_>Rsh9%C{m2u;{cJa6L~Y$lG?2djj>9)A2rbKM#2)s)MDwu#=eB$Wn~( zX%BDorkVDsz$JBKucykzBa|bby?3_Xusvo@c)#qM@*x*b`=yKKBeg`7oR~;Wr(k~m zNB8;?VpK=>O@5>Va1$aDgODLqDZ!rh89oI%?mA|fTampv%+hNoe33BCThI0giI>Iy z6$u?k*>O>n%j-4NY46=(R zxan)v(4a|OVO*7-0kU7FYvl!fZCd^6vd$rCKUc#98y`2U zOX}$J9>lv0jK1c2EoMMJ?;G-;F?9U>5%C@(~Xh1pZ^YbWqA?i z(WogVvnOFc<_hzUnGbtysYHmi!q4G1K5B%A`#ZNxjnrEHCjhem-UNaqNyJ z%qjQ!0}%N!-71Rra+OmsX4ocx9CI8UvSpr_16|U!?8P0)x17+2TIrn#e6VtAr+PnN?LzeS z;gvdDKQ%n!pBEBFC)i%RH!%`GTqLDHKcLzOhd~VfT20;|F5@c&@a6rQ#XnnbQdoMP z?|U?>;UThR6AT_o(67t6?cb3*DF__1`n|oP>h6$->^4_FN%1!#9Q9SF>IAd;L zj0eY8yrF=IaG;yBH~)mG%1g4imw;M67Ijza@o}1&^Ps>8(v4tM^!-|MUn@OxEo;?; zGmB%I{Ac4=ZMOsE>{1Hx&7hLB0u{jL(bdO~S#i{}Y|-x8?<^WePk2rE)-29S-orE5 zdi(J81{$UB79X2yr#!kt*h;i_pN_^ zn(OH8Ul^sw^YIcOoZVqV1o}9YB3mdKm5JNBE?N~7hwbRJX*HOA8a6jU_zb7qYNNX3 zSmE|Vqj3C|sR%QBO@Om(iU2l6GCZrT0P(A~gQ)~BbMBd==p47Twt}XLFG;hdr{L_O zaxaCW{u^{Rg%;DBhea;D<`<@B2qhz$ZhrM=f@T=c?F+TFXSs~@(;qeS0-L(W8p{pg zE7XkDyM#?KX4U#f6}FdrySuSCmD8Eup;cJ9>@uOY>5oXC_W{PL9(}z^#4069Xgd$- zD^+Qm3J_Amj;n3L@Je4r&t53g@HEz3aj|FCP&H2xU*9QJ$#Af}JvL2V&?MXcUPf)B zx+qvRe2oF=K2+>lRR*{IxO%@vx-3VvUOB_?S|A%cqR#&!%<-|*VSIH;C2jNerQnS{ zVyUDH7B|DOLrk*Qr=RMPTfaTA+Vv=+(d`Ypc{XIrAl?L3lt?wRSi2Vq5=!aGbQP$h z%<2yR`r~)kG?+K+qf+G)pM%9r~jf5M$j4wgYAti+g- z?1r&EdfM7`ryLjzd4qw?oIn1?taOY;`PiNetZqOpKEFFPlt`r9RDLN6NHV9qSEV4K z%>H#U4kR~3c^{{X)Iq8%=qTlPOO ztuBfNSKwa5m!nUlAk4t^V8`$Li_D~TR9F?-u`mF4x>d_UGcDa0ujU0=wRSjUc^kNG z@CCJbr`z{A83<5o(3}X!6?~fPfYG?NgSU91ncnVJ)DAsMerg(Q;@-@Y5Q)161td2~ zr_3j)9dy&-ze(y6&v;>=6l8tjS`Yw1kqbugy!e4|;I#Eh{_7c|NI{jVJ|J?Nb!FwK z1$z7SDc?51qmS;>hzpUy@f8fL0e&DZ@T*AdZ#wY;cxe@LHkz+;G!@V4HYM*L(rERA zS~1pYBfaY88D8%eC#MiyADl5qUX7u9Omlc(;S$fh3q}6`uMe31>h_FQXS_fP!79Kb zEY)>L@Jg^N*HLUVrUvR~pOm`X-a367xQG_!Hae&xJ;r>)qWi<6GEkHwp0IE; z$bHDZO(!$BxS0cpEvdfHw4$sKeB^2)Nyd8gs`!g2n$*Z|L`Wj;T869aOu$32Mvu&? zR+2)UE7Rr%Y5)TL2BS~{gH|*bp>Wbc0efUnGhcZ1L6LH(isCY@hA;K>{nvGIED%W#k11kgi?Uk?}#u*6{|*HvFp|wNm2%Q6>|!fJEQ@Idp?F*SBm~TbQnwrfCcA1UF1gIO6F~#96t~Q1l=sLzgxMJ)lR9kkx`N zX4V`WjHn}7Yb6D|ub13490ZYMy)&~ky0&6`kCFKSCo|*9kY$M-6 zyO>$FWVOQl`%8FmDx!*65m}c4-XWL{$-lfR#d~5qByzZU>*ii`f+W-1h^p0tywqkc zFBcYcOuSUU-e5hVoZ$788NeBrIQf=cA{~!-(7%!=Ps}pW_x((&V)eQu#mI|wUmA|t ztB@j=Wh=vIJIT3VNzeetf(rnw3`VHmCka@jT;f9;gINCnu~~3(?xHQ8myBmz%M2zR zTk{ojT|@}*tfVS)d*W54*D>x@xgzeSU}pbm5MblxDIt z_M|2kMkGu0U(6bUxKmhayfZAyrI4;OyM%bDbU_qG#}Uzra@=LLXpM=}*ovYqu1DSJ z40kDHFcr^2FJGuslbpSJ{6+xhYH?HSC<~5IOH!^2S6IAg!~_gha1Hh@mMR` zXs2kiUeeUEIS1+`r%c(=1YGH@x`$asIs>>>N}OL;@zw%`;rk(F0JOiz4Aav`?LUwD zf+4f{#Gp5JrY!Jgw84b6l17JhSl5|pN>`145ki~ci0BU`{7UxZKZ%50#X$pgd@Mk` zJdYBYZ!{4Q3i&}@Z>7t6d!_#X8MO-ygQ!tCaDz0^se*r0A7GhmfGBLT)3OZ$dd)xo>I zIfkJZNV2-BxVecxNW;aY%f`e~W^qF2Z=^q%0LZ|X{f0HKV0yN_rNAtO5bYd!S<>y# zd{?v}NWXkI#C6-^SC)A?9pP(Gw;t$mnk)4kWLHiH1HgLR3T04~uUUme7ZB>o`Is&# z56v-mlLAD}UE@{hDy3Q(8#w;&09pA~TUDN8^!*z()6!H};np6o%mJlRRkh*)b_5Ew ztzrnhGOcWD?O3b>gfhvsP7gh!&BWa1i@g~Qz)AqE0jr}q=3Xgk;?2w+$fE^o^ByZX zTS}-9rJ%M;JYt~Lg~mmMV7D-wd~P7o;ZW3=#`J$T6F9R59>xS!6%rwhIlaiZ1pq z97|ao0joMdiDHv0qQK%F0*I40W^g+>pH7$|~z0%%JFFUAKqMaxT z%Xz0AE?w_Ihi3BOgPxJyF6g8x%Q^h<32@~FcZG#0&UBTeCPHs@_ZX1ZEn135C{H~* zy72%DL$Wa9>U5kf_$6SwMu}U&J8IwpvXa|xXJrtvbR$NJ@mbG#WjJ8RE@OQ}vlq>F zgR+qcXUbCj7f5Idtppz34$)8m?JoDI+2cSezgp!zY^RX;&8_U-2^N-cvvePsfv^b(@0zHnfz)8X3! z!xFC8yDp2AtmFn(2TQxnlGkh6BJV!YF-@fsoG3NtGKIUY(vDZ+JP@j=It(Ng)*vrA znJpEE_$O=zEaN^%yAbq-u?=*YhzFcO1P+%`G_l=U{$Vb`cp;E;g9v1x zB3%!!6J4+@2V1@W0JxWF>y`VKIfc`hZK;ZdV5PUB2C4;gU_%oTMR!Arz~4?-F6=4L zH;06w+ru);>^cnTSXtjJ{^qDHU|{Xzb2bbc7sloGTti9~Y3*Hm5DCCB4nS9U6>O%} zrJ(J-$9ob)x3z07^SOr>s)*)t?|nPMQFD41C2xz1TtShm2lEzyEsIW5+6nUxwpn$~ zqsp^nu-sj3nrVzb@@)tz*w-;kps-T!Sk60F65zm!Y%u$7qZ_&w7Usx~#3*Xh8g*3M zv)axML24u&Ty2}iqPhTTvCi_f{{SVO6;gnuUOhdf#I=w>FS4q>^3K@NK@0-Wv)3?j zeF0+9H=_+T;w^3iVYkEu4e16|wlzxU*KlGqx4cBHE~3J^6DWh7!3`K~=uA_8Ko-$k zh@gQ7w=&12WN& zZUhz%b3}}^EpIL1NqJ~cTc#8PSiy+g_G_b>}Kn;UWPMz}fi#5EwK%@(4O22cl z9d)IXk3mC@83=t+N znQHK=4|wGer8GI$rAp!smaI1h76wDbR2|qkD+vUlSzsBBiJU5)`FvkkL7QhLAt~oe zl`7idi(6g_tBPJ&;t<`2rI$F*_C4x0*-?3swh??cpb7sDUzrWH&wtVuW3)F0IAogN@@bq zvgd0;_60gauaF{Jv<$I;)oj|Auv&FdO70EauytsFTu8gCZbPM13Y3~i-na%*ktbcH z@_!JYFhx)e0p$C~tOfCRD%Zz|?W+-0;k;y+8bMT}UNZ!tEZr`)eV(QP z_Mx4X5jcYOi=hbF^to3!jxfQe`7#2yITm!S;(;V4j8U|srs;A`112(PqsFtDg|^vgt*dOx_B zE-JKYy7rgIY&tVI06R4L_ko7tlvmB>3#|(sBK_qo_u9X34S-Fc-^?6nA_00UuV`K} z%$4O4^lQQ-?}|gw8UPff1 z3dIG7Ry5)VYynqgIEYm2E-$uxOXF~_k{heu;2i+9tU2BfGKka`@|fT^N55cZP+ey} zSjBf)z#ZyZIds_j^D5CA#2r`7?PYOLzpyabmG2dDscFjk%{qC2ykz2CYl&*z#pugm zw+s_{mzb+AUzlbJ`Z|3kDyE~>S}Lk1jKnFMsT(C2lnsN?E)Ie(q(u%Qnku#4WmQ?s zo!Zp6)~!O8-vKY6+N)El8>PxLAbE=2YUx);Jp0DRs@W5ovj%-4*4Jj6yp|)*64W{Erk&#tZIA^Ps+IPbg3{<8#G(me zTyEtN24+iLEB2186A3g%PPSFk7c!Q$19#~Mt$?`N_37P~suU8l7(uYLUkAia0nHlw zO>irAuaW{y0D1PA@&%#gt!Fzsx7f< zW}@2wSj9$G0zcj3X?&QfjGaoHn3StD)HoN2=gSwAED)_yG$`>e5zetHgAq>i9b-^B z3L)_bRe#Cqf*2PtD?CD=m(n&}R4_8GYFVH;(bhW9ZVb~XcsxM66dutrUCn?2mBcHX z9bl*q_N7dP90=h&bnP!rTm~#oam>FAt>7PMpKUGRvC!rOgV2%^QJ73|(XYG_%8n!A z+)QA6DAQl<$~jp`(a>zyX+$;>yoZjBBBp}4g!fu*k7mTP?%47-!k2tkh-AXA%jNDzyP*~{VHqk9I)DII3GE9o+te~g^tUz}AOg(+3 z@e@@27Gb;QUkDtt4d1NsDW+90x0;&+PgvP>#lUNZ$hXnlV5SNsU#v!tWXhLbQc|%F zKa9mBN?-=ls?`uw6j87{V=rlDS$axSDeWy=gR{qIp0c&ovbC$RkNeUiVhA8u_PjeP zZUe;eh3vfeXAkHg~J$A>PYFkIW~qD=Rc~$KGiZ!83t~_ZtB@XvQ;y@faJG z2^{p%#J=sU4V>}EF?zRmYRl>x`Z)NBhV=$Bg>b=H4e0Uu^?+Hv*BoJKCLS8~i0D~t znrQ3ZRv_0DRmSnF0TjmMs^gsXlq#r+SZd-saXy6(GQDjnrZl)hI594E5O;X?hNh-6`$JN` zU-*8qPN;T{@U;(+{L6DpPuSbog&+hTPKo$R5QU;I9pa(bM%lqQnXi8L@hbxH zuwy&J0ke!nIF$MoLTx}|cq%Y!)L<+bph%uw-aNA-Kx_f=dGm2Y0l+7~{K1%x9FVNu z!79B8bsgmqeQN90R4T$E%hiQrO3h6SyuM%@qE^tnurjXCCzv+a?}n;!PRm3ax7H*9 ziYpAugLpHUgj|M(u2xRqU%MN<5|!9{#O#WhP5`U7yjpBh1QZ$;DPd`*D^(Xrb&+Oy z=4P%SM_9>KW^mK<6%9`aBoY8IsZ~=xBOtudhyigrT|x9CWLueoP4$Yk3i4aXuTCYJ zOg&&NOj%OhkwQS$gaBnnp#9-kCG-c{JAivbt)A#WDO?+j9HN7yWV3mWD6canzIk?M zQm#i$67J-}6+xWJ3L`j$A)n`!{i1ZK&KP#ZgA%cq>y!AXvS~v%;lN7ZHWxSE2$AH| z#Izt4DzhoH*92?f(E_5Ti=hCx2c*Hg2tZO86D&~%Z9J0*CANpP)CArOh~hr{O7UmaX9d;hKyK2kf8>J#Qp!i|9pJhpOSYjVLX0OD zObBs`=sAU63ktC*DrSU~VPXtxln|9duH;(POY%j&Rm5Nn;R$wHHhg9lbv zpkUNOVJQuAYWh9nHLL>b(&9y~ zgk?Ix-c}8`jXcKU0=p&4VR&u^+Y9d0t17S72v(rK%mT)GqmLcsEwC#3!ZD<5NoCV* ztW>AG3&HHl&ZZhFUtP?C7Ya-O;N+}S9cOIe#593`Ig5&R6vde!a|GE!7B+fBRr`Wf zA?N`S{zJenukuF?eO1R!JjH6JM;!XaAn?m!L}c5{euW`Y7q^^vl%OjQwp=c*XvloT zdgztYQmKN22M>m6gcgOzv;-MOYVyXZI}R-Ln4eBxnO%Kj8X+N7Wz*gQ>(fQ;2I*xw6+^yATKhYj^wuzk=@d6 zT*qx%ipgr)z%*tRMe$)67WxN!i%*#qk61Of7(DWh#rAlzG z%rH?fXB(_q@f$p5RK*&W^@E$-1&jk11fUVnGI^bdTN{v*tfR3v1gE8wG1JW^FAqer1y|+v^bv$EAbr%!oE>$8!bP+t7h^ zey{rnV12`j6PQ16{YkIaq_GM@+c+H(aWSw*tiW)C4H%OPatc z<++6!W1z#J`e31CmOor39|WYetQ!4Hr7%=xvKE<1=H9Sqn#-66Op}@ORSAB$llbBS z4R(MPXqrYh8rZ$5q($~60Z_KprzdEuQ;$Qhw2WY>4)kg zfDT9M5;6L*i+LHQQ$!B=8NV_!M_1A-1_x1VJv{-IWr!k`^HXo>s#-0Rx3(i|*5-vjk#qvLvCxhUFz*q&L?=v2p z4qouQobd8%%k@()50qPCG;zBMovF4El*=ck-Y*BrIdD#5;te$h z*8nZj0pzV)ev#o`2`(GMTj?%4%NGrhHy$Oo#<_~GSX(OtF(J6agoGHnjB^+rBF8Ll zXi-r7$8{*_cJmG5Kxy7m)}f&$1RFMUGYoJ%nvRramCSQgckeJp?M5PKC@^J;1Sqky zq!QI#YGo|3cQ?Rpj6RU*U$}vL(rE7xQn~9j49xN{OA)49!6hixFAS&}xYPm)jmLFB z4Fq?YCL4@-cnNb-ST;T4QjoJ;XMuA2T+oCKG%u@v5g<~W2`$-&?-~Qb%6jt^8F>sY2Sx!{!3E3bjuDKB~2sL8`{%ZAKvI-H*{`KcQp+vUc$Wx%6De4}HvI2OA0g+rT6rS(~MJ$p=S+W}pSW4xiEMcOz&k6C?(;b7`|K!dgN zU>G&#W=JBi>!}lfxHq^805xpVM1yO@##q7N>o_x7a~A5%)@l`?7jf~2F|8FV5kuwG z>RJuC-Y%mSY^EB3L4M<>QWeD`K<_LJfVLr$1++q{RMtWV)&R`J5OKtGndhUJ`V-#K z*Rp-aTqtq}Mqg8uIuCeR0{Tpx6vA;YWHWUI(8LQ?RNE1}6&Cg}LeEDro3b=eOh~zo zEQJ361x*xCfUGNxOIoccgWXPTzVzuHE$=GA#WZq66IFEo0I|aFY@A(F3xM zoT}$6oGPOx#8qLRNx8QTuT~eu1UF|NM_`IUa{`gVO|a1I^x%PP zT&wN4V6C(+p!hyWK;kKbyuJ6M8S#jMJ_iqqk5Qlk-2o5^M#PC#O3SdHk|$7xo6eyw znley_On@!X_l2_E@htX-M&+1o%2g;t&N^x}$`ZhH-USvKXWBb9+O5Kzvhv_m#l`EE z%LY|)fZVyF=DJ3fHMU(WZ+_C+-`u@MSQqL@<@lxM1%fKSgM_6dQK)_#C1@K#Om}9ga zOPfy7U|15;(K#TUYRW7FP__^fpg=sKF-TNWQ~^WBG3qu%Ch+26b*>J#2{xI|SJ2Y9KY{b6NG3{XEIxohhkqAsTQmr+zr4Ql47kI9?m4N_U zKD2Fcq)y`%1}p*D;v)x>(i^2l4sK?GLK12}+XlsdA48(}gHRX%;r<_tc|ek7$h$ORSAB z0|4%Sk*uV4K0h+${*$bACh?bL4g9jKGlPo%0DeA&2A298a!l3XFSeLKH3}4~yjyC< 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⪻a^(lUGm)!g(%v8XFPwl0lX0 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 literal 0 HcmV?d00001 diff --git a/images/istockphoto-590034882-612x612.jpg b/images/istockphoto-590034882-612x612.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e7982be81caa02240aee11b0f2cfa9df4f05803 GIT binary patch literal 42747 zcmcG#byQnV_ct1}cyTXUD3IV%ycBl`9z200xI>W&v_Nqy?(P;GiWCc!AjP$UYfI6# z(9)asd7kh4`~B|w{&Ck`@2qul=FIHbv-h4opR=vGqUA!d!|Z#PU9l2w5Xl^?%b~pA@+MEzF}wkAxnH3win=g+*m#WQ0Y;gvG=J zu@r*7K^}h4KtT^*?msO4#X}YD>)_+;^~Vexe|SP+p8kFcTwMQV?B(R?=jrR@>Gco$ z|EB9d-G4Ry&mb)?KL-h{5-OfP@PEc(=WzHdl&_zo@PDQFJM^!r!dx62|DIO^?&lYz z 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 ZV;H8=h{qj6TO7ck%I;!}U6G1U|JgidcBTLT literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..44169299a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,42 @@ +{ + "name": "MakeMyVenue_Project", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "bootstrap": "^5.3.8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..719e5df3a --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "bootstrap": "^5.3.8" + } +} diff --git a/react_frontend/bookmyvenue/.env.example b/react_frontend/bookmyvenue/.env.example new file mode 100644 index 000000000..371deeaa0 --- /dev/null +++ b/react_frontend/bookmyvenue/.env.example @@ -0,0 +1 @@ +REACT_APP_API_BASE_URL=http://127.0.0.1:8000/api diff --git a/react_frontend/bookmyvenue/.gitignore b/react_frontend/bookmyvenue/.gitignore new file mode 100644 index 000000000..4d29575de --- /dev/null +++ b/react_frontend/bookmyvenue/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/react_frontend/bookmyvenue/README.md b/react_frontend/bookmyvenue/README.md new file mode 100644 index 000000000..58beeaccd --- /dev/null +++ b/react_frontend/bookmyvenue/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/react_frontend/bookmyvenue/package-lock.json b/react_frontend/bookmyvenue/package-lock.json new file mode 100644 index 000000000..3c1b4e11d --- /dev/null +++ b/react_frontend/bookmyvenue/package-lock.json @@ -0,0 +1,17445 @@ +{ + "name": "bookmyvenue", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "bookmyvenue", + "version": "0.1.0", + "dependencies": { + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^13.5.0", + "axios": "^1.18.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router": "^6.30.1", + "react-router-dom": "^6.30.1", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", + "integrity": "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.29.7.tgz", + "integrity": "sha512-zxt+UJTOMKvUt3yOg+D58MLuz334pHp93qifMFcjIIO+9hN6t+ufw2gi7vDPMpxvfnHRR+3VVXvIjineCcgyXw==", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz", + "integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-decorators": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz", + "integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.29.7.tgz", + "integrity": "sha512-ajMX6QPcyomotqwpzhkYGxcK2i/us0rs1Qo9QvUpa+Fca0FTmqrzKrctoIYLMxcOhGZldGT/BAVkRGTWBiR8gQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.29.7.tgz", + "integrity": "sha512-wRHeUjUjCZnMHmiO5bRgjFLcoEh7JyTdByOW11ahhwNa4V0bmeGEaIvt51yq0zQp2yWIpqfxXXPyUP6GFJZHOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-flow": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.29.7.tgz", + "integrity": "sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "license": "MIT" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", + "license": "CC0-1.0" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", + "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz", + "integrity": "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "license": "MIT", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", + "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", + "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.0.tgz", + "integrity": "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "license": "MIT", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.38", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz", + "integrity": "sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.1.tgz", + "integrity": "sha512-9KM4QMPKnaJqaja1v7gYO/+TXZGLtzPA05NmUTqDAJjcsWeVoOXKMvU9g0gfuuoYTQqJZ924hivICd5R/bCJbA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "license": "MIT", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "license": "CC0-1.0", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "license": "BSD-2-Clause" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.375", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.375.tgz", + "integrity": "sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz", + "integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz", + "integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.1.tgz", + "integrity": "sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g==", + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.13.0.tgz", + "integrity": "sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "license": "MIT", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.5.tgz", + "integrity": "sha512-j23EibVLnp4zNXGW7LjryXYa2X6U/M96yoOX+ybZxwkYajdxRNEqYY3zhh7y0i6kfISKS2jr+EJq1YTUDEv5+w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.7", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz", + "integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.4.0.tgz", + "integrity": "sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.3.0.tgz", + "integrity": "sha512-0kjkYHJBkAy50Z5QzArZ7udmvxrJzkpKYW27fiF//BrMY7TQibYLl+FYIXN2BiYmwMIVzSfD8aDRj6IzgBX2/w==", + "license": "MIT", + "dependencies": { + "esprima": "1.2.5", + "static-eval": "2.1.1", + "underscore": "1.13.6" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.13.tgz", + "integrity": "sha512-sPdqC6ByMVVGvF1ynvvMo0/o+oD1VX7DaHhijt1bFgjvBkHBib4t49GoNDhf2NDta4oeUNlaGbSt5K7qjZ955Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.48.tgz", + "integrity": "sha512-1uz8041X6LoI6ZSdZacM9lVY28vuzDlSKitnpbSNK0RfKoIJkX29NBPVEFXhnuSuEOA9Ww0xnPJ+ILWbGAv8DA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.24", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.24.tgz", + "integrity": "sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz", + "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.8", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "gopd": "^1.2.0", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "license": "CC0-1.0", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", + "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", + "license": "MIT", + "dependencies": { + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "sax": "^1.5.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "license": "MIT", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, + "node_modules/react-error-overlay": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.80.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz", + "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "license": "CC0-1.0" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.107.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", + "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.22.0", + "es-module-lexer": "^2.1.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.5.0", + "watchpack": "^2.5.1", + "webpack-sources": "^3.5.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "license": "MIT", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.7.tgz", + "integrity": "sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==", + "license": "MIT", + "dependencies": { + "jsonpointer": "^5.0.1", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.11", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz", + "integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/react_frontend/bookmyvenue/package.json b/react_frontend/bookmyvenue/package.json new file mode 100644 index 000000000..765e4d68b --- /dev/null +++ b/react_frontend/bookmyvenue/package.json @@ -0,0 +1,42 @@ +{ + "name": "bookmyvenue", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^13.5.0", + "axios": "^1.18.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router": "^6.30.1", + "react-router-dom": "^6.30.1", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/react_frontend/bookmyvenue/public/favicon.ico b/react_frontend/bookmyvenue/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/react_frontend/bookmyvenue/public/index.html b/react_frontend/bookmyvenue/public/index.html new file mode 100644 index 000000000..1770ffeca --- /dev/null +++ b/react_frontend/bookmyvenue/public/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + BookMyVenue + + + +

+ + + diff --git a/react_frontend/bookmyvenue/public/manifest.json b/react_frontend/bookmyvenue/public/manifest.json new file mode 100644 index 000000000..080d6c77a --- /dev/null +++ b/react_frontend/bookmyvenue/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/react_frontend/bookmyvenue/public/robots.txt b/react_frontend/bookmyvenue/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/react_frontend/bookmyvenue/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/react_frontend/bookmyvenue/src/App.css b/react_frontend/bookmyvenue/src/App.css new file mode 100644 index 000000000..74b5e0534 --- /dev/null +++ b/react_frontend/bookmyvenue/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/react_frontend/bookmyvenue/src/App.js b/react_frontend/bookmyvenue/src/App.js new file mode 100644 index 000000000..177ef6713 --- /dev/null +++ b/react_frontend/bookmyvenue/src/App.js @@ -0,0 +1,64 @@ + +import './App.css'; +import { useEffect } from "react"; +import { Link, Route, Routes, useLocation } from "react-router-dom"; +import Header from "./Components/Header/Header"; +import LoginSignup from "./Components/LoginSignup/LoginSignup"; +import Home from './Components/Pages/HomePage/home' +import Footer from './Components/Footer/footer' +import Venues from './Components/Pages/Venues/Venues' +import VenueDetails from './Components/Pages/VenueDetail/VenueDetail' + +function HashScrollHandler() { + const { hash } = useLocation(); + + useEffect(() => { + if (!hash) return undefined; + + const frame = window.requestAnimationFrame(() => { + document.getElementById(hash.slice(1))?.scrollIntoView(); + }); + + return () => window.cancelAnimationFrame(frame); + }, [hash]); + + return null; +} + +function NotFound() { + return ( +
+

Page not found

+

The page you requested does not exist.

+ Return home +
+ ); +} + +function App() { + return ( +
+ +
+ + + } /> + } /> + } /> + } + /> + } + /> + } /> + + +
+
+ ); +} + +export default App; diff --git a/react_frontend/bookmyvenue/src/App.test.js b/react_frontend/bookmyvenue/src/App.test.js new file mode 100644 index 000000000..637e76346 --- /dev/null +++ b/react_frontend/bookmyvenue/src/App.test.js @@ -0,0 +1,405 @@ +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { MemoryRouter } from 'react-router-dom'; +import App from './App'; +import { getFeaturedVenues, getVenueBySlug, getVenues } from './api/venueApi'; +import { + addFavorite, + getFavorites, + hasAccessToken, + removeFavorite, +} from './api/favoriteApi'; +import { + getCurrentUser, + hasAuthSession, + loginUser, + logoutUser, + signupUser, +} from './api/authApi'; +import { createBooking } from './api/bookingApi'; + +jest.mock('./api/venueApi', () => ({ + getFeaturedVenues: jest.fn(), + getVenueBySlug: jest.fn(), + getVenues: jest.fn(), +})); + +jest.mock('./api/favoriteApi', () => ({ + addFavorite: jest.fn(), + getFavorites: jest.fn(), + hasAccessToken: jest.fn(), + removeFavorite: jest.fn(), +})); + +jest.mock('./api/authApi', () => ({ + AUTH_CHANGED_EVENT: 'bookmyvenue:auth-changed', + getCurrentUser: jest.fn(), + hasAuthSession: jest.fn(), + loginUser: jest.fn(), + logoutUser: jest.fn(), + signupUser: jest.fn(), +})); + +jest.mock('./api/bookingApi', () => ({ + createBooking: jest.fn(), +})); + +const createVenue = (id, name) => ({ + id, + name, + slug: name.toLowerCase().replaceAll(' ', '-'), + city: 'Kochi', + max_capacity: 200, + base_price_per_day: '25000.00', + cover_image: null, + amenities: [], +}); + +const createVenueDetail = (id, name) => ({ + ...createVenue(id, name), + venue_type_display: 'Wedding Hall', + description: 'A venue used by the detail page test.', + address: 'Test Road', + state: 'Kerala', + postal_code: '682001', + country: 'India', + contact_phone: '+91 90000 10001', + contact_email: 'venue@example.com', + is_verified: true, + amenities: [ + { + id: 1, + name: 'Parking', + slug: 'parking', + icon: 'bi bi-p-circle', + }, + ], + images: [], + packages: [], +}); + +beforeEach(() => { + jest.clearAllMocks(); + localStorage.clear(); + hasAccessToken.mockImplementation(() => Boolean(localStorage.getItem('accessToken'))); + hasAuthSession.mockImplementation(() => Boolean( + localStorage.getItem('accessToken') || localStorage.getItem('refreshToken') + )); + getCurrentUser.mockResolvedValue({ + id: 1, + username: 'alan', + fullname: 'Alan Thomas', + email: 'alan@example.com', + account_type: 'venue_user', + }); + loginUser.mockResolvedValue({ + access: 'test-access-token', + refresh: 'test-refresh-token', + }); + signupUser.mockResolvedValue({ id: 1, username: 'alan' }); + logoutUser.mockImplementation(() => { + localStorage.removeItem('accessToken'); + localStorage.removeItem('refreshToken'); + }); + getFavorites.mockResolvedValue([]); + addFavorite.mockImplementation(async (venueId) => ({ id: 100 + venueId })); + removeFavorite.mockResolvedValue(undefined); + createBooking.mockResolvedValue({ id: 1, status: 'pending' }); +}); + +function renderApp(initialEntries = ['/']) { + return render( + + + + ); +} + +test('loads and appends featured venues', async () => { + getFeaturedVenues + .mockResolvedValueOnce({ + count: 4, + next: 'http://api.test/venues/featured/?page=2', + previous: null, + results: [ + createVenue(1, 'Alpha Hall'), + createVenue(2, 'Bravo Hall'), + createVenue(3, 'Charlie Hall'), + ], + }) + .mockResolvedValueOnce({ + count: 4, + next: null, + previous: 'http://api.test/venues/featured/?page=1', + results: [createVenue(4, 'Delta Hall')], + }); + + renderApp(); + + expect(await screen.findByText('Alpha Hall')).toBeInTheDocument(); + expect(getFeaturedVenues).toHaveBeenCalledWith(1); + + fireEvent.click(screen.getByRole('button', { name: /load more/i })); + + expect(await screen.findByText('Delta Hall')).toBeInTheDocument(); + expect(screen.getByText('Alpha Hall')).toBeInTheDocument(); + expect(getFeaturedVenues).toHaveBeenCalledWith(2); + expect(screen.queryByRole('button', { name: /load more/i })).not.toBeInTheDocument(); +}); + +test('shows the user name and sign out instead of login links when authenticated', async () => { + localStorage.setItem('accessToken', 'test-access-token'); + getFeaturedVenues.mockResolvedValue({ + count: 0, + next: null, + previous: null, + results: [], + }); + + renderApp(); + + const nameLink = await screen.findByRole('link', { name: 'Alan Thomas' }); + expect(nameLink).toHaveAttribute('href', '#profile'); + expect(screen.queryByRole('link', { name: 'Login' })).not.toBeInTheDocument(); + expect(screen.queryByRole('link', { name: 'SignUp' })).not.toBeInTheDocument(); + + fireEvent.click(screen.getByRole('button', { name: /sign out/i })); + + expect(logoutUser).toHaveBeenCalled(); + expect(screen.getByRole('link', { name: 'Login' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'SignUp' })).toBeInTheDocument(); +}); + +test('redirects to the homepage after a successful login', async () => { + getFeaturedVenues.mockResolvedValue({ + count: 0, + next: null, + previous: null, + results: [], + }); + renderApp(['/login']); + + fireEvent.change(screen.getByLabelText('Username'), { + target: { value: 'alan' }, + }); + fireEvent.change(screen.getByLabelText('Password'), { + target: { value: 'test-password' }, + }); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); + + await waitFor(() => { + expect(loginUser).toHaveBeenCalledWith({ + username: 'alan', + password: 'test-password', + }); + }); + expect(await screen.findByRole('heading', { + name: /find and book the right venue/i, + })).toBeInTheDocument(); +}); + +test('returns to the venue detail page after login when booking was attempted', async () => { + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + renderApp([{ + pathname: '/login', + state: { returnTo: '/venues/alpha-hall' }, + }]); + + fireEvent.change(screen.getByLabelText('Username'), { + target: { value: 'alan' }, + }); + fireEvent.change(screen.getByLabelText('Password'), { + target: { value: 'test-password' }, + }); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); + + expect(await screen.findByRole('heading', { name: 'Alpha Hall' })).toBeInTheDocument(); + expect(getVenueBySlug).toHaveBeenCalledWith('alpha-hall'); +}); + +test('redirects a guest from Book Now to login and preserves signup access', async () => { + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + renderApp(['/venues/alpha-hall']); + + fireEvent.click(await screen.findByRole('button', { name: /book now/i })); + + expect(await screen.findByRole('heading', { name: 'Login' })).toBeInTheDocument(); + fireEvent.click(screen.getByRole('link', { name: 'Sign Up' })); + expect(await screen.findByRole('heading', { name: 'Sign Up' })).toBeInTheDocument(); +}); + +test('preserves the venue destination through signup and the following login', async () => { + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + renderApp([{ + pathname: '/signup', + state: { returnTo: '/venues/alpha-hall' }, + }]); + + fireEvent.change(screen.getByLabelText('Full Name'), { + target: { value: 'Alan Thomas' }, + }); + fireEvent.change(screen.getByLabelText('Email Address'), { + target: { value: 'alan@example.com' }, + }); + fireEvent.change(screen.getByLabelText('User Name'), { + target: { value: 'alan' }, + }); + fireEvent.change(screen.getByLabelText('Password'), { + target: { value: 'test-password' }, + }); + fireEvent.change(screen.getByLabelText('Confirm Password'), { + target: { value: 'test-password' }, + }); + fireEvent.click(screen.getByLabelText(/i agree to/i)); + fireEvent.click(screen.getByRole('button', { name: /create account/i })); + + expect(await screen.findByRole('heading', { name: 'Login' })).toBeInTheDocument(); + fireEvent.change(screen.getByLabelText('Username'), { + target: { value: 'alan' }, + }); + fireEvent.change(screen.getByLabelText('Password'), { + target: { value: 'test-password' }, + }); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); + + expect(await screen.findByRole('heading', { name: 'Alpha Hall' })).toBeInTheDocument(); +}); + +test('prevents a venue owner from booking', async () => { + localStorage.setItem('accessToken', 'test-access-token'); + getCurrentUser.mockResolvedValue({ + id: 2, + username: 'owner', + fullname: 'Venue Owner', + account_type: 'venue_owner', + }); + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + + renderApp(['/venues/alpha-hall']); + + expect(await screen.findByText(/venue-owner accounts cannot book venues/i)) + .toBeInTheDocument(); + expect(screen.getByRole('button', { name: /book now/i })).toBeDisabled(); + expect(createBooking).not.toHaveBeenCalled(); +}); + +test('allows a venue user to send a booking request', async () => { + localStorage.setItem('accessToken', 'test-access-token'); + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + renderApp(['/venues/alpha-hall']); + + await waitFor(() => expect(getCurrentUser).toHaveBeenCalled()); + fireEvent.change(screen.getByLabelText(/event date/i), { + target: { value: '2099-01-01' }, + }); + fireEvent.change(screen.getByLabelText(/number of guests/i), { + target: { value: '120' }, + }); + fireEvent.click(screen.getByRole('button', { name: /book now/i })); + + await waitFor(() => { + expect(createBooking).toHaveBeenCalledWith({ + venue_id: 1, + event_date: '2099-01-01', + event_type: 'wedding', + guest_count: 120, + message: '', + }); + }); + expect(screen.getByRole('status')).toHaveTextContent(/sent successfully/i); +}); + +test('opens the selected featured venue detail', async () => { + localStorage.setItem('accessToken', 'test-access-token'); + getFeaturedVenues.mockResolvedValue({ + count: 1, + next: null, + previous: null, + results: [createVenue(1, 'Alpha Hall')], + }); + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + + renderApp(); + + fireEvent.click(await screen.findByRole('link', { name: /view details/i })); + + await waitFor(() => { + expect(getVenueBySlug).toHaveBeenCalledWith('alpha-hall'); + }); + + expect(await screen.findByRole('button', { name: /book now/i })).toBeInTheDocument(); + expect(screen.getByLabelText(/event date/i)).toBeInTheDocument(); + expect(screen.getByLabelText(/event type/i)).toBeInTheDocument(); + expect(screen.getByLabelText(/number of guests/i)).toBeInTheDocument(); + expect(screen.getByText('Parking').querySelector('i')).toHaveClass('bi-p-circle'); + expect(screen.queryByText(/fast owner response/i)).not.toBeInTheDocument(); + expect(screen.queryByRole('button', { name: /contact venue/i })).not.toBeInTheDocument(); + + const favoriteButton = screen.getByRole('button', { + name: /add alpha hall to favorites/i, + }); + await waitFor(() => expect(getFavorites).toHaveBeenCalled()); + fireEvent.click(favoriteButton); + await waitFor(() => { + expect(addFavorite).toHaveBeenCalledWith(1); + expect(favoriteButton).toHaveAttribute('aria-pressed', 'true'); + }); + + fireEvent.click(favoriteButton); + await waitFor(() => { + expect(removeFavorite).toHaveBeenCalledWith(101); + expect(favoriteButton).toHaveAttribute('aria-pressed', 'false'); + }); + + fireEvent.click(screen.getByRole('button', { name: /contact details/i })); + + expect(screen.getByText('+91 90000 10001')).toBeInTheDocument(); + expect(screen.getByText('venue@example.com')).toBeInTheDocument(); +}); + +test('loads and removes a saved favorite from the venue listing', async () => { + const venue = createVenue(1, 'Alpha Hall'); + localStorage.setItem('accessToken', 'test-access-token'); + getVenues.mockResolvedValue({ + count: 1, + next: null, + previous: null, + results: [venue], + }); + getFavorites.mockResolvedValue([{ id: 42, venue }]); + + renderApp(['/venues']); + + const favoriteButton = await screen.findByRole('button', { + name: /remove alpha hall from favorites/i, + }); + expect(favoriteButton).toHaveAttribute('aria-pressed', 'true'); + + fireEvent.click(favoriteButton); + + await waitFor(() => { + expect(removeFavorite).toHaveBeenCalledWith(42); + expect(favoriteButton).toHaveAttribute('aria-pressed', 'false'); + }); +}); + +test('loads a venue detail directly from its URL', async () => { + getVenueBySlug.mockResolvedValue(createVenueDetail(1, 'Alpha Hall')); + + renderApp(['/venues/alpha-hall']); + + expect(await screen.findByRole('heading', { name: 'Alpha Hall' })).toBeInTheDocument(); + expect(getVenueBySlug).toHaveBeenCalledWith('alpha-hall'); + const breadcrumb = screen.getByLabelText('breadcrumb'); + expect(breadcrumb.querySelector('a[href="/"]')).toBeInTheDocument(); + expect(breadcrumb.querySelector('a[href="/venues"]')).toBeInTheDocument(); +}); + +test('shows a not-found page for an unknown URL', () => { + renderApp(['/does-not-exist']); + + expect(screen.getByRole('heading', { name: /page not found/i })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: /return home/i })).toHaveAttribute('href', '/'); +}); diff --git a/react_frontend/bookmyvenue/src/Components/Assets/LoginSignup.jpeg b/react_frontend/bookmyvenue/src/Components/Assets/LoginSignup.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..310436627121f4d6171489bf4b1ef2f39f9d0627 GIT binary patch literal 8722 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 WndF}oTBk$9=cT(%&Oc+Gmi`w31Xck6 literal 0 HcmV?d00001 diff --git a/react_frontend/bookmyvenue/src/Components/Footer/footer.jsx b/react_frontend/bookmyvenue/src/Components/Footer/footer.jsx new file mode 100644 index 000000000..825222c71 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Footer/footer.jsx @@ -0,0 +1,73 @@ +import React from 'react' +import { Link } from 'react-router-dom' +import '../Pages/HomePage/home.css' +const footer = () => { + return ( +
+ +
+ ) +} + +export default footer diff --git a/react_frontend/bookmyvenue/src/Components/Header/Header.jsx b/react_frontend/bookmyvenue/src/Components/Header/Header.jsx new file mode 100644 index 000000000..ae1cb1ea1 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Header/Header.jsx @@ -0,0 +1,99 @@ +import React, { useEffect, useState } from 'react' +import { Link, NavLink } from 'react-router-dom' +import { + AUTH_CHANGED_EVENT, + getCurrentUser, + hasAuthSession, + logoutUser, +} from '../../api/authApi' +import './header.css' + +export const Header = () => { + const [currentUser, setCurrentUser] = useState(null) + const [authLoading, setAuthLoading] = useState(hasAuthSession()) + + useEffect(() => { + let active = true + + async function syncCurrentUser() { + if (!hasAuthSession()) { + if (active) { + setCurrentUser(null) + setAuthLoading(false) + } + return + } + + if (active) setAuthLoading(true) + + try { + const user = await getCurrentUser() + if (active) setCurrentUser(user) + } catch (error) { + if (active) setCurrentUser(null) + console.error(error) + } finally { + if (active) setAuthLoading(false) + } + } + + syncCurrentUser() + window.addEventListener(AUTH_CHANGED_EVENT, syncCurrentUser) + window.addEventListener('storage', syncCurrentUser) + + return () => { + active = false + window.removeEventListener(AUTH_CHANGED_EVENT, syncCurrentUser) + window.removeEventListener('storage', syncCurrentUser) + } + }, []) + + function handleSignOut() { + logoutUser() + setCurrentUser(null) + setAuthLoading(false) + } + + const displayName = currentUser?.fullname?.trim() || currentUser?.username + + return ( +
+ +
+

+ BookMyVenue +

+ + + + +
+ {!authLoading && (currentUser ? ( + <> + event.preventDefault()} + > + {displayName} + + + + ) : ( + <> + Login + SignUp + + ))} +
+
+ ) +} +export default Header; diff --git a/react_frontend/bookmyvenue/src/Components/Header/header.css b/react_frontend/bookmyvenue/src/Components/Header/header.css new file mode 100644 index 000000000..0e594199d --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Header/header.css @@ -0,0 +1,455 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Arial, Helvetica, sans-serif; + color: #050a30; + background: #ffffff; +} + +.signup-page { + min-height: 100vh; + background: #ffffff; +} + +/* Header */ + +.site-header { + height: 86px; + padding: 0 56px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #e8e8e8; + background: #ffffff; +} + +.header-left { + display: flex; + align-items: center; + gap: 12px; + text-decoration: none; +} + +.logo-icon { + width: 46px; + height: 46px; + border: 4px solid #0097a7; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #0097a7; + font-size: 24px; + font-weight: 700; +} + +.logo-text { + margin: 0; + font-size: 34px; + font-weight: 800; + color: #050a30; +} + +.logo-text span { + color: #0097a7; +} + +.nav-links { + display: flex; + gap: 52px; +} +.nav-links a:hover { + text-decoration: underline; + color: #0097a7; +} + +.site-header .nav-links a, +.site-header .login-link, +.site-header .signout-btn { + text-decoration: none; + color: #050a30; + font-size: 18px; + font-weight: 500; +} + +.site-header .header-right .login-link { + color: #008c9e; +} + +.site-header .signout-btn { + border: 0; + padding: 0; + background: transparent; + color: #008c9e; + cursor: pointer; +} + +.site-header .nav-links a:hover, +.site-header .header-right .login-link:hover, +.site-header .header-right .signout-btn:hover { + color: #008c9e; + text-decoration: underline; +} + +.site-header .nav-links a.active, +.site-header .header-right .login-link.active { + color: #008c9e; + text-decoration: underline; +} + +.site-header .header-right .user-name-link { + font-weight: 700; +} +.header-right{ + display: flex; + align-items: end; + gap: 52px; + +} + +/* Main layout */ + +.signup-container { + max-width: 1420px; + margin: 38px auto; + padding: 0 50px; + display: grid; + grid-template-columns: 1.15fr 0.95fr; + gap: 42px; + align-items: start; +} + +/* Left side */ + +.signup-left { + padding-top: 0; +} + +.hero-image { + width: 100%; + height: 455px; + object-fit: cover; + border-radius: 16px; + display: block; +} + +.location-line { + display: flex; + align-items: center; + gap: 12px; + margin-top: 30px; + color: #050a30; +} + +.location-line span { + font-size: 24px; + color: #0097a7; +} + +.location-line p { + margin: 0; + font-size: 20px; +} + +.signup-left h2 { + margin: 24px 0 24px; + font-size: 40px; + line-height: 1.2; + color: #050a30; +} + +.feature-list { + display: flex; + flex-direction: column; + gap: 26px; +} + +.feature-item { + display: flex; + align-items: center; + gap: 18px; +} + +.feature-icon { + width: 54px; + height: 54px; + border-radius: 50%; + background: #dff8f7; + color: #0097a7; + display: flex; + align-items: center; + justify-content: center; + font-size: 26px; +} + +.feature-item p { + margin: 0; + font-size: 21px; +} + +/* Signup card */ + +.signup-card { + background: #ffffff; + border: 1px solid #ececec; + border-radius: 18px; + padding: 34px 46px 28px; + box-shadow: 0 16px 32px rgba(0, 0, 0, 0.13); +} + +.form-header { + text-align: center; + margin-bottom: 18px; +} + +.form-header h2 { + margin: 0; + font-size: 36px; + color: #050a30; +} + +.form-header p { + margin: 8px 0 0; + font-size: 18px; + color: #6d7280; +} + +.form-group { + margin-bottom: 18px; +} + +.form-group label { + display: block; + margin-bottom: 7px; + font-size: 16px; + color: #050a30; +} + +.form-group input, +.password-box { + width: 100%; + height: 46px; + border: 1px solid #cfd4dc; + border-radius: 7px; + padding: 0 14px; + font-size: 16px; + outline: none; + color: #050a30; + background: #ffffff; +} + +.form-group input::placeholder { + color: #758096; +} + +.form-group input:focus { + border-color: #0097a7; +} + +.password-box { + display: flex; + align-items: center; + padding-right: 14px; +} + +.password-box input { + border: none; + padding: 0; + height: 100%; +} + +.password-box input:focus { + border: none; +} + +.password-box span { + color: #5c6474; + cursor: pointer; +} + +.account-buttons { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 22px; +} + +.account-btn { + height: 50px; + border: 1px solid #0097a7; + border-radius: 11px; + background: #ffffff; + color: #050a30; + font-size: 16px; + font-weight: 600; + cursor: pointer; +} + +.account-btn.active { + background: #0097a7; + color: #ffffff; +} + +.terms { + display: flex; + align-items: center; + gap: 11px; + margin: 12px 0 16px; + font-size: 16px; +} + +.terms input { + width: 20px; + height: 20px; +} + +.terms a { + color: #0097a7; + text-decoration: none; +} + +.create-btn { + width: 100%; + height: 48px; + border: none; + border-radius: 7px; + background: #0097a7; + color: #ffffff; + font-size: 18px; + font-weight: 600; + cursor: pointer; +} + +.create-btn:hover, +.account-btn.active:hover { + background: #008693; +} + +.divider { + display: flex; + align-items: center; + gap: 18px; + margin: 16px 0; +} + +.divider span { + flex: 1; + height: 1px; + background: #d5d9df; +} + +.divider p { + margin: 0; + color: #747b8a; + font-size: 16px; +} + +.google-btn { + width: 100%; + height: 48px; + border: 1px solid #aeb6c2; + border-radius: 8px; + background: #ffffff; + color: #050a30; + font-size: 17px; + font-weight: 600; + cursor: pointer; +} + +.google-btn span { + margin-right: 18px; + color: #4285f4; + font-size: 22px; + font-weight: 800; +} + +.bottom-login { + margin: 20px 0 0; + text-align: center; + color: #6d7280; + font-size: 16px; +} + +.bottom-login a { + color: #0097a7; + text-decoration: none; +} + +/* Responsive */ + +@media (max-width: 1050px) { + .site-header { + padding: 0 28px; + } + + .nav-links { + gap: 26px; + } + + .signup-container { + grid-template-columns: 1fr; + padding: 0 28px; + } + + .hero-image { + height: 360px; + } +} + +@media (max-width: 700px) { + .site-header { + height: auto; + padding: 18px 20px; + flex-direction: column; + gap: 18px; + } + + .logo-text { + font-size: 28px; + } + + .nav-links { + gap: 18px; + flex-wrap: wrap; + justify-content: center; + } + + .nav-links a, + .login-link, + .signout-btn { + font-size: 16px; + } + + .signup-container { + margin-top: 24px; + padding: 0 18px; + } + + .hero-image { + height: 250px; + } + + .signup-left h2 { + font-size: 30px; + } + + .location-line p, + .feature-item p { + font-size: 17px; + } + + .signup-card { + padding: 28px 22px; + } + + .form-header h2 { + font-size: 30px; + } + + .account-buttons { + grid-template-columns: 1fr; + gap: 12px; + } +} diff --git a/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginForm.jsx b/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginForm.jsx new file mode 100644 index 000000000..778e8d2f1 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginForm.jsx @@ -0,0 +1,79 @@ +import React, { useState } from "react"; +import { Link, useLocation, useNavigate } from "react-router-dom"; +import { loginUser } from "../../api/authApi"; +import { getSafeReturnTo } from "../../utils/authNavigation"; + +function LoginForm() { + const navigate = useNavigate(); + const location = useLocation(); + const returnTo = getSafeReturnTo(location.state); + const [formData, setFormData] = useState({ + username: "", + password: "", + }); + + function handleChange(event) { + const { name, value } = event.target; + + setFormData({ + ...formData, + [name]: value, + }); + } + + async function handleSubmit(event) { + event.preventDefault(); + + try { + await loginUser(formData); + navigate(returnTo || "/", { replace: true }); + } catch (error) { + console.log("Login failed:", error.response?.data || error); + alert("Login failed"); + } + } + + return ( +
+
+ + +
+ +
+ +
+ + 👁 +
+
+ + + +

+ Don't have an account?{" "} + + Sign Up + +

+
+ ); +} + +export default LoginForm; diff --git a/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginSignup.jsx b/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginSignup.jsx new file mode 100644 index 000000000..0a0b7483e --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/LoginSignup/LoginSignup.jsx @@ -0,0 +1,59 @@ +import React from 'react' +import LoginSignupImage from '../Assets/LoginSignup.jpeg' +import LoginForm from "./LoginForm"; +import SignUpForm from "./SignUpForm"; +import '../Header/header.css' + +export const LoginSignup = ({ action = { signUp: "Sign Up", text: "Create your account" } }) => { + + return ( +
+
+
+ Venue event + +
+ 📍 +

Find & Book the Perfect Space Near You

+
+ +

Create your BookMyVenue account

+ +
+
+
📍
+

Find local venues near you

+
+ +
+
+

Save favourite venues

+
+ +
+
+

Send and track booking requests

+
+
+
+ {/* signup/Login starting */} +
+
+

{action.signUp}

+

{action.text}

+
+ {/* form startin */} + {action.signUp ==='Sign Up' ? ():()} + {/* form ending */} + +
+ {/* signup/Login ending */} +
+
+ ) +} +export default LoginSignup; diff --git a/react_frontend/bookmyvenue/src/Components/LoginSignup/SignUpForm.jsx b/react_frontend/bookmyvenue/src/Components/LoginSignup/SignUpForm.jsx new file mode 100644 index 000000000..b1fe9c49f --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/LoginSignup/SignUpForm.jsx @@ -0,0 +1,209 @@ +import React, { useState } from "react"; +import { Link, useLocation, useNavigate } from "react-router-dom"; +import { signupUser } from "../../api/authApi"; +import { getSafeReturnTo } from "../../utils/authNavigation"; +import UserOwner from "./UserOwner"; + +export const SignUpForm = () => { + const location = useLocation(); + const navigate = useNavigate(); + const returnTo = getSafeReturnTo(location.state); + const [formData, setFormData] = useState({ + username: "", + fullname: "", + email: "", + password: "", + confirmPassword: "", + account_type:"venue_user", + terms_privacy: false, + address: "", + phone_number: "", + }); + + function handleChange(event) { + const { name, value, type, checked } = event.target; + + setFormData({ + ...formData, + [name]: type === "checkbox" ? checked : value, + }); + } + + function handleAccountTypeChange(accountType) { + + + setFormData((prevData) => ({ + ...prevData, + account_type: accountType, + })); +} + + async function handleSubmit(event) { + event.preventDefault(); + + if (formData.password !== formData.confirmPassword) { + alert("Passwords do not match"); + return; + } + + const signupData = { + username: formData.username, + fullname: formData.fullname, + email: formData.email, + password: formData.password, + account_type: formData.account_type, + terms_privacy: formData.terms_privacy, + address: formData.address, + phone_number: formData.phone_number, + }; + + try { + + await signupUser(signupData); + navigate("/login", { + replace: true, + state: returnTo ? { returnTo } : undefined, + }); + } catch (error) { + const errorData = error.response?.data || error.message || error; + + console.log("Signup failed:", errorData); + alert("Signup failed. Check console for details."); +} + } + + return ( +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+ +
+ + 👁 +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+ +

or

+ +
+ + + +

+ Already have an account?{" "} + + Login + +

+
+ ); +}; + +export default SignUpForm; diff --git a/react_frontend/bookmyvenue/src/Components/LoginSignup/UserOwner.jsx b/react_frontend/bookmyvenue/src/Components/LoginSignup/UserOwner.jsx new file mode 100644 index 000000000..f6f630916 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/LoginSignup/UserOwner.jsx @@ -0,0 +1,33 @@ +import React from "react"; + +export const UserOwner = ({ accountType, setAccountType }) => { + return ( +
+ + + +
+ ); +}; + +export default UserOwner; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.css b/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.css new file mode 100644 index 000000000..4ead0f23f --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.css @@ -0,0 +1,856 @@ +/* ======================= + GLOBAL STYLE + ======================= */ +:root { + --dark-blue: #071d44; + --text-blue: #091b3d; + --teal: #0097a7; + --teal-dark: #008392; + --light-teal: #e8fbff; + --muted-text: #5d6678; + --border: #dce3eb; + --shadow: 0 8px 22px rgba(7, 29, 68, 0.12); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Arial, Helvetica, sans-serif; + color: var(--text-blue); + background: #ffffff; +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; + display: block; + +} + +.nav-links a, +.login-link { + + text-decoration: none; + color: #050a30; + font-size: 18px; + font-weight: 500; +} + +.login-link { + + color: #008c9e; +} + +/* ======================= + REUSABLE BUTTONS + ======================= */ +.primary-btn { + background: linear-gradient(135deg, var(--teal), #10b8c7); + display: inline-flex; + align-items: center; + justify-content: center; + color: #ffffff; + border: 0; + border-radius: 8px; + font-weight: 700; + padding: 10px 18px; + box-shadow: 0 5px 14px rgba(0, 151, 167, 0.25); +} + +.primary-btn:hover { + background: linear-gradient(135deg, var(--teal-dark), var(--teal)); + color: #ffffff; +} + +.outline-btn, +.small-outline-btn { + color: var(--teal); + border: 2px solid var(--teal); + background: #ffffff; + border-radius: 8px; + font-weight: 700; +} + +.outline-btn { + padding: 9px 18px; +} + +.small-outline-btn { + padding: 7px 18px; + font-size: 0.85rem; +} + +.outline-btn:hover, +.small-outline-btn:hover { + background: var(--teal); + color: #ffffff; +} +.date-box { + width: 100%; + min-width: 163px; +} + +/* ======================= + NAVBAR + ======================= */ +.site-header { + position: sticky; + top: 0; + z-index: 10; + background: #ffffff; + box-shadow: 0 2px 14px rgba(7, 29, 68, 0.12); +} + +.navbar { + min-height: 76px; +} + +.logo-circle { + width: 46px; + height: 46px; + border-radius: 50%; + background: var(--teal); + color: #ffffff; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 1.4rem; + border: 5px solid #dff8fb; +} + +.brand-text { + color: var(--dark-blue); + font-size: 1.9rem; + font-weight: 800; + letter-spacing: 0.2px; +} + +.brand-text span { + color: var(--teal); +} + +.nav-links { + gap: 34px; +} + +.nav-link { + color: #07142f; + font-weight: 700; + position: relative; + padding: 16px 0; +} + +.nav-link:hover, +.nav-link.active { + color: var(--teal); +} +.nav-link:hover::after, +.nav-link.active::after { + content: ""; + position: absolute; + left: 0; + right: 0; + bottom: 8px; + height: 4px; + border-radius: 999px; + background: var(--teal); +} + +.login-link { + color: #07142f; + font-weight: 700; +} + +/* ======================= + HERO SECTION + ======================= */ +.hero-section { + padding: 28px 0 20px; +} + +.hero-badge { + display: inline-flex; + align-items: center; + gap: 8px; + color: var(--teal); + background: var(--light-teal); + border-radius: 999px; + padding: 8px 14px; + font-weight: 700; + margin-bottom: 16px; +} + +.hero-section h1 { + font-size: clamp(2.4rem, 5vw, 4.4rem); + line-height: 0.95; + font-weight: 900; + color: var(--dark-blue); + margin-bottom: 14px; +} + +.hero-text { + color: #424c60; + font-size: 1.15rem; + max-width: 560px; + margin-bottom: 18px; +} + +.hero-actions { + margin-bottom: 18px; +} + +.hero-image { + width: 100%; + height: 468px; + object-fit: cover; + border-radius: 22px; + box-shadow: var(--shadow); +} +.img-full-div{ + height: 249p; +} + +/* Search box under hero text */ +.search-box { + width: 100%; + max-width: 100%; + padding: 14px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 16px; + box-shadow: 0 14px 34px rgba(7, 29, 68, 0.14); +} + +.search-filters { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; + align-items: stretch; +} + +.search-item { + min-width: 0; +} + +.search-field { + width: 100%; + height: 66px; + padding: 10px 13px; + border: 1px solid var(--border); + border-radius: 10px; + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + background: #f8fbfd; + transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; +} + +.search-field:hover, +.search-field:focus-within { + background: #ffffff; + border-color: var(--teal); + box-shadow: 0 0 0 4px rgba(0, 151, 167, 0.12); +} + +.search-field i { + width: 28px; + flex: 0 0 28px; + text-align: center; + font-size: 1.28rem; + color: var(--teal); +} + +.search-field span { + width: 100%; + color: var(--dark-blue); + font-size: 0.85rem; + font-weight: 700; + line-height: 1.15; + text-align: left; +} + +.search-field input, +.search-field select { + width: 100%; + border: 0; + outline: 0; + color: #5f687a; + font-size: 0.88rem; + background: transparent; + padding: 2px 0 0; + min-width: 0; +} + +.search-field input[type="date"] { + color: #5f687a; + cursor: pointer; +} + +.search-field input[type="date"]::-webkit-calendar-picker-indicator { + cursor: pointer; + opacity: 0.75; +} + +.selected-date-range { + display: flex; + align-items: center; + gap: 10px; + margin-top: 12px; + padding: 10px 12px; + background: #eefcff; + border: 1px solid #c7f1f6; + border-radius: 10px; + color: var(--dark-blue); +} + +.selected-date-range > span { + flex: 0 0 auto; + color: var(--teal-dark); + font-size: 0.82rem; + font-weight: 800; +} + +.selected-date-range div { + display: flex; + flex-wrap: wrap; + gap: 6px; +} + +.selected-date-range strong { + display: inline-flex; + align-items: center; + min-height: 28px; + padding: 5px 10px; + background: #ffffff; + border: 1px solid #bdeaf0; + border-radius: 999px; + color: var(--dark-blue); + font-size: 0.82rem; +} + +.search-action { + margin-top: 12px; +} + +.search-btn { + width: 100%; + height: 56px; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + white-space: nowrap; + border-radius: 10px; + font-size: 1rem; +} + +.search-btn i { + font-size: 1.05rem; +} + +/* ======================= + SECTION TITLE + ======================= */ +.page-section { + padding: 12px 0 0; +} + +.section-title { + color: var(--dark-blue); + font-size: 1.9rem; + font-weight: 900; + text-align: center; + margin-bottom: 22px; + position: relative; +} + +.section-title::after { + content: ""; + width: 42px; + height: 4px; + background: var(--teal); + border-radius: 999px; + display: block; + margin: 6px auto 0; +} + +/* ======================= + FEATURED VENUE CARDS + ======================= */ +.venue-card { + width: 100%; + height: 100%; + min-height: 182px; + display: grid; + grid-template-columns: 1.25fr 1fr; + gap: 16px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 12px; + padding: 10px; + box-shadow: 0 3px 12px rgba(7, 29, 68, 0.1); +} + +.venue-card img { + width: 100%; + height: 160px; + object-fit: cover; + border-radius: 8px; +} + +.venue-content { + min-width: 0; + display: flex; + flex-direction: column; +} + +.venue-content h3 { + color: var(--dark-blue); + font-size: 1.18rem; + font-weight: 900; + margin: 8px 0 6px; +} + +.venue-content p { + color: var(--muted-text); + margin: 4px 0; + font-size: 0.92rem; +} + +.venue-content i { + color: var(--teal); +} + +.venue-content strong { + display: block; + color: var(--teal); + font-size: 1.35rem; + margin: 4px 0; +} + +.venue-content strong span { + color: var(--teal); + font-size: 0.88rem; +} + +.venue-content .small-outline-btn { + align-self: flex-start; + margin-top: auto; +} + +.featured-status { + color: var(--muted-text); + margin: 0; + text-align: center; +} + +.featured-error { + color: #b42318; +} + +.featured-load-more { + display: flex; + justify-content: center; + margin-top: 22px; +} + +/* ======================= + EVENT BUNDLE CARDS + ======================= */ +.bundle-section { + padding-top: 10px; +} + +.bundle-card { + width: 100%; + height: 100%; + min-height: 112px; + display: grid; + grid-template-columns: 92px 1fr auto; + align-items: center; + gap: 14px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 12px; + padding: 12px 18px; + box-shadow: 0 3px 12px rgba(7, 29, 68, 0.1); +} + +.bundle-icon { + width: 78px; + height: 78px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 2.35rem; +} + +.bundle-icon.blue { + background: #ddf8ff; + color: var(--teal); +} + +.bundle-icon.light-blue { + background: #eaf4ff; + color: #0068d8; +} + +.bundle-icon.pink { + background: #ffe4f3; + color: #df1d72; +} + +.bundle-content h3 { + color: var(--dark-blue); + font-size: 1.22rem; + font-weight: 900; + margin-bottom: 2px; +} + +.bundle-content ul { + list-style: none; + padding: 0; + margin: 0; + color: var(--muted-text); + font-size: 0.88rem; +} + +.bundle-content li::before { + content: "✓"; + color: var(--teal); + font-weight: 900; + margin-right: 10px; +} + +/* ======================= + HOW IT WORKS + ======================= */ +.info-section { + padding: 10px 0 18px; +} + +.steps { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 18px; +} + +.step-item { + position: relative; + display: grid; + grid-template-columns: 95px 1fr; + gap: 12px; + align-items: center; +} + +.step-number { + position: absolute; + top: 0; + left: 0; + width: 28px; + height: 28px; + border-radius: 50%; + background: var(--teal); + color: #ffffff; + font-weight: 900; + display: flex; + align-items: center; + justify-content: center; +} + +.step-icon { + width: 92px; + height: 92px; + border-radius: 50%; + background: #e9fbff; + color: #047f93; + display: flex; + align-items: center; + justify-content: center; + font-size: 2.7rem; +} + +.step-item h3 { + font-size: 1rem; + font-weight: 900; + color: var(--dark-blue); +} + +.step-item p { + color: var(--muted-text); + font-size: 0.82rem; + margin: 0; +} + +/* ======================= + WHY CHOOSE US + ======================= */ +.why-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 10px; +} + +.why-card { + min-height: 104px; + border: 1px solid var(--border); + border-radius: 10px; + padding: 16px 10px; + box-shadow: 0 3px 12px rgba(7, 29, 68, 0.08); + background: #ffffff; +} + +.why-card i { + color: var(--teal); + font-size: 2rem; +} + +.why-card h3 { + color: var(--dark-blue); + font-size: 0.95rem; + font-weight: 900; + margin: 8px 0 4px; +} + +.why-card p { + color: var(--muted-text); + font-size: 0.78rem; + margin: 0; +} + +/* ======================= + FOOTER + ======================= */ +.footer { + background: linear-gradient(135deg, #061c40, #082c5c); + color: #ffffff; + padding-top: 24px; +} + +.small-logo { + width: 42px; + height: 42px; + font-size: 1.1rem; +} + +.footer .brand-text { + font-size: 1.55rem; +} + +.footer p, +.footer li, +.footer a { + color: #ffffff; + font-size: 0.95rem; +} + +.footer h3 { + font-size: 1.1rem; + font-weight: 900; + margin-bottom: 16px; +} + +.social-links { + display: flex; + gap: 12px; +} + +.social-links a { + width: 28px; + height: 28px; + border: 1px solid #ffffff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; +} + +.footer-links { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px 36px; +} + +.contact-list { + list-style: none; + padding: 0; + margin: 0; +} + +.contact-list li { + display: flex; + gap: 12px; + margin-bottom: 12px; +} + +.newsletter-form { + display: flex; + gap: 8px; +} + +.newsletter-form input { + flex: 1; + min-width: 0; + border: 0; + border-radius: 6px; + padding: 12px; +} + +.newsletter-form button { + border-radius: 6px; +} + +.footer-bottom { + border-top: 1px solid rgba(255, 255, 255, 0.25); + margin-top: 18px; + padding: 14px 0; + text-align: center; +} + +.footer-bottom p { + margin: 0; +} + +/* ======================= + RESPONSIVE DESIGN + ======================= */ + +/* Tablet screens */ +@media (max-width: 991px) { + .nav-links { + gap: 4px; + padding-top: 16px; + } + + .auth-buttons { + align-items: flex-start !important; + padding-bottom: 16px; + } + + .hero-section { + text-align: center; + } + + .hero-text { + margin-left: auto; + margin-right: auto; + } + + .hero-actions { + justify-content: center; + } + + .search-box { + margin-left: auto; + margin-right: auto; + } + + .search-filters { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .hero-image { + height: 320px; + } + + .steps { + grid-template-columns: 1fr; + } + + .why-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +/* Mobile screens */ +@media (max-width: 767px) { + .navbar { + min-height: auto; + } + + .brand-text { + font-size: 1.45rem; + } + + .logo-circle { + width: 40px; + height: 40px; + font-size: 1.1rem; + } + + .hero-section h1 { + font-size: 2.35rem; + } + + .hero-image { + height: 240px; + border-radius: 16px; + } + + .search-box { + padding: 10px; + border-radius: 12px; + } + + .search-filters { + grid-template-columns: 1fr; + } + + .selected-date-range { + align-items: flex-start; + flex-direction: column; + } + + .search-field, + .search-btn { + height: 58px; + } + + .venue-card { + grid-template-columns: 1fr; + } + + .venue-card img { + height: 210px; + } + + .bundle-card { + grid-template-columns: 1fr; + text-align: center; + } + + .bundle-icon { + margin: 0 auto; + } + + .steps { + gap: 24px; + } + + .step-item { + grid-template-columns: 82px 1fr; + text-align: left; + } + + .step-icon { + width: 78px; + height: 78px; + font-size: 2.1rem; + } + + .why-grid { + grid-template-columns: 1fr; + } + + .newsletter-form { + flex-direction: column; + } +} diff --git a/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.jsx b/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.jsx new file mode 100644 index 000000000..52363efe9 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/HomePage/home.jsx @@ -0,0 +1,393 @@ +import React, { useCallback, useEffect, useMemo, useState } from 'react' +import "./home.css"; +import '../../Header/header.css' +import VenueFeaturedCard from '../VenueFeaturedCard/VenueFeaturedCard' +import { getFeaturedVenues } from '../../../api/venueApi' + +export const Home = () => { + const today = new Date().toISOString().split("T")[0]; + const [numberOfDays, setNumberOfDays] = useState("1"); + const [startDate, setStartDate] = useState(""); + const [featuredVenues, setFeaturedVenues] = useState([]); + const [featuredPage, setFeaturedPage] = useState(0); + const [featuredHasMore, setFeaturedHasMore] = useState(false); + const [featuredLoading, setFeaturedLoading] = useState(true); + const [featuredError, setFeaturedError] = useState(""); + + const loadFeaturedVenues = useCallback(async (page) => { + setFeaturedLoading(true); + setFeaturedError(""); + + try { + const data = await getFeaturedVenues(page); + + setFeaturedVenues((currentVenues) => ( + page === 1 + ? data.results + : [...currentVenues, ...data.results] + )); + setFeaturedPage(page); + setFeaturedHasMore(Boolean(data.next)); + } catch (error) { + setFeaturedError("Unable to load featured venues. Please try again."); + console.error(error); + } finally { + setFeaturedLoading(false); + } + }, []); + + useEffect(() => { + loadFeaturedVenues(1); + }, [loadFeaturedVenues]); + + function handleLoadMore() { + loadFeaturedVenues(featuredPage + 1); + } + + const selectedDates = useMemo(() => { + if (!startDate) { + return []; + } + + const dateCount = Number(numberOfDays); + const [year, month, day] = startDate.split("-").map(Number); + const firstDate = new Date(year, month - 1, day); + + return Array.from({ length: dateCount }, (_, index) => { + const date = new Date(firstDate); + date.setDate(firstDate.getDate() + index); + + return date.toLocaleDateString("en-GB", { + day: "2-digit", + month: "short", + }); + }); + }, [numberOfDays, startDate]); + + return ( +
+
+ {/* */} +
+
+
+ {/* */} +
+
+ + Your event, our perfect venue +
+ +

Find and Book
the Right Venue

+ +

+ Browse venues, compare options, and request bookings for + birthdays, weddings, meetups, and local events. +

+ + + {/* */} +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ + {selectedDates.length > 0 && ( +
+ Selected dates +
+ {selectedDates.map((date) => ( + {date} + ))} +
+
+ )} + +
+ +
+
+
+ + {/* */} +
+ Luxury decorated wedding venue hall +
+
+
+
+ + {/* */} +
+
+

Featured Venues

+ + {featuredLoading && featuredVenues.length === 0 && ( +

Loading featured venues...

+ )} + + {featuredError && ( +

+ {featuredError} +

+ )} + + {!featuredLoading && !featuredError && featuredVenues.length === 0 && ( +

No featured venues are currently available.

+ )} + + {featuredVenues.length > 0 && ( +
+ {featuredVenues.map((venue) => ( + + ))} +
+ )} + + {featuredHasMore && ( +
+ +
+ )} +
+
+ + {/* */} +
+
+

Event Bundles

+ +
+ {/* */} +
+
+
+ +
+
+

Birthday Bundle

+
    +
  • Themed Decoration
  • +
  • Catering (Veg & Non-Veg)
  • +
  • Photography
  • +
+
+ Request Bundle +
+
+ + {/* */} +
+
+
+ +
+
+

Corporate Bundle

+
    +
  • Conference Setup
  • +
  • Catering & Refreshments
  • +
  • AV & Sound System
  • +
+
+ Request Bundle +
+
+ + {/* */} +
+
+
+ +
+
+

Wedding Bundle

+
    +
  • Premium Decoration
  • +
  • Catering (Multi-Cuisine)
  • +
  • Photography & Videography
  • +
+
+ Request Bundle +
+
+
+
+
+ + {/* */} +
+
+
+ {/* */} +
+

How It Works

+ +
+
+ 1 +
+ +
+
+

Search venue

+

Find the perfect venue by location, type, and date.

+
+
+ +
+ 2 +
+ +
+
+

Check details

+

Compare prices, capacity, amenities, and photos.

+
+
+ +
+ 3 +
+ +
+
+

Send booking request

+

Send a request and get a confirmation.

+
+
+
+
+ + {/* */} +
+

Why Choose Us

+ +
+
+ +

Trusted venues

+

Verified venues you can rely on.

+
+ +
+ +

Easy booking

+

Simple and quick booking process.

+
+ +
+ +

Simple comparison

+

Compare venues side-by-side.

+
+ +
+ +

Good for events

+

Perfect for all types of events.

+
+
+
+
+
+
+
+ + {/* */} + + + {/* */} + + +
+ ) +} +export default Home; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/VenueCard/VenueCard.jsx b/react_frontend/bookmyvenue/src/Components/Pages/VenueCard/VenueCard.jsx new file mode 100644 index 000000000..7c4a61aa6 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/VenueCard/VenueCard.jsx @@ -0,0 +1,78 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const fallbackImage = + "https://images.unsplash.com/photo-1464366400600-7168b8af9bc3?auto=format&fit=crop&w=1200&q=80"; + +const formatPrice = (price) => + new Intl.NumberFormat("en-IN", { + style: "currency", + currency: "INR", + maximumFractionDigits: 0, + }).format(Number(price)); + +const VenueCard = ({ venue, favoriteId, favoriteSaving, onFavoriteToggle }) => { + const visibleAmenities = venue.amenities.slice(0, 4); + const remainingAmenities = venue.amenities.length - visibleAmenities.length; + const isFavorite = Boolean(favoriteId); + + return ( +
+
+ {venue.cover_image?.alt_text + +
+ +
+
+
+

{venue.name}

+

+ {venue.city} +

+
+
+ {formatPrice(venue.base_price_per_day)} /day +
+
+ +
+ + Capacity {venue.max_capacity} + + {venue.venue_type_display} +
+ +
+ {visibleAmenities.map((amenity) => ( + {amenity.name} + ))} + {remainingAmenities > 0 && +{remainingAmenities} more} +
+ +
+ + View Details + +
+
+
+ ); +}; + +export default VenueCard; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/VenueDetail.jsx b/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/VenueDetail.jsx new file mode 100644 index 000000000..ce24ecdc3 --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/VenueDetail.jsx @@ -0,0 +1,528 @@ +import React, { useEffect, useMemo, useState } from "react"; +import { Link, useNavigate, useParams } from "react-router-dom"; +import { getVenueBySlug } from "../../../api/venueApi"; +import { createBooking } from "../../../api/bookingApi"; +import { getCurrentUser, hasAuthSession } from "../../../api/authApi"; +import { + addFavorite, + getFavorites, + hasAccessToken, + removeFavorite, +} from "../../../api/favoriteApi"; +import "./venuedetail.css"; + +const fallbackImage = + "https://images.unsplash.com/photo-1464366400600-7168b8af9bc3?auto=format&fit=crop&w=1200&q=80"; + +const formatPrice = (price) => + new Intl.NumberFormat("en-IN", { + style: "currency", + currency: "INR", + maximumFractionDigits: 0, + }).format(Number(price)); + +const VenueDetail = () => { + const { slug } = useParams(); + const navigate = useNavigate(); + const [venue, setVenue] = useState(null); + const [loading, setLoading] = useState(Boolean(slug)); + const [error, setError] = useState(""); + const [showContactDetails, setShowContactDetails] = useState(false); + const [favoriteId, setFavoriteId] = useState(null); + const [favoriteLoading, setFavoriteLoading] = useState(false); + const [favoriteSaving, setFavoriteSaving] = useState(false); + const [favoriteError, setFavoriteError] = useState(""); + const [bookingUser, setBookingUser] = useState(null); + const [bookingUserLoading, setBookingUserLoading] = useState(hasAuthSession()); + const [bookingSaving, setBookingSaving] = useState(false); + const [bookingError, setBookingError] = useState(""); + const [bookingSuccess, setBookingSuccess] = useState(""); + const [bookingForm, setBookingForm] = useState({ + event_date: "", + event_type: "wedding", + guest_count: "", + message: "", + }); + const today = new Date().toISOString().split("T")[0]; + + useEffect(() => { + let ignoreResult = false; + + async function loadVenue() { + setLoading(true); + setError(""); + + try { + const data = await getVenueBySlug(slug); + if (!ignoreResult) { + setVenue(data); + } + } catch (requestError) { + if (!ignoreResult) { + setError("Unable to load this venue. Please try again."); + console.error(requestError); + } + } finally { + if (!ignoreResult) { + setLoading(false); + } + } + } + + if (slug) { + loadVenue(); + } + + return () => { + ignoreResult = true; + }; + }, [slug]); + + useEffect(() => { + let ignoreResult = false; + + async function loadFavorite() { + if (!venue || !hasAccessToken()) return; + + setFavoriteLoading(true); + try { + const favorites = await getFavorites(); + const favorite = favorites.find((item) => item.venue.id === venue.id); + if (!ignoreResult) { + setFavoriteId(favorite?.id ?? null); + } + } catch (requestError) { + if (!ignoreResult && hasAccessToken()) { + setFavoriteError("Unable to load favorite status."); + console.error(requestError); + } + } finally { + if (!ignoreResult) { + setFavoriteLoading(false); + } + } + } + + loadFavorite(); + + return () => { + ignoreResult = true; + }; + }, [venue]); + + useEffect(() => { + let ignoreResult = false; + + async function loadBookingUser() { + if (!hasAuthSession()) { + setBookingUserLoading(false); + return; + } + + setBookingUserLoading(true); + try { + const user = await getCurrentUser(); + if (!ignoreResult) setBookingUser(user); + } catch (requestError) { + if (!ignoreResult) setBookingUser(null); + console.error(requestError); + } finally { + if (!ignoreResult) setBookingUserLoading(false); + } + } + + loadBookingUser(); + + return () => { + ignoreResult = true; + }; + }, []); + + async function handleFavoriteToggle() { + if (!hasAccessToken()) { + navigate("/login", { state: { from: `/venues/${slug}` } }); + return; + } + + setFavoriteSaving(true); + setFavoriteError(""); + + try { + if (favoriteId) { + await removeFavorite(favoriteId); + setFavoriteId(null); + } else { + const favorite = await addFavorite(venue.id); + setFavoriteId(favorite.id); + } + } catch (requestError) { + setFavoriteError( + hasAccessToken() + ? "Unable to update this favorite. Please try again." + : "Your session has expired. Please log in again." + ); + console.error(requestError); + } finally { + setFavoriteSaving(false); + } + } + + function handleBookingChange(event) { + const { name, value } = event.target; + setBookingForm((currentForm) => ({ ...currentForm, [name]: value })); + } + + function redirectGuestToLogin(event) { + if (!hasAuthSession()) { + event.preventDefault(); + navigate("/login", { + state: { returnTo: `/venues/${slug}` }, + }); + } + } + + async function handleBookingSubmit(event) { + event.preventDefault(); + + if (!hasAuthSession()) { + navigate("/login", { state: { returnTo: `/venues/${slug}` } }); + return; + } + + if (bookingUser?.account_type !== "venue_user") { + setBookingError("Only venue-user accounts can book a venue."); + return; + } + + setBookingSaving(true); + setBookingError(""); + setBookingSuccess(""); + + try { + await createBooking({ + venue_id: venue.id, + ...bookingForm, + guest_count: Number(bookingForm.guest_count), + }); + setBookingSuccess("Your booking request was sent successfully."); + setBookingForm({ + event_date: "", + event_type: "wedding", + guest_count: "", + message: "", + }); + } catch (requestError) { + const responseData = requestError.response?.data; + const firstError = responseData && typeof responseData === "object" + ? Object.values(responseData).flat()[0] + : null; + setBookingError( + typeof firstError === "string" + ? firstError + : "Unable to send your booking request. Please try again." + ); + console.error(requestError); + } finally { + setBookingSaving(false); + } + } + + const address = useMemo(() => { + if (!venue) return ""; + + return [ + venue.address, + venue.city, + venue.state, + venue.postal_code, + venue.country, + ] + .filter(Boolean) + .join(", "); + }, [venue]); + + if (!slug) { + return ( +
+

No venue selected

+

Please choose a venue from the venue listing.

+ + Browse venues + +
+ ); + } + + if (loading) { + return
Loading venue details...
; + } + + if (error || !venue) { + return ( +
+

Venue unavailable

+

{error}

+ + Back to venues + +
+ ); + } + + const images = venue.images.length > 0 ? venue.images : [ + { id: "fallback", image: fallbackImage, alt_text: venue.name }, + ]; + const isFavorite = Boolean(favoriteId); + + return ( +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ {venue.venue_type_display} +
+

{venue.name}

+ +
+ {favoriteError &&

{favoriteError}

} +
+ {venue.city}, {venue.state} + Capacity {venue.max_capacity} + {venue.is_verified && ( + Verified + )} +
+
+
+ +
+ {images.map((image, index) => ( + {image.alt_text + ))} +
+ +
+

About this venue

+

{venue.description}

+
+ +
+

Amenities

+ {venue.amenities.length > 0 ? ( +
+ {venue.amenities.map((amenity) => ( +
+ + {amenity.name} +
+ ))} +
+ ) : ( +

No amenities have been listed.

+ )} +
+ +
+

Packages

+ {venue.packages.length > 0 ? ( +
+ {venue.packages.map((venuePackage) => ( +
+
+

{venuePackage.name}

+

{venuePackage.description}

+
+ {formatPrice(venuePackage.price_per_day)}/day +
+ ))} +
+ ) : ( +

No packages are currently available.

+ )} +
+ +
+

Location

+

+ {address} +

+
+ + {venue.city}, {venue.state} +
+
+
+ +
+ +
+
+
+
+
+
+ ); +}; + +export default VenueDetail; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/venuedetail.css b/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/venuedetail.css new file mode 100644 index 000000000..e0a03c3be --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/VenueDetail/venuedetail.css @@ -0,0 +1,899 @@ +/* ======================= + GLOBAL STYLE + ======================= */ +:root { + --dark-blue: #071d44; + --text-blue: #091b3d; + --teal: #0097a7; + --teal-dark: #008392; + --light-teal: #e8fbff; + --muted-text: #5d6678; + --border: #dce3eb; + --shadow: 0 8px 22px rgba(7, 29, 68, 0.12); + --card-shadow: 0 4px 14px rgba(7, 29, 68, 0.08); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Arial, Helvetica, sans-serif; + color: var(--text-blue); + background: #f9fbfd; +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; + display: block; +} + +.text-teal { + color: var(--teal); +} + +/* ======================= + REUSABLE BUTTONS + ======================= */ +.primary-btn { + background: linear-gradient(135deg, var(--teal), #10b8c7); + color: #ffffff; + border: 0; + border-radius: 8px; + font-weight: 700; + padding: 10px 18px; + box-shadow: 0 5px 14px rgba(0, 151, 167, 0.25); +} + +.primary-btn:hover { + background: linear-gradient(135deg, var(--teal-dark), var(--teal)); + color: #ffffff; +} + +.outline-btn, +.small-outline-btn { + color: var(--teal); + border: 2px solid var(--teal); + background: #ffffff; + border-radius: 8px; + font-weight: 700; +} + +.outline-btn { + padding: 10px 18px; +} + +.small-outline-btn { + padding: 7px 18px; + font-size: 0.85rem; +} + +.outline-btn:hover, +.small-outline-btn:hover { + background: var(--teal); + color: #ffffff; +} + +/* ======================= + HEADER / NAVBAR + ======================= */ +.site-header { + position: sticky; + top: 0; + z-index: 1000; + background: #ffffff; + box-shadow: 0 2px 14px rgba(7, 29, 68, 0.12); +} + +.navbar { + min-height: 76px; +} + +.logo-circle { + width: 46px; + height: 46px; + border-radius: 50%; + background: var(--teal); + color: #ffffff; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 1.4rem; + border: 5px solid #dff8fb; +} + +.brand-text { + color: var(--dark-blue); + font-size: 1.9rem; + font-weight: 800; + letter-spacing: 0.2px; +} + +.brand-text span { + color: var(--teal); +} + +.nav-links { + gap: 34px; +} + +.nav-link { + color: #07142f; + font-weight: 700; + position: relative; + padding: 16px 0; +} + +.nav-link:hover, +.nav-link.active { + color: var(--teal); +} + +.nav-link.active::after { + content: ""; + position: absolute; + left: 0; + right: 0; + bottom: 8px; + height: 4px; + border-radius: 999px; + background: var(--teal); +} + +.login-link { + color: #07142f; + font-weight: 700; +} + +/* ======================= + BREADCRUMB + ======================= */ +.breadcrumb-section { + padding: 22px 0 0; +} + +.custom-breadcrumb { + margin: 0; + font-weight: 700; +} + +.custom-breadcrumb a { + color: var(--teal); +} + +.custom-breadcrumb button { + border: 0; + padding: 0; + background: transparent; + color: var(--teal); + font-weight: inherit; +} + +.custom-breadcrumb .active { + color: var(--muted-text); +} + +/* ======================= + VENUE TOP DETAILS + ======================= */ +.venue-detail-section { + padding: 20px 0 32px; +} + +.venue-title-wrap { + display: flex; + justify-content: space-between; + gap: 18px; + align-items: flex-start; + margin-bottom: 18px; +} + +.venue-type-badge { + display: inline-block; + background: var(--light-teal); + color: var(--teal); + border-radius: 999px; + padding: 7px 14px; + font-size: 0.88rem; + font-weight: 800; + margin-bottom: 10px; +} + +.venue-title-wrap h1 { + color: var(--dark-blue); + font-size: clamp(2.2rem, 4vw, 4rem); + line-height: 1; + font-weight: 900; + margin-bottom: 12px; +} + +.venue-heading-row { + display: flex; + align-items: center; + gap: 14px; + margin-bottom: 12px; +} + +.venue-heading-row h1 { + margin-bottom: 0; +} + +.venue-meta-line { + display: flex; + flex-wrap: wrap; + gap: 18px; + color: #4d5567; + font-weight: 700; +} + +.venue-meta-line i { + color: var(--teal); +} + +.rating-star { + color: #f4b400 !important; +} + +.favorite-btn { + width: 48px; + height: 48px; + border: 1px solid var(--border); + background: #ffffff; + border-radius: 50%; + color: var(--dark-blue); + font-size: 1.35rem; + box-shadow: var(--card-shadow); +} + +.favorite-btn:hover { + color: #d63384; +} + +.favorite-btn.is-favorite { + border-color: #f3aacb; + background: #fff1f6; + color: #d63384; +} + +.favorite-btn:disabled { + cursor: wait; + opacity: 0.7; +} + +/* ======================= + IMAGE GALLERY + ======================= */ +.gallery-grid { + display: grid; + grid-template-columns: 2fr 1fr; + grid-template-rows: repeat(3, 145px); + gap: 12px; + margin-bottom: 24px; +} + +.main-gallery-image { + grid-row: span 3; +} + +.gallery-grid img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.main-gallery-image img { + border-radius: 18px 0 0 18px; +} + +.small-gallery-image:first-of-type img { + border-radius: 0 18px 0 0; +} + +.view-all-image { + position: relative; +} + +.view-all-image img { + border-radius: 0 0 18px 0; + filter: brightness(0.65); +} + +.view-all-image button { + position: absolute; + inset: 50% auto auto 50%; + transform: translate(-50%, -50%); + border: 0; + background: #ffffff; + color: var(--dark-blue); + border-radius: 999px; + padding: 10px 18px; + font-weight: 900; + white-space: nowrap; +} + +.venue-image-gallery { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 12px; + margin-bottom: 24px; +} + +.venue-image-gallery img { + width: 100%; + height: 320px; + border-radius: 16px; + object-fit: cover; +} + +.venue-image-gallery .venue-main-image { + grid-column: 1 / -1; + height: 440px; +} + +.venue-detail-status { + min-height: 55vh; + padding-top: 80px; + padding-bottom: 80px; +} + +/* ======================= + DETAIL CARDS + ======================= */ +.detail-card { + background: #ffffff; + border: 1px solid var(--border); + border-radius: 16px; + box-shadow: var(--card-shadow); + padding: 24px; + margin-bottom: 22px; +} + +.detail-card h2 { + color: var(--dark-blue); + font-size: 1.45rem; + font-weight: 900; + margin-bottom: 14px; +} + +.detail-card p { + color: var(--muted-text); + line-height: 1.7; + margin-bottom: 10px; +} + +/* Amenities */ +.amenities-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 14px; +} + +.amenity-item { + background: #f2f8fa; + border-radius: 12px; + padding: 14px; + color: var(--dark-blue); + font-weight: 800; +} + +.amenity-item i { + color: var(--teal); + margin-right: 8px; +} + +/* Packages */ +.package-list { + display: grid; + gap: 14px; +} + +.package-item { + display: flex; + justify-content: space-between; + gap: 18px; + align-items: center; + border: 1px solid var(--border); + border-radius: 14px; + padding: 16px; +} + +.package-item h3 { + color: var(--dark-blue); + font-size: 1.05rem; + font-weight: 900; + margin-bottom: 4px; +} + +.package-item p { + margin: 0; + font-size: 0.92rem; +} + +.package-item strong { + color: var(--teal); + font-size: 1.2rem; + white-space: nowrap; +} + +/* Map placeholder */ +.map-placeholder { + min-height: 230px; + border-radius: 14px; + background: + linear-gradient(rgba(0, 151, 167, 0.08), rgba(0, 151, 167, 0.08)), + repeating-linear-gradient( + 45deg, + #eef5f8, + #eef5f8 12px, + #ffffff 12px, + #ffffff 24px + ); + border: 1px dashed var(--teal); + color: var(--teal); + font-weight: 900; + font-size: 1.1rem; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.map-placeholder i { + font-size: 2.5rem; + margin-bottom: 8px; +} + +/* Reviews */ +.review-header { + display: flex; + justify-content: space-between; + gap: 14px; + align-items: center; + margin-bottom: 12px; +} + +.review-header h2 { + margin: 0; +} + +.review-header span { + color: var(--dark-blue); + font-weight: 900; +} + +.review-item { + border-top: 1px solid var(--border); + padding-top: 16px; + margin-top: 16px; +} + +.review-user { + display: flex; + gap: 12px; + align-items: center; + margin-bottom: 10px; +} + +.user-avatar { + width: 44px; + height: 44px; + border-radius: 50%; + background: var(--light-teal); + color: var(--teal); + font-weight: 900; + display: flex; + align-items: center; + justify-content: center; +} + +.review-user h3 { + color: var(--dark-blue); + font-size: 1rem; + font-weight: 900; + margin: 0; +} + +.review-user p { + margin: 0; + font-size: 0.85rem; +} + +/* ======================= + BOOKING CARD + ======================= */ +.booking-card { + position: sticky; + top: 100px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 18px; + box-shadow: var(--shadow); + padding: 24px; +} + +.price-main { + color: var(--teal); + font-size: 2.2rem; + font-weight: 900; + margin-bottom: 6px; +} + +.price-main span { + font-size: 1rem; + font-weight: 500; +} + +.booking-note { + color: var(--muted-text); + line-height: 1.5; + margin-bottom: 18px; +} + +.booking-field { + display: block; + color: var(--dark-blue); + font-size: 0.92rem; + font-weight: 900; + margin-bottom: 14px; +} + +.booking-field input, +.booking-field select, +.booking-field textarea { + display: block; + width: 100%; + border: 1px solid var(--border); + border-radius: 10px; + padding: 12px; + margin-top: 7px; + color: #5f687a; + outline: none; +} + +.booking-field textarea { + min-height: 100px; + resize: vertical; +} + +.booking-field input:focus, +.booking-field select:focus, +.booking-field textarea:focus { + border-color: var(--teal); + box-shadow: 0 0 0 3px rgba(0, 151, 167, 0.12); +} + +.booking-submit-btn { + margin: 6px 0 12px; +} + +.booking-submit-btn:disabled { + cursor: not-allowed; + opacity: 0.65; +} + +.booking-message { + margin: 0 0 10px; + font-size: 0.9rem; + font-weight: 700; +} + +.booking-error { + color: #b42318; +} + +.booking-success { + color: #08783e; +} + +.quick-info { + display: grid; + gap: 10px; + color: var(--muted-text); + font-weight: 700; +} + +.quick-info i { + color: var(--teal); + margin-right: 8px; +} + +.contact-details-link { + width: fit-content; + border: 0; + padding: 0; + background: transparent; + color: var(--teal); + font: inherit; + text-align: left; +} + +.contact-details-link:hover { + color: var(--teal-dark); + text-decoration: underline; +} + +.contact-detail-values { + display: grid; + gap: 8px; + padding: 2px 0 4px 26px; + font-size: 0.92rem; + font-weight: 500; +} + +.contact-detail-values a { + color: var(--teal); + overflow-wrap: anywhere; +} + +/* ======================= + SIMILAR VENUES + ======================= */ +.similar-section { + padding: 12px 0 34px; +} + +.section-title { + color: var(--dark-blue); + font-size: 1.9rem; + font-weight: 900; + text-align: center; + margin-bottom: 22px; + position: relative; +} + +.section-title::after { + content: ""; + width: 42px; + height: 4px; + background: var(--teal); + border-radius: 999px; + display: block; + margin: 6px auto 0; +} + +.similar-card { + min-height: 182px; + display: grid; + grid-template-columns: 1.25fr 1fr; + gap: 16px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 12px; + padding: 10px; + box-shadow: var(--card-shadow); +} + +.similar-card img { + width: 100%; + height: 160px; + object-fit: cover; + border-radius: 8px; +} + +.similar-card h3 { + color: var(--dark-blue); + font-size: 1.1rem; + font-weight: 900; + margin: 8px 0 6px; +} + +.similar-card p { + color: var(--muted-text); + margin: 4px 0; + font-size: 0.92rem; +} + +.similar-card i { + color: var(--teal); +} + +.similar-card strong { + display: block; + color: var(--teal); + font-size: 1.25rem; + margin: 6px 0; +} + +.similar-card strong span { + font-size: 0.85rem; +} + +/* ======================= + FOOTER + ======================= */ +.footer { + background: linear-gradient(135deg, #061c40, #082c5c); + color: #ffffff; + padding-top: 24px; +} + +.small-logo { + width: 42px; + height: 42px; + font-size: 1.1rem; +} + +.footer .brand-text { + font-size: 1.55rem; +} + +.footer p, +.footer li, +.footer a { + color: #ffffff; + font-size: 0.95rem; +} + +.footer h3 { + font-size: 1.1rem; + font-weight: 900; + margin-bottom: 16px; +} + +.social-links { + display: flex; + gap: 12px; +} + +.social-links a { + width: 28px; + height: 28px; + border: 1px solid #ffffff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; +} + +.footer-links { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px 36px; +} + +.contact-list { + list-style: none; + padding: 0; + margin: 0; +} + +.contact-list li { + display: flex; + gap: 12px; + margin-bottom: 12px; +} + +.newsletter-form { + display: flex; + gap: 8px; +} + +.newsletter-form input { + flex: 1; + min-width: 0; + border: 0; + border-radius: 6px; + padding: 12px; +} + +.newsletter-form button { + border-radius: 6px; +} + +.footer-bottom { + border-top: 1px solid rgba(255, 255, 255, 0.25); + margin-top: 18px; + padding: 14px 0; + text-align: center; +} + +.footer-bottom p { + margin: 0; +} + +/* ======================= + RESPONSIVE DESIGN + ======================= */ + +/* Tablet */ +@media (max-width: 991px) { + .nav-links { + gap: 4px; + padding-top: 16px; + } + + .auth-buttons { + align-items: flex-start !important; + padding-bottom: 16px; + } + + .booking-card { + position: static; + } + + .amenities-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +/* Mobile */ +@media (max-width: 767px) { + .navbar { + min-height: auto; + } + + .brand-text { + font-size: 1.45rem; + } + + .logo-circle { + width: 40px; + height: 40px; + font-size: 1.1rem; + } + + .venue-title-wrap { + flex-direction: column; + } + + .venue-title-wrap h1 { + font-size: 2.2rem; + } + + .gallery-grid { + grid-template-columns: 1fr; + grid-template-rows: auto; + } + + .main-gallery-image { + grid-row: auto; + } + + .gallery-grid img { + height: 230px; + border-radius: 14px !important; + } + + .view-all-image img { + border-radius: 14px !important; + } + + .detail-card { + padding: 18px; + } + + .amenities-grid { + grid-template-columns: 1fr; + } + + .package-item { + flex-direction: column; + align-items: flex-start; + } + + .review-header { + flex-direction: column; + align-items: flex-start; + } + + .similar-card { + grid-template-columns: 1fr; + } + + .similar-card img { + height: 210px; + } + + .newsletter-form { + flex-direction: column; + } + + .footer-links { + grid-template-columns: 1fr; + } +} diff --git a/react_frontend/bookmyvenue/src/Components/Pages/VenueFeaturedCard/VenueFeaturedCard.jsx b/react_frontend/bookmyvenue/src/Components/Pages/VenueFeaturedCard/VenueFeaturedCard.jsx new file mode 100644 index 000000000..3572a835a --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/VenueFeaturedCard/VenueFeaturedCard.jsx @@ -0,0 +1,43 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const fallbackImage = + "https://images.unsplash.com/photo-1464366400600-7168b8af9bc3?auto=format&fit=crop&w=1200&q=80"; + +const formatPrice = (price) => + new Intl.NumberFormat("en-IN", { + style: "currency", + currency: "INR", + maximumFractionDigits: 0, + }).format(Number(price)); + +const VenueFeaturedCard = ({ venue }) => { + return ( +
+
+ {venue.cover_image?.alt_text +
+

{venue.name}

+

{venue.city}

+ + {formatPrice(venue.base_price_per_day)}/day + +

+ Capacity {venue.max_capacity} +

+ + View Details + +
+
+
+ ); +}; + +export default VenueFeaturedCard; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/Venues/Venues.jsx b/react_frontend/bookmyvenue/src/Components/Pages/Venues/Venues.jsx new file mode 100644 index 000000000..69f5db96a --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/Venues/Venues.jsx @@ -0,0 +1,352 @@ +import React, { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import "./venues.css"; +import VenueCard from "../VenueCard/VenueCard"; +import { getVenues } from "../../../api/venueApi"; +import { + addFavorite, + getFavorites, + hasAccessToken, + removeFavorite, +} from "../../../api/favoriteApi"; + +const PAGE_SIZE = 6; + +const Venues = () => { + const navigate = useNavigate(); + const [venues, setVenues] = useState([]); + const [venueCount, setVenueCount] = useState(0); + const [page, setPageNumber] = useState(1); + const [hasNextPage, setHasNextPage] = useState(false); + const [hasPreviousPage, setHasPreviousPage] = useState(false); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + const [favoriteError, setFavoriteError] = useState(""); + const [favoritesByVenue, setFavoritesByVenue] = useState({}); + const [favoritesLoading, setFavoritesLoading] = useState(hasAccessToken()); + const [savingFavoriteIds, setSavingFavoriteIds] = useState(new Set()); + + useEffect(() => { + let ignoreResult = false; + + async function loadFavorites() { + if (!hasAccessToken()) return; + + try { + const favorites = await getFavorites(); + if (!ignoreResult) { + setFavoritesByVenue(Object.fromEntries( + favorites.map((favorite) => [favorite.venue.id, favorite.id]) + )); + } + } catch (requestError) { + if (!ignoreResult && hasAccessToken()) { + setFavoriteError("Unable to load your favorites."); + console.error(requestError); + } + } finally { + if (!ignoreResult) { + setFavoritesLoading(false); + } + } + } + + loadFavorites(); + + return () => { + ignoreResult = true; + }; + }, []); + + useEffect(() => { + async function loadVenues() { + setLoading(true); + setError(""); + + try { + const data = await getVenues(page); + setVenues(data.results); + setVenueCount(data.count); + setHasNextPage(Boolean(data.next)); + setHasPreviousPage(Boolean(data.previous)); + } catch (error) { + setError("Unable to load venues."); + console.error(error); + } finally { + setLoading(false); + } + } + + loadVenues(); + }, [page]); + + async function handleFavoriteToggle(venueId) { + if (!hasAccessToken()) { + navigate("/login", { state: { from: "/venues" } }); + return; + } + + setFavoriteError(""); + setSavingFavoriteIds((currentIds) => new Set(currentIds).add(venueId)); + + try { + const favoriteId = favoritesByVenue[venueId]; + + if (favoriteId) { + await removeFavorite(favoriteId); + setFavoritesByVenue((currentFavorites) => { + const updatedFavorites = { ...currentFavorites }; + delete updatedFavorites[venueId]; + return updatedFavorites; + }); + } else { + const favorite = await addFavorite(venueId); + setFavoritesByVenue((currentFavorites) => ({ + ...currentFavorites, + [venueId]: favorite.id, + })); + } + } catch (requestError) { + setFavoriteError( + hasAccessToken() + ? "Unable to update your favorites. Please try again." + : "Your session has expired. Please log in again." + ); + console.error(requestError); + } finally { + setSavingFavoriteIds((currentIds) => { + const updatedIds = new Set(currentIds); + updatedIds.delete(venueId); + return updatedIds; + }); + } + } + + const firstVenueNumber = venues.length === 0 ? 0 : (page - 1) * PAGE_SIZE + 1; + const lastVenueNumber = (page - 1) * PAGE_SIZE + venues.length; + + return ( +
+ +
+
+
+
+
+ {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+ + {/* */} +
+ +
+
+
+
+
+ + {/* */} +
+
+
+
+

Explore Venues

+

Find the perfect venue for your event

+
+ +
+

+ Showing {firstVenueNumber}–{lastVenueNumber} of {venueCount} venues +

+ +
+ + +
+
+
+ + {/* */} + +{loading &&

Loading venues...

} + +{error &&

{error}

} + +{favoriteError &&

{favoriteError}

} + +{!loading && !error && venues.length === 0 && ( +

No venues found.

+)} + +{/* VENUE CARDS GRID */} +{!loading && !error && venues.length > 0 && ( +
+ {venues.map((venue) => ( +
+ +
+ ))} +
+)} + + {/* */} + {!loading && !error && venueCount > PAGE_SIZE && ( + + )} +
+
+
+ + +
+ ); +}; + +export default Venues; diff --git a/react_frontend/bookmyvenue/src/Components/Pages/Venues/venues.css b/react_frontend/bookmyvenue/src/Components/Pages/Venues/venues.css new file mode 100644 index 000000000..a5bb2798c --- /dev/null +++ b/react_frontend/bookmyvenue/src/Components/Pages/Venues/venues.css @@ -0,0 +1,616 @@ +/* ===================================================== + GLOBAL VARIABLES + Easy to change colors here later + ===================================================== */ +:root { + --dark-blue: #071d44; + --text-blue: #091b3d; + --teal: #0097a7; + --teal-dark: #008392; + --light-teal: #e8fbff; + --muted-text: #5d6678; + --border: #dce3eb; + --shadow: 0 8px 22px rgba(7, 29, 68, 0.12); + --card-shadow: 0 4px 14px rgba(7, 29, 68, 0.08); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Arial, Helvetica, sans-serif; + color: var(--text-blue); + background: #f9fbfd; +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; + display: block; +} + +/* ===================================================== + REUSABLE BUTTONS + ===================================================== */ +.primary-btn { + background: linear-gradient(135deg, var(--teal), #10b8c7); + color: #ffffff; + border: 0; + border-radius: 8px; + font-weight: 700; + padding: 10px 18px; + box-shadow: 0 5px 14px rgba(0, 151, 167, 0.25); +} + +.primary-btn:hover { + background: linear-gradient(135deg, var(--teal-dark), var(--teal)); + color: #ffffff; +} + +.small-outline-btn { + color: var(--teal); + border: 2px solid var(--teal); + background: #ffffff; + border-radius: 8px; + font-weight: 700; + padding: 7px 18px; + font-size: 0.85rem; +} + +.small-outline-btn:hover { + background: var(--teal); + color: #ffffff; +} + +.reset-btn { + border: 1px solid var(--border); + background: #ffffff; + color: var(--dark-blue); + border-radius: 8px; + font-weight: 700; +} + +.reset-btn:hover { + background: #f3f7fa; + color: var(--dark-blue); +} + +.big-btn { + min-height: 56px; +} + +/* ===================================================== + HEADER / NAVBAR + ===================================================== */ +.site-header { + position: sticky; + top: 0; + z-index: 1000; + background: #ffffff; + box-shadow: 0 2px 14px rgba(7, 29, 68, 0.12); +} + +.navbar { + min-height: 76px; +} + +.logo-circle { + width: 46px; + height: 46px; + border-radius: 50%; + background: var(--teal); + color: #ffffff; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 1.4rem; + border: 5px solid #dff8fb; +} + +.brand-text { + color: var(--dark-blue); + font-size: 1.9rem; + font-weight: 800; + letter-spacing: 0.2px; +} + +.brand-text span { + color: var(--teal); +} + +.nav-links { + gap: 34px; +} + +.nav-link { + color: #07142f; + font-weight: 700; + position: relative; + padding: 16px 0; +} + +.nav-link:hover, +.nav-link.active { + color: var(--teal); +} + +.nav-link.active::after { + content: ""; + position: absolute; + left: 0; + right: 0; + bottom: 8px; + height: 4px; + border-radius: 999px; + background: var(--teal); +} + +.login-link { + color: #07142f; + font-weight: 700; +} + +/* ===================================================== + TOP FILTERS SECTION + ===================================================== */ +.filters-section { + padding: 26px 0 10px; +} + +.filters-box { + background: #ffffff; + border: 1px solid var(--border); + border-radius: 14px; + box-shadow: var(--shadow); + padding: 14px; +} + +.filter-field { + width: 100%; + min-height: 56px; + padding: 8px 12px; + border: 1px solid var(--border); + border-radius: 10px; + display: flex; + align-items: center; + gap: 10px; + background: #ffffff; +} + +.filter-field i { + font-size: 1.3rem; + color: var(--dark-blue); +} + +.filter-field span { + width: 100%; + color: var(--dark-blue); + font-size: 0.85rem; + font-weight: 700; + line-height: 1.1; +} + +.filter-field input, +.filter-field select { + width: 100%; + border: 0; + outline: 0; + color: #5f687a; + font-size: 0.88rem; + background: transparent; + padding: 3px 0 0; +} + +.action-btn-col { + min-width: 110px; +} + +/* ===================================================== + PAGE HEADING / SORT BAR + ===================================================== */ +.venues-listing-section { + padding: 14px 0 30px; +} + +.page-heading-wrap { + margin-bottom: 24px; +} + +.page-title { + font-size: clamp(2rem, 4vw, 3.2rem); + line-height: 1; + font-weight: 900; + color: var(--dark-blue); + margin-bottom: 8px; +} + +.page-subtitle { + color: #5f687a; + font-size: 1.12rem; + margin: 0; +} + +.results-toolbar { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 16px; +} + +.results-count { + color: var(--muted-text); + font-size: 0.95rem; +} + +.sort-box { + min-width: 240px; + display: flex; + align-items: center; + gap: 10px; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 10px; + padding: 10px 12px; +} + +.sort-label { + margin: 0; + color: var(--dark-blue); + font-size: 0.95rem; + font-weight: 700; + white-space: nowrap; +} + +.sort-select { + border: 0; + box-shadow: none !important; + color: #5f687a; + font-size: 0.95rem; + padding-top: 0; + padding-bottom: 0; +} + +/* ===================================================== + VENUE LISTING CARDS + ===================================================== */ +.listing-card { + height: 100%; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 16px; + overflow: hidden; + box-shadow: var(--card-shadow); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.listing-card:hover { + transform: translateY(-4px); + box-shadow: 0 10px 22px rgba(7, 29, 68, 0.12); +} + +.card-image-wrap { + position: relative; +} + +.card-image-wrap img { + width: 100%; + height: 235px; + object-fit: cover; +} + +.wishlist-btn { + position: absolute; + top: 14px; + right: 14px; + width: 38px; + height: 38px; + border: 0; + border-radius: 50%; + background: rgba(255, 255, 255, 0.95); + color: var(--dark-blue); + font-size: 1.2rem; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 4px 10px rgba(7, 29, 68, 0.12); +} + +.wishlist-btn:hover { + color: #d63384; +} + +.wishlist-btn.is-favorite { + color: #d63384; +} + +.wishlist-btn:disabled { + cursor: wait; + opacity: 0.7; +} + +.listing-card-body { + padding: 14px 16px 16px; +} + +.title-price-row { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 12px; + margin-bottom: 10px; +} + +.title-price-row h2 { + color: var(--dark-blue); + font-size: 1.1rem; + font-weight: 900; + margin: 0 0 6px; +} + +.location-text { + color: var(--muted-text); + margin: 0; + font-size: 0.92rem; +} + +.location-text i { + color: var(--teal); +} + +.price-box { + color: var(--teal); + font-size: 1.7rem; + font-weight: 900; + white-space: nowrap; +} + +.price-box span { + font-size: 0.95rem; + font-weight: 500; +} + +.meta-row { + display: flex; + flex-wrap: wrap; + gap: 18px; + margin-bottom: 12px; + color: #4d5567; + font-size: 0.95rem; +} + +.meta-row i { + color: var(--dark-blue); +} + +.rating-star { + color: #f4b400 !important; +} + +.amenities-list { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 14px; +} + +.amenities-list span { + background: #eef5f8; + color: #2d7382; + border-radius: 999px; + padding: 6px 10px; + font-size: 0.78rem; + font-weight: 700; +} + +.card-btn-wrap { + display: flex; + justify-content: flex-end; +} + +/* ===================================================== + PAGINATION + ===================================================== */ +.pagination-wrap { + padding-top: 28px; +} + +.custom-pagination .page-link { + color: var(--dark-blue); + border-color: var(--border); + padding: 10px 16px; +} + +.custom-pagination .page-item.active .page-link { + background: var(--teal); + border-color: var(--teal); + color: #ffffff; +} + +.custom-pagination .page-link:focus { + box-shadow: none; +} + +/* ===================================================== + FOOTER + ===================================================== */ +.footer { + background: linear-gradient(135deg, #061c40, #082c5c); + color: #ffffff; + padding-top: 24px; +} + +.small-logo { + width: 42px; + height: 42px; + font-size: 1.1rem; +} + +.footer .brand-text { + font-size: 1.55rem; +} + +.footer p, +.footer li, +.footer a { + color: #ffffff; + font-size: 0.95rem; +} + +.footer h3 { + font-size: 1.1rem; + font-weight: 900; + margin-bottom: 16px; +} + +.social-links { + display: flex; + gap: 12px; +} + +.social-links a { + width: 28px; + height: 28px; + border: 1px solid #ffffff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; +} + +.footer-links { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px 36px; +} + +.contact-list { + list-style: none; + padding: 0; + margin: 0; +} + +.contact-list li { + display: flex; + gap: 12px; + margin-bottom: 12px; +} + +.newsletter-form { + display: flex; + gap: 8px; +} + +.newsletter-form input { + flex: 1; + min-width: 0; + border: 0; + border-radius: 6px; + padding: 12px; +} + +.newsletter-form button { + border-radius: 6px; +} + +.footer-bottom { + border-top: 1px solid rgba(255, 255, 255, 0.25); + margin-top: 18px; + padding: 14px 0; + text-align: center; +} + +.footer-bottom p { + margin: 0; +} + +/* ===================================================== + RESPONSIVE DESIGN + ===================================================== */ + +/* Tablet */ +@media (max-width: 991px) { + .nav-links { + gap: 4px; + padding-top: 16px; + } + + .auth-buttons { + align-items: flex-start !important; + padding-bottom: 16px; + } + + .results-toolbar { + justify-content: flex-start; + } + + .sort-box { + width: 100%; + } + + .card-image-wrap img { + height: 220px; + } +} + +/* Mobile */ +@media (max-width: 767px) { + .navbar { + min-height: auto; + } + + .brand-text { + font-size: 1.45rem; + } + + .logo-circle { + width: 40px; + height: 40px; + font-size: 1.1rem; + } + + .filters-section { + padding-top: 20px; + } + + .filters-box { + padding: 12px; + } + + .page-title { + font-size: 2.1rem; + } + + .page-subtitle { + font-size: 1rem; + } + + .title-price-row { + flex-direction: column; + gap: 6px; + } + + .price-box { + font-size: 1.45rem; + } + + .card-image-wrap img { + height: 210px; + } + + .card-btn-wrap { + justify-content: flex-start; + } + + .newsletter-form { + flex-direction: column; + } + + .footer-links { + grid-template-columns: 1fr; + } +} diff --git a/react_frontend/bookmyvenue/src/api/authApi.jsx b/react_frontend/bookmyvenue/src/api/authApi.jsx new file mode 100644 index 000000000..a81fc3c22 --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/authApi.jsx @@ -0,0 +1,39 @@ +import api from "./axios"; + +export const AUTH_CHANGED_EVENT = "bookmyvenue:auth-changed"; + +export function hasAuthSession() { + return Boolean( + localStorage.getItem("accessToken") || localStorage.getItem("refreshToken") + ); +} + +function notifyAuthChanged() { + window.dispatchEvent(new Event(AUTH_CHANGED_EVENT)); +} + +export async function signupUser(formData) { + const response = await api.post("/signup/", formData); + return response.data; +} + +export async function loginUser(formData) { + const response = await api.post("/login/", formData); + + localStorage.setItem("accessToken", response.data.access); + localStorage.setItem("refreshToken", response.data.refresh); + notifyAuthChanged(); + + return response.data; +} + +export async function getCurrentUser() { + const response = await api.get("/me/", { requiresAuth: true }); + return response.data; +} + +export function logoutUser() { + localStorage.removeItem("accessToken"); + localStorage.removeItem("refreshToken"); + notifyAuthChanged(); +} diff --git a/react_frontend/bookmyvenue/src/api/axios.js b/react_frontend/bookmyvenue/src/api/axios.js new file mode 100644 index 000000000..942b8e3f6 --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/axios.js @@ -0,0 +1,77 @@ +import axios from "axios"; + +const apiBaseUrl = + process.env.REACT_APP_API_BASE_URL || "http://127.0.0.1:8000/api"; + +const api = axios.create({ + baseURL: apiBaseUrl.replace(/\/$/, ""), +}); + +api.interceptors.request.use((config) => { + if (!config.requiresAuth) { + return config; + } + + const accessToken = localStorage.getItem("accessToken"); + + if (accessToken) { + config.headers.Authorization = `Bearer ${accessToken}`; + } + + return config; +}); + +let refreshRequest = null; + +async function refreshAccessToken() { + const refreshToken = localStorage.getItem("refreshToken"); + + if (!refreshToken) { + throw new Error("No refresh token is available."); + } + + if (!refreshRequest) { + refreshRequest = axios + .post(`${apiBaseUrl.replace(/\/$/, "")}/token/refresh/`, { + refresh: refreshToken, + }) + .then((response) => { + localStorage.setItem("accessToken", response.data.access); + return response.data.access; + }) + .finally(() => { + refreshRequest = null; + }); + } + + return refreshRequest; +} + +api.interceptors.response.use( + (response) => response, + async (error) => { + const originalRequest = error.config; + + if ( + error.response?.status === 401 + && originalRequest?.requiresAuth + && !originalRequest._retriedAfterRefresh + ) { + originalRequest._retriedAfterRefresh = true; + + try { + const accessToken = await refreshAccessToken(); + originalRequest.headers.Authorization = `Bearer ${accessToken}`; + return api(originalRequest); + } catch (refreshError) { + localStorage.removeItem("accessToken"); + localStorage.removeItem("refreshToken"); + return Promise.reject(refreshError); + } + } + + return Promise.reject(error); + } +); + +export default api; diff --git a/react_frontend/bookmyvenue/src/api/axios.test.js b/react_frontend/bookmyvenue/src/api/axios.test.js new file mode 100644 index 000000000..6f7e4d8b6 --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/axios.test.js @@ -0,0 +1,68 @@ +import axios from "axios"; +import api from "./axios"; + +jest.mock("axios", () => { + const requestUse = jest.fn(); + const responseUse = jest.fn(); + const instance = jest.fn(); + instance.interceptors = { + request: { use: requestUse }, + response: { use: responseUse }, + }; + + return { + __esModule: true, + default: { + create: jest.fn(() => instance), + post: jest.fn(), + requestUse, + responseUse, + instance, + }, + }; +}); + +const requestHandler = axios.requestUse.mock.calls[0][0]; +const responseErrorHandler = axios.responseUse.mock.calls[0][1]; + +beforeEach(() => { + localStorage.clear(); + jest.clearAllMocks(); +}); + +test("does not attach a stored token to public API requests", () => { + localStorage.setItem("accessToken", "expired-token"); + const config = { headers: {} }; + + expect(requestHandler(config)).toBe(config); + expect(config.headers.Authorization).toBeUndefined(); +}); + +test("attaches a stored token to protected API requests", () => { + localStorage.setItem("accessToken", "current-token"); + const config = { headers: {}, requiresAuth: true }; + + requestHandler(config); + + expect(config.headers.Authorization).toBe("Bearer current-token"); +}); + +test("refreshes an expired token and retries a protected request", async () => { + localStorage.setItem("refreshToken", "current-refresh-token"); + axios.post.mockResolvedValue({ data: { access: "new-access-token" } }); + api.mockResolvedValue({ data: [] }); + const originalRequest = { + headers: {}, + requiresAuth: true, + url: "/favorites/", + }; + + await responseErrorHandler({ + config: originalRequest, + response: { status: 401 }, + }); + + expect(localStorage.getItem("accessToken")).toBe("new-access-token"); + expect(originalRequest.headers.Authorization).toBe("Bearer new-access-token"); + expect(api).toHaveBeenCalledWith(originalRequest); +}); diff --git a/react_frontend/bookmyvenue/src/api/bookingApi.js b/react_frontend/bookmyvenue/src/api/bookingApi.js new file mode 100644 index 000000000..f43ee10d6 --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/bookingApi.js @@ -0,0 +1,8 @@ +import api from "./axios"; + +export async function createBooking(bookingData) { + const response = await api.post("/bookings/", bookingData, { + requiresAuth: true, + }); + return response.data; +} diff --git a/react_frontend/bookmyvenue/src/api/favoriteApi.js b/react_frontend/bookmyvenue/src/api/favoriteApi.js new file mode 100644 index 000000000..218b98afa --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/favoriteApi.js @@ -0,0 +1,24 @@ +import api from "./axios"; +import { hasAuthSession } from "./authApi"; + +export function hasAccessToken() { + return hasAuthSession(); +} + +export async function getFavorites() { + const response = await api.get("/favorites/", { requiresAuth: true }); + return Array.isArray(response.data) ? response.data : response.data.results; +} + +export async function addFavorite(venueId) { + const response = await api.post( + "/favorites/", + { venue_id: venueId }, + { requiresAuth: true } + ); + return response.data; +} + +export async function removeFavorite(favoriteId) { + await api.delete(`/favorites/${favoriteId}/`, { requiresAuth: true }); +} diff --git a/react_frontend/bookmyvenue/src/api/venueApi.js b/react_frontend/bookmyvenue/src/api/venueApi.js new file mode 100644 index 000000000..ac63af624 --- /dev/null +++ b/react_frontend/bookmyvenue/src/api/venueApi.js @@ -0,0 +1,20 @@ +import api from "./axios"; + +export async function getVenues(page = 1) { + const response = await api.get("/venues/", { + params: { page }, + }); + return response.data; +} + +export async function getFeaturedVenues(page = 1) { + const response = await api.get("/venues/featured/", { + params: { page }, + }); + return response.data; +} + +export async function getVenueBySlug(slug) { + const response = await api.get(`/venues/${slug}/`); + return response.data; +} diff --git a/react_frontend/bookmyvenue/src/index.css b/react_frontend/bookmyvenue/src/index.css new file mode 100644 index 000000000..ec2585e8c --- /dev/null +++ b/react_frontend/bookmyvenue/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/react_frontend/bookmyvenue/src/index.js b/react_frontend/bookmyvenue/src/index.js new file mode 100644 index 000000000..b411e6401 --- /dev/null +++ b/react_frontend/bookmyvenue/src/index.js @@ -0,0 +1,19 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; +import 'bootstrap/dist/css/bootstrap.min.css'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + + + +); + +reportWebVitals(); diff --git a/react_frontend/bookmyvenue/src/reportWebVitals.js b/react_frontend/bookmyvenue/src/reportWebVitals.js new file mode 100644 index 000000000..5253d3ad9 --- /dev/null +++ b/react_frontend/bookmyvenue/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/react_frontend/bookmyvenue/src/setupTests.js b/react_frontend/bookmyvenue/src/setupTests.js new file mode 100644 index 000000000..8f2609b7b --- /dev/null +++ b/react_frontend/bookmyvenue/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/react_frontend/bookmyvenue/src/utils/authNavigation.js b/react_frontend/bookmyvenue/src/utils/authNavigation.js new file mode 100644 index 000000000..3c3a1020c --- /dev/null +++ b/react_frontend/bookmyvenue/src/utils/authNavigation.js @@ -0,0 +1,13 @@ +export function getSafeReturnTo(locationState) { + const returnTo = locationState?.returnTo; + + if ( + typeof returnTo === "string" + && returnTo.startsWith("/") + && !returnTo.startsWith("//") + ) { + return returnTo; + } + + return null; +}