diff --git a/app/Console/Commands/CertificatesIssues.php b/app/Console/Commands/CertificatesIssues.php index da5f2c03b..00d998f81 100644 --- a/app/Console/Commands/CertificatesIssues.php +++ b/app/Console/Commands/CertificatesIssues.php @@ -31,7 +31,7 @@ public function handle(): int { $issues = Participation::whereNull('participation_url') - ->where('status', '=', 'PENDING') + ->where('status', 'PENDING') ->where('created_at', '<', Carbon::now()->subMinutes(5))->get(); Log::info('certificate with issues: '.count($issues)); diff --git a/app/Console/Commands/CertificatesOfParticipationGeneration.php b/app/Console/Commands/CertificatesOfParticipationGeneration.php index f6ea73224..e61d1f4c5 100644 --- a/app/Console/Commands/CertificatesOfParticipationGeneration.php +++ b/app/Console/Commands/CertificatesOfParticipationGeneration.php @@ -28,7 +28,7 @@ class CertificatesOfParticipationGeneration extends Command public function handle(): int { - $participations = Participation::whereNull('participation_url')->where('status', '=', 'PENDING')->orderByDesc('created_at')->get(); + $participations = Participation::whereNull('participation_url')->where('status', 'PENDING')->orderByDesc('created_at')->get(); $this->info(count($participations).' certificates of participation to generate'); diff --git a/app/Console/Commands/EventsIndexOptimize.php b/app/Console/Commands/EventsIndexOptimize.php new file mode 100644 index 000000000..64822ce11 --- /dev/null +++ b/app/Console/Commands/EventsIndexOptimize.php @@ -0,0 +1,73 @@ +option('rollback'); + + $this->info(($rollback ? 'Dropping' : 'Adding') . ' indexes on events table...'); + + $indexes = [ + 'idx_status' => 'CREATE INDEX idx_status ON events(status)', + 'idx_country_iso' => 'CREATE INDEX idx_country_iso ON events(country_iso)', + 'idx_status_country' => 'CREATE INDEX idx_status_country ON events(status, country_iso)', + 'idx_start_date' => 'CREATE INDEX idx_start_date ON events(start_date)', + 'idx_end_date' => 'CREATE INDEX idx_end_date ON events(end_date)', + 'idx_activity_type' => 'CREATE INDEX idx_activity_type ON events(activity_type)', + 'idx_highlighted_status' => 'CREATE INDEX idx_highlighted_status ON events(highlighted_status)', + 'idx_lat_lon' => 'CREATE INDEX idx_lat_lon ON events(latitude, longitude)', + 'idx_creator_id' => 'CREATE INDEX idx_creator_id ON events(creator_id)', + 'idx_user_email' => 'CREATE INDEX idx_user_email ON events(user_email)', + 'idx_status_start' => 'CREATE INDEX idx_status_start ON events(status, start_date)', + ]; + + foreach ($indexes as $name => $sql) { + try { + if ($rollback) { + DB::statement("DROP INDEX {$name} ON events"); + $this->info("Dropped index: {$name}"); + } else { + $exists = DB::select( + "SELECT COUNT(1) as count FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = 'events' AND index_name = ?", + [$name] + ); + + if (!empty($exists) && $exists[0]->count == 0) { + DB::statement($sql); + $this->info("Created index: {$name}"); + } else { + $this->line("Index already exists: {$name}"); + } + } + } catch (\Throwable $e) { + $this->error("Failed to " . ($rollback ? 'drop' : 'create') . " index {$name}: " . $e->getMessage()); + } + } + + $this->info('Index operation completed.'); + return 0; + } +} diff --git a/app/Console/Commands/Excellence.php b/app/Console/Commands/Excellence.php index 647611feb..d564fc037 100644 --- a/app/Console/Commands/Excellence.php +++ b/app/Console/Commands/Excellence.php @@ -47,7 +47,7 @@ public function handle(): void //Select the winners from the Database $winners = []; foreach ($codeweek4all_codes as $codeweek4all_code) { - $creators = Event::whereYear('end_date', '=', $edition)->where('status', '=', 'APPROVED')->where('codeweek_for_all_participation_code', '=', $codeweek4all_code)->pluck('creator_id'); + $creators = Event::whereYear('end_date', '=', $edition)->where('status', 'APPROVED')->where('codeweek_for_all_participation_code', '=', $codeweek4all_code)->pluck('creator_id'); foreach ($creators as $creator) { if (! in_array($creator, $winners)) { $winners[] = $creator; diff --git a/app/Console/Commands/Kernel.php b/app/Console/Commands/Kernel.php new file mode 100644 index 000000000..b772099a5 --- /dev/null +++ b/app/Console/Commands/Kernel.php @@ -0,0 +1,30 @@ +headers->get('Content-Type'), 'text/html')) { + $content = $response->getContent(); + $content = str_replace( + 'https://s3-eu-west-1.amazonaws.com/codeweek-s3/', + 'https://codeweek-s3.s3.eu-west-1.amazonaws.com/', + $content + ); + $response->setContent($content); + } + + return $response; + } +} \ No newline at end of file diff --git a/app/Console/Commands/LocationExtraction.php b/app/Console/Commands/LocationExtraction.php index 2b59801aa..b6ebc31f1 100644 --- a/app/Console/Commands/LocationExtraction.php +++ b/app/Console/Commands/LocationExtraction.php @@ -32,7 +32,7 @@ public function handle(): void Event::whereNull('deleted_at')-> // where('id','=',163373)-> // where('creator_id',153701)-> - where('status', '=', 'APPROVED')-> + where('status', 'APPROVED')-> whereNull('location_id')->chunkById($this->step, function ($events, $index) { $this->reportProgress($index); diff --git a/app/Console/Commands/SyncEventAgesFromAudience.php b/app/Console/Commands/SyncEventAgesFromAudience.php new file mode 100644 index 000000000..362c22a03 --- /dev/null +++ b/app/Console/Commands/SyncEventAgesFromAudience.php @@ -0,0 +1,83 @@ + [1], // Pre-school children + '6-9' => [2], // Elementary school students + '10-12' => [2], // Upper primary → still Elementary + '13-15' => [3], // Lower secondary → High school + '16-18' => [3], // Upper secondary → High school + '19-25' => [4, 5], // Graduate & Post graduate students + 'over-25' => [6, 7, 9], // Employed + Unemployed adults + Teachers + ]; + + /** + * Execute the console command. + */ + public function handle() + { + $this->info('Syncing event.ages from audience_event...'); + + $map = self::AGE_AUDIENCE_MAP; + + $audienceToAges = []; + foreach ($map as $ageKey => $audienceIds) { + foreach ($audienceIds as $audienceId) { + $audienceToAges[$audienceId][] = $ageKey; + } + } + + $links = DB::table('audience_event') + ->select('event_id', 'audience_id') + ->get() + ->groupBy('event_id'); + + $updated = 0; + + foreach ($links as $eventId => $group) { + $ageKeys = collect($group) + ->flatMap(function ($row) use ($audienceToAges) { + return $audienceToAges[$row->audience_id] ?? []; + }) + ->unique() + ->values() + ->all(); + + if (!empty($ageKeys)) { + Event::where('id', $eventId)->update([ + 'ages' => json_encode($ageKeys), + ]); + $updated++; + } + } + + $this->info("Updated `ages` field for $updated events."); + return 0; + } +} diff --git a/app/Console/Commands/SyncThemesFromFinalList.php b/app/Console/Commands/SyncThemesFromFinalList.php new file mode 100644 index 000000000..0e83d0c9f --- /dev/null +++ b/app/Console/Commands/SyncThemesFromFinalList.php @@ -0,0 +1,267 @@ + 'AI & Generative AI', + 'Artificial intelligence' => 'AI & Generative AI', + + // Robotics, Drones, Devices + 'Robotics' => 'Robotics, Drones & Smart Devices', + 'Drones' => 'Robotics, Drones & Smart Devices', + 'Hardware' => 'Robotics, Drones & Smart Devices', + 'Digital Technologies' => 'Robotics, Drones & Smart Devices', + + // Web/App/Software Dev + 'Mobile app development' => 'Web, App & Software Development', + 'Web development' => 'Web, App & Software Development', + 'Software development' => 'Web, App & Software Development', + + // Game Design + 'Game design' => 'Game Design', + + // Cybersecurity & Data + 'Data manipulation and visualisation' => 'Cybersecurity & Data', // best match despite not direct + + // Visual/Block Programming + 'Basic programming concepts' => 'Visual/Block Programming', + 'Visual/Block programming' => 'Visual/Block Programming', + + // Art & Creative Coding + 'Art and creativity' => 'Art & Creative Coding', + + // Internet of Things & Wearables + 'Sensors' => 'Internet of Things & Wearables', + 'Internet of things and wearable computing' => 'Internet of Things & Wearables', + + // AR/VR/3D + '3D printing' => 'AR, VR & 3D Technologies', + 'Augmented reality' => 'AR, VR & 3D Technologies', + + // Digital Careers + 'Digital careers' => 'Digital Careers & Learning Pathways', + 'Digital learning pathways' => 'Digital Careers & Learning Pathways', + + // Soft Skills + 'Soft Skills' => 'Digital Literacy & Soft Skills', + + // Unplugged & Playful + 'Unplugged activities' => 'Unplugged & Playful Activities', + 'Playful coding activities' => 'Unplugged & Playful Activities', + + // Diversity + 'Promoting diversity' => 'Promoting Diversity & Inclusion', + + // Awareness + 'Motivation and awareness raising' => 'Awareness & Inspiration', + + // Other + 'Other' => 'Other', + ]; + + protected $finalThemes = [ + [17, 'AI & Generative AI', 15], + [6, 'Robotics, Drones & Smart Devices', 1], + [2, 'Web, App & Software Development', 4], + [13, 'Game Design', 10], + [5, 'Cybersecurity & Data', 2], + [1, 'Visual/Block Programming', 5], + [11, 'Art & Creative Coding', 8], + [14, 'Internet of Things & Wearables', 11], + [16, 'AR, VR & 3D Technologies', 12], + [3, 'Digital Careers & Learning Pathways', 13], + [4, 'Digital Literacy & Soft Skills', 14], + [9, 'Unplugged & Playful Activities', 6], + [19, 'Promoting Diversity & Inclusion', 17], + [18, 'Awareness & Inspiration', 16], + [8, 'Other', 18], + ]; + + /** + * Execute the console command. + */ + public function handle() + { + $restoreOnly = $this->option('restore'); + + if ($restoreOnly) { + return $this->restoreBackup(); + } + + $this->info('Starting themes sync and migration...'); + + DB::beginTransaction(); + + try { + DB::statement('SET FOREIGN_KEY_CHECKS=0'); + config(['database.connections.mysql.strict' => false]); + DB::reconnect(); + + $eventThemeOld = DB::table('event_theme') + ->join('themes', 'event_theme.theme_id', '=', 'themes.id') + ->select('event_theme.event_id', 'themes.name as old_theme_name', 'event_theme.theme_id') + ->get(); + + if ( !Storage::disk('excel')->exists(self::BACKUP_FILE)) { + Storage::disk('excel')->put(self::BACKUP_FILE, $eventThemeOld->toJson(JSON_PRETTY_PRINT)); + $this->info('Backed up current event_theme to ' . self::BACKUP_FILE); + } + else { + $this->info('No update, Backed up current event_theme exist in ' . self::BACKUP_FILE); + } + + DB::table('event_theme')->delete(); + DB::table('themes')->delete(); + + $finalThemesMap = collect($this->finalThemes)->map(function ($theme) { + return [ + 'id' => $theme[0], + 'name' => $theme[1], + 'order' => $theme[2], + ]; + }); + + DB::table('themes')->insert($finalThemesMap->toArray()); + + // Set AUTO_INCREMENT to max(id) + 1 + $maxId = collect($this->finalThemes)->max(fn($theme) => $theme[0]); + DB::statement('ALTER TABLE themes AUTO_INCREMENT = ' . ($maxId + 1)); + + $newThemes = DB::table('themes')->get()->keyBy('name'); + + $mappedRows = []; + + foreach ($eventThemeOld as $item) { + $newName = self::OLD_TO_NEW_THEME_MAP[$item->old_theme_name] ?? null; + if ($newName && isset($newThemes[$newName])) { + $mappedRows[] = [ + 'event_id' => $item->event_id, + 'theme_id' => $newThemes[$newName]->id, + ]; + } + } + + $validatedRows = []; + + foreach (array_chunk($mappedRows, 500) as $chunk) { + $eventIds = array_column($chunk, 'event_id'); + + $existingIds = DB::table('events') + ->whereIn('id', $eventIds) + ->pluck('id') + ->toArray(); + + $validatedRows = array_merge($validatedRows, array_filter($chunk, fn($row) => in_array($row['event_id'], $existingIds))); + } + + $uniqueRows = collect($validatedRows) + ->unique(fn($row) => $row['event_id'] . '-' . $row['theme_id']) + ->values() + ->all(); + + foreach (array_chunk($uniqueRows, 1000) as $chunk) { + DB::table('event_theme')->insert($chunk); + } + + DB::statement('SET FOREIGN_KEY_CHECKS=1'); + config(['database.connections.mysql.strict' => true]); + DB::reconnect(); + + DB::commit(); + + $this->info("Themes synced and event_theme migrated successfully. Total migrated: " . count($uniqueRows)); + } catch (\Throwable $e) { + DB::rollBack(); + $this->error("Error syncing themes: " . $e->getMessage()); + } + + return 0; + } + + protected function restoreBackup(): int + { + $this->info('Restoring event_theme from backup...'); + + if (!Storage::disk('excel')->exists(self::BACKUP_FILE)) { + $this->error('Backup file not found: ' . self::BACKUP_FILE); + return 1; + } + + $raw = Storage::disk('excel')->get(self::BACKUP_FILE); + $data = json_decode($raw, true); + $data = collect($data)->map(function ($row) { + return [ + 'event_id' => $row['event_id'], + 'theme_id' => $row['theme_id'], + ]; + })->values()->all(); + + if (empty($data)) { + $this->error('Backup is empty or invalid.'); + return 1; + } + + try { + config(['database.connections.mysql.strict' => false]); + DB::reconnect(); + + DB::beginTransaction(); + DB::statement('SET FOREIGN_KEY_CHECKS=0'); + + DB::table('event_theme')->delete(); + DB::table('themes')->delete(); + + DB::statement('SET FOREIGN_KEY_CHECKS=1'); + DB::commit(); + + $this->info('Running legacy ThemeTableSeeder...'); + $this->callSilent('db:seed', [ + '--class' => 'ThemeTableSeeder', + ]); + + DB::beginTransaction(); + DB::statement('SET FOREIGN_KEY_CHECKS=0'); + + foreach (array_chunk($data, 1000) as $chunk) { + DB::table('event_theme')->insert($chunk); + } + + DB::statement('SET FOREIGN_KEY_CHECKS=1'); + DB::commit(); + + config(['database.connections.mysql.strict' => true]); + DB::reconnect(); + + $this->info('Restored event_theme successfully: ' . count($data) . ' rows.'); + } catch (\Throwable $e) { + DB::rollBack(); + $this->error('Restore failed: ' . $e->getMessage()); + return 1; + } + + return 0; + } +} diff --git a/app/Console/Commands/TestLatestEvent.php b/app/Console/Commands/TestLatestEvent.php new file mode 100644 index 000000000..764a04e76 --- /dev/null +++ b/app/Console/Commands/TestLatestEvent.php @@ -0,0 +1,67 @@ +first(); + + if (! $event) { + $this->error('❌ No event found.'); + return; + } + + $this->info("✅ Latest Event: {$event->title} (ID: {$event->id})\n"); + + $fields = [ + 'title' => $event->title, + 'slug' => $event->slug, + 'organizer' => $event->organizer, + 'description' => $event->description, + 'country_iso' => $event->country_iso, + 'language' => $event->language, + 'location' => $event->location, + 'start_date' => $event->start_date, + 'end_date' => $event->end_date, + 'event_url' => $event->event_url, + 'user_email' => $event->user_email, + 'creator_id' => $event->creator_id, + 'longitude' => $event->longitude, + 'latitude' => $event->latitude, + 'geoposition' => $event->geoposition, + 'picture' => $event->picture, + 'activity_type' => $event->activity_type, + 'activity_format' => $event->activity_format, + 'duration' => $event->duration, + 'recurring_event' => $event->recurring_event, + 'recurring_type' => $event->recurring_type, + 'males_count' => $event->males_count, + 'females_count' => $event->females_count, + 'other_count' => $event->other_count, + 'is_extracurricular_event' => $event->is_extracurricular_event, + 'is_standard_school_curriculum' => $event->is_standard_school_curriculum, + 'is_use_resource' => $event->is_use_resource, + 'ages' => $event->ages, + 'audiences' => $event->audiences()->pluck('id')->toArray(), + 'themes' => $event->themes()->pluck('id')->toArray(), + 'created_at' => $event->created_at, + 'updated_at' => $event->updated_at, + 'status' => $event->status, + ]; + + foreach ($fields as $key => $value) { + $pretty = is_array($value) ? json_encode($value) : (string) $value; + $this->line("• {$key}: {$pretty}"); + } + + $this->info("\n✅ Done.\n"); + } +} diff --git a/app/Console/Commands/excel/EventiEvents.php b/app/Console/Commands/excel/EventiEvents.php index 303dc6863..a5fb61b1b 100644 --- a/app/Console/Commands/excel/EventiEvents.php +++ b/app/Console/Commands/excel/EventiEvents.php @@ -42,7 +42,7 @@ public function handle(): void Excel::import( new EventiEventsImport(), - resource_path('excel/eventi.xlsx') + resource_path('excel/.xlsx') ); } } diff --git a/app/Console/Commands/excel/EventsImport.php b/app/Console/Commands/excel/EventsImport.php new file mode 100644 index 000000000..81278e28c --- /dev/null +++ b/app/Console/Commands/excel/EventsImport.php @@ -0,0 +1,49 @@ +input('year', Carbon::now('Europe/Brussels')->year); - $isos = DB::table('events') - ->select(['country_iso']) - ->where('status', "=", "APPROVED") - ->whereYear('end_date', '>=', Carbon::now('Europe/Brussels')->year) + $countries = DB::table('events') + ->select('country_iso as iso', DB::raw('COUNT(*) as total')) + ->where('status', '=', 'APPROVED') + ->whereYear('end_date', '>=', $year) + ->whereNotNull('geoposition') ->groupBy('country_iso') - ->get() - ->pluck('country_iso'); - - $countries = Country::findMany($isos)->sortBy('name'); - - return $countries; - + ->get(); + + $result = $countries->map(function ($row) { + $country = Country::find($row->iso); + return [ + 'iso' => $row->iso, + 'name' => $country ? __('countries.' . $country->name) : $row->iso, + 'total' => $row->total, + ]; + })->sortBy('name')->values(); + + return $result; } diff --git a/app/Event.php b/app/Event.php index 75fd24aad..5d419ec5c 100644 --- a/app/Event.php +++ b/app/Event.php @@ -16,9 +16,11 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; +use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Spatie\Activitylog\LogOptions; use Stevebauman\Purify\Casts\PurifyHtmlOnGet; +use Illuminate\Database\Eloquent\Casts\Attribute; class Event extends Model { @@ -67,6 +69,58 @@ class Event extends Model 'location_id', 'leading_teacher_tag', 'mass_added_for', + 'activity_format', + 'duration', + 'recurring_event', + 'recurring_type', + 'males_count', + 'females_count', + 'other_count', + 'is_extracurricular_event', + 'is_standard_school_curriculum', + 'is_use_resource', + 'ages' + ]; + + public const ACTIVITY_FORMATS = [ + 'coding-camp', + 'summer-camp', + 'weekend-course', + 'evening-course', + 'careerday', + 'university-visit', + 'coding-home', + 'code-week-challenge', + 'competition', + 'other', + ]; + + public const DURATIONS = [ + '0-1', + '1-2', + '2-4', + 'over-4', + ]; + + public const RECURRING_TYPES = [ + 'consecutive', + 'individual', + ]; + + public const RECURRING_EVENTS = [ + 'daily', + 'weekly', + 'monthly', + ]; + + public const AGES = [ + 'under-5', + '6-9', + '10-12', + '13-15', + '16-18', + '19-25', + 'over-25', ]; // protected $policies = [ @@ -74,7 +128,14 @@ class Event extends Model // Event::class => EventPolicy::class // ]; - //protected $appends = ['LatestModeration']; + protected $appends = ['picture_path', 'languages']; + + public function getLanguagesAttribute() { + if(!is_array($this->language)) { + return explode(',', $this->language) ?? null; + } + return $this->language; + } public function getUrlAttribute() { if (!empty($this->slug)) { @@ -108,7 +169,12 @@ protected function casts(): array 'description' => PurifyHtmlOnGet::class, 'title' => PurifyHtmlOnGet::class, 'location' => PurifyHtmlOnGet::class, - 'language' => PurifyHtmlOnGet::class, + + 'activity_format' => 'array', + 'is_extracurricular_event' => 'boolean', + 'is_standard_school_curriculum' => 'boolean', + 'ages' => 'array', + 'is_use_resource' => 'boolean', ]; } @@ -140,6 +206,8 @@ public function picture_path() return $this->picture; } + // For local test + // return Storage::disk('public')->url($this->picture); return config('codeweek.aws_url').$this->picture; } else { return 'https://s3-eu-west-1.amazonaws.com/codeweek-dev/events/pictures/event_default_picture.png'; @@ -212,7 +280,7 @@ public function scopeFilter($query, EventFilters $filters) public static function getByYear($year) { - $events = Event::where('status', 'like', 'APPROVED')->where( + $events = Event::where('status', 'APPROVED')->where( 'start_date', '>', Carbon::createFromDate($year, 1, 1) diff --git a/app/Filters/EventFilters.php b/app/Filters/EventFilters.php index 5686edfbb..cf153ba12 100755 --- a/app/Filters/EventFilters.php +++ b/app/Filters/EventFilters.php @@ -3,7 +3,6 @@ namespace App\Filters; use App\Tag; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Support\Str; @@ -15,7 +14,20 @@ class EventFilters extends Filters * * @var array */ - protected $filters = ['countries', 'query', 'themes', 'audiences', 'types', 'year', 'creator_id', 'tag']; + protected $filters = [ + 'countries', + 'query', + 'themes', + 'audiences', + 'types', + 'year', + 'creator_id', + 'tag', + 'formats', + 'ages', + 'languages', + 'start_date' + ]; public function __construct(Request $request) { @@ -50,13 +62,11 @@ protected function countries($countries): Builder protected function year($year) { return $this->builder->whereYear('end_date', '=', $year); - } protected function creator_id($creator_id) { return $this->builder->where('creator_id', '=', $creator_id); - } protected function query($query) @@ -85,7 +95,6 @@ protected function themes($themes) return $this->builder ->leftJoin('event_theme', 'events.id', '=', 'event_theme.event_id') ->whereIn('event_theme.theme_id', $themesIds); - } protected function tag($tag) @@ -104,7 +113,6 @@ protected function tag($tag) return $this->builder ->leftJoin('event_tag', 'events.id', '=', 'event_tag.event_id') ->where('event_tag.tag_id', $selectedTag->id); - } protected function audiences($audiences) @@ -119,7 +127,6 @@ protected function audiences($audiences) return $this->builder ->leftJoin('audience_event', 'events.id', '=', 'audience_event.event_id') ->whereIn('audience_event.audience_id', $audiencesIds); - } protected function types($types) @@ -129,11 +136,65 @@ protected function types($types) return; } - $keys = collect($types)->pluck('key')->all(); + $keys = collect($types)->pluck('id')->all(); $result = $this->builder->whereIn('activity_type', $keys); return $result; + } + + protected function start_date($start_date) + { + if (!empty($start_date)) { + return $this->builder->where('start_date', '>=', $start_date); + } + return; + } + + protected function languages($languages) + { + if (empty($languages)) { + return; + } + + $keys = collect($languages)->pluck('id')->all(); + + $this->builder->where(function ($query) use ($keys) { + foreach ($keys as $lang) { + $query->orWhereRaw('FIND_IN_SET(?, language)', [$lang]); + } + }); + return $this->builder; + } + + protected function formats($formats) + { + if (empty($formats)) { + return; + } + + $keys = collect($formats)->pluck('id')->all(); + + $this->builder->where(function ($query) use ($keys) { + foreach ($keys as $key) { + $query->orWhereRaw("JSON_CONTAINS(activity_format, '\"$key\"')"); + } + }); + } + + protected function ages($ages) + { + if (empty($ages)) { + return; + } + + $keys = collect($ages)->pluck('id')->all(); + + $this->builder->where(function ($query) use ($keys) { + foreach ($keys as $key) { + $query->orWhereRaw("JSON_CONTAINS(ages, '\"$key\"')"); + } + }); } } diff --git a/app/Filters/MatchmakingProfileFilters.php b/app/Filters/MatchmakingProfileFilters.php new file mode 100644 index 000000000..6ae900ddf --- /dev/null +++ b/app/Filters/MatchmakingProfileFilters.php @@ -0,0 +1,181 @@ +builder; + } + + return $this->builder->whereIn('type', $types); + } + + protected function locations($countries): Builder + { + if (empty($countries)) { + return $this->builder; + } + return $this->builder->whereIn('country', $countries); + } + + protected function types($values): Builder + { + if (empty($values)) { + return $this->builder; + } + logger($values); + return $this->builder->where(function ($q) use ($values) { + foreach ($values as $value) { + $q->orWhereJsonContains('organisation_type', $value); + } + }); + } + + protected function languages($languages): Builder + { + if (empty($languages)) { + return $this->builder; + } + return $this->builder->where(function ($q) use ($languages) { + foreach ($languages as $lang) { + $q->orWhereJsonContains('languages', $lang); + } + }); + } + + protected function support_activities($activities): Builder + { + if (empty($activities)) { + return $this->builder; + } + return $this->builder->where(function ($q) use ($activities) { + foreach ($activities as $activity) { + $q->orWhereJsonContains('support_activities', $activity); + } + }); + } + + protected function target_school_types($types): Builder + { + if (empty($types)) { + return $this->builder; + } + return $this->builder->where(function ($q) use ($types) { + foreach ($types as $type) { + $q->orWhereJsonContains('target_school_types', $type); + } + }); + } + + protected function time_commitment($commitments): Builder + { + if (empty($commitments)) { + return $this->builder; + } + return $this->builder->where(function ($q) use ($commitments) { + foreach ($commitments as $commitment) { + $q->orWhereJsonContains('time_commitment', $commitment); + } + }); + } + + protected function format($formats): Builder + { + if (empty($formats)) { + return $this->builder; + } + return $this->builder->whereIn('format', $formats); + } + + protected function can_start_immediately($flag): Builder + { + if (is_null($flag)) { + return $this->builder; + } + return $this->builder->where('can_start_immediately', (bool)$flag); + } + + protected function want_updates($flag): Builder + { + if (is_null($flag)) { + return $this->builder; + } + return $this->builder->where('want_updates', (bool)$flag); + } + + protected function agree_to_be_contacted_for_feedback($flag): Builder + { + if (is_null($flag)) { + return $this->builder; + } + return $this->builder->where('agree_to_be_contacted_for_feedback', (bool)$flag); + } + + protected function start_time($start): Builder + { + if (empty($start)) { + return $this->builder; + } + return $this->builder->where('start_time', '>=', $start); + } + + protected function topics($values): Builder + { + if (empty($values)) { + return $this->builder; + } + return $this->builder->where(function ($q) use ($values) { + foreach ($values as $value) { + $q->orWhereJsonContains('digital_expertise_areas', $value); + } + }); + } + + protected function query($q) + { + if (empty($q)) { + return $this->builder; + } + return $this->builder->where(function ($builder) use ($q) { + $builder->where('first_name', 'LIKE', "%$q%") + ->orWhere('last_name', 'LIKE', "%$q%") + ->orWhere('organisation_name', 'LIKE', "%$q%") + ->orWhere('organisation_mission', 'LIKE', "%$q%") + ->orWhere('description', 'LIKE', "%$q%"); + }); + } +} diff --git a/app/Helpers/Codeweek4AllHelper.php b/app/Helpers/Codeweek4AllHelper.php index fe8745454..6500c58fa 100644 --- a/app/Helpers/Codeweek4AllHelper.php +++ b/app/Helpers/Codeweek4AllHelper.php @@ -17,7 +17,7 @@ public static function kpis($code, $edition = null) $result = Event::select(DB::raw('count(DISTINCT creator_id) as total_creators, sum(participants_count) as participants_count, count(id) as event_count, codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ['codeweek_for_all_participation_code', '=', $code], ]) ->whereYear('end_date', '=', $edition) @@ -39,7 +39,7 @@ public static function countries($code, $edition = null) select(DB::raw('count(DISTINCT creator_id) as total_creators, sum(participants_count) as total_participants, codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ]) ->whereYear('end_date', '=', $edition) ->groupBy('codeweek_for_all_participation_code') @@ -51,7 +51,7 @@ public static function countries($code, $edition = null) $result = Event::select(DB::raw('sum(participants_count) as participants_count, count(id) as event_count, codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ['codeweek_for_all_participation_code', '=', $code], ]) ->whereYear('end_date', '=', $edition) @@ -71,7 +71,7 @@ public static function getDetailsByCodeweek4All(array $toArray, $edition = null) return Event::select(DB::raw('codeweek_for_all_participation_code, sum(participants_count) as total_participants, count(DISTINCT creator_id) as total_creators, count(DISTINCT country_iso) as total_countries, count(id) as total_activities, ((100.0*count(reported_at))/count(*)) as reporting_percentage')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ]) ->whereYear('end_date', '=', $edition) ->whereIn('codeweek_for_all_participation_code', $toArray) @@ -88,7 +88,7 @@ public static function getCountriesByCodeweek4All($code, $edition = null) $result = Event::select(DB::raw('countries.name , count(events.id) as event_per_country')) ->join('countries', 'events.country_iso', '=', 'countries.iso') ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ['codeweek_for_all_participation_code', 'like', $code], ]) ->whereYear('end_date', '=', $edition) @@ -103,7 +103,7 @@ public static function getInitiatorByCodeweek4All($code) $result = Event::select(DB::raw('users.email')) ->join('users', 'events.creator_id', '=', 'users.id') ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ['codeweek_for_all_participation_code', 'like', $code], ]) ->orderBy('events.created_at', 'asc') diff --git a/app/Helpers/EventHelper.php b/app/Helpers/EventHelper.php index 378b3cc71..59639afa5 100644 --- a/app/Helpers/EventHelper.php +++ b/app/Helpers/EventHelper.php @@ -20,7 +20,7 @@ public static function getCloseEvents($longitude, $latitude, $id = 0, $num = 3) } $events = Event::selectRaw( - 'id, title, slug, start_date, end_date, picture, description, picture, creator_id, + 'id, title, slug, start_date, end_date, picture, description, picture, creator_id, highlighted_status, recurring_event, ( 6371 * acos( cos( radians(?) ) * cos( radians( latitude ) ) * @@ -31,7 +31,7 @@ public static function getCloseEvents($longitude, $latitude, $id = 0, $num = 3) AS distance', [$latitude, $longitude, $latitude] ) - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->where('id', '<>', $id) ->where('end_date', '>', Carbon::now()) ->orderBy('distance') @@ -55,7 +55,7 @@ public static function getPendindEvents() array_push($countries, $country->country_iso); } - $events = Event::where('status', '=', 'PENDING') + $events = Event::where('status', 'PENDING') ->distinct() ->select('country_iso') ->where('start_date', '>', Carbon::createFromDate(2018, 1, 1)) @@ -67,7 +67,7 @@ public static function getPendindEvents() public static function getReportedEventsWithoutCertificates() { - $events = Event::where('status', '=', 'APPROVED') + $events = Event::where('status', 'APPROVED') ->whereNotNull('reported_at') ->whereNull('certificate_url') ->whereNotNull('approved_by') @@ -81,7 +81,7 @@ public static function getReportedEventsWithoutCertificates() private static function getPendingEventsForCountry($country) { - $events = Event::where('status', '=', 'PENDING') + $events = Event::where('status', 'PENDING') ->where('start_date', '>', Carbon::createFromDate(2018, 1, 1)) ->where('country_iso', $country) ->get(); @@ -92,7 +92,7 @@ private static function getPendingEventsForCountry($country) private static function getPendingEventsCountForCountry($country) { - $count = Event::where('status', '=', 'PENDING') + $count = Event::where('status', 'PENDING') ->select('country_iso') ->where('start_date', '>', Carbon::createFromDate(2018, 1, 1)) ->where('country_iso', $country) @@ -103,7 +103,7 @@ private static function getPendingEventsCountForCountry($country) private static function getEventsQuery() { - return Event::where('status', '=', 'PENDING') + return Event::where('status', 'PENDING') ->where('start_date', '>', Carbon::createFromDate(2018, 1, 1)); } @@ -140,7 +140,7 @@ public static function getNextPendingEvent(Event $event, ?string $country = null return self::getEventsQuery()->where('id', '>', $event->id)->limit(1)->first(); } else { //Get pending events count for specific country - return Event::where('status', '=', 'PENDING') + return Event::where('status', 'PENDING') ->where('country_iso', $country) ->where('start_date', '>', Carbon::createFromDate(2018, 1, 1)) ->where('id', '<>', $event->id)->limit(1)->first(); diff --git a/app/Helpers/ExcellenceWinnersHelper.php b/app/Helpers/ExcellenceWinnersHelper.php index 0c902cd48..e6a9b550b 100644 --- a/app/Helpers/ExcellenceWinnersHelper.php +++ b/app/Helpers/ExcellenceWinnersHelper.php @@ -33,7 +33,7 @@ public static function criteria1($edition) $codes = Event::select(DB::raw('sum(participants_count) as total_participants, codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ]) ->whereYear('end_date', '=', $edition) ->groupBy('codeweek_for_all_participation_code') @@ -52,7 +52,7 @@ public static function criteria2($edition) $codes = Event::select(DB::raw('count(DISTINCT creator_id) as total_creators, sum(participants_count) as total_participants, codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ]) ->whereYear('end_date', '=', $edition) ->groupBy('codeweek_for_all_participation_code') @@ -72,7 +72,7 @@ public static function criteria3($edition) $codes = Event::select(DB::raw('count(DISTINCT country_iso) as total_countries, sum(participants_count) as total_participants,codeweek_for_all_participation_code')) ->where([ - ['status', 'like', 'APPROVED'], + ['status', 'APPROVED'], ]) ->whereYear('end_date', '=', $edition) ->groupBy('codeweek_for_all_participation_code') diff --git a/app/Helpers/MailingHelper.php b/app/Helpers/MailingHelper.php index 443b0e3e1..9aad7f671 100644 --- a/app/Helpers/MailingHelper.php +++ b/app/Helpers/MailingHelper.php @@ -11,7 +11,7 @@ public static function getActiveCreators($country) $activeIds = DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->where('users.receive_emails', true) ->where('events.country_iso', '=', $country) ->whereNull('users.deleted_at') @@ -25,7 +25,7 @@ public static function getActiveCreators($country) return DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->whereNull('events.deleted_at') ->whereIntegerInRaw('events.creator_id', $activeIds) ->groupBy('users.email') diff --git a/app/Helpers/ReminderHelper.php b/app/Helpers/ReminderHelper.php index 442fb665c..ee43f99cd 100644 --- a/app/Helpers/ReminderHelper.php +++ b/app/Helpers/ReminderHelper.php @@ -15,7 +15,7 @@ public static function getInactiveCreators($edition) $activeIds = DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') //->where('creator_id','=',$this->id) - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->where('users.receive_emails', true) ->whereNull('users.deleted_at') ->whereNull('events.deleted_at') @@ -29,7 +29,7 @@ public static function getInactiveCreators($edition) return DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') //->where('creator_id','=',$this->id) - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->whereNull('events.deleted_at') ->where(function ($query) use ($edition) { return $query->whereYear('events.end_date', '=', $edition - 1); @@ -49,7 +49,7 @@ public static function getActiveCreators() $activeIds = DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->where('users.receive_emails', true) ->whereNull('users.deleted_at') ->whereNull('events.deleted_at') @@ -62,7 +62,7 @@ public static function getActiveCreators() return DB::table('events') ->join('users', 'users.id', '=', 'events.creator_id') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->whereNull('events.deleted_at') ->whereIntegerInRaw('events.creator_id', $activeIds) ->groupBy('users.email') diff --git a/app/Http/Controllers/AmbassadorController.php b/app/Http/Controllers/AmbassadorController.php index 905c08421..76d058b68 100644 --- a/app/Http/Controllers/AmbassadorController.php +++ b/app/Http/Controllers/AmbassadorController.php @@ -25,7 +25,9 @@ public function index(UserFilters $filters) return redirect('ambassadors?country_iso='.$country_iso); } - $ambassadors = User::role('ambassador')->filter($filters)->whereNotNull('avatar_path')->whereNotNull('bio')->get(); + $ambassadors = User::role('ambassador')->filter($filters) + ->filter($filters) + ->get(); return view('ambassadors')->with([ 'ambassadors' => $ambassadors, diff --git a/app/Http/Controllers/Api/EventsController.php b/app/Http/Controllers/Api/EventsController.php index 994df55ec..bf5f1b1d9 100644 --- a/app/Http/Controllers/Api/EventsController.php +++ b/app/Http/Controllers/Api/EventsController.php @@ -31,38 +31,42 @@ public function event(Event $event) } - public function list(Request $request) - { - $year = $request->input('year') - ? $request->input('year') - : Carbon::now()->year; - - if (Cache::has('events'.$year)) { - $events = Cache::get('events'.$year); - } else { - $events = Event::getByYear($year); - - $events = $this->eventTransformer->transformCollection($events); - - $events = $events->groupBy('country'); - - if ($year == Carbon::now()->year) { - Cache::add( - 'events'.$year, - $events, - 300 - ); + public function list(Request $request) + { + $year = $request->input('year') + ? $request->input('year') + : Carbon::now()->year; + + if (Cache::has('events'.$year)) { + $events = Cache::get('events'.$year); } else { - Cache::forever('events'.$year, $events); + $events = Event::getByYear($year); + + $events = $this->eventTransformer->transformCollection($events); + + // FIX: group by UPPERCASE country + $events = $events->groupBy(function ($event) { + return strtoupper(trim($event['country'])); + }); + + if ($year == Carbon::now()->year) { + Cache::add( + 'events'.$year, + $events, + 300 + ); + } else { + Cache::forever('events'.$year, $events); + } + } + + if ($request->wantsJson()) { + return response()->json($events, 200); } - } - if ($request->wantsJson()) { - return response()->json($events, 200); + return $events; } - return $events; - } public function detail(Request $request) { @@ -105,7 +109,7 @@ public function germany(Request $request) ]); $collection = \App\Http\Resources\EventResource::collection( - Event::where('status', 'like', 'APPROVED') + Event::where('status', 'APPROVED') ->where('country_iso', 'DE') ->whereYear('end_date', '=', $validated['year']) ->get() @@ -158,7 +162,7 @@ public function geobox(Request $request) } $collection = \App\Http\Resources\EventResource::collection( - Event::where('status', 'like', 'APPROVED') + Event::where('status', 'APPROVED') ->where($box) ->whereYear('end_date', '=', $year) ->get() diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 6ae8701ca..6774e65fb 100755 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -2,15 +2,13 @@ namespace App\Http\Controllers; -use App\Country; use App\Event; -use App\Helpers\EventHelper; use App\Http\Requests\EventRequest; use App\Queries\EventsQuery; use App\Queries\PendingEventsQuery; use App\User; -use Carbon\Carbon; use Illuminate\Auth\Access\AuthorizationException; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Arr; @@ -18,6 +16,7 @@ use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Mail; use Illuminate\View\View; +use Illuminate\Http\JsonResponse; class EventController extends Controller { @@ -26,7 +25,7 @@ class EventController extends Controller */ public function __construct() { - $this->middleware('auth')->except(['index', 'show', 'my']); + $this->middleware('auth')->except(['show', 'my']); } public function my(): View @@ -49,40 +48,6 @@ public function my(): View // // } - /** - * Display a listing of the resource. - */ - public function index(Request $request): View - { - $years = range(Carbon::now()->year, 2014, -1); - - $selectedYear = $request->input('year') - ? $request->input('year') - : Carbon::now()->year; - - $iso_country_of_user = User::getGeoIPData()->iso_code; - - $ambassadors = User::role('ambassador') - ->where('country_iso', '=', $iso_country_of_user) - ->get(); - - return view('events')->with([ - 'events' => $this->eventsNearMe(), - 'years' => $years, - 'selectedYear' => $selectedYear, - 'countries' => Country::withActualYearEvents(), - 'current_country_iso' => $iso_country_of_user, - 'ambassadors' => $ambassadors, - ]); - } - - private function eventsNearMe() - { - $geoip = User::getGeoIPData(); - - return EventHelper::getCloseEvents($geoip->lon, $geoip->lat); - } - /** * Show the form for creating a new resource. */ @@ -99,12 +64,16 @@ public function create(Request $request) $leading_teachers = $this->getLeadingTeachersTagsArray(); if ($request->get('location')) { - $location = auth()->user()->locations()->where('id', $request->get('location'))->firstOrFail(); - - return view('event.add', compact(['countries', 'themes', 'languages', 'location', 'leading_teachers'])); + try { + $location = auth()->user()->locations()->where('id', $request->get('location'))->firstOrFail(); + return view('event.add', compact(['countries', 'themes', 'languages', 'location', 'leading_teachers'])); + } + catch (ModelNotFoundException $e) { + return redirect(route('activities-locations')); + } + } - - if (! auth()->user()->locations->isEmpty()) { + else { if (! $request->get('skip')) { return redirect(route('activities-locations')); } @@ -123,7 +92,7 @@ public function search(): View /** * Store a newly created resource in storage. */ - public function store(EventRequest $request): View + public function store(EventRequest $request): JsonResponse { $user = auth()->user(); @@ -137,11 +106,14 @@ public function store(EventRequest $request): View $event->createLocation(); - Mail::to(auth()->user()->email)->queue( - new \App\Mail\EventRegistered($event, auth()->user()) + Mail::to($user->email)->queue( + new \App\Mail\EventRegistered($event, $user) ); - return view('event.thankyou', compact('event')); + return response()->json([ + 'message' => 'Event registered successfully.', + 'event' => $event, + ], 201); } /** @@ -186,7 +158,7 @@ public function edit(Event $event): View ->pluck('id') ->toArray(); $selected_audiences = implode(',', $selected_audiences); - $selected_country = $event->country()->first()->iso; + $selected_country = optional($event->country()->first())->iso; $selected_language = is_null($event->language) ? 'en' : $event->language; diff --git a/app/Http/Controllers/ExcellenceWinnersController.php b/app/Http/Controllers/ExcellenceWinnersController.php index 1222f2770..dd68a311d 100644 --- a/app/Http/Controllers/ExcellenceWinnersController.php +++ b/app/Http/Controllers/ExcellenceWinnersController.php @@ -35,14 +35,14 @@ public function list(Request $request, $edition = 2024): View $details = ExcellenceWinnersHelper::query($edition, false); $total_events = DB::table('events') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') //->where('codeweek_for_all_participation_code', '<>', 'cw19-apple-eu') ->whereYear('end_date', '=', $edition) ->whereNull('deleted_at') ->count(); $total_reported = DB::table('events') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->whereNotNull('reported_at') ->whereNull('deleted_at') ->whereYear('end_date', '=', $edition) diff --git a/app/Http/Controllers/MatchMakingToolController.php b/app/Http/Controllers/MatchMakingToolController.php new file mode 100644 index 000000000..f7b129555 --- /dev/null +++ b/app/Http/Controllers/MatchMakingToolController.php @@ -0,0 +1,97 @@ +input('languages', []); + $selected_locations = $request->input('locations', []); + $selected_types = $request->input('types', []); + $selected_topics = $request->input('topics', []); + + $selected_languages = is_array($selected_languages) ? array_filter($selected_languages) : []; + $selected_locations = is_array($selected_locations) ? array_filter($selected_locations) : []; + $selected_types = is_array($selected_types) ? array_filter($selected_types) : []; + $selected_topics = is_array($selected_topics) ? array_filter($selected_topics) : []; + + $used_languages = MatchmakingProfile::query() + ->whereNotNull('languages') + ->pluck('languages') + ->filter() + ->flatMap(function ($langs) { + return is_array($langs) ? $langs : (json_decode($langs, true) ?: []); + }) + ->unique() + ->values() + ->all(); + + $languages = ResourceLanguage::whereIn('name', $used_languages) + ->orderBy('position') + ->get(['id', 'name']) + ->toArray(); + + $used_countries = MatchmakingProfile::query() + ->whereNotNull('country') + ->pluck('country') + ->unique() + ->values() + ->all(); + + $locations = Country::whereIn('iso', $used_countries) + ->orderBy('name') + ->get(['iso', 'name']) + ->toArray(); + + $types = MatchmakingProfile::getValidOrganizationTypeOptions(); + $topics = MatchmakingProfile::getUniqueDigitalExpertiseAreas(); + + $support_types = MatchmakingProfile::getValidTypes(); + $valid_formats = MatchmakingProfile::getValidFormats(); + + return view('matchmaking-tool.index', compact([ + 'selected_languages', + 'selected_locations', + 'selected_types', + 'selected_topics', + 'languages', + 'locations', + 'types', + 'topics', + 'support_types', + 'valid_formats', + ])); + } + + public function show(Request $request, string $slug): View + { + $profile = MatchmakingProfile::where('slug', $slug)->first(); + + if (! $profile) { + abort(404); + } + + $locations = Country::orderBy('name')->select(['iso', 'name'])->get()->toArray(); + + return view('matchmaking-tool.show', [ + 'profile' => $profile, + 'locations' => $locations, + ]); + } + + public function searchPOST(MatchmakingProfileFilters $filters, Request $request) + { + return MatchmakingProfile::query() + ->filter($filters) + ->orderByDesc('start_time') + ->paginate(12); + } +} diff --git a/app/Http/Controllers/ScoreboardController.php b/app/Http/Controllers/ScoreboardController.php index ecc6e62a0..9d802a7d2 100644 --- a/app/Http/Controllers/ScoreboardController.php +++ b/app/Http/Controllers/ScoreboardController.php @@ -38,7 +38,7 @@ public function index(Request $request) $total = Cache::remember('total_' . $edition, $cache_time, function () use ($edition) { Log::info("Setting cache for scoreboard total in " . $edition); return DB::table('events') - ->where('status', "=", "APPROVED") + ->where('status', "APPROVED") ->whereNull('deleted_at') ->whereYear('end_date', '=', $edition) ->count(); @@ -52,7 +52,7 @@ public function index(Request $request) $events = DB::table('events') ->join('countries', 'events.country_iso', '=', 'countries.iso') ->select('countries.iso as country_iso', 'countries.name as country_name', 'countries.population as country_population', DB::raw('count(*) as total')) - ->where('status', "=", "APPROVED") + ->where('status', "APPROVED") ->whereYear('end_date', '=', $edition) ->whereNull('deleted_at') ->where('countries.parent', "=", "") @@ -63,7 +63,7 @@ public function index(Request $request) $eventsFromDependencies = DB::table('events') ->join('countries', 'events.country_iso', '=', 'countries.iso') ->select('countries.population as population', 'countries.parent as iso', DB::raw('count(*) as total')) - ->where('status', "=", "APPROVED") + ->where('status', "APPROVED") ->whereNull('deleted_at') ->whereYear('end_date', '=', $edition) ->whereNotNull('countries.parent') diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 9b59747a4..265e93fa7 100755 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -60,74 +60,46 @@ public function search(Request $request): View public function searchPOST(EventFilters $filters, Request $request) { - $events = $this->getEvents($filters); + $paginatedEvents = $this->getPaginatedEvents($filters); - //Log::info($request->input('page')); if ($request->input('page')) { - $result = [$events]; - } else { - Log::info('no page'); - $eventsMap = $this->getAllEventsToMap($filters); - $result = [$events, $eventsMap]; + return [$paginatedEvents]; } - return $result; + $mapData = $this->transformEventsForMap($filters); + + return [$paginatedEvents, $mapData]; } - protected function getEvents(EventFilters $filters) + protected function getPaginatedEvents(EventFilters $filters) { - - $events = Event::where('status', 'like', 'APPROVED') + return Event::where('status', 'APPROVED') ->filter($filters) + ->orderByRaw("start_date > ? desc", [Carbon::today()]) ->orderBy('start_date') - ->get() - ->groupBy(function ($event) { - if ($event->start_date <= Carbon::today()) { - return 'past'; - } - - return 'future'; - }); - - if (is_null($events->get('future')) || is_null($events->get('past'))) { - return $events->flatten()->paginate(12); - } - - return $events->get('future')->merge($events->get('past'))->paginate(12); + ->paginate(12); } - protected function getAllEventsToMap(EventFilters $filters) + protected function transformEventsForMap(EventFilters $filters) { - $flattened = Arr::flatten($filters->getFilters()); $filtered = array_filter($flattened, fn($v) => $v !== null && $v !== ''); - $composed_key = implode(',', $filtered); + $composed_key = 'map_' . implode(',', $filtered); - if (empty($composed_key)) { - Log::info('Skipping cache due to empty composed_key'); - return Event::where('status', 'APPROVED') - ->filter($filters) - ->get() - ->groupBy('country'); - } + return Cache::remember($composed_key, 300, function () use ($filters) { + $grouped = []; - $value = Cache::get($composed_key, function () use ($composed_key, $filters) { - Log::info("Building cache [{$composed_key}]"); - $events = Event::where('status', 'like', 'APPROVED') + Event::select('id', 'geoposition', 'country_iso') // Only required fields + ->where('status', 'APPROVED') ->filter($filters) - ->get(); - - $events = $this->eventTransformer->transformCollection($events); - - $events = $events->groupBy('country'); - - Cache::put($composed_key, $events, 5 * 60); - - return $events; + ->cursor() + ->each(function ($event) use (&$grouped) { + $transformed = app(\App\Http\Transformers\EventTransformer::class)->transform($event); + $country = $transformed['country'] ?? 'unknown'; + $grouped[$country][] = $transformed; + }); + + return collect($grouped); }); - - Log::info("Serving from cache [{$composed_key}]"); - - return $value; } } diff --git a/app/Http/Middleware/ReplaceOldS3Urls.php b/app/Http/Middleware/ReplaceOldS3Urls.php new file mode 100644 index 000000000..995ed57a4 --- /dev/null +++ b/app/Http/Middleware/ReplaceOldS3Urls.php @@ -0,0 +1,24 @@ +headers->get('Content-Type'), 'text/html')) { + $content = $response->getContent(); + $content = str_replace( + 'https://s3-eu-west-1.amazonaws.com/codeweek-s3/', + 'https://codeweek-s3.s3.eu-west-1.amazonaws.com/', + $content + ); + $response->setContent($content); + } + + return $response; + } +} diff --git a/app/Http/Requests/EventRequest.php b/app/Http/Requests/EventRequest.php index 3e37fd724..393b1c01a 100644 --- a/app/Http/Requests/EventRequest.php +++ b/app/Http/Requests/EventRequest.php @@ -6,6 +6,7 @@ use App\Rules\validTheme; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Lang; +use Illuminate\Validation\Rule; class EventRequest extends FormRequest { @@ -31,13 +32,18 @@ public function rules(): array 'title' => 'required|min:5', 'description' => 'required|min:5', 'organizer' => 'required', + 'duration' => 'required', 'location' => 'required_unless:activity_type,open-online,invite-online', 'event_url' => 'required_if:activity_type,open-online,invite-online', - 'language' => ['required', $this->in($languages)], + 'language' => ['required', 'array'], + 'language.*' => ['required', Rule::in($languages)], 'start_date' => 'required', 'end_date' => 'required|after:start_date', 'audience' => ['required', new ValidAudience], 'theme' => ['required', new ValidTheme], + 'participants_count' => 'required', + 'ages' => 'required', + 'is_extracurricular_event' => 'required|boolean', 'country_iso' => 'required|exists:countries,iso', 'user_email' => 'required', 'organizer_type' => 'required', @@ -50,14 +56,20 @@ public function rules(): array public function messages(): array { return [ + 'activity_type.required' => 'Please select an activity type.', 'title.required' => 'Please enter a title for your event.', 'description.required' => 'Please write a short description of what the event is about.', 'organizer.required' => 'Please enter an organizer.', + 'duration.required' => 'Please specify the event duration.', 'location.required' => 'Please enter a location.', 'start_date.required' => 'Please enter a valid date and time (example: 2014-10-22 18:00).', 'end_date.required' => 'Please enter a valid date and time (example: 2014-10-22 18:00).', 'audience.required' => 'If unsure, choose Other and provide more information in the description.', 'theme.required' => 'If unsure, choose Other and provide more information in the description.', + 'participants_count.required' => 'Please specify the expected number of participants.', + 'ages.required' => 'Please select at least one age group.', + 'is_extracurricular_event.required' => 'Please specify if this is an extracurricular event.', + 'is_extracurricular_event.boolean' => 'The extracurricular event field must be true or false.', 'country.required' => 'The event\'s location should be in Europe.', 'event_url.url' => 'The activity\'s web page address should be a valid URL.', 'event_url.required' => 'The activity\'s web page is required for online activities.', diff --git a/app/Http/Resources/EventResource.php b/app/Http/Resources/EventResource.php index 8473ce1b5..5293a93f2 100644 --- a/app/Http/Resources/EventResource.php +++ b/app/Http/Resources/EventResource.php @@ -29,6 +29,7 @@ public function toArray(Request $request): array 'event_url' => $this->event_url, 'contact_person' => $this->contact_person, 'language' => $this->language, + 'languages' => $this->languages, 'imported_from_german_feeds' => $this->imported(), 'codeweek_for_all_participation_code' => $this->codeweek_for_all_participation_code, 'themes' => ThemeResource::collection($this->themes), diff --git a/app/Imports/AppleEventsImport.php b/app/Imports/AppleEventsImport.php index 229afaa3c..4a7f7e0da 100644 --- a/app/Imports/AppleEventsImport.php +++ b/app/Imports/AppleEventsImport.php @@ -7,16 +7,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; -use PhpOffice\PhpSpreadsheet\Shared\Date; -class AppleEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class AppleEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { - public function parseDate($date) - { - return Date::excelToDateTimeObject($date); - } - public function model(array $row): ?Model { @@ -45,12 +38,50 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower(explode('_', $row['language'])[0]), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } return $event; diff --git a/app/Imports/AvandeEventsImport.php b/app/Imports/AvandeEventsImport.php index 7ab7b435b..9e2a4e690 100644 --- a/app/Imports/AvandeEventsImport.php +++ b/app/Imports/AvandeEventsImport.php @@ -9,10 +9,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class AvandeEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class AvandeEventsImport extends AppleEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -72,6 +71,41 @@ public function model(array $row): ?Model 'language' => !empty($row['language']) ? strtolower(explode('_', $row['language'])[0]) : 'en', 'approved_by' => 19588, 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -88,14 +122,9 @@ public function model(array $row): ?Model } // Handle themes with validation - if (!empty($row['theme_comma_separated_ids'])) { - $themes = array_unique(array_map('trim', explode(',', $row['theme_comma_separated_ids']))); - $themes = array_filter($themes, function ($id) { - return is_numeric($id) && $id > 0 && $id <= 100; - }); - if (!empty($themes)) { - $event->themes()->attach($themes); - } + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); } return $event; diff --git a/app/Imports/BaseEventsImport.php b/app/Imports/BaseEventsImport.php new file mode 100644 index 000000000..14ab11693 --- /dev/null +++ b/app/Imports/BaseEventsImport.php @@ -0,0 +1,66 @@ +map(fn($v) => trim($v)) + ->filter(fn($v) => in_array($v, $valid, true)) + ->values() + ->all(); + } + + protected function validateSingleChoice(?string $input, array $valid): ?string + { + return in_array($input, $valid, true) ? $input : null; + } + + protected function validateThemes(string $input): array + { + if (empty($input)) { + return []; + } + + $themeIds = array_unique(array_filter(array_map('trim', explode(',', $input)))); + + // Mapping deleted old id to new id group + $themeIdMapping = [ + 7 => 6, + 10 => 9, + 12 => 1, + 15 => 16, + ]; + + $mappedThemeIds = array_map(function ($id) use ($themeIdMapping) { + return $themeIdMapping[$id] ?? $id; + }, $themeIds); + + $validThemeIds = Theme::whereIn('id', $mappedThemeIds)->pluck('id')->toArray(); + + return $validThemeIds; + } +} diff --git a/app/Imports/BulgariaEventsImport.php b/app/Imports/BulgariaEventsImport.php index 3f50d5184..a786b12b5 100644 --- a/app/Imports/BulgariaEventsImport.php +++ b/app/Imports/BulgariaEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class BulgariaEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class BulgariaEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -48,12 +47,50 @@ public function model(array $row): ?Model 'longitude' => $row['longitude'], 'latitude' => $row['latitude'], 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } return $event; diff --git a/app/Imports/CoderDojoEventsImport.php b/app/Imports/CoderDojoEventsImport.php index 367457081..21be8bbf2 100644 --- a/app/Imports/CoderDojoEventsImport.php +++ b/app/Imports/CoderDojoEventsImport.php @@ -3,15 +3,13 @@ namespace App\Imports; use App\Event; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; -class CoderDojoEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class CoderDojoEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -65,6 +63,41 @@ public function model(array $row): ?Model 'language' => !empty($row['language']) ? trim($row['language']) : 'nl', 'approved_by' => 19588, 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -79,14 +112,9 @@ public function model(array $row): ?Model } } - if (!empty($row['theme_comma_separated_ids'])) { - $themes = array_unique(array_map('trim', explode(',', $row['theme_comma_separated_ids']))); - $themes = array_filter($themes, function ($id) { - return is_numeric($id) && $id > 0 && $id <= 100; - }); - if (!empty($themes)) { - $event->themes()->attach($themes); - } + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); } return $event; diff --git a/app/Imports/CodingActivitiesEUCodeWeekSiteImport.php b/app/Imports/CodingActivitiesEUCodeWeekSiteImport.php index 413e1226b..526e97a2a 100644 --- a/app/Imports/CodingActivitiesEUCodeWeekSiteImport.php +++ b/app/Imports/CodingActivitiesEUCodeWeekSiteImport.php @@ -3,16 +3,13 @@ namespace App\Imports; use App\Event; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class CodingActivitiesEUCodeWeekSiteImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class CodingActivitiesEUCodeWeekSiteImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -71,12 +68,50 @@ public function model(array $row): ?Model 'language' => $row['language'], 'approved_by' => 19588, 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } return $event; diff --git a/app/Imports/DutchDanceEventsImport.php b/app/Imports/DutchDanceEventsImport.php index f0231de4a..79bd1fd22 100644 --- a/app/Imports/DutchDanceEventsImport.php +++ b/app/Imports/DutchDanceEventsImport.php @@ -10,10 +10,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class DutchDanceEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class DutchDanceEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -64,6 +63,41 @@ public function model(array $row): ?Model 'latitude' => $row['longitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -74,9 +108,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/DutchMoorlagEventsImport.php b/app/Imports/DutchMoorlagEventsImport.php index 344ea3465..87fa9629a 100644 --- a/app/Imports/DutchMoorlagEventsImport.php +++ b/app/Imports/DutchMoorlagEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class DutchMoorlagEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class DutchMoorlagEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -48,6 +47,41 @@ public function model(array $row): ?Model 'latitude' => $row['longitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -58,9 +92,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/DutchSimoneEventsImport.php b/app/Imports/DutchSimoneEventsImport.php index eed2bca19..489494f1a 100644 --- a/app/Imports/DutchSimoneEventsImport.php +++ b/app/Imports/DutchSimoneEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class DutchSimoneEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class DutchSimoneEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -48,6 +47,41 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -58,9 +92,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/EventiEventsImport.php b/app/Imports/EventiEventsImport.php index 6b7c7b566..24576d8e7 100644 --- a/app/Imports/EventiEventsImport.php +++ b/app/Imports/EventiEventsImport.php @@ -3,96 +3,126 @@ namespace App\Imports; use App\Event; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; -class EventiEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class EventiEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { - public function parseDate($date) - { - $arr = explode(',', $date); - array_shift($arr); - return implode($arr); - } - - public function model(array $row): ?Model - { - // Validate required fields - if ( - empty($row['activity_title']) || - empty($row['name_of_organisation']) || - empty($row['description']) || - empty($row['type_of_organisation']) || - empty($row['activity_type']) || - empty($row['country']) || - empty($row['start_date']) || - empty($row['end_date']) - ) { - Log::error('Missing required fields in row'); - return null; + public function parseDate($date) + { + $arr = explode(',', $date); + array_shift($arr); + return implode($arr); } - try { - $event = new Event([ - 'status' => 'APPROVED', - 'title' => trim($row['activity_title']), - 'slug' => str_slug(trim($row['activity_title'])), - 'organizer' => trim($row['name_of_organisation']), - 'description' => trim($row['description']), - 'organizer_type' => trim($row['type_of_organisation']), - 'activity_type' => trim($row['activity_type']), - 'location' => !empty($row['address']) ? trim($row['address']) : 'online', - 'event_url' => !empty($row['organiser_website']) ? trim($row['organiser_website']) : '', - 'contact_person' => !empty($row['contact_email']) ? trim($row['contact_email']) : '', - 'user_email' => '', - 'creator_id' => 132942, - 'country_iso' => trim($row['country']), - 'picture' => !empty($row['image_path']) ? trim($row['image_path']) : '', - 'pub_date' => now(), - 'created' => now(), - 'updated' => now(), - 'codeweek_for_all_participation_code' => 'cw20-coderdojo-eu', - 'start_date' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['start_date']), - 'end_date' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['end_date']), - 'geoposition' => (!empty($row['latitude']) && !empty($row['longitude'])) ? $row['latitude'] . ',' . $row['longitude'] : '', - 'longitude' => !empty($row['longitude']) ? trim($row['longitude']) : '', - 'latitude' => !empty($row['latitude']) ? trim($row['latitude']) : '', - 'language' => !empty($row['language']) ? trim($row['language']) : 'nl', - 'approved_by' => 19588, - 'mass_added_for' => 'Excel', - ]); - - $event->save(); - - if (!empty($row['audience_comma_separated_ids'])) { - $audiences = array_unique(array_map('trim', explode(',', $row['audience_comma_separated_ids']))); - $audiences = array_filter($audiences, function ($id) { - return is_numeric($id) && $id > 0 && $id <= 100; - }); - if (!empty($audiences)) { - $event->audiences()->attach($audiences); + public function model(array $row): ?Model + { + // Validate required fields + if ( + empty($row['activity_title']) || + empty($row['name_of_organisation']) || + empty($row['description']) || + empty($row['type_of_organisation']) || + empty($row['activity_type']) || + empty($row['country']) || + empty($row['start_date']) || + empty($row['end_date']) + ) { + Log::error('Missing required fields in row'); + return null; } - } - - if (!empty($row['theme_comma_separated_ids'])) { - $themes = array_unique(array_map('trim', explode(',', $row['theme_comma_separated_ids']))); - $themes = array_filter($themes, function ($id) { - return is_numeric($id) && $id > 0 && $id <= 100; - }); - if (!empty($themes)) { - $event->themes()->attach($themes); - } - } - return $event; - } catch (\Exception $e) { - Log::error('Event import failed: ' . $e->getMessage()); - return null; + try { + $event = new Event([ + 'status' => 'APPROVED', + 'title' => trim($row['activity_title']), + 'slug' => str_slug(trim($row['activity_title'])), + 'organizer' => trim($row['name_of_organisation']), + 'description' => trim($row['description']), + 'organizer_type' => trim($row['type_of_organisation']), + 'activity_type' => trim($row['activity_type']), + 'location' => !empty($row['address']) ? trim($row['address']) : 'online', + 'event_url' => !empty($row['organiser_website']) ? trim($row['organiser_website']) : '', + 'contact_person' => !empty($row['contact_email']) ? trim($row['contact_email']) : '', + 'user_email' => '', + 'creator_id' => 132942, + 'country_iso' => trim($row['country']), + 'picture' => !empty($row['image_path']) ? trim($row['image_path']) : '', + 'pub_date' => now(), + 'created' => now(), + 'updated' => now(), + 'codeweek_for_all_participation_code' => 'cw20-coderdojo-eu', + 'start_date' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['start_date']), + 'end_date' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['end_date']), + 'geoposition' => (!empty($row['latitude']) && !empty($row['longitude'])) ? $row['latitude'] . ',' . $row['longitude'] : '', + 'longitude' => !empty($row['longitude']) ? trim($row['longitude']) : '', + 'latitude' => !empty($row['latitude']) ? trim($row['latitude']) : '', + 'language' => !empty($row['language']) ? trim($row['language']) : 'nl', + 'approved_by' => 19588, + 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, + ]); + + $event->save(); + + if (!empty($row['audience_comma_separated_ids'])) { + $audiences = array_unique(array_map('trim', explode(',', $row['audience_comma_separated_ids']))); + $audiences = array_filter($audiences, function ($id) { + return is_numeric($id) && $id > 0 && $id <= 100; + }); + if (!empty($audiences)) { + $event->audiences()->attach($audiences); + } + } + + if (!empty($row['theme_comma_separated_ids'])) { + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } + } + + return $event; + } catch (\Exception $e) { + Log::error('Event import failed: ' . $e->getMessage()); + return null; + } } - } } diff --git a/app/Imports/EventsImport.php b/app/Imports/EventsImport.php index a1c315d08..08b43f8d5 100644 --- a/app/Imports/EventsImport.php +++ b/app/Imports/EventsImport.php @@ -9,9 +9,8 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; -class EventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class EventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -29,9 +28,18 @@ public function model(array $row): ?Model //dd(Carbon::parse($this->parseDate($row["start_date"]))->toDateTimeString()); //dd(Carbon::createFromFormat("d/m/Y",$row["start_date"])->toDateTimeString()); - Log::info($row); + Log::info($row); // Keep this for debugging + + // Resolve creator_id + $creatorId = null; + if (!empty($row['creator_id'])) { + if (is_numeric($row['creator_id'])) { + $creatorId = (int) $row['creator_id']; + } else { + $creatorId = \App\User::where('email', trim($row['creator_id']))->value('id'); + } + } - //Log::info($row["Address"]); $event = new Event([ 'status' => 'APPROVED', 'title' => $row['activity_title'], @@ -39,20 +47,21 @@ public function model(array $row): ?Model 'organizer' => $row['name_of_organisation'], 'description' => $row['description'], 'organizer_type' => $row['type_of_organisation'], + 'activity_type' => $row['activity_type'], 'location' => $row['address'], 'event_url' => $row['organiser_website'], - 'user_email' => '', - 'creator_id' => $row['creator_id'], - 'country_iso' => $row['country'], + 'user_email' => $row['contact_email'], + 'creator_id' => $creatorId, // 👈 Now safe! + 'country_iso' => strtoupper($row['country']), 'picture' => $row['image_path'], 'picture_detail' => $row['image_path_detail'], 'pub_date' => now(), 'created' => now(), 'updated' => now(), - 'codeweek_for_all_participation_code' => 'cw19-apple-eu', + 'codeweek_for_all_participation_code' => '', 'start_date' => Carbon::parse($this->parseDate($row['start_date']))->toDateTimeString(), 'end_date' => Carbon::parse($this->parseDate($row['end_date']))->toDateTimeString(), - 'geoposition' => $row['latitude'].','.$row['longitude'], + 'geoposition' => $row['latitude'] . ',' . $row['longitude'], 'longitude' => $row['longitude'], 'latitude' => $row['latitude'], 'mass_added_for' => 'Excel', @@ -61,9 +70,11 @@ public function model(array $row): ?Model $event->save(); $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0) { + $event->themes()->attach($validThemeIds); + } return $event; - } } diff --git a/app/Imports/GenericEventsImport.php b/app/Imports/GenericEventsImport.php index f5e86c8a8..b667de49e 100644 --- a/app/Imports/GenericEventsImport.php +++ b/app/Imports/GenericEventsImport.php @@ -4,83 +4,211 @@ use App\Event; use App\User; +use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; -use Illuminate\Support\Str; +use Illuminate\Support\Facades\Schema; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; +use Illuminate\Support\Str; -class GenericEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class GenericEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { - public function parseDate($date) + /** + * Cast floats with no fractional part back to int. + */ + protected function normalizeRow(array $row): array + { + foreach ($row as $key => $value) { + if (is_float($value) && floor($value) === $value) { + $row[$key] = (int) $value; + } + } + return $row; + } + + /** + * Parse Excel or string dates into proper format. + */ + protected function parseDate($value): ?string { - return Date::excelToDateTimeObject($date); + if (is_numeric($value)) { + return Date::excelToDateTimeObject($value) + ->format('Y-m-d H:i:s'); + } + try { + return Carbon::parse($value)->format('Y-m-d H:i:s'); + } catch (\Exception) { + Log::warning("Invalid date: {$value}"); + return null; + } } - public function loadUser($email) + /** + * Normalize boolean-like values. + */ + protected function parseBool($value): bool { - return User::firstOrCreate( - [ - 'email' => $email, - ], - [ - 'firstname' => '', - 'lastname' => '', - 'username' => '', - 'password' => bcrypt(Str::random()), - ] - ); + $v = strtolower(trim((string) $value)); + return in_array($v, ['1','true','yes','y'], true); } + /** + * Map a row to an Event model. + */ public function model(array $row): ?Model { + // 1) normalize numeric floats + $row = $this->normalizeRow($row); + Log::info('Importing row:', $row); + + // 2) required fields + if (empty($row['activity_title']) + || empty($row['name_of_organisation']) + || empty($row['description']) + || empty($row['type_of_organisation']) + || empty($row['activity_type']) + || empty($row['country']) + || empty($row['start_date']) + || empty($row['end_date']) + ) { + Log::error('Missing required fields, skipping row.', $row); + return null; + } + + // 3) resolve creator_id + $creatorId = null; + if (!empty($row['creator_id']) && is_int($row['creator_id'])) { + $creatorId = $row['creator_id']; + } elseif (!empty($row['creator_id']) && filter_var($row['creator_id'], FILTER_VALIDATE_EMAIL)) { + $creatorId = User::where('email', trim($row['creator_id']))->value('id'); + } elseif (!empty($row['contact_email']) && filter_var($row['contact_email'], FILTER_VALIDATE_EMAIL)) { + [$local] = explode('@', trim($row['contact_email']), 2); + $creatorId = User::where('email', 'like', "{$local}@%" + )->value('id'); + } + + // 4) build attribute array + $picture = trim($row['image_path'] ?? ''); + if ($picture && !Str::startsWith($picture, ['http://','https://'])) { + $picture = 'https://codeweek-s3.s3.amazonaws.com' . $picture; + } + $attrs = [ + 'status' => 'APPROVED', + 'title' => trim($row['activity_title']), + 'slug' => Str::slug(trim($row['activity_title'])), + 'organizer' => trim($row['name_of_organisation']), + 'description' => trim($row['description']), + 'organizer_type' => trim($row['type_of_organisation']), + 'activity_type' => trim($row['activity_type']), + 'location' => trim($row['address'] ?? ''), + 'event_url' => trim($row['organiser_website'] ?? ''), + 'user_email' => trim($row['contact_email'] ?? ''), + 'creator_id' => $creatorId, + 'country_iso' => strtoupper(trim($row['country'])), + 'picture' => $picture, + 'participants_count' => isset($row['participants_count']) + ? (int) $row['participants_count'] + : null, + 'mass_added_for' => 'Excel', + 'start_date' => $this->parseDate($row['start_date']), + 'end_date' => $this->parseDate($row['end_date']), + 'geoposition' => (!empty($row['latitude']) && !empty($row['longitude'])) + ? "{$row['latitude']},{$row['longitude']}" + : '', + 'longitude' => trim((string) ($row['longitude'] ?? '')), + 'latitude' => trim((string) ($row['latitude'] ?? '')), + 'language' => isset($row['language']) + ? strtolower(explode('_', trim($row['language']))[0]) + : 'en', + 'pub_date' => now(), + 'created' => now(), + 'updated' => now(), + 'recurring_event' => $this->parseBool($row['recurring_event'] ?? ''), + ]; + + // 5) optional counts & booleans + foreach (['males_count','females_count','other_count'] as $c) { + if (isset($row[$c])) { + $attrs[$c] = (int) $row[$c]; + } + } + foreach (['is_extracurricular_event','is_standard_school_curriculum','is_use_resource'] as $b) { + if (isset($row[$b])) { + $attrs[$b] = $this->parseBool($row[$b]); + } + } + + // 6) multi-choice fields + if (!empty($row['activity_format'])) { + $attrs['activity_format'] = $this->validateMultiChoice( + $row['activity_format'], + Event::ACTIVITY_FORMATS + ); + } + if (!empty($row['ages'])) { + $attrs['ages'] = $this->validateMultiChoice( + $row['ages'], + Event::AGES + ); + } + if (!empty($row['duration'])) { + $attrs['duration'] = $this->validateSingleChoice( + $row['duration'], + Event::DURATIONS + ); + } + if (!empty($row['recurring_type'])) { + $attrs['recurring_type'] = $this->validateSingleChoice( + $row['recurring_type'], + Event::RECURRING_TYPES + ); + } - $event = new Event([ - 'status' => 'APPROVED', - 'title' => $row['activity_title'], - 'slug' => str_slug($row['activity_title']), - 'organizer' => $row['name_of_organisation'], - 'description' => $row['description'], - 'organizer_type' => $row['type_of_organisation'], - 'activity_type' => $row['activity_type'], - 'location' => $row['address'], - 'event_url' => $row['organiser_website'], - 'user_email' => '', - 'creator_id' => $this->loadUser($row['contact_email'])->id, - 'contact_person' => $row['contact_email'], - 'country_iso' => $row['country'], - 'picture' => $row['image_path'], - 'pub_date' => now(), - 'created' => now(), - 'updated' => now(), - 'codeweek_for_all_participation_code' => 'cw23-CodeWeekNL', - 'start_date' => $this->parseDate($row['start_date']), - 'end_date' => $this->parseDate($row['end_date']), - 'geoposition' => $row['latitude'].','.$row['longitude'], - 'longitude' => $row['longitude'], - 'latitude' => $row['latitude'], - 'language' => strtolower($row['language']), - 'mass_added_for' => 'Excel', - ]); - - $event->save(); - - if ($row['audience_comma_separated_ids']) { - $event - ->audiences() - ->attach(explode(',', $row['audience_comma_separated_ids'])); - } - if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); - } - - Log::info($event->slug); - - return $event; + // 7) contact_person fallback + if (Schema::hasColumn('events','contact_person') && !empty($row['contact_email'])) { + $attrs['contact_person'] = trim($row['contact_email']); + } + + // 8) duplicate check: skip if an existing event has identical attributes + $dupQuery = Event::query(); + foreach ($attrs as $field => $value) { + // only check scalar/stringable + if (is_scalar($value) || is_null($value)) { + $dupQuery->where($field, $value); + } + } + if ($dupQuery->exists()) { + Log::info('Duplicate event detected, skipping import.', $attrs); + return null; + } + + // 9) persist & attach relations + try { + $event = new Event; + foreach ($attrs as $k => $v) { + $event->$k = $v; + } + $event->save(); + + if (!empty($row['audience_comma_separated_ids'])) { + $aud = array_filter( + explode(',', $row['audience_comma_separated_ids']), + fn($i) => is_numeric($i) && $i>0 && $i<=100 + ); + $event->audiences()->attach(array_unique($aud)); + } + if (!empty($row['theme_comma_separated_ids'])) { + $themes = $this->validateThemes($row['theme_comma_separated_ids']); + $event->themes()->attach($themes); + } + + return $event; + } catch (\Exception $e) { + Log::error('Event import failed: '.$e->getMessage(), $attrs); + return null; + } } } diff --git a/app/Imports/HamburgEventsImport.php b/app/Imports/HamburgEventsImport.php index 2ef82da0c..905781898 100644 --- a/app/Imports/HamburgEventsImport.php +++ b/app/Imports/HamburgEventsImport.php @@ -9,10 +9,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class HamburgEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class HamburgEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -49,6 +48,41 @@ public function model(array $row): ?Model 'longitude' => $row['longitude'], 'latitude' => $row['latitude'], 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -57,7 +91,10 @@ public function model(array $row): ?Model $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } if ($row['tags']) { diff --git a/app/Imports/IrelandDreamSpaceImport.php b/app/Imports/IrelandDreamSpaceImport.php index 1dd8ebe24..adda2e679 100644 --- a/app/Imports/IrelandDreamSpaceImport.php +++ b/app/Imports/IrelandDreamSpaceImport.php @@ -5,14 +5,12 @@ use App\Event; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class IrelandDreamSpaceImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class IrelandDreamSpaceImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -61,6 +59,41 @@ public function model(array $row): ?Model 'language' => '', 'approved_by' => 19588, 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); diff --git a/app/Imports/IrelandEventsImport.php b/app/Imports/IrelandEventsImport.php index 5cb2b36ef..676bafa03 100644 --- a/app/Imports/IrelandEventsImport.php +++ b/app/Imports/IrelandEventsImport.php @@ -4,17 +4,15 @@ use App\Event; use App\User; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class IrelandEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class IrelandEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { // public function parseDate($date, $time) { // $time = Date::excelToDateTimeObject($time); @@ -72,6 +70,41 @@ public function model(array $row): ?Model 'latitude' => str_replace(',', '.', $row['latitude']), 'language' => 'en', 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -80,7 +113,10 @@ public function model(array $row): ?Model $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/LuxembourgEventsImport.php b/app/Imports/LuxembourgEventsImport.php index faaf2d34e..ce38073f1 100644 --- a/app/Imports/LuxembourgEventsImport.php +++ b/app/Imports/LuxembourgEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class LuxembourgEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class LuxembourgEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -47,6 +46,41 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -57,9 +91,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } return $event; diff --git a/app/Imports/MagentaEventsImport.php b/app/Imports/MagentaEventsImport.php index 256d0ac59..2d888b14a 100644 --- a/app/Imports/MagentaEventsImport.php +++ b/app/Imports/MagentaEventsImport.php @@ -7,10 +7,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class MagentaEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class MagentaEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -46,6 +45,41 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -54,7 +88,10 @@ public function model(array $row): ?Model $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } return $event; diff --git a/app/Imports/ReportedEventsImport.php b/app/Imports/ReportedEventsImport.php index ee0b29534..28956f97b 100644 --- a/app/Imports/ReportedEventsImport.php +++ b/app/Imports/ReportedEventsImport.php @@ -10,10 +10,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class ReportedEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class ReportedEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -67,6 +66,41 @@ public function model(array $row): ?Model 'average_participant_age' => 10, 'percentage_of_females' => 50, 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -77,9 +111,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/TelerikEventsImport.php b/app/Imports/TelerikEventsImport.php index 58b3bb9ba..c1f19c2cc 100644 --- a/app/Imports/TelerikEventsImport.php +++ b/app/Imports/TelerikEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class TelerikEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class TelerikEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -48,12 +47,50 @@ public function model(array $row): ?Model 'longitude' => $row['longitude'], 'latitude' => $row['latitude'], 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); $event->audiences()->attach(explode(',', $row['audience_comma_separated_ids'])); - $event->themes()->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } return $event; diff --git a/app/Imports/UKDigitAllCharityEventsImport.php b/app/Imports/UKDigitAllCharityEventsImport.php index cfae5b1c8..4ce6b698f 100644 --- a/app/Imports/UKDigitAllCharityEventsImport.php +++ b/app/Imports/UKDigitAllCharityEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class UKDigitAllCharityEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class UKDigitAllCharityEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -48,6 +47,41 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -58,9 +92,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Imports/UKDigitAllEventsImport.php b/app/Imports/UKDigitAllEventsImport.php index 4811180ca..da6538afa 100644 --- a/app/Imports/UKDigitAllEventsImport.php +++ b/app/Imports/UKDigitAllEventsImport.php @@ -8,10 +8,9 @@ use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithHeadingRow; -use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; use PhpOffice\PhpSpreadsheet\Shared\Date; -class UKDigitAllEventsImport extends DefaultValueBinder implements ToModel, WithCustomValueBinder, WithHeadingRow +class UKDigitAllEventsImport extends BaseEventsImport implements ToModel, WithCustomValueBinder, WithHeadingRow { public function parseDate($date) { @@ -46,6 +45,41 @@ public function model(array $row): ?Model 'latitude' => $row['latitude'], 'language' => strtolower($row['language']), 'mass_added_for' => 'Excel', + 'recurring_event' => isset($row['recurring_event']) + ? $this->validateSingleChoice($row['recurring_event'], Event::RECURRING_EVENTS) + : null, + + 'males_count' => isset($row['males_count']) ? (int) $row['males_count'] : null, + 'females_count' => isset($row['females_count']) ? (int) $row['females_count'] : null, + 'other_count' => isset($row['other_count']) ? (int) $row['other_count'] : null, + + 'is_extracurricular_event' => isset($row['is_extracurricular_event']) + ? $this->parseBool($row['is_extracurricular_event']) + : false, + + 'is_standard_school_curriculum' => isset($row['is_standard_school_curriculum']) + ? $this->parseBool($row['is_standard_school_curriculum']) + : false, + + 'is_use_resource' => isset($row['is_use_resource']) + ? $this->parseBool($row['is_use_resource']) + : false, + + 'activity_format' => isset($row['activity_format']) + ? $this->validateMultiChoice($row['activity_format'], Event::ACTIVITY_FORMATS) + : [], + + 'ages' => isset($row['ages']) + ? $this->validateMultiChoice($row['ages'], Event::AGES) + : [], + + 'duration' => isset($row['duration']) + ? $this->validateSingleChoice($row['duration'], Event::DURATIONS) + : null, + + 'recurring_type' => isset($row['recurring_type']) + ? $this->validateSingleChoice($row['recurring_type'], Event::RECURRING_TYPES) + : null, ]); $event->save(); @@ -56,9 +90,10 @@ public function model(array $row): ?Model ->attach(explode(',', $row['audience_comma_separated_ids'])); } if ($row['theme_comma_separated_ids']) { - $event - ->themes() - ->attach(explode(',', $row['theme_comma_separated_ids'])); + $validThemeIds = $this->validateThemes($row['theme_comma_separated_ids'] ?? ''); + if (count($validThemeIds) > 0 ) { + $event->themes()->attach($validThemeIds); + } } Log::info($event->slug); diff --git a/app/Livewire/PartnerContentComponent.php b/app/Livewire/PartnerContentComponent.php index 3202f7c7b..fd07e996a 100644 --- a/app/Livewire/PartnerContentComponent.php +++ b/app/Livewire/PartnerContentComponent.php @@ -513,6 +513,27 @@ private function getAllPartners() 'link_url' => 'https://www.avanade.com/en-gb', 'main_img_url' => 'images/partners/avanade.png' ], + (object)[ + 'id' => 48, + 'name' => 'EU-ASE', + 'logo_url' => 'images/partners/eu-ase.png', + 'categories' => ['Partners'], + 'description' => 'The European Alliance to Save Energy (EU-ASE) is a cross-sectoral, business led organisation which aims to ensure that the voice of energy efficiency is heard across Europe. +
+ EU-ASE members have operations across all the 27 Member States of the European Union, employ over 340.000 people in the EU and have an aggregated annual turnover of €115 billion.', + 'link_url' => 'https://euase.net/', + 'main_img_url' => 'images/partners/eu-ase.png' + ], + (object)[ + 'id' => 49, + 'logo_url' => 'images/partners/philpott.png', + 'categories' => ['Sponsor'], + ], + (object)[ + 'id' => 50, + 'logo_url' => 'images/partners/kod_centrum.png', + 'categories' => ['Sponsor'], + ], ]); } diff --git a/app/MatchmakingProfile.php b/app/MatchmakingProfile.php new file mode 100644 index 000000000..6762b432d --- /dev/null +++ b/app/MatchmakingProfile.php @@ -0,0 +1,151 @@ + 'array', + 'organisation_type' => 'array', + 'support_activities' => 'array', + 'target_school_types' => 'array', + 'digital_expertise_areas' => 'array', + 'time_commitment' => 'array', + 'can_start_immediately' => 'boolean', + 'is_use_resource' => 'boolean', + 'want_updates' => 'boolean', + 'agree_to_be_contacted_for_feedback' => 'boolean', + 'start_time' => 'datetime', + 'completion_time' => 'datetime', + 'email_via_linkedin' => 'boolean', + 'avatar_dark' => 'boolean', + ]; + + // ENUM constants + public const TYPE_VOLUNTEER = 'volunteer'; + public const TYPE_ORGANISATION = 'organisation'; + + public const FORMAT_ONLINE = 'Online'; + public const FORMAT_IN_PERSON = 'In-person'; + public const FORMAT_BOTH = 'Both'; + + public const COLLABORATION_YES = 'Yes'; + public const COLLABORATION_NO = 'No'; + public const COLLABORATION_MAYBE = 'Maybe, I would like more details'; + + // Static helpers for validation / form use + public static function getValidTypes(): array + { + return [ + self::TYPE_VOLUNTEER, + self::TYPE_ORGANISATION, + ]; + } + + public static function getValidFormats(): array + { + return [ + self::FORMAT_ONLINE, + self::FORMAT_IN_PERSON, + self::FORMAT_BOTH, + ]; + } + + public static function getValidCollaborationOptions(): array + { + return [ + self::COLLABORATION_YES, + self::COLLABORATION_NO, + self::COLLABORATION_MAYBE, + ]; + } + + public static function getValidOrganizationTypeOptions(): array + { + return [ + 'Academic Institution / Research Organisation', + 'EdTech', + 'Education/Training Provider', + 'INTERNATIONAL CERTIFICATION', + 'Non-Governmental Organisation (NGO)', + 'Preschool', + 'Public Sector Organisation / Government Agency', + ]; + } + + public static function getUniqueDigitalExpertiseAreas(): array + { + return MatchmakingProfile::query() + ->pluck('digital_expertise_areas') + ->filter() + ->flatMap(function ($item) { + return is_array($item) ? $item : []; + }) + ->unique() + ->sort() + ->values() + ->all(); + } + + /** + * Get display name depending on type + */ + public function getDisplayNameAttribute(): string + { + return $this->type === self::TYPE_VOLUNTEER + ? trim("{$this->first_name} {$this->last_name}") + : $this->organisation_name; + } + + public function countryModel() + { + return $this->belongsTo(Country::class, 'country', 'iso'); + } + + public function scopeFilter($query, MatchmakingProfileFilters $filters) + { + return $filters->apply($query); + } +} diff --git a/app/MeetAndCodeRSSItem.php b/app/MeetAndCodeRSSItem.php index bdff5460f..c8ac2afb6 100644 --- a/app/MeetAndCodeRSSItem.php +++ b/app/MeetAndCodeRSSItem.php @@ -60,6 +60,31 @@ */ class MeetAndCodeRSSItem extends Model { + protected $fillable = [ + 'activity_format', + 'duration', + 'recurring_event', + 'recurring_type', + 'males_count', + 'females_count', + 'other_count', + 'is_extracurricular_event', + 'is_standard_school_curriculum', + 'is_use_resource', + 'ages' + ]; + + protected function casts(): array + { + return [ + 'activity_format' => 'array', + 'is_extracurricular_event' => 'boolean', + 'is_standard_school_curriculum' => 'boolean', + 'ages' => 'array', + 'is_use_resource' => 'boolean', + ]; + } + public function getCountryIso() { @@ -73,7 +98,6 @@ public function getCountryIso() default: return Country::where('name', 'like', $this->country)->first()->iso; } - } private function mapOrganisationTypes($organisation_type) @@ -84,7 +108,6 @@ private function mapOrganisationTypes($organisation_type) default: return 'other'; } - } private function mapActivityTypes($activity_type) @@ -97,7 +120,6 @@ private function mapActivityTypes($activity_type) default: return 'other'; } - } public function createEvent($user) @@ -125,9 +147,20 @@ public function createEvent($user) 'end_date' => $this->end_date, 'longitude' => $this->lon, 'latitude' => $this->lat, - 'geoposition' => $this->lat.','.$this->lon, + 'geoposition' => $this->lat . ',' . $this->lon, 'language' => MeetAndCodeHelper::getLanguage($this->link), 'mass_added_for' => 'RSS meet_and_code', + 'activity_format' => is_array($this->activity_format) ? $this->activity_format : [], + 'duration' => $this->duration, + 'recurring_event' => $this->recurring_event, + 'recurring_type' => $this->recurring_type, + 'males_count' => $this->males_count, + 'females_count' => $this->females_count, + 'other_count' => $this->other_count, + 'is_extracurricular_event' => $this->is_extracurricular_event, + 'is_standard_school_curriculum' => $this->is_standard_school_curriculum, + 'ages' => is_array($this->ages) ? $this->ages : [], + 'is_use_resource' => $this->is_use_resource, ]); $event->save(); @@ -137,6 +170,5 @@ public function createEvent($user) $event->themes()->attach(8); return $event; - } } diff --git a/app/Nova/MatchmakingProfile.php b/app/Nova/MatchmakingProfile.php new file mode 100644 index 000000000..3d9c33748 --- /dev/null +++ b/app/Nova/MatchmakingProfile.php @@ -0,0 +1,105 @@ +sortable(), + + Select::make('Type') + ->options(array_combine(MatchmakingProfileModel::getValidTypes(), MatchmakingProfileModel::getValidTypes())) + ->displayUsingLabels(), + + Text::make('Slug') + ->sortable() + ->rules('required', 'max:255'), + + Text::make('Avatar')->hideFromIndex(), + + Text::make('Email')->sortable(), + Text::make('First Name')->hideFromIndex(), + Text::make('Last Name')->hideFromIndex(), + Text::make('Job Title')->hideFromIndex(), + Text::make('Linkedin')->hideFromIndex(), + Text::make('Facebook')->hideFromIndex(), + Text::make('Website')->hideFromIndex(), + Text::make('Organisation Name')->sortable(), + + // Array fields as JSON textareas + Textarea::make('Languages') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)), + + Textarea::make('Organisation Type') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)), + + Textarea::make('Organisation Mission')->hideFromIndex(), + + Text::make('Location')->hideFromIndex(), + BelongsTo::make('Country', 'countryModel', \App\Nova\Country::class)->nullable(), + + Textarea::make('Support Activities') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)), + + Text::make('Interested In School Collaboration')->hideFromIndex(), + + Textarea::make('Target School Types') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)) + ->hideFromIndex(), + + Textarea::make('Topics') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)) + ->hideFromIndex(), + + Textarea::make('Time Commitment') + ->resolveUsing(fn($v) => is_array($v) ? json_encode($v) : $v) + ->fillUsing(fn($req, $mdl, $attr, $reqAttr) => $mdl->{$attr} = json_decode($req->{$reqAttr}, true)) + ->hideFromIndex(), + + Boolean::make('Dark Avatar', 'avatar_dark')->hideFromIndex(), + Boolean::make('Can Start Immediately'), + Textarea::make('Why Volunteering')->hideFromIndex(), + + Select::make('Format') + ->options(MatchmakingProfileModel::getValidFormats()) + ->displayUsingLabels(), + + Boolean::make('Is Use Resource'), + Boolean::make('Want Updates'), + Boolean::make('Agree To Be Contacted For Feedback'), + Textarea::make('Description')->hideFromIndex(), + + DateTime::make('Start Time')->hideFromIndex(), + DateTime::make('Completion Time')->hideFromIndex(), + + Boolean::make('Email Via Linkedin'), + Text::make('Get Email From')->hideFromIndex(), + ]; + } +} diff --git a/app/Observers/EventObserver.php b/app/Observers/EventObserver.php index 73f71d25b..313993fa1 100644 --- a/app/Observers/EventObserver.php +++ b/app/Observers/EventObserver.php @@ -68,4 +68,19 @@ public function forceDeleted(Event $event): void { // } + + /** + * Handle the Event "saving" event. + * + * @param \App\Models\Event $event + * @return void + */ + public function saving(Event $event) + { + if (isset($event->language)) { + if (is_array($event->language)) { + $event->language = implode(',', array_filter($event->language)); + } + } + } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 31366704c..0d22c7105 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -9,9 +9,11 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\View; +use Illuminate\Support\Arr; use Illuminate\Support\ServiceProvider; use Illuminate\Validation\Rules\Password; use Illuminate\Support\Facades\Blade; +use Illuminate\Support\Facades\Lang; class AppServiceProvider extends ServiceProvider { @@ -40,6 +42,7 @@ function ($view) { $view->with('audiences', \App\Audience::all()); $view->with('activity_types', \App\ActivityType::list()); $view->with('countries', \App\Country::translated()); + $view->with('languages', Arr::sort(Lang::get('base.languages'))); $view->with('active_countries', \App\Country::withEvents()); $view->with( 'themes', diff --git a/app/Queries/EventsQuery.php b/app/Queries/EventsQuery.php index 1894ae1d1..e1419d13a 100644 --- a/app/Queries/EventsQuery.php +++ b/app/Queries/EventsQuery.php @@ -37,6 +37,13 @@ public static function store(Request $request) abort(503, 'Title error'); } + if (!isset($request['participants_count'])) { + $request['participants_count'] = (int) $request['males_count'] + (int) $request['females_count'] + (int) $request['other_count']; + if ($request['participants_count'] > 0) { + $request['percentage_of_females'] = number_format((int) $request['females_count'] / (int) $request['participants_count'] * 100, 2); + } + } + $request['pub_date'] = Carbon::now(); $request['created'] = Carbon::now(); $request['updated'] = Carbon::now(); @@ -62,6 +69,14 @@ public static function store(Request $request) $request['codeweek_for_all_participation_code'] = $codeweek_4_all_generated_code; } + if (!empty($request['activity_format']) && is_string($request['activity_format'])) { + $request['activity_format'] = explode(',', $request['activity_format']); + } + + if (!empty($request['ages']) && is_string($request['ages'])) { + $request['ages'] = explode(',', $request['ages']); + } + $event = Event::create($request->toArray()); if (! empty($request['tags'])) { @@ -101,11 +116,26 @@ public static function update(Request $request, Event $event) $request['latitude'] = explode(',', $request['geoposition'])[0]; $request['longitude'] = explode(',', $request['geoposition'])[1]; + if (!isset($request['participants_count'])) { + $request['participants_count'] = (int) $request['males_count'] + (int) $request['females_count'] + (int) $request['other_count']; + if ($request['participants_count'] > 0) { + $request['percentage_of_females'] = number_format((int) $request['females_count'] / (int) $request['participants_count'] * 100, 2); + } + } + //In order to appear again in the list for the moderators if ($event->status == 'REJECTED') { $request['status'] = 'PENDING'; } + if (!empty($request['activity_format']) && is_string($request['activity_format'])) { + $request['activity_format'] = explode(',', $request['activity_format']); + } + + if (!empty($request['ages']) && is_string($request['ages'])) { + $request['ages'] = explode(',', $request['ages']); + } + $event->update($request->toArray()); $request['theme'] = explode(',', $request['theme']); diff --git a/app/Queries/SuperOrganiserQuery.php b/app/Queries/SuperOrganiserQuery.php index ac8510d74..f10b52a90 100644 --- a/app/Queries/SuperOrganiserQuery.php +++ b/app/Queries/SuperOrganiserQuery.php @@ -20,7 +20,7 @@ public static function mine() public static function winners($edition) { $winners = DB::table('events') - ->where('status', '=', 'APPROVED') + ->where('status', 'APPROVED') ->whereNull('deleted_at') ->whereYear('end_date', '=', $edition) ->groupBy('creator_id') diff --git a/app/User.php b/app/User.php index 1f45713e1..f33e37b58 100644 --- a/app/User.php +++ b/app/User.php @@ -385,8 +385,8 @@ public function activities($edition) { return DB::table('events') - ->where('creator_id', '=', $this->id) - ->where('status', "=", "APPROVED") + ->where('creator_id', $this->id) + ->where('status', "APPROVED") ->whereNull('deleted_at') ->whereYear('end_date', '=', $edition) ->count(); @@ -397,7 +397,7 @@ public function reported($edition = null) $query = DB::table('events') ->where('creator_id', '=', $this->id) - ->where('status', "=", "APPROVED") + ->where('status', "APPROVED") ->whereNotNull('reported_at') ->whereNull('deleted_at'); @@ -429,7 +429,7 @@ public function influence($edition = null) // Log::info("$nameInTag - $edition not in cache"); $taggedActivities = $this->taggedActivities() - ->where('status', '=', 'APPROVED'); + ->where('status', 'APPROVED'); if (!is_null($edition)) { $taggedActivities->whereYear('events.created_at', '=', $edition); diff --git a/database/migrations/2024_08_05_093711_add_uuid_failed_jobs.php b/database/migrations/2024_08_05_093711_add_uuid_failed_jobs.php index 2752d1f99..f5534df5a 100644 --- a/database/migrations/2024_08_05_093711_add_uuid_failed_jobs.php +++ b/database/migrations/2024_08_05_093711_add_uuid_failed_jobs.php @@ -11,7 +11,7 @@ */ public function up(): void { - if (Schema::hasTable('failed_jobs')) { + if (Schema::hasTable('failed_jobs') && !Schema::hasColumn('failed_jobs', 'uuid')) { Schema::table('failed_jobs', function (Blueprint $table) { $table->string('uuid')->after('id')->nullable()->unique(); }); diff --git a/database/migrations/2025_05_06_162855_add_new_fields_for_new_form_to_events_table.php b/database/migrations/2025_05_06_162855_add_new_fields_for_new_form_to_events_table.php new file mode 100644 index 000000000..b7638eae4 --- /dev/null +++ b/database/migrations/2025_05_06_162855_add_new_fields_for_new_form_to_events_table.php @@ -0,0 +1,50 @@ +json('activity_format')->nullable(); + $table->string('duration')->nullable()->after('activity_format'); + $table->string('recurring_event')->nullable()->after('duration'); + $table->string('recurring_type')->nullable()->after('recurring_event'); + $table->integer('males_count')->nullable()->after('recurring_type'); + $table->integer('females_count')->nullable()->after('males_count'); + $table->integer('other_count')->nullable()->after('females_count'); + $table->boolean('is_extracurricular_event')->default(false)->after('other_count'); + $table->boolean('is_standard_school_curriculum')->default(false)->after('is_extracurricular_event'); + $table->json('ages')->nullable()->after('is_standard_school_curriculum'); + $table->boolean('is_use_resource')->default(false)->after('ages'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('events', function (Blueprint $table) { + $table->dropColumn([ + 'activity_format', + 'duration', + 'recurring_event', + 'recurring_type', + 'males_count', + 'females_count', + 'other_count', + 'is_extracurricular_event', + 'is_standard_school_curriculum', + 'ages', + 'is_use_resource', + ]); + }); + } +}; diff --git a/database/migrations/2025_05_15_102937_add_new_fields_for_new_form_to_meet_and_code_r_s_s_items_table.php b/database/migrations/2025_05_15_102937_add_new_fields_for_new_form_to_meet_and_code_r_s_s_items_table.php new file mode 100644 index 000000000..3a79dea49 --- /dev/null +++ b/database/migrations/2025_05_15_102937_add_new_fields_for_new_form_to_meet_and_code_r_s_s_items_table.php @@ -0,0 +1,50 @@ +json('activity_format')->nullable(); + $table->string('duration')->nullable()->after('activity_format'); + $table->string('recurring_event')->nullable()->after('duration'); + $table->string('recurring_type')->nullable()->after('recurring_event'); + $table->integer('males_count')->nullable()->after('recurring_type'); + $table->integer('females_count')->nullable()->after('males_count'); + $table->integer('other_count')->nullable()->after('females_count'); + $table->boolean('is_extracurricular_event')->default(false)->after('other_count'); + $table->boolean('is_standard_school_curriculum')->default(false)->after('is_extracurricular_event'); + $table->json('ages')->nullable()->after('is_standard_school_curriculum'); + $table->boolean('is_use_resource')->default(false)->after('ages'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meet_and_code_r_s_s_items', function (Blueprint $table) { + $table->dropColumn([ + 'activity_format', + 'duration', + 'recurring_event', + 'recurring_type', + 'males_count', + 'females_count', + 'other_count', + 'is_extracurricular_event', + 'is_standard_school_curriculum', + 'ages', + 'is_use_resource', + ]); + }); + } +}; diff --git a/database/migrations/2025_05_29_064831_update_langague_to_multiple_in_events_table.php b/database/migrations/2025_05_29_064831_update_langague_to_multiple_in_events_table.php new file mode 100644 index 000000000..0f4a9d190 --- /dev/null +++ b/database/migrations/2025_05_29_064831_update_langague_to_multiple_in_events_table.php @@ -0,0 +1,28 @@ +text('language')->nullable()->change()->comment('Comma-separated language codes (e.g. "en,fr,de")'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('events', function (Blueprint $table) { + $table->string('language', 5)->nullable()->change()->comment(null); + }); + } +}; diff --git a/database/migrations/2025_06_30_132255_create_matchmaking_profiles_table.php b/database/migrations/2025_06_30_132255_create_matchmaking_profiles_table.php new file mode 100644 index 000000000..315880bc3 --- /dev/null +++ b/database/migrations/2025_06_30_132255_create_matchmaking_profiles_table.php @@ -0,0 +1,71 @@ +id(); + + $table->enum('type', ['volunteer', 'organisation']); + $table->string('slug')->unique(); + $table->string('avatar')->nullable(); + $table->boolean('avatar_dark')->default(false); + + $table->string('email')->index(); + $table->string('first_name')->nullable(); // Individual only + $table->string('last_name')->nullable(); // Individual only + $table->string('job_title')->nullable(); // Individual only + $table->string('get_email_from')->nullable(); + + $table->json('languages')->nullable(); // Individual + $table->boolean('email_via_linkedin')->default(false); + $table->string('linkedin')->nullable(); // Individual + $table->string('facebook')->nullable(); // Individual + $table->string('website')->nullable(); // Both + + $table->string('organisation_name')->nullable(); // Both + $table->json('organisation_type')->nullable(); // Both + + $table->text('organisation_mission')->nullable(); // Organisation only + + $table->string('location')->nullable(); + $table->string('country', 2)->nullable(); // ISO code + + $table->json('support_activities')->nullable(); // Both + $table->string('interested_in_school_collaboration')->nullable(); // Org + $table->json('target_school_types')->nullable(); // Org + $table->json('digital_expertise_areas')->nullable(); // Org + + $table->json('time_commitment')->nullable(); // Individual + $table->boolean('can_start_immediately')->nullable(); // Individual + $table->text('why_volunteering')->nullable(); // Individual + $table->enum('format', ['Online', 'In-person', 'Both'])->nullable(); // Individual + + $table->boolean('is_use_resource')->default(false); + $table->boolean('want_updates')->default(false); + $table->boolean('agree_to_be_contacted_for_feedback')->default(false); + + $table->text('description')->nullable(); + $table->timestamp('start_time')->nullable(); + $table->timestamp('completion_time')->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('matchmaking_profiles'); + } +}; diff --git a/database/migrations/2025_07_02_133757_create_matchmaking_profile_resource_category_table.php b/database/migrations/2025_07_02_133757_create_matchmaking_profile_resource_category_table.php new file mode 100644 index 000000000..62e266278 --- /dev/null +++ b/database/migrations/2025_07_02_133757_create_matchmaking_profile_resource_category_table.php @@ -0,0 +1,37 @@ +unsignedBigInteger('matchmaking_profile_id'); + $table->unsignedInteger('resource_category_id'); + $table->primary(['matchmaking_profile_id', 'resource_category_id']); + + $table->foreign('matchmaking_profile_id', 'mmprc_profile_fk') + ->references('id')->on('matchmaking_profiles') + ->onDelete('cascade'); + + $table->foreign('resource_category_id', 'mmprc_category_fk') + ->references('id')->on('resource_categories') + ->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('matchmaking_profile_resource_category'); + } +}; diff --git a/database/seeders/MatchmakingProfilesSeeder.php b/database/seeders/MatchmakingProfilesSeeder.php new file mode 100644 index 000000000..089168191 --- /dev/null +++ b/database/seeders/MatchmakingProfilesSeeder.php @@ -0,0 +1,623 @@ + Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:25:26')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:30:55')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/individuals/sara-buonporto.jpeg', + 'email' => 'sara.buonporto@idcert.io', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Sara', + 'last_name' => 'Buonporto', + 'slug' => Str::slug('Sara Buonporto'), + 'languages' => ['English', 'Italian', 'Spanish'], + 'job_title' => 'Chief Executive', + 'linkedin' => 'https://www.linkedin.com/in/sara-buonporto-60815231a/', + 'organisation_type' => ['EdTech', 'INTERNATIONAL CERTIFICATION'], + 'organisation_name' => 'IDCERT', + 'website' => 'https://it.idcert.io', + 'location' => 'andria, Italy', + 'country' => 'IT', + 'time_commitment' => ['Short time', 'Outside business hours'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I’m volunteering because I believe in the power of education to shape the future. Sharing my digital skills and experience can help inspire students, show them real-world applications of what they’re learning, and encourage them to explore careers in technology. It’s a meaningful way to give back and support the next generation.', + 'format' => 'Both', + 'support_activities' => [ + 'everything apart from hackathons and curricula', + 'is not giving me the possibility to select more than one' + ], + 'is_use_resource' => false, + 'want_updates' => true, + 'description' => 'IDCERT specializes in delivering certified digital skills training aligned with European standards. We operate internationally and collaborate with public institutions, schools, and ministries across multiple countries. Our programs are designed for both educators and students, and we provide multilingual support, interoperable digital credentials (Open Badges), and scalable solutions that adapt to diverse educational systems.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/19/25 19:07:32')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/19/25 19:12:25')->toDateTimeString(), + 'avatar' => null, + 'email' => '', + 'get_email_from' => 'Reached out via Linkedin', + 'email_via_linkedin' => true, + 'first_name' => 'India', + 'last_name' => 'Vera', + 'slug' => Str::slug('India Vera'), + 'languages' => ['English', 'Spanish'], + 'job_title' => 'Alfabetizadora digital', + 'linkedin' => 'https://www.linkedin.com/in/india-vera-bustamante-345511276', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Don Benito', + 'website' => '', + 'location' => 'Spain', + 'country' => 'ES', + 'time_commitment' => ['Short time', 'One-off'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I am volunteering because I believe that digital literacy and coding are essential skills for the future. I want to contribute to making technology education more accessible and engaging, especially for young people and beginners. Volunteering for Code Week allows me to share my passion for coding, inspire others, and support my community in developing the skills they need to thrive in a digital world. It’s also a great opportunity to collaborate, learn from others, and be part of a wider European initiative promoting innovation and creativity', + 'format' => 'Both', + 'support_activities' => ['Delivering webinars'], + 'is_use_resource' => false, + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 5:51:52')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 6:16:11')->toDateTimeString(), + 'avatar' => null, + 'email' => '', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Roman', + 'last_name' => 'Murzhak', + 'slug' => Str::slug('Roman Murzhak 1'), + 'languages' => ['Ukrainian', 'English with translator'], + 'job_title' => 'Head of information eco-studio', + 'linkedin' => '', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Kherson Centre of children and youth creativity', + 'website' => 'https://hcdut.ks.ua/', + 'location' => 'Ukraine, Kherson', + 'country' => 'UA', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'Good afternoon. Greetings from Ukraine. My name is Roman. For many years, I have been conducting an awareness-raising campaign on media literacy and digital literacy for my students and other educational institutions. I like to help and teach students digital skills, personal data protection, fact-checking, and information hygiene. This academic year alone, I have held more than 160 events involving 2600 students. I also started helping adults to acquire digital skills. Thank you for the opportunity to teach as many children as possible.', + 'format' => 'Online/Remote only', + 'support_activities' => ['Conducting seminars', 'trainings', 'webinars', 'online event panorama'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'I teach a wide range of topics, namely: Information hygiene, cyber fraud (phishing, vishing, smishing, shoulder surfing, catfishing), personal data protection, fact-checking, disinformation, manipulation, digital etiquette and netiquette, copyright on the Internet.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 13:02:53')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 13:08:22')->toDateTimeString(), + 'avatar' => null, + 'email' => '', + 'get_email_from' => 'Reached out to her school', + 'email_via_linkedin' => false, + 'first_name' => 'Giedre', + 'last_name' => 'Sudniute', + 'slug' => Str::slug('Giedre Sudniute'), + 'languages' => ['Lithuanian'], + 'job_title' => 'teacher', + 'linkedin' => 'Giedrė Sudniutė', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Utena Daunishkis Gymnasia', + 'website' => '', + 'location' => 'Utena', + 'country' => 'LT', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I am interested in innovations.', + 'format' => 'Online/Remote only', + 'support_activities' => ['Delivering webinars'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => ':) ', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 14:23:44')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 14:44:30')->toDateTimeString(), + 'avatar' => null, + 'email' => '', + 'get_email_from' => 'Reached out via Facebook', + 'email_via_linkedin' => false, + 'first_name' => 'Sonata', + 'last_name' => 'Jonauskienė', + 'slug' => Str::slug('Sonata Jonauskienė'), + 'languages' => ['Lithuanian'], + 'job_title' => 'Physical Education Teacher (Kindergarten)', + 'linkedin' => '', + 'facebook' => 'https://www.facebook.com/sonata.jonauskiene', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Kaunas Kindergarten "Pelėdžiukas"', + 'website' => 'https://kaunopeledziukas.lt/', + 'location' => 'Lithuania, Kaunas', + 'country' => 'LT', + 'time_commitment' => ['Short time', 'Outside business hours'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I am an expert teacher and an active, dedicated member of the eTwinning platform. I have successfully implemented several international eTwinning projects, especially focusing on coding and digital education. All of my projects have been awarded National and European Quality Labels, which reflect their high quality and impact. I volunteer because I am inspired by sharing experiences, collaborating with others, and the opportunity to grow together. I am passionate about educational innovation, constantly looking for new and creative approaches in my work. I truly believe that meaningful change starts with personal initiative. For me, volunteering is not only about helping others – it is also about personal development, inspiration, and contributing to the improvement of modern education.', + 'format' => 'Online/Remote only', + 'support_activities' => ['Mentoring students or educators'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'I have an English language barrier. I would prefer an activity for Lithuanian teachers, or an activity where I can use online translation programs (Google translate). I am a Teacher who likes to write more than speak.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 20:51:07')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/20/25 21:01:29')->toDateTimeString(), + 'avatar' => null, + 'email' => 'ldvilnele@yahoo.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Vilma', + 'last_name' => 'Sobolienė', + 'slug' => Str::slug('Vilma Sobolienė'), + 'languages' => ['Lithuanian'], + 'job_title' => 'Teacher', + 'linkedin' => 'https://www.linkedin.com/in/vilma-sobolien%C4%97-4b342113a/', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Kaunas kindergarten “Vilnelė”', + 'website' => 'https://www.darzelisvilnele.lt/', + 'location' => 'Kaunas, Lithuania', + 'country' => 'LT', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I am volunteering because I am interested in activities related to children\'s digital literacy. I want to contribute to helping young people develop their digital skills and discover the world of technology. I believe that early exposure to coding and digital tools can inspire creativity, critical thinking, and open up more opportunities for their future. It is also important to me to give back to the community by supporting the development of skills that are increasingly essential in today’s world.', + 'format' => 'Both', + 'support_activities' => ['Mentoring students or educators'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'I have a strong interest in working with younger students and introducing them to basic digital skills in a fun and engaging way. I am open to both online and in-person formats and can adapt to the needs of different schools. I am especially passionate about promoting equal access to digital education for all children, regardless of their background.', + 'agree_to_be_contacted_for_feedback' => false, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/21/25 13:40:56')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/21/25 13:51:32')->toDateTimeString(), + 'avatar' => null, + 'email' => 'dianutes@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Diana', + 'last_name' => 'Bazevičienė', + 'slug' => Str::slug('Diana Bazevičienė'), + 'languages' => ['English', 'Lithuanian'], + 'job_title' => 'Teacher', + 'linkedin' => '', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Jonavos vaikų lopšelis-darželis ,Bitutė', + 'website' => '', + 'location' => 'Lithuania', + 'country' => 'LT', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I often organize and personally take part in international eTwinning projects, give presentations at conferences, and share best practices in Lithuania. For me, it\'s an opportunity to grow, share knowledge, build new connections, and improve myself.', + 'format' => 'Online/Remote only', + 'support_activities' => ['Delivering workshops or training'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'What is most relevant to me are students aged 5–7 and their teachers, as well as younger age groups.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/21/25 19:13:16')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/21/25 19:32:22')->toDateTimeString(), + 'avatar' => null, + 'email' => 'sakiene@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Lina', + 'last_name' => 'Sakienė', + 'slug' => Str::slug('Lina Sakienė'), + 'languages' => ['English', 'Lithuanian'], + 'job_title' => 'Speech therapist', + 'linkedin' => '', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Kindergarten "Eglutė", Telšiai. Lithuania', + 'website' => '', + 'location' => 'Telšiai, Lithuania', + 'country' => 'LT', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'A desire for personal and professional growth. I want to broaden my horizons and discover new interests, as well as enjoy the process and share knowledge with others.', + 'format' => 'Online/Remote only', + 'support_activities' => ['I think I could try a few things that were mentioned before'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/26/25 10:13:31')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/26/25 10:17:28')->toDateTimeString(), + 'avatar' => null, + 'email' => 'ruben.mancera@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Rubén Darío', + 'last_name' => 'Mancera Morán', + 'slug' => Str::slug('Rubén Darío Mancera Morán'), + 'languages' => ['English', 'Spanish'], + 'job_title' => 'AUPEX', + 'linkedin' => 'Coordinador', + 'organisation_type' => [ + 'Education/Training Provider', + 'Non-Governmental Organisation (NGO)', + 'Academic Institution / Research Organisation' + ], + 'organisation_name' => '', + 'website' => 'https://www.espaciosdigitalex.org/codeweek/', + 'location' => 'España', + 'country' => 'ES', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I love Programming and computers. I am programming teacher.', + 'format' => 'Both', + 'support_activities' => ['Delivering workshops or training'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'I am the coordinator of Codeweek in AUPEX in our project Espacios Digitalex: Red de Centros de Competencias Digitales de Extremadura', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/28/25 15:50:56')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/28/25 16:06:59')->toDateTimeString(), + 'avatar' => null, + 'email' => 'romanmurzhak@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Roman', + 'last_name' => 'Murzhak', + 'slug' => Str::slug('Roman Murzhak'), + 'languages' => ['Ukrainian', 'English with translator'], + 'job_title' => 'Head of the club', + 'linkedin' => '', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Kherson Centre of children and youth creativity', + 'website' => '', + 'location' => 'Ukraine. Kherson', + 'country' => 'UA', + 'time_commitment' => ['Outside business hours', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'For many years, I have been conducting media literacy awareness campaigns for students of educational institutions. I teach courses on digital literacy, personal data protection, digital hygiene, and disinformation. Thank you for the opportunity to hold events for even more people.', + 'format' => 'Online/Remote only', + 'support_activities' => ['Conducting seminars', 'Trainings', 'Webinars'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/28/25 18:55:09')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/28/25 19:00:08')->toDateTimeString(), + 'avatar' => null, + 'email' => 'costeaagnes211@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Costea', + 'last_name' => 'Agnes Ildico', + 'slug' => Str::slug('Costea Agnes Ildico'), + 'languages' => ['German', 'Hungarian', 'Romanian', 'English'], + 'job_title' => 'Profesor educație timpurie', + 'linkedin' => '', + 'organisation_type' => ['Education/Training Provider'], + 'organisation_name' => 'Liceul Tehnologic Stănescu Valerian Tirnava', + 'website' => '', + 'location' => 'Tirnava, Sibiu, România', + 'country' => 'RO', + 'time_commitment' => ['One-off', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'Îmi place să ajut comunitatea și colegii', + 'format' => 'Online/Remote only', + 'support_activities' => ['Mentoring students or educators'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '6/2/25 8:52:31')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '6/2/25 8:59:45')->toDateTimeString(), + 'avatar' => null, + 'email' => 'sancharide.ju@gmail.com', + 'get_email_from' => null, + 'email_via_linkedin' => false, + 'first_name' => 'Sanchari', + 'last_name' => 'De', + 'slug' => Str::slug('Sanchari De'), + 'languages' => ['English', 'Swedish'], + 'job_title' => 'ICT Coordinator', + 'linkedin' => 'https://www.linkedin.com/in/sanchari-de-phd-a2419423/', + 'organisation_type' => ['Education/Training Provider', 'Public Sector Organisation / Government Agency'], + 'organisation_name' => 'Malmö International School', + 'website' => '', + 'location' => 'Malmö, Sweden', + 'country' => 'SE', + 'time_commitment' => ['One-off', 'Short time'], + 'can_start_immediately' => true, + 'why_volunteering' => 'I am willing to contribute to the integration of ICT skills into pedagogical activities following 21st century skills and merge the digital divide.', + 'format' => 'Both', + 'support_activities' => ['Deliver workshop', 'Mentor teachers and students', 'Be guest speaker', 'Deliver webinars'], + 'is_use_resource' => true, + 'want_updates' => true, + 'description' => 'I am an expert of the digitalisation process. I can help with making digital transformation plans for schools.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + + // organisations + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:08:01')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:15:42')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/global-libraries-bulgaria-foundaation.png', + 'email' => 'foundation@glbulgaria.net', + 'organisation_name' => 'Global Libraries Bulgaria Foundaation', + 'slug' => Str::slug('Global Libraries Bulgaria Foundaation'), + 'website' => 'https://www.glbulgaria.bg', + 'organisation_type' => ['Non-Governmental Organisation (NGO)'], + 'country' => 'BG', + 'organisation_mission' => 'Our mission is to contribute to the inclusion of the Bulgarian public in the global digital community, to raise their quality of life, and to promote civic participation.', + 'support_activities' => [ + 'Delivering workshops or training', + 'Providing learning resources or curricula' + ], + 'interested_in_school_collaboration' => 'Maybe, I would like more details', + 'target_school_types' => ['Primary Schools'], + 'digital_expertise_areas' => ['Coding and programming', 'Cybersecurity'], + 'want_updates' => true, + 'description' => 'GLBF, over the years, has promoted Code Week in Bulgaria through the network of public libraries.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:24:01')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:27:44')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/european-grants-international-academy.png', + 'email' => 'info@egina.eu', + 'organisation_name' => 'European Grants International Academy', + 'slug' => Str::slug('European Grants International Academy'), + 'website' => 'https://www.egina.eu/', + 'organisation_type' => ['Education/Training Provider'], + 'country' => 'IT', + 'organisation_mission' => 'EGInA – European Grants International Academy – has been founded in 2012 in Foligno, in the green heart of Italy, thanks to Fabiola Acciarri’s experience in the training field and Altheo Valentini’s passion for innovation and social change. The agency, accredited by the Umbria Region for vocational training and certification of competences, represents today one of the main stakeholders in the field of local, national, and European initiatives design and implementation, relying on the cooperation of numerous experts in the fields of education, social innovation, cultural heritage and digital transformation.', + 'support_activities' => [ + 'Delivering workshops or training', + 'Mentoring students or educators', + 'Running competitions or hackathons', + 'Providing learning resources or curricula', + 'Offering internships or work placements', + 'Organizing guest speaker sessions', + ], + 'interested_in_school_collaboration' => 'Yes, definitely', + 'target_school_types' => [ + 'Primary Schools', + 'Secondary Schools', + 'Higher Education Institutions (Universities/Colleges)', + 'Vocational and Technical Schools' + ], + 'digital_expertise_areas' => [ + 'STEM/STEAM education', + 'Digital Education and EdTech' + ], + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:43:58')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 9:47:18')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/polo-digital.png', + 'avatar_dark' => true, + 'email' => 'hola@polodigital.eu', + 'organisation_name' => 'Polo digital', + 'slug' => Str::slug('Polo digital'), + 'website' => 'www.polodigital.eu', + 'organisation_type' => ['Public Sector Organisation / Government Agency'], + 'country' => 'ES', + 'organisation_mission' => 'We are a public innovation hub depending on the City Council of Málaga. We host start ups and scale ups in deep tech and XR, facilitating them all the resources they need to grow: talent, equipment, incubation programa, venue for events…', + 'support_activities' => [ + 'Running competitions or hackathons', + 'Organizing guest speaker sessions', + 'Offering internships or work placements', + 'Delivering workshops or training' + ], + 'interested_in_school_collaboration' => 'Yes, definitely', + 'target_school_types' => [ + 'Higher Education Institutions (Universities/Colleges)', + 'Vocational and Technical Schools' + ], + 'digital_expertise_areas' => [ + 'Digital Education and EdTech', + 'Cybersecurity', + 'Artificial Intelligence & Machine Learning', + 'STEM/STEAM education', + 'Coding and programming' + ], + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:18:40')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:24:44')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/idcert-srl-societa-benefit.png', + 'avatar_dark' => true, + 'email' => 'info@idcert.io', + 'organisation_name' => 'IDCERT SRL SOCIETÀ BENEFIT', + 'slug' => Str::slug('IDCERT SRL SOCIETÀ BENEFIT'), + 'website' => 'https://it.idcert.io', + 'organisation_type' => ['EdTech', 'INTERNATIONAL CERTIFICATION'], + 'country' => 'IT', + 'organisation_mission' => 'IDCERT srl Società Benefit is a European-certified digital skills training provider, accredited under ISO 9001, ISO/IEC 27001, ISO/IEC 27017, ISO 29993, ISO 29994, and operates in compliance with UNI CEI EN ISO/IEC 17024 for personnel certification. The company is registered in the Italian National Research Registry (MIUR) and participates in major European alliances such as 1EdTech, ESSA (European Software Skills Alliance), and the Coalition for Competitive Digital Markets. IDCERT is an AWS Authorized Training Partner, a recognized provider on the Syllabus PA platform, and a National Youth Card partner. It is also accredited by the Ministry of Education for the training of school staff and leaders.', + 'support_activities' => [ + 'Delivering workshops or training', + 'Mentoring students or educators', + 'Running competitions or hackathons', + 'Providing learning resources or curricula', + 'Organizing guest speaker sessions', + 'Offering internships or work placements' + ], + 'interested_in_school_collaboration' => 'Yes, definitely', + 'target_school_types' => [ + 'Higher Education Institutions (Universities/Colleges)', + 'Vocational and Technical Schools', + 'Secondary Schools', + 'Public sector' + ], + 'digital_expertise_areas' => [ + 'Digital Education and EdTech', + 'Cybersecurity', + 'Artificial Intelligence & Machine Learning', + 'STEM/STEAM education', + 'Coding and programming', + 'canvaedu, digital animator, social media manager' + ], + 'want_updates' => true, + 'description' => 'Yes, IDCERT specializes in delivering certified digital skills training aligned with European standards. We operate internationally and collaborate with public institutions, schools, and ministries across multiple countries. Our programs are designed for both educators and students, and we provide multilingual support, interoperable digital credentials (Open Badges), and scalable solutions that adapt to diverse educational systems.', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:42:27')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/16/25 10:59:24')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/opengroup.webp', + 'avatar_dark' => true, + 'email' => 'amministrazione@opengroup.eu', + 'organisation_name' => 'Open Group', + 'slug' => Str::slug('Open Group'), + 'website' => 'https://opengroup.eu/', + 'organisation_type' => ['Non-Governmental Organisation (NGO)'], + 'country' => 'IT', + 'organisation_mission' => 'Proponiamo laboratori di introduzione al pensiero computazionale nelle scuole dell’infanzia e primarie, a partire dai 5 anni. I percorsi prevedono l’utilizzo di diverse metodologie: coding unplugged, tinkering e robotica educativa, programmazione a blocchi con Scratch e Octostudio. Il nostro approccio parte dal lavoro teorico sviluppato dal gruppo di ricerca Lifelong Kindergarden del MIT di Boston.', + 'support_activities' => [ + 'Delivering workshops or training', + 'Mentoring students or educators', + 'Organizing guest speaker sessions' + ], + 'interested_in_school_collaboration' => 'Maybe, I would like more details', + 'target_school_types' => [ + 'Primary Schools', 'Secondary Schools' + ], + 'digital_expertise_areas' => [ + 'STEM/STEAM education', + 'Coding and programming', + 'Digital Education and EdTech', + 'Artificial Intelligence & Machine Learning' + ], + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/22/25 9:43:51')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '5/26/25 8:04:38')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/mickunulopselis-darzelis.jpg', + 'email' => 'mickunulopselis.darzelis@gmail.com ', + 'organisation_name' => 'Vilniaus r. Mickūnų vaikų lopšelis-darželis', + 'slug' => Str::slug('Vilniaus r. Mickūnų vaikų lopšelis-darželis'), + 'website' => 'https://www.lopselis.darzelis.mickunai.vilniausr.lm.lt/', + 'organisation_type' => ['Preschool'], + 'country' => 'LT', + 'organisation_mission' => '', + 'support_activities' => ['Offering internships or work placements'], + 'interested_in_school_collaboration' => 'Maybe, I would like more details', + 'target_school_types' => ['Preprimary school'], + 'digital_expertise_areas' => ['STEM/STEAM education'], + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'type' => 'organisation', + 'start_time' => Carbon::createFromFormat('n/j/y H:i:s', '6/2/25 22:23:38')->toDateTimeString(), + 'completion_time' => Carbon::createFromFormat('n/j/y H:i:s', '6/2/25 22:33:06')->toDateTimeString(), + 'avatar' => '/images/matchmaking-tool/organisations/datorium.png', + 'avatar_dark' => true, + 'email' => 'info@datorium.eu', + 'organisation_name' => 'Datorium', + 'slug' => Str::slug('Datorium'), + 'website' => 'https://datorium.eu, https://datorium.ai', + 'organisation_type' => ['EdTech'], + 'country' => 'LV', + 'organisation_mission' => 'Datorium is an innovative EdTech organisation. Read more about Datorium: Co-founders Angela Jafarova and Elchin Jafarov (both active in codeweek)', + 'support_activities' => [ + 'Delivering workshops or training', + 'Running competitions or hackathons', + 'Providing learning resources or curricula', + 'Organizing guest speaker sessions' + ], + 'interested_in_school_collaboration' => 'Maybe, I would like more details', + 'target_school_types' => [ + 'Secondary Schools', + 'Vocational and Technical Schools' + ], + 'digital_expertise_areas' => [ + 'STEM/STEAM education', + 'Digital Education and EdTech', + 'Artificial Intelligence & Machine Learning' + ], + 'want_updates' => true, + 'description' => '', + 'agree_to_be_contacted_for_feedback' => true, + 'created_at' => now(), + 'updated_at' => now(), + ], + ]; + + foreach($records as $record) { + MatchmakingProfile::create($record); + } + } +} diff --git a/public/build/assets/app-0yoGi-Tf.css b/public/build/assets/app-0yoGi-Tf.css deleted file mode 100644 index f3585c2c0..000000000 --- a/public/build/assets/app-0yoGi-Tf.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 480px){.container{max-width:480px}}@media (min-width: 575px){.container{max-width:575px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 993px){.container{max-width:993px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-bottom-10{bottom:-2.5rem}.-bottom-2{bottom:-.5rem}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-bottom-6{bottom:-1.5rem}.-left-1\/4{left:-25%}.-left-2{left:-.5rem}.-left-36{left:-9rem}.-left-6{left:-1.5rem}.-left-\[10rem\]{left:-10rem}.-right-1\/4{right:-25%}.-right-14{right:-3.5rem}.-right-16{right:-4rem}.-right-2{right:-.5rem}.-right-8{right:-2rem}.-top-52{top:-13rem}.-top-6{top:-1.5rem}.-top-8{top:-2rem}.bottom-0{bottom:0}.bottom-10{bottom:2.5rem}.bottom-12{bottom:3rem}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.bottom-4{bottom:1rem}.bottom-40{bottom:10rem}.left-0{left:0}.left-1\/2{left:50%}.left-12{left:3rem}.left-2{left:.5rem}.left-24{left:6rem}.left-4{left:1rem}.left-40{left:10rem}.left-5{left:1.25rem}.left-6{left:1.5rem}.left-\[3px\]{left:3px}.right-0{right:0}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-20{right:5rem}.right-3{right:.75rem}.right-36{right:9rem}.right-4{right:1rem}.right-40{right:10rem}.right-6{right:1.5rem}.right-\[20px\]{right:20px}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-14{top:3.5rem}.top-24{top:6rem}.top-28{top:7rem}.top-4{top:1rem}.top-\[125px\]{top:125px}.top-\[139px\]{top:139px}.top-\[198px\]{top:198px}.top-\[57px\]{top:57px}.top-full{top:100%}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[1\]{z-index:1}.z-\[8\]{z-index:8}.z-\[99\]{z-index:99}.order-1{order:1}.col-span-2{grid-column:span 2 / span 2}.float-left{float:left}.m-0{margin:0}.m-12{margin:3rem}.m-2{margin:.5rem}.m-4{margin:1rem}.m-6{margin:1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-px{margin-bottom:-1px}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.-mt-24{margin-top:-6rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.ms-2{margin-inline-start:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[\.1rem\]{margin-top:.1rem}.mt-\[13px\]{margin-top:13px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[1\.5\]{aspect-ratio:1.5}.aspect-\[1\.63\]{aspect-ratio:1.63}.aspect-\[1097\/845\]{aspect-ratio:1097/845}.aspect-\[3\/2\]{aspect-ratio:3/2}.size-full{width:100%;height:100%}.h-0{height:0px}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[118px\]{height:118px}.h-\[160px\]{height:160px}.h-\[1px\]{height:1px}.h-\[280px\]{height:280px}.h-\[50\%\]{height:50%}.h-\[500px\]{height:500px}.h-\[50px\]{height:50px}.h-\[56px\]{height:56px}.h-\[760px\]{height:760px}.h-\[800px\]{height:800px}.h-\[88px\]{height:88px}.h-\[93px\]{height:93px}.h-\[calc\(100dvh-139px\)\]{height:calc(100dvh - 139px)}.h-\[calc\(80vw-40px\)\]{height:calc(80vw - 40px)}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-0{max-height:0px}.max-h-\[449px\]{max-height:449px}.max-h-\[450px\]{max-height:450px}.max-h-\[600px\]{max-height:600px}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.max-h-full{max-height:100%}.min-h-12{min-height:3rem}.min-h-3{min-height:.75rem}.min-h-8{min-height:2rem}.min-h-\[120px\]{min-height:120px}.min-h-\[160px\]{min-height:160px}.min-h-\[244px\]{min-height:244px}.min-h-\[24px\]{min-height:24px}.min-h-\[366px\]{min-height:366px}.min-h-\[560px\]{min-height:560px}.min-h-\[600px\]{min-height:600px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100px\]{width:100px}.w-\[118px\]{width:118px}.w-\[140px\]{width:140px}.w-\[150vw\]{width:150vw}.w-\[184px\]{width:184px}.w-\[208px\]{width:208px}.w-\[26px\]{width:26px}.w-\[280px\]{width:280px}.w-\[57\.875rem\]{width:57.875rem}.w-\[68\.5625rem\]{width:68.5625rem}.w-\[88px\]{width:88px}.w-\[93px\]{width:93px}.w-\[calc\(33\.33\%-8px\)\]{width:calc(33.33% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-12{min-width:3rem}.min-w-4{min-width:1rem}.min-w-8{min-width:2rem}.min-w-\[353px\]{min-width:353px}.min-w-\[55\%\]{min-width:55%}.min-w-full{min-width:100%}.\!max-w-none{max-width:none!important}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[1080px\]{max-width:1080px}.max-w-\[140px\]{max-width:140px}.max-w-\[1428px\]{max-width:1428px}.max-w-\[191px\]{max-width:191px}.max-w-\[450px\]{max-width:450px}.max-w-\[480px\]{max-width:480px}.max-w-\[500px\]{max-width:500px}.max-w-\[525px\]{max-width:525px}.max-w-\[532px\]{max-width:532px}.max-w-\[560px\]{max-width:560px}.max-w-\[582px\]{max-width:582px}.max-w-\[600px\]{max-width:600px}.max-w-\[708px\]{max-width:708px}.max-w-\[720px\]{max-width:720px}.max-w-\[725px\]{max-width:725px}.max-w-\[80\%\]{max-width:80%}.max-w-\[819px\]{max-width:819px}.max-w-\[82px\]{max-width:82px}.max-w-\[830px\]{max-width:830px}.max-w-\[880px\]{max-width:880px}.max-w-\[890px\]{max-width:890px}.max-w-\[900px\]{max-width:900px}.max-w-\[907px\]{max-width:907px}.max-w-\[calc\(70vw\)\]{max-width:70vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-0{flex-basis:0px}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-12{--tw-translate-x: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-6{--tw-translate-x: -1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-3{--tw-translate-y: -.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-162\.343deg\]{--tw-rotate: -162.343deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-28{gap:7rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[22px\]{gap:22px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[32px\]{border-radius:32px}.rounded-\[5px\]{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.\!border-b-0{border-bottom-width:0px!important}.\!border-r-0{border-right-width:0px!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-b-8{border-bottom-width:8px}.border-b-\[20px\]{border-bottom-width:20px}.border-b-\[3px\]{border-bottom-width:3px}.border-l-\[20px\]{border-left-width:20px}.border-r-\[20px\]{border-right-width:20px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[3px\]{border-top-width:3px}.border-t-\[5px\]{border-top-width:5px}.border-solid{border-style:solid}.border-\[\#1C4DA1\]{--tw-border-opacity: 1;border-color:rgb(28 77 161 / var(--tw-border-opacity, 1))}.border-\[\#A4B8D9\]{--tw-border-opacity: 1;border-color:rgb(164 184 217 / var(--tw-border-opacity, 1))}.border-\[\#A9A9A9\]{--tw-border-opacity: 1;border-color:rgb(169 169 169 / var(--tw-border-opacity, 1))}.border-\[\#CA8A00\]{--tw-border-opacity: 1;border-color:rgb(202 138 0 / var(--tw-border-opacity, 1))}.border-\[\#D6D8DA\]{--tw-border-opacity: 1;border-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.border-\[\#DBECF0\]{--tw-border-opacity: 1;border-color:rgb(219 236 240 / var(--tw-border-opacity, 1))}.border-\[\#DEDEDE\]{--tw-border-opacity: 1;border-color:rgb(222 222 222 / var(--tw-border-opacity, 1))}.border-\[\#FBBB26\]{--tw-border-opacity: 1;border-color:rgb(251 187 38 / var(--tw-border-opacity, 1))}.border-\[\#FFEF99\]{--tw-border-opacity: 1;border-color:rgb(255 239 153 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-800{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.border-dark-blue{--tw-border-opacity: 1;border-color:rgb(28 77 161 / var(--tw-border-opacity, 1))}.border-dark-blue-200{--tw-border-opacity: 1;border-color:rgb(164 184 217 / var(--tw-border-opacity, 1))}.border-dark-blue-300{--tw-border-opacity: 1;border-color:rgb(119 148 199 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-orange-500{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:rgb(249 92 34 / var(--tw-border-opacity, 1))}.border-secondary{--tw-border-opacity: 1;border-color:rgb(22 65 148 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-zinc-100{--tw-border-opacity: 1;border-color:rgb(244 244 245 / var(--tw-border-opacity, 1))}.border-b-aqua{--tw-border-opacity: 1;border-bottom-color:rgb(177 224 229 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-r-transparent{border-right-color:transparent}.\!bg-primary{--tw-bg-opacity: 1 !important;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))!important}.bg-\[\#00B3E3\]{--tw-bg-opacity: 1;background-color:rgb(0 179 227 / var(--tw-bg-opacity, 1))}.bg-\[\#1C4DA1CC\]{background-color:#1c4da1cc}.bg-\[\#1C4DA1\]{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.bg-\[\#99E1F4\]{--tw-bg-opacity: 1;background-color:rgb(153 225 244 / var(--tw-bg-opacity, 1))}.bg-\[\#A4B8D9\]{--tw-bg-opacity: 1;background-color:rgb(164 184 217 / var(--tw-bg-opacity, 1))}.bg-\[\#CCF0F9\]{--tw-bg-opacity: 1;background-color:rgb(204 240 249 / var(--tw-bg-opacity, 1))}.bg-\[\#F2FBFE\]{--tw-bg-opacity: 1;background-color:rgb(242 251 254 / var(--tw-bg-opacity, 1))}.bg-\[\#F4F6FA\]{--tw-bg-opacity: 1;background-color:rgb(244 246 250 / var(--tw-bg-opacity, 1))}.bg-\[\#F95C22\]{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.bg-\[\#FEEFE9\]{--tw-bg-opacity: 1;background-color:rgb(254 239 233 / var(--tw-bg-opacity, 1))}.bg-\[\#FFD700\]{--tw-bg-opacity: 1;background-color:rgb(255 215 0 / var(--tw-bg-opacity, 1))}.bg-\[\#FFEF99\]{--tw-bg-opacity: 1;background-color:rgb(255 239 153 / var(--tw-bg-opacity, 1))}.bg-\[\#FFFBE5\]{--tw-bg-opacity: 1;background-color:rgb(255 251 229 / var(--tw-bg-opacity, 1))}.bg-aqua{--tw-bg-opacity: 1;background-color:rgb(177 224 229 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.bg-blue-50\/75{background-color:#eff6ffbf}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-800{--tw-bg-opacity: 1;background-color:rgb(30 64 175 / var(--tw-bg-opacity, 1))}.bg-blue-900{--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.bg-cyan-200{--tw-bg-opacity: 1;background-color:rgb(165 243 252 / var(--tw-bg-opacity, 1))}.bg-dark-blue{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.bg-dark-blue-50{--tw-bg-opacity: 1;background-color:rgb(232 237 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-800{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity, 1))}.bg-light-blue{--tw-bg-opacity: 1;background-color:rgb(242 251 254 / var(--tw-bg-opacity, 1))}.bg-light-blue-100{--tw-bg-opacity: 1;background-color:rgb(204 240 249 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow{--tw-bg-opacity: 1;background-color:rgb(255 215 0 / var(--tw-bg-opacity, 1))}.bg-yellow-2{--tw-bg-opacity: 1;background-color:rgb(255 247 204 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(255 251 229 / var(--tw-bg-opacity, 1))}.bg-opacity-25{--tw-bg-opacity: .25}.bg-blue-gradient{background-image:linear-gradient(161.75deg,#1254c5 16.95%,#0040ae 31.1%)}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.bg-light-blue-gradient{background-image:linear-gradient(161.75deg,#33c2e9 16.95%,#00b3e3 31.1%)}.bg-orange-gradient{background-image:linear-gradient(36.92deg,#f95c22 20.32%,#ff885c 28.24%)}.bg-secondary-gradient{background-image:linear-gradient(36.92deg,#1c4da1 20.32%,#0040ae 28.24%)}.bg-violet-gradient{background-image:linear-gradient(247deg,#410098 22.05%,#6733ad 79.09%)}.bg-yellow-transparent-gradient{background-image:linear-gradient(90deg,#fffbe5 35%,#0000 90%)}.bg-yellow-transparent-opposite-gradient{background-image:linear-gradient(90deg,#0000 10%,#fffbe5 65%)}.from-\[\#ff4694\]{--tw-gradient-from: #ff4694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-\[\#776fff\]{--tw-gradient-to: #776fff var(--tw-gradient-to-position)}.fill-\[\#000000\]{fill:#000}.fill-\[\#FFD700\]{fill:gold}.fill-current{fill:currentColor}.fill-orange-500{fill:#f97316}.fill-primary{fill:#f95c22}.fill-white{fill:#fff}.stroke-\[\#414141\]{stroke:#414141}.stroke-current{stroke:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[13px\]{padding:13px}.\!px-0{padding-left:0!important;padding-right:0!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-20{padding-left:5rem;padding-right:5rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-48{padding-left:12rem;padding-right:12rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[44px\]{padding-left:44px;padding-right:44px}.px-\[60px\]{padding-left:60px;padding-right:60px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[7px\]{padding-top:7px;padding-bottom:7px}.\!pb-0{padding-bottom:0!important}.\!pb-8{padding-bottom:2rem!important}.\!pr-10{padding-right:2.5rem!important}.\!pt-16{padding-top:4rem!important}.pb-0{padding-bottom:0}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-28{padding-bottom:7rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0\.5{padding-left:.125rem}.pl-14{padding-left:3.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-10{padding-right:2.5rem}.pr-14{padding-right:3.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-48{padding-right:12rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-28{padding-top:7rem}.pt-3\.5{padding-top:.875rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-48{padding-top:12rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-60{padding-top:15rem}.pt-8{padding-top:2rem}.pt-\[5rem\]{padding-top:5rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.font-\[\'Blinker\'\]{font-family:Blinker}.font-\[\'Montserrat\'\]{font-family:Montserrat}.font-\[Blinker\]{font-family:Blinker}.font-blinker{font-family:Blinker,sans-serif}.\!text-\[16px\]{font-size:16px!important}.\!text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[30px\]{font-size:30px}.text-\[60px\]{font-size:60px}.text-base{font-size:1.125rem}.text-default{font-size:16px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.\!capitalize{text-transform:capitalize!important}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-\[20px\]{line-height:20px}.leading-\[22px\]{line-height:22px}.leading-\[30px\]{line-height:30px}.leading-\[44px\]{line-height:44px}.leading-\[48px\]{line-height:48px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[\.1px\]{letter-spacing:.1px}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-\[\#1C4DA1\]{--tw-text-opacity: 1 !important;color:rgb(28 77 161 / var(--tw-text-opacity, 1))!important}.text-\[\#164194\]{--tw-text-opacity: 1;color:rgb(22 65 148 / var(--tw-text-opacity, 1))}.text-\[\#1C4DA1\],.text-\[\#1c4da1\]{--tw-text-opacity: 1;color:rgb(28 77 161 / var(--tw-text-opacity, 1))}.text-\[\#20262C\],.text-\[\#20262c\]{--tw-text-opacity: 1;color:rgb(32 38 44 / var(--tw-text-opacity, 1))}.text-\[\#333E48\],.text-\[\#333e48\]{--tw-text-opacity: 1;color:rgb(51 62 72 / var(--tw-text-opacity, 1))}.text-\[\'\#20262C\'\]{color:"#20262C"}.text-\[\'Blinker\'\]{color:"Blinker"}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-dark-blue{--tw-text-opacity: 1;color:rgb(28 77 161 / var(--tw-text-opacity, 1))}.text-dark-blue-400{--tw-text-opacity: 1;color:rgb(73 113 180 / var(--tw-text-opacity, 1))}.text-error-200{--tw-text-opacity: 1;color:rgb(227 5 25 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(249 92 34 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(22 65 148 / var(--tw-text-opacity, 1))}.text-slate{--tw-text-opacity: 1;color:rgb(92 101 109 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(51 62 72 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-zinc-800{--tw-text-opacity: 1;color:rgb(39 39 42 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.bg-blend-multiply{background-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-blue-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[118px\]{--tw-blur: blur(118px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-\[1\.5s\]{transition-duration:1.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.placeholder\:font-normal::-moz-placeholder{font-weight:400}.placeholder\:font-normal::placeholder{font-weight:400}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:mt-2:after{content:var(--tw-content);margin-top:.5rem}.after\:block:after{content:var(--tw-content);display:block}.after\:h-\[50px\]:after{content:var(--tw-content);height:50px}.after\:h-full:after{content:var(--tw-content);height:100%}.after\:max-h-\[50px\]:after{content:var(--tw-content);max-height:50px}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:bg-\[\#5F718A\]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(95 113 138 / var(--tw-bg-opacity, 1))}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.checked\:border-0:checked{border-width:0px}.checked\:bg-dark-blue:checked{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.focus-within\:placeholder-dark-orange:focus-within::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(182 49 0 / var(--tw-placeholder-opacity, 1))}.focus-within\:placeholder-dark-orange:focus-within::placeholder{--tw-placeholder-opacity: 1;color:rgb(182 49 0 / var(--tw-placeholder-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-inset:focus-within{--tw-ring-inset: inset}.focus-within\:ring-dark-orange:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(182 49 0 / var(--tw-ring-opacity, 1))}.hover\:bottom-0:hover{bottom:0}.hover\:left-0:hover{left:0}.hover\:right-0:hover{right:0}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-l-orange-500:hover{--tw-border-opacity: 1;border-left-color:rgb(249 115 22 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#001E52\]:hover{--tw-bg-opacity: 1;background-color:rgb(0 30 82 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#061b45\]:hover{--tw-bg-opacity: 1;background-color:rgb(6 27 69 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1C4DA1\]:hover{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1C4DA1\]\/10:hover{background-color:#1c4da11a}.hover\:bg-\[\#98E1F5\]:hover{--tw-bg-opacity: 1;background-color:rgb(152 225 245 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#E8EDF6\]:hover{--tw-bg-opacity: 1;background-color:rgb(232 237 246 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F95C22\]:hover{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FB9D7A\]:hover{--tw-bg-opacity: 1;background-color:rgb(251 157 122 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FFEF99\]:hover{--tw-bg-opacity: 1;background-color:rgb(255 239 153 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-green-500:hover{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-hover-blue:hover{--tw-bg-opacity: 1;background-color:rgb(10 66 161 / var(--tw-bg-opacity, 1))}.hover\:bg-hover-orange:hover{--tw-bg-opacity: 1;background-color:rgb(251 157 122 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-500:hover{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.hover\:bg-primary:hover{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-900:hover{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(22 65 148 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:text-gray-400:hover{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-indigo-900:hover{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(249 92 34 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-gray-300:focus{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.focus\:border-indigo-700:focus{--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity, 1))}.focus\:border-red-700:focus{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.focus\:bg-gray-700:focus{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.focus\:bg-orange-50:focus{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.focus\:text-gray-700:focus{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.focus\:text-indigo-700:focus{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.focus\:text-indigo-800:focus{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-indigo-500:focus-visible{outline-color:#6366f1}.focus-visible\:outline-white:focus-visible{outline-color:#fff}.active\:bg-gray-100:active{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.active\:bg-gray-900:active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.active\:bg-indigo-700:active{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.active\:bg-red-700:active{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.active\:text-gray-500:active{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.active\:text-gray-700:active{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:top-1\/2{top:50%}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:h-full{height:100%}.group:hover .group-hover\:w-full{width:100%}.group:hover .group-hover\:max-w-\[90\%\]{max-width:90%}.group:hover .group-hover\:max-w-full{max-width:100%}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-primary{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:fill-\[\#1C4DA1\]{fill:#1c4da1}.group:hover .group-hover\:fill-\[\#ffffff\]{fill:#fff}.group:hover .group-hover\:fill-secondary{fill:#164194}.group:hover .group-hover\:fill-white{fill:#fff}.group:hover .group-hover\:stroke-\[\#ffffff\]{stroke:#fff}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:block{display:block}@media not all and (min-width: 1280px){.max-xl\:flex{display:flex}.max-xl\:hidden{display:none}.max-xl\:w-full{width:100%}.max-xl\:flex-col{flex-direction:column}.max-xl\:\!items-start{align-items:flex-start!important}.max-xl\:overflow-auto{overflow:auto}.max-xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-xl\:px-8{padding-left:2rem;padding-right:2rem}.max-xl\:pt-6{padding-top:1.5rem}}@media not all and (min-width: 1024px){.max-lg\:hidden{display:none}.max-lg\:flex-col-reverse{flex-direction:column-reverse}.max-lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-lg\:py-12{padding-top:3rem;padding-bottom:3rem}.max-lg\:pb-12{padding-bottom:3rem}.max-lg\:pt-\[50px\]{padding-top:50px}}@media not all and (min-width: 768px){.max-md\:fixed{position:fixed}.max-md\:mx-auto{margin-left:auto;margin-right:auto}.max-md\:mt-2{margin-top:.5rem}.max-md\:mt-4{margin-top:1rem}.max-md\:hidden{display:none}.max-md\:h-\[386px\]{height:386px}.max-md\:h-\[calc\(100dvh-125px\)\]{height:calc(100dvh - 125px)}.max-md\:h-full{height:100%}.max-md\:w-full{width:100%}.max-md\:max-w-full{max-width:100%}.max-md\:justify-end{justify-content:flex-end}.max-md\:gap-2{gap:.5rem}.max-md\:overflow-auto{overflow:auto}.max-md\:rounded-none{border-radius:0}.max-md\:border-r-2{border-right-width:2px}.max-md\:border-r-\[\#D6D8DA\]{--tw-border-opacity: 1;border-right-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.max-md\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.max-md\:p-6{padding:1.5rem}.max-md\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.max-md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.max-md\:py-12{padding-top:3rem;padding-bottom:3rem}.max-md\:pb-4{padding-bottom:1rem}.max-md\:text-2xl{font-size:1.5rem;line-height:2rem}.max-md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.max-md\:text-6xl{font-size:3.75rem;line-height:1}.max-md\:text-\[22px\]{font-size:22px}.max-md\:leading-8{line-height:2rem}}@media not all and (min-width: 575px){.max-sm\:top-6{top:1.5rem}.max-sm\:top-8{top:2rem}.max-sm\:mb-10{margin-bottom:2.5rem}.max-sm\:hidden{display:none}.max-sm\:h-\[224px\]{height:224px}.max-sm\:w-full{width:100%}.max-sm\:gap-1\.5{gap:.375rem}.max-sm\:p-0{padding:0}.max-sm\:p-\[10px\]{padding:10px}.max-sm\:px-1{padding-left:.25rem;padding-right:.25rem}.max-sm\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.max-sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.max-sm\:leading-7{line-height:1.75rem}}@media not all and (min-width: 480px){.max-xs\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-xs\:text-\[20px\]{font-size:20px}}@media (min-width: 575px){.sm\:static{position:static}.sm\:absolute{position:absolute}.sm\:-bottom-16{bottom:-4rem}.sm\:-right-60{right:-15rem}.sm\:-top-10{top:-2.5rem}.sm\:left-3{left:.75rem}.sm\:right-1\/2{right:50%}.sm\:top-2{top:.5rem}.sm\:top-\[-28rem\]{top:-28rem}.sm\:-z-10{z-index:-10}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:col-span-3{grid-column:span 3 / span 3}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-mt-20{margin-top:-5rem}.sm\:mb-12{margin-bottom:3rem}.sm\:ml-16{margin-left:4rem}.sm\:mr-10{margin-right:2.5rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-auto{height:auto}.sm\:w-\[324px\]{width:324px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-md{max-width:28rem}.sm\:flex-1{flex:1 1 0%}.sm\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-10{gap:2.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-md{border-radius:.375rem}.sm\:p-2{padding:.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:py-32{padding-top:8rem;padding-bottom:8rem}.sm\:pb-8{padding-bottom:2rem}.sm\:pr-20{padding-right:5rem}.sm\:pr-6{padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:pt-24{padding-top:6rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1.125rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:leading-5{line-height:1.25rem}.sm\:blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:-right-36{right:-9rem}.md\:-right-40{right:-10rem}.md\:bottom-auto{bottom:auto}.md\:left-0{left:0}.md\:right-0{right:0}.md\:top-1\/2{top:50%}.md\:top-1\/3{top:33.333333%}.md\:top-2\/3{top:66.666667%}.md\:top-\[123px\]{top:123px}.md\:order-2{order:2}.md\:col-span-1{grid-column:span 1 / span 1}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:ml-auto{margin-left:auto}.md\:mr-auto{margin-right:auto}.md\:mt-10{margin-top:2.5rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-64{height:16rem}.md\:h-72{height:18rem}.md\:h-8{height:2rem}.md\:h-\[642px\]{height:642px}.md\:h-\[calc\(100dvh-123px\)\]{height:calc(100dvh - 123px)}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.666667%}.md\:w-64{width:16rem}.md\:w-72{width:18rem}.md\:w-8{width:2rem}.md\:w-\[130px\]{width:130px}.md\:w-\[177px\]{width:177px}.md\:w-\[200px\]{width:200px}.md\:w-\[260px\]{width:260px}.md\:w-\[329px\]{width:329px}.md\:w-\[480px\]{width:480px}.md\:w-\[60vw\]{width:60vw}.md\:w-auto{width:auto}.md\:w-fit{width:-moz-fit-content;width:fit-content}.md\:w-full{width:100%}.md\:max-w-60{max-width:15rem}.md\:max-w-\[386px\]{max-width:386px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[472px\]{max-width:472px}.md\:max-w-\[760px\]{max-width:760px}.md\:max-w-\[825px\]{max-width:825px}.md\:max-w-md{max-width:28rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:gap-10{gap:2.5rem}.md\:gap-16{gap:4rem}.md\:gap-20{gap:5rem}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:overflow-x-hidden{overflow-x:hidden}.md\:overflow-y-hidden{overflow-y:hidden}.md\:overflow-y-scroll{overflow-y:scroll}.md\:whitespace-nowrap{white-space:nowrap}.md\:rounded-br-lg{border-bottom-right-radius:.5rem}.md\:rounded-tl-lg{border-top-left-radius:.5rem}.md\:rounded-tr-lg{border-top-right-radius:.5rem}.md\:border-b-2{border-bottom-width:2px}.md\:border-l-\[5px\]{border-left-width:5px}.md\:border-t-0{border-top-width:0px}.md\:border-b-\[\#D6D8DA\]{--tw-border-opacity: 1;border-bottom-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}.md\:p-12{padding:3rem}.md\:p-4{padding:1rem}.md\:p-8{padding:2rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-14{padding-left:3.5rem;padding-right:3.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-24{padding-left:6rem;padding-right:6rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:py-40{padding-top:10rem;padding-bottom:10rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:py-\[186px\]{padding-top:186px;padding-bottom:186px}.md\:py-\[4\.5rem\]{padding-top:4.5rem;padding-bottom:4.5rem}.md\:py-\[7\.5rem\]{padding-top:7.5rem;padding-bottom:7.5rem}.md\:py-\[72px\]{padding-top:72px;padding-bottom:72px}.md\:py-\[84px\]{padding-top:84px;padding-bottom:84px}.md\:\!pt-12{padding-top:3rem!important}.md\:pb-10{padding-bottom:2.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-28{padding-bottom:7rem}.md\:pb-48{padding-bottom:12rem}.md\:pb-6{padding-bottom:1.5rem}.md\:pb-8{padding-bottom:2rem}.md\:pl-0{padding-left:0}.md\:pl-16{padding-left:4rem}.md\:pr-3{padding-right:.75rem}.md\:pt-12{padding-top:3rem}.md\:pt-20{padding-top:5rem}.md\:pt-28{padding-top:7rem}.md\:pt-32{padding-top:8rem}.md\:pt-4{padding-top:1rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-52{padding-top:13rem}.md\:text-center{text-align:center}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[30px\]{font-size:30px}.md\:text-\[45px\]{font-size:45px}.md\:text-\[48px\]{font-size:48px}.md\:text-\[60px\]{font-size:60px}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:leading-7{line-height:1.75rem}.md\:leading-8{line-height:2rem}.md\:leading-9{line-height:2.25rem}.md\:leading-\[30px\]{line-height:30px}.md\:leading-\[44px\]{line-height:44px}.md\:leading-\[52px\]{line-height:52px}.md\:leading-\[58px\]{line-height:58px}.md\:leading-\[72px\]{line-height:72px}}@media (min-width: 993px){.tablet\:top-16{top:4rem}.tablet\:mb-0{margin-bottom:0}.tablet\:mb-10{margin-bottom:2.5rem}.tablet\:mb-8{margin-bottom:2rem}.tablet\:flex{display:flex}.tablet\:hidden{display:none}.tablet\:w-1\/3{width:33.333333%}.tablet\:w-2\/3{width:66.666667%}.tablet\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tablet\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tablet\:flex-row{flex-direction:row}.tablet\:gap-32{gap:8rem}.tablet\:gap-6{gap:1.5rem}.tablet\:py-20{padding-top:5rem;padding-bottom:5rem}.tablet\:pb-16{padding-bottom:4rem}.tablet\:pb-6{padding-bottom:1.5rem}.tablet\:text-left{text-align:left}.tablet\:text-center{text-align:center}.tablet\:text-2xl{font-size:1.5rem;line-height:2rem}.tablet\:text-xl{font-size:1.25rem;line-height:1.75rem}.tablet\:leading-7{line-height:1.75rem}.tablet\:leading-\[30px\]{line-height:30px}}@media (min-width: 1024px){.lg\:absolute{position:absolute}.lg\:-bottom-20{bottom:-5rem}.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-full{grid-column:1 / -1}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:mb-6{margin-bottom:1.5rem}.lg\:mt-10{margin-top:2.5rem}.lg\:mt-12{margin-top:3rem}.lg\:line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-\[320px\]{height:320px}.lg\:w-1\/2{width:50%}.lg\:w-20{width:5rem}.lg\:w-fit{width:-moz-fit-content;width:fit-content}.lg\:max-w-\[429px\]{max-width:429px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:gap-8{gap:2rem}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:p-10{padding:2.5rem}.lg\:p-16{padding:4rem}.lg\:p-20{padding:5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pl-24{padding-left:6rem}.lg\:pr-0{padding-right:0}.lg\:pr-12{padding-right:3rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-20{padding-top:5rem}.lg\:text-\[20px\]{font-size:20px}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:leading-\[22px\]{line-height:22px}.lg\:leading-\[44px\]{line-height:44px}}@media (min-width: 1280px){.xl\:static{position:static}.xl\:-bottom-28{bottom:-7rem}.xl\:-bottom-32{bottom:-8rem}.xl\:-bottom-36{bottom:-9rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:ml-8{margin-left:2rem}.xl\:mr-8{margin-right:2rem}.xl\:mt-20{margin-top:5rem}.xl\:block{display:block}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:w-1\/3{width:33.333333%}.xl\:w-2\/3{width:66.666667%}.xl\:w-3\/4{width:75%}.xl\:w-72{width:18rem}.xl\:w-auto{width:auto}.xl\:w-full{width:100%}.xl\:max-w-\[640px\]{max-width:640px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:justify-between{justify-content:space-between}.xl\:gap-10{gap:2.5rem}.xl\:gap-12{gap:3rem}.xl\:gap-20{gap:5rem}.xl\:gap-28{gap:7rem}.xl\:gap-\[120px\]{gap:120px}.xl\:whitespace-nowrap{white-space:nowrap}.xl\:px-20{padding-left:5rem;padding-right:5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pl-16{padding-left:4rem}.xl\:pl-32{padding-left:8rem}.xl\:pt-\[10rem\]{padding-top:10rem}.xl\:text-\[60px\]{font-size:60px}.xl\:leading-\[72px\]{line-height:72px}}@media (min-width: 1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32xl\:flex-row{flex-direction:row}.\32xl\:gap-8{gap:2rem}.\32xl\:text-4xl{font-size:2.25rem;line-height:2.5rem}}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-700:focus{--tw-border-opacity: 1;border-color:rgb(29 78 216 / var(--tw-border-opacity, 1))}.dark\:focus\:border-blue-800:focus{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:active\:bg-gray-700:active{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:active\:text-gray-300:active{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}}.\[\&_li\]\:my-2 li{margin-top:.5rem;margin-bottom:.5rem}.\[\&_p\]\:\!p-0 p{padding:0!important} diff --git a/public/build/assets/app-B7JaFKBc.css b/public/build/assets/app-B7JaFKBc.css deleted file mode 100644 index 133d7f647..000000000 --- a/public/build/assets/app-B7JaFKBc.css +++ /dev/null @@ -1 +0,0 @@ -header{background-color:#fff}header #logo-wrapper{display:flex;align-items:center}header nav{flex:1;height:50px}header nav ul{list-style:none;padding:0;height:50px;display:flex;align-items:center;margin:0}header nav ul li{padding:0 8px;position:relative}header nav ul li a{font-size:20px;text-decoration:none;color:#000}header nav ul li ul:before{content:"";height:17px;position:absolute;top:-15px;width:100%}header nav ul li ul:after{content:"";position:absolute;top:0;left:10%;width:0;height:0;border:9px solid transparent;border-bottom-color:#fe6824;border-top:0;margin-left:0;margin-top:-9px}header nav ul li ul li{padding-top:8px;padding-bottom:6px;padding-left:6px}header nav ul li ul li a{font-size:18px;color:#000;text-align:center;white-space:nowrap}header #right-menu .round-button,header #right-menu .round-button-sign,header #right-menu .round-button-user-menu{width:50px;height:50px;border-radius:100%;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;font-size:12px;cursor:pointer}header #right-menu .round-button-user-menu{background-color:#1c4da1}header .round-button:hover,header .round-button-sign:hover,header .round-button-user-menu:hover{background-color:#f9f9f9}header #right-menu .round-button:before{content:"";width:0px;height:0px;position:absolute;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #BBBBBB;border-bottom:10px solid transparent;right:30%;bottom:-20px}header #right-menu .round-button:after{content:"";width:0px;height:0px;position:absolute;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #FFFFFF;border-bottom:10px solid transparent;right:30%;bottom:-18px}header #right-menu .round-button-sign{border:2px solid #FE6824;width:48px;height:48px}header #right-menu .round-button-sign a{color:#fe6824;font-size:13px;text-decoration:none;display:flex;height:100%;align-items:center;justify-content:center}header #right-menu a{color:#a2a2a2;font-size:13px;text-decoration:none;text-transform:uppercase}header .round-button-user-menu.opened,header .round-button.opened{background-color:#fe6824}header .menu-trigger.opened .button-icon path{fill:#fff!important}button-icon{margin-right:20px}header .round-button.opened a{color:#fff!important}header #right-menu .round-button.opened:after{border-top:10px solid #FE6824}header #primary-menu-trigger{display:none}header #right-menu #tools{display:flex}header .menu-dropdown{display:none;position:absolute;top:56px;background-color:#fff;border:1px solid #ADB2B6;border-radius:7px;padding:12px 32px;right:0;z-index:1000;margin:0}header .lang-menu .menu-dropdown,header .facebook-menu .menu-dropdown,header .twitter-menu .menu-dropdown{padding:0}header .facebook-menu .menu-dropdown,header .twitter-menu .menu-dropdown{top:60px}header .twitter-menu .menu-dropdown{width:400px;height:500px;overflow:auto;justify-content:center}header .user-menu .menu-dropdown li{display:flex;align-items:center;list-style:none;text-align:start;gap:12px;padding:8px 0}header .user-menu .menu-dropdown li a{white-space:nowrap;text-align:left;text-transform:none!important;font-size:16px!important;color:#1c4da1!important;font-weight:600!important;line-height:22px!important}header .user-menu .menu-dropdown li svg,header .user-menu .menu-dropdown li img{height:16px;width:16px}header .lang-menu .menu-dropdown ul{display:flex;flex-direction:column;max-height:calc(100dvh - 300px);overflow:auto;margin:0!important;padding:0;list-style:none}header .lang-menu .menu-dropdown ul li{text-align:center}header .lang-menu .menu-dropdown ul li a{color:#000;padding:15px 25px;display:flex;flex-direction:row;align-items:center;height:100%;justify-content:center}@media (max-width: 1280px){header nav{height:auto}header nav ul{height:auto}header nav ul li ul{display:none;position:relative;left:0;background-color:#ffe3d6;border-radius:0;align-items:center;margin-top:12px;padding-right:0;max-height:400px}header nav ul li ul:after{border:0px solid transparent}header nav ul li ul li{padding-top:15px;padding-bottom:15px;border:0px}header nav ul li ul li a{font-size:16px;color:#1c4da1;font-weight:700;text-transform:uppercase;text-align:center;white-space:nowrap;border-bottom:1px solid #9D9D9D;padding-bottom:5px;padding-left:30px;padding-right:30px}header nav ul li ul li:last-child a{border-bottom:0px}}@media (max-width: 640px){#primary-menu{width:100%}#primary-menu>ul{display:none}header #right-menu{display:none;width:100%;padding:40px;flex-direction:column;align-items:center}header #right-menu .round-button-sign{margin-bottom:20px;background-color:#fe6824;color:#fff;width:90%;font-size:16px}header #right-menu .round-button-sign svg path{fill:#fff!important}header #right-menu .round-button-user-menu{margin-bottom:15px}header #right-menu .round-button-sign a{color:#fff;font-size:16px;text-transform:none;align-items:center;justify-content:center;width:100%;display:flex;height:100%}header{flex-direction:column;min-height:100px;height:auto;width:100%;padding-right:0}header nav ul li{padding:20px 0}header #primary-menu-trigger{display:initial}header .menu-dropdown{top:-450px;right:auto}header .lang-menu .menu-dropdown{top:-460px;left:-115px}header .facebook-menu .menu-dropdown{top:-505px;left:-183px;height:400px}header .twitter-menu .menu-dropdown{top:-505px;left:-240px;height:500px}}@media (min-width: 1281px){#primary-menu .main-menu-item .sub-menu{display:none;position:absolute;border-radius:7px;margin-top:12px;min-height:40px;height:auto;z-index:9999;background:#fff;border:1px solid #ADB2B6;padding:12px 32px}#primary-menu .main-menu-item .sub-menu .menu-title{position:relative;display:flex;align-items:center;gap:8px;color:#1c4da1;font-size:20px;font-weight:600;line-height:28px;margin-bottom:16px;padding:12px 0}#primary-menu .main-menu-item .sub-menu .menu-title .menu-title-icon{width:24px;height:24px}#primary-menu .main-menu-item .sub-menu .menu-title:after{content:"";bottom:0;left:0;position:absolute;height:4px;width:32px;background-color:#f95c22}#primary-menu .main-menu-item .sub-menu li{padding:8px 0}#primary-menu .main-menu-item .sub-menu li a{font-size:16px;color:#1c4da1;font-weight:600;line-height:24px}#right-menu .lang-menu-dropdown{overflow:hidden;border-radius:6px}#right-menu .lang-sub-menu{background:#fff;padding:16px!important}#right-menu .lang-sub-menu .lang-menu-item{cursor:default;display:flex;text-align:start;margin-top:0!important;min-width:200px}#right-menu .lang-sub-menu .lang-menu-item>.cookweek-link{color:#1c4da1!important;justify-content:space-between;margin:12px 16px;border-radius:24px;padding:0!important}#right-menu .lang-sub-menu .lang-menu-item.selected>.cookweek-link{width:100%;border:2px solid #1C4DA1;background-color:#e8edf6;margin:0;padding:10px 16px!important}}@media (max-width: 1280px){#primary-menu{width:100%;position:absolute;top:0;left:0;background-color:#fff;z-index:1}.main-menu.show{position:fixed;top:0;left:0;width:100%;height:100vh;background-color:#fff;padding:0 20px;display:flex!important;align-items:stretch}.main-menu.show .main-menu-item{padding:12px 24px}.main-menu.show .main-menu-item .lang-value{text-transform:uppercase}.main-menu.show .main-menu-item .lang-title{display:none}.main-menu.show:has(.sub-menu.show) .main-menu-item:not(:has(.sub-menu.show)){display:none}.main-menu.show:has(.sub-menu.show) .main-menu-item:has(.sub-menu.show) .lang-value{display:none}.main-menu.show:has(.sub-menu.show) .main-menu-item:has(.sub-menu.show) .lang-title{display:inline}.main-menu.show:has(.sub-menu.show) .main-menu-item.sub-menu{width:100%}.main-menu.show:has(.sub-menu.show) .main-menu-item.sub-menu>a{flex-direction:row-reverse;font-size:20px!important;padding:0}.main-menu.show:has(.sub-menu.show) .main-menu-item.sub-menu>a .arrow-icon{width:20px;height:20px;transform:rotate(90deg)}.main-menu.show:has(.sub-menu.show) .sub-menu.show{padding:0 0 40px}.main-menu.show:has(.sub-menu.show) .sub-menu.show>li{margin-top:24px;padding:0}.main-menu.show:has(.sub-menu.show) .sub-menu.show>li>a{padding:0}.main-menu.show .sub-menu{background-color:transparent;box-shadow:none;margin:0}.main-menu.show .sub-menu .lang-list.show{max-height:-moz-fit-content;max-height:fit-content;padding-top:24px!important}.main-menu.show .sub-menu .lang-list.show .lang-menu-item{margin-top:0!important}.main-menu.show .sub-menu .lang-list.show .lang-menu-item>a{width:100%;margin-top:4px;border:2px solid #E8EDF6;border-radius:24px;padding:10px 16px!important}.main-menu.show .sub-menu .lang-list.show .lang-menu-item.selected>a{border-color:#1c4da1;background-color:#e8edf6}.main-menu.show .sub-menu:before{display:none}.main-menu.show .sub-menu li{padding:0}.main-menu.show .sub-menu li a{font-family:Montserrat;font-style:normal;font-weight:600;display:inline-block;margin:0;border:0;text-align:left;padding:4px 16px;font-size:16px;text-transform:none}#primary-menu>ul{display:none}header{min-height:100px;height:auto;width:100%;padding-right:10px;padding-left:25px}header #primary-menu-trigger{display:initial}header #right-menu{justify-content:flex-end;flex:1;margin-right:18px}}footer .content .question{display:flex;flex-direction:column;background-color:#40b5d1;padding-top:65px}footer .content .question .text{color:#fff;padding:0 70px;text-align:center;font-size:25px;font-weight:700;margin-bottom:30px}footer .content .question .get-in-touch{display:flex;position:relative;justify-content:center;margin-bottom:-12px}footer .content .question .get-in-touch .button{position:absolute;top:105px;left:100px;color:#40b5d1;font-weight:700;font-size:20px;font-style:italic;padding:20px;background-color:#fff;width:215px;border-radius:30px;text-align:center}footer .content .about{display:flex;flex-direction:column;align-items:center;margin-top:30px}footer .content .phrase{font-size:14px;color:gray;text-align:center;padding:20px 60px;z-index:0}footer .content .phrase .text{margin-bottom:10px}footer .content .bubbles_footer{margin-left:-50%;margin-top:-60px}footer .logo_footer{display:none}footer .social-media-buttons{display:flex;justify-content:flex-end;margin-right:20px;align-items:center;margin-top:-45px;padding-bottom:20px}footer .social-media-buttons .social-network a{display:flex;margin-right:10px;text-indent:5px}@media (min-width: 961px){footer .content .question{padding-top:0;display:flex;flex-direction:row;align-items:center;justify-content:center}footer .content .question .text{margin-bottom:0;padding:0;font-size:30px;margin-right:105px}footer .content .question .get-in-touch{margin-bottom:20px;margin-top:-12px}footer .content .question .get-in-touch .button{left:-65px}footer .content .about{flex-direction:row-reverse;margin-top:0;margin-right:15px}footer .logo_footer{display:initial}footer .content .bubbles_footer{margin-top:-118px;margin-left:-20px}footer .content .phrase{padding:0 50px}}#footer-scroll-activity{transform:translateY(100%);transition:transform .3s ease}#footer-scroll-activity.visible{transform:translateY(0)}.codeweek-banner{display:flex;background-color:#fe6824;margin:0 10px;flex-direction:column}.codeweek-banner .text{margin:45px 0 45px 25px;display:flex;flex-direction:column;justify-content:center}.codeweek-banner h1{font-size:40px;color:#fff}.codeweek-banner h2{font-size:20px;color:#fff;font-weight:400}.codeweek-banner h2.partner_title{color:#fff;font-family:PT Sans;font-size:40px;font-style:normal;font-weight:700;line-height:40px}.codeweek-banner .image{margin:15px 10px;flex:1;display:flex}@media (min-width: 641px){.codeweek-banner h1{font-size:50px}.codeweek-banner h2{font-size:30px}.codeweek-banner h2.partner_title{color:#fff;font-family:PT Sans;font-size:40px;font-style:normal;font-weight:700;line-height:40px}}@media (min-width: 961px){.codeweek-banner{flex-direction:row;height:366px;margin:0}.codeweek-banner.simple{height:220px}.codeweek-banner h1{font-size:60px}.codeweek-banner h2{font-size:35px}.codeweek-banner h2.partner_title{color:#fff;font-family:PT Sans;font-size:60px!important;font-style:normal;font-weight:700;line-height:48px}.codeweek-banner .text{margin-left:100px;max-width:380px}.codeweek-banner.simple .text{margin:50px 0 0 100px;max-width:none}.codeweek-banner .image{margin:0 20px 0 0;justify-content:flex-end}.codeweek-banner.learn-teach .image,.codeweek-banner.scoreboard .image,.codeweek-banner.about .image{margin-right:140px}}@media (min-width: 1281px){.codeweek-banner.ambassadors .image{margin-top:-40px;margin-right:0}.codeweek-banner .text{margin-left:200px}.codeweek-banner.simple .text{margin:50px 0 0 200px;max-width:none}}.codeweek-banner.training,.codeweek-banner.schools{background-color:#8e90b5}.codeweek-banner.learn-teach{background-color:#b5d0d0}.codeweek-banner.ambassadors{background-color:#f5b742}.codeweek-banner.scoreboard{background-color:#ce80a7}.codeweek-banner.about{background-color:#72a8d0}.codeweek-banner.search{background-color:#164194}.codeweek-banner.error{background-color:#e57373}.codeweek-banner.show-event{background-color:#e2e2e2}.codeweek-banner.show-event .image{margin:0}.codeweek-banner.show-event .image img{height:366px;-o-object-fit:contain;object-fit:contain}.codeweek-banner.show-event .text{margin:15px 80px;max-width:none;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.codeweek-banner.show-event .text .edit-button{display:flex;width:100%;margin-left:-100px;height:40px}.codeweek-banner.show-event .text .delete-button{display:flex;width:100%;height:40px}.codeweek-banner.show-event .text .title{margin-top:-40px;flex:1;display:flex;justify-content:center;align-content:center;flex-direction:column}.codeweek-banner.show-event h1{font-size:45px;color:#fe6824}.codeweek-searchbox{padding:18px 30px;min-height:60px;display:flex;justify-content:stretch;align-items:stretch;flex-direction:column}#codeweek-scoreboard-page .codeweek-searchbox{justify-content:center;align-items:center;flex-direction:row}.codeweek-searchbox .basic-fields{display:flex;flex-direction:row;flex:1}.codeweek-searchbox .advanced-fields,.codeweek-searchbox .advanced-fields .line{display:flex;flex-direction:column}.codeweek-searchbox .advanced-fields .multiselect{margin-top:10px}.codeweek-searchbox .total .number{font-size:40px;color:#fe6824;font-weight:700}.codeweek-searchbox .total .label{font-size:20px;color:#fe6824;font-style:italic}.codeweek-searchbox .total{margin-right:20px}@media (min-width: 961px){.codeweek-searchbox{padding:18px 60px}.codeweek-searchbox .advanced-fields .line{flex-direction:row}.codeweek-searchbox .multiselect{margin-right:10px}.codeweek-searchbox .advanced-fields{flex-direction:row}.codeweek-searchbox .advanced-fields .multiselect{margin-top:18px}}@media (min-width: 1281px){.codeweek-searchbox{padding:18px 100px}}.multiselect.multi-select.multiselect--active .multiselect--values{display:none}.multiselect.multi-select .multiselect--values{line-height:21px}.multiselect.multi-select .multiselect__tags{border-radius:24px;min-height:46px;border:2px solid #A4B8D9;padding:12px 40px 12px 24px;overflow:hidden}.multiselect.multi-select .multiselect__tags .multiselect__input{margin:0;padding:0}.multiselect.multi-select .multiselect__select{width:44px;height:100%}.multiselect.multi-select .multiselect__placeholder,.multiselect.multi-select .multiselect__single{padding:0;margin:0;font-size:16px;font-style:normal;font-weight:400;color:#333e48}.multiselect.multi-select .multiselect__placeholder{max-width:100%;color:#9ca3af;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px}.multiselect.multi-select .multiselect__single{padding-top:6px;color:#333e48}.multiselect.multi-select .multiselect__select:before{content:" ";position:absolute;top:18px;right:14px;display:block;height:8px;width:8px;border:none;border-left:2px solid #5F718A;transform:rotate(45deg)!important}.multiselect.multi-select .multiselect__select:after{content:" ";position:absolute;top:18px;right:19px;display:block;height:8px;width:8px;border:none;border-left:2px solid #5F718A;transform:rotate(-45deg)}.multiselect.multi-select .multiselect__tags-wrap{display:flex;flex-wrap:wrap;gap:4px;padding:0}.multiselect.multi-select .multiselect__tags-wrap .multiselect__tag{margin:0}.multiselect .multiselect__tags{border-radius:29px;min-height:57px}.multiselect .multiselect__select{width:60px;height:54px}.multiselect .multiselect__placeholder,.multiselect .multiselect__single{padding-top:5px;padding-left:12px;font-size:20px;font-style:italic;font-weight:700;color:#fe6824}.multiselect .multiselect__single{padding-top:6px}.multiselect .multiselect__select:before{border-color:#FE6824 transparent transparent}.multiselect .multiselect__tags-wrap{display:inline-table;padding:5px 0 5px 10px}.codeweek-search-text{flex:1;margin-right:10px}.codeweek-search-text input{width:100%;border-radius:29px;height:57px;text-indent:20px;font-size:18px;font-style:italic;border:1px solid #e8e8e8}.codeweek-input-select{display:block;font-size:20px;font-weight:700;font-family:"PT Sans, Roboto",sans-serif;color:#fff;line-height:1.3;padding:.6em 1.8em .5em .8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid #aaa;box-shadow:0 1px 0 1px #0000000a;border-radius:29px;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E),linear-gradient(to bottom,#fe6824,#fe6824);background-repeat:no-repeat,repeat;background-position:right .7em top 50%,0 0;background-size:.65em auto,100%}.codeweek-input-select::-ms-expand{display:none}.codeweek-input-select:hover{border-color:#888}.codeweek-input-select:focus{border-color:#aaa;box-shadow:0 0 1px 3px #3b99fcb3;box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.codeweek-input-select option{font-weight:400;color:#000}.codeweek-form{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-top:1px solid #e8e8e8;margin-top:30px;padding-top:20px}.codeweek-form p:first-child{padding-top:5px;font-size:14px;font-weight:700;margin-bottom:20px;color:#fe6824;margin-top:-15px}.codeweek-form-field-wrapper .info{margin-left:140px;font-size:14px;color:#40b5d1}.codeweek-form-field-wrapper .errors .errorlist{margin:0}.codeweek-form-field,.codeweek-form-field-searchable{display:flex;justify-content:stretch;flex:1;align-items:center}.codeweek-form-field-searchable.align-flex-start{align-items:flex-start}.codeweek-form-field-searchable input{flex:1;height:32px;border-radius:6px;width:100%}.codeweek-form-field-searchable label{margin-right:10px;text-transform:uppercase;width:120px;text-align:right}.codeweek-form-field.align-flex-start{align-items:flex-start}.codeweek-form-field label{margin-right:10px;text-transform:uppercase;width:120px;text-align:right}.codeweek-form-field.align-flex-start label{margin-top:10px}.codeweek-form .codeweek-input-select{flex:1;height:57px;width:auto;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23fe6824%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E),linear-gradient(to bottom,#fff,#fff);background-position:right 1.8em top 50%,0 0;font-weight:400;border-color:#e8e8e8;color:#000;text-indent:2px;font-size:14px;box-shadow:none;cursor:pointer}.codeweek-form .multiselect-wrapper,.codeweek-form .datepicker-wrapper,.codeweek-form .input-tag-wrapper{flex:1}.codeweek-form .mx-datepicker .mx-input-icon{right:20px}.codeweek-form .input-tag-wrapper .vue-input-tag-wrapper{padding:0;border:none;display:inline-table;width:100%;background-color:transparent;margin:10px 25px 0;max-width:90%}.codeweek-form .group-fields{flex:1}.codeweek-form-message .message{margin-bottom:30px}.codeweek-form-message .codeweek-form-field label{width:auto;text-align:left}.codeweek-form-field-privacy,.codeweek-form-field-checkbox{display:flex;justify-content:center;flex:1;width:100%;padding:20px}.codeweek-form-button-container{display:flex;justify-content:center;width:100%;margin-top:30px;margin-bottom:20px}#codeweek-searchpage-component .multiselect .multiselect__tags,#codeweek-register-page .multiselect .multiselect__tags{border-radius:29px;min-height:57px}#codeweek-searchpage-component .multiselect .multiselect__select,#codeweek-register-page .multiselect .multiselect__select{width:60px;height:54px}#codeweek-searchpage-component .multiselect .multiselect__placeholder,#codeweek-searchpage-component .multiselect .multiselect__single,#codeweek-register-page .multiselect .multiselect__placeholder,#codeweek-register-page .multiselect .multiselect__single{padding-top:5px;padding-left:12px;font-size:20px;font-style:italic;font-weight:700;color:#fe6824}#codeweek-searchpage-component .multiselect .multiselect__single,#codeweek-register-page .multiselect .multiselect__single{padding-top:6px}#codeweek-searchpage-component .multiselect .multiselect__select:before,#codeweek-register-page .multiselect .multiselect__select:before{border-color:#FE6824 transparent transparent}#codeweek-searchpage-component .multiselect .multiselect__tags-wrap,#codeweek-register-page .multiselect .multiselect__tags-wrap{display:inline-table;padding:5px 0 5px 10px}#codeweek-searchpage-component .codeweek-search-text,#codeweek-register-page .codeweek-search-text{flex:1;margin-right:10px}#codeweek-searchpage-component .codeweek-search-text input,#codeweek-register-page .codeweek-search-text input{width:100%;border-radius:29px;height:57px;text-indent:20px;font-size:18px;font-style:italic;border:1px solid #e8e8e8}#codeweek-searchpage-component .codeweek-input-select,#codeweek-register-page .codeweek-input-select{display:block;font-size:20px;font-weight:700;font-family:"PT Sans, Roboto",sans-serif;color:#fff;line-height:1.3;padding:.6em 1.8em .5em .8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid #aaa;box-shadow:0 1px 0 1px #0000000a;border-radius:29px;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url(data:image/svg+xml;charset=US-ASCII,\ %3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E),linear-gradient(to bottom,#fe6824,#fe6824);background-repeat:no-repeat,repeat;background-position:right .7em top 50%,0 0;background-size:.65em auto,100%}#codeweek-searchpage-component .codeweek-input-select::-ms-expand,#codeweek-register-page .codeweek-input-select::-ms-expand{display:none}#codeweek-searchpage-component .codeweek-input-select:hover,#codeweek-register-page .codeweek-input-select:hover{border-color:#888}#codeweek-searchpage-component .codeweek-input-select:focus,#codeweek-register-page .codeweek-input-select:focus{border-color:#aaa;box-shadow:0 0 1px 3px #3b99fcb3;box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}#codeweek-searchpage-component .codeweek-input-select option,#codeweek-register-page .codeweek-input-select option{font-weight:400;color:#000}#codeweek-searchpage-component .codeweek-form,#codeweek-register-page .codeweek-form{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-top:1px solid #e8e8e8;margin-top:30px;padding-top:20px}#codeweek-searchpage-component .codeweek-form p:first-child,#codeweek-register-page .codeweek-form p:first-child{padding-top:5px;font-size:14px;font-weight:700;margin-bottom:20px;color:#fe6824;margin-top:-15px}.codeweek-form-inner-two-columns{display:flex;flex-direction:row;align-items:flex-start;width:100%}.codeweek-form-inner-container{display:flex;flex-direction:column;flex:1}.codeweek-form-inner-container:last-child{margin-left:20px}.codeweek-form-field-wrapper{margin-bottom:15px}.codeweek-form-field-wrapper .errors{margin-left:140px;font-size:13px;color:red}#codeweek-searchpage-component .codeweek-form-field-wrapper .info{margin-left:140px;font-size:14px;color:#40b5d1}#codeweek-searchpage-component .codeweek-form-field-wrapper .errors .errorlist{margin:0}#codeweek-searchpage-component .codeweek-form-field,#codeweek-searchpage-component .codeweek-form-field-searchable{display:flex;justify-content:stretch;flex:1;align-items:center}#codeweek-searchpage-component .codeweek-form-field-searchable.align-flex-start{align-items:flex-start}#codeweek-searchpage-component .codeweek-form-field-searchable input{flex:1;height:32px;border-radius:6px;width:100%}#codeweek-searchpage-component .codeweek-form-field-searchable label{margin-right:10px;text-transform:uppercase;width:120px;text-align:right}#codeweek-searchpage-component .codeweek-form-field.align-flex-start{align-items:flex-start}.codeweek-form-field input{flex:1;height:57px;border:1px solid #e8e8e8;border-radius:29px;text-indent:20px;width:100%}.codeweek-form-field textarea{flex:1;border-radius:29px;border:1px solid #e8e8e8;text-indent:20px;font-family:"PT Sans, Roboto",sans-serif;font-size:14px;padding-top:16px}#codeweek-searchpage-component .codeweek-form-field label{margin-right:10px;font-family:Blinker}#codeweek-searchpage-component .codeweek-form-field.align-flex-start label{margin-top:10px}.codeweek-form .codeweek-input-select{flex:1;height:57px;width:auto;background-image:url(data:image/svg+xml;charset=US-ASCII,\ %3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23fe6824%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E),linear-gradient(to bottom,#fff,#fff);background-position:right 1.8em top 50%,0 0;font-weight:400;border-color:#e8e8e8;color:#000;text-indent:8px;font-size:14px;box-shadow:none;cursor:pointer}#codeweek-searchpage-component .codeweek-form .multiselect-wrapper,#codeweek-searchpage-component .codeweek-form .datepicker-wrapper,#codeweek-searchpage-component .codeweek-form .input-tag-wrapper{flex:1}#codeweek-searchpage-component .codeweek-form .mx-datepicker .mx-input-icon{right:20px}.codeweek-form .codeweek-form-inner-container h3{margin-bottom:15px}.codeweek-form .input-tag-wrapper{border:1px solid #e8e8e8;border-radius:29px}#codeweek-searchpage-component .codeweek-form .input-tag-wrapper .vue-input-tag-wrapper{padding:0;border:none;display:inline-table;width:100%;background-color:transparent;margin:10px 25px 0;max-width:90%}.codeweek-form .input-tag-wrapper .vue-input-tag-wrapper input{padding:0;margin:0;height:59px;text-indent:0}#codeweek-searchpage-component .codeweek-form .group-fields{flex:1}.codeweek-form-message{padding:30px;background-color:#e8e8e8;border-radius:20px;margin-top:20px}#codeweek-searchpage-component.codeweek-form-message .message{margin-bottom:30px}.login-form .codeweek-form-message .codeweek-form-field label{width:auto;text-align:left}.login-form .codeweek-form-field-privacy,.login-form .codeweek-form-field-checkbox{display:flex;justify-content:center;flex:1;width:100%;padding:20px}.codeweek-form-button-container{display:flex;justify-content:center;width:100%}.v-autocomplete{position:relative}.v-autocomplete-list{background-color:#fff;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;margin-top:6px;position:absolute;z-index:100;width:100%}.v-autocomplete-input{width:100%}.v-autocomplete-list-item{padding:10px;border-top:1px solid #ccc;cursor:pointer}.v-autocomplete-item-active{background-color:#eee}.v-autocomplete-list-item .city{font-size:11px}.v-autocomplete-list-item .name{font-weight:700}[type=file]{border:0;clip:rect(0,0,0,0);height:1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;width:1px}[type=file]+label{cursor:pointer;display:inline-block;height:100%;padding:18px 25px;border-radius:29px;background-color:#fe6824;color:#fff;font-size:18px;font-weight:700;text-transform:uppercase}[type=file]:focus+label,[type=file]+label:hover{background-color:#f15d22}[type=file]:focus+label{outline:1px dotted #000}.codeweek-user-avatar{display:flex}.codeweek-user-avatar .name{flex:1;display:flex;align-items:flex-end}.codeweek-user-avatar .avatar{display:flex}.codeweek-user-avatar .avatar .codeweek-avatar-image{width:100px;height:100px;border-radius:50%;border:5px solid #e8e8e8}.codeweek-user-avatar .avatar .actions{display:flex;align-items:flex-end}.codeweek-display-field{margin-bottom:20px}.codeweek-display-field p{padding:5px}.codeweek-display-field ul{display:flex;margin:15px 0;flex-wrap:wrap}.codeweek-display-field li{margin-right:10px;margin-bottom:10px}.codeweek-display-field .itens .label{border:1px solid #FE6824;border-radius:5px;padding:10px;color:#fe6824;font-size:20px}.codeweek-display-field .share-event-wrapper{margin-top:5px}.codeweek-more-button{width:45px;height:45px;border:1px solid #FE6824;border-radius:45px;display:flex;justify-content:center;cursor:pointer;margin-top:5px}.codeweek-more-button span{background-color:transparent;font-size:40px;width:100%;text-align:center;margin-top:-3px;color:#fe6824;font-weight:700}.codeweek-button input{cursor:pointer;height:100%;padding:0 25px;border-radius:29px;background-color:#fe6824;color:#fff;font-size:14px;font-weight:700;text-transform:uppercase;min-height:57px}.codeweek-button input:hover,.codeweek-action-button:hover,.codeweek-action-link-button:hover,.codeweek-image-button:hover{background-color:#f15d22}.codeweek-blank-button{border:1px solid #707070;border-radius:32px;color:#000;font-size:20px;padding:20px 40px}.codeweek-orange-button{border:2px solid #c54609;border-radius:16px;color:#fff;background-color:#fe6824;font-size:16px;padding:12px 30px;margin-left:4px}.codeweek-svg-button{width:35px;height:35px;display:flex}.codeweek-svg-button svg{width:100%;height:100%}.codeweek-svg-button svg path{fill:#fe6824!important}.codeweek-svg-button:hover svg path{fill:#f15d22!important}.codeweek-expander-button{background-color:#fe6824;color:#fff;width:40px;height:40px;padding:0;outline:none}.codeweek-expander-button div{font-size:30px;font-weight:700;height:40px}.codeweek-action-button{cursor:pointer;padding:7px;border-radius:10px;background-color:#fe6824;color:#fff;font-size:14px;font-weight:700;text-transform:uppercase;outline:none}.codeweek-action-link-button{cursor:pointer;padding:9px 25px;border-radius:10px;background-color:#fe6824;color:#fff;font-size:18px;font-weight:700;text-transform:uppercase;min-height:40px;z-index:10}.codeweek-image-button{cursor:pointer;padding:0 15px;border-radius:20px;background-color:#fe6824;color:#fff;font-size:14px;font-weight:700;text-transform:uppercase;min-height:40px;outline:none}.codeweek-image-button svg path{fill:#fff!important}.codeweek-action-button.green{background-color:#228b22}.codeweek-action-link-button.red,.codeweek-action-button.red{background-color:#b22222;min-height:10px}.codeweek-action-button.orange{background-color:red}@media (min-width: 641px){.codeweek-button input{font-size:20px}}.codeweek-grid-layout{display:grid;grid-template-columns:1fr;grid-gap:20px}.codeweek-card{box-shadow:0 2px 1px -1px #0003,0 1px 1px #0003,0 1px 3px #0003;border-radius:4px;display:flex;flex-direction:column;justify-content:stretch}.codeweek-card .card-image{width:100%;border-radius:4px 4px 0 0;-o-object-fit:cover;object-fit:cover;height:194px}.codeweek-card .card-avatar{width:100%;display:flex;justify-content:center;margin-top:10px}.codeweek-card .card-image-avatar{width:200px;height:200px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:3px solid lavenderblush}.codeweek-card .card-content{padding:16px}.codeweek-card .card-title{font-size:24px;color:#000000de;margin-bottom:12px}.codeweek-card .card-subtitle{color:#000000de;margin-bottom:12px}.codeweek-card .card-description{font-size:14px;color:#0009;margin-bottom:12px;word-break:break-word}.codeweek-card .card-actions{padding:16px;flex:1;display:flex;justify-content:flex-end;align-items:flex-end}.codeweek-card .card-actions .codeweek-action-link-button,.codeweek-card .card-actions .codeweek-action-button,.codeweek-card .card-actions .codeweek-svg-button{margin-left:10px}.codeweek-card .card-expander.collapsed{background-image:url(/images/arrow_down.svg)}.codeweek-card .card-expander.expanded{background-image:url(/images/arrow_up.svg)}.codeweek-card .card-expander{cursor:pointer;padding:3px;margin:0 10px;text-align:center;background-color:#e8e8e8;background-position:center;background-repeat:no-repeat;height:14px;background-size:15px;border-radius:10px}.codeweek-card .card-expander:hover{background-color:#ddd}.codeweek-card .card-divider{border:1px solid #e8e8e8;margin:20px 0}.codeweek-card .card-chips{display:flex;flex-wrap:wrap;margin-bottom:10px}.codeweek-card .card-chip{margin:4px;background-color:#8dcece;padding:7px 12px;border-radius:16px;font-size:14px;color:#fff;font-weight:600}@media (min-width: 641px){.codeweek-grid-layout{grid-template-columns:1fr 1fr}}@media (min-width: 961px){.codeweek-grid-layout{grid-template-columns:1fr 1fr 1fr}}.codeweek-tools{display:flex;justify-content:flex-end;width:100%;margin:10px 0 35px}.codeweek-question-container{display:flex;flex-direction:column;padding:30px 20px 0}.codeweek-question-container .container-expansible.expanded{display:inherit}.codeweek-question-container .container-expansible.collapsed{display:none}.codeweek-question-container .expander-always-visible,.codeweek-question-container .container-expansible{display:flex;width:100%}.codeweek-question-container .expander-always-visible{margin-bottom:30px}.codeweek-question-container .expansion{min-width:40px;margin-right:70px;display:none}.codeweek-question-container .container-expansible .expansion{justify-content:center;margin-bottom:-40px;z-index:1;display:none}.codeweek-question-container .container-expansible .expansion .expansion-path{border-width:1px;border-color:#fe6824;border-style:dashed;margin-top:-40px}.codeweek-question-container h2{font-size:20px;font-weight:400;font-style:italic}.codeweek-question-container p{padding:15px 0}.codeweek-question-container .container-expansible .content{margin-bottom:50px}.codeweek-question-container .container-expansible .content .button{margin-top:40px;text-align:center}.codeweek-question-container .container-expansible .content .map{width:100%;height:400px;border:0}.codeweek-content-wrapper{width:auto;margin:25px 10px 0;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.codeweek-content-wrapper-inside{margin:0}.codeweek-content-grid{display:grid;grid-template-columns:1fr;grid-gap:15px}.codeweek-content-grid .codeweek-card-grid{background-color:#f2f2f8}.codeweek-content-grid .title{font-size:20px;font-weight:700;color:#fe6824;padding:20px}.codeweek-content-grid .author{color:#fe6824;padding:20px}.codeweek-youtube-container iframe{width:100%;border:none;height:500px}.codeweek-content-header{margin:0 10px}.codeweek-content-header h1+p{padding-top:10px}.codeweek-cookie-consent-banner{padding:20px 50px;border-bottom:1px solid #e8e8e8}.codeweek-cookie-consent-banner .actions{display:flex;margin-top:10px;margin-bottom:10px;justify-content:flex-end}.codeweek-blue-box{background-color:#deebf4;padding:20px}.community_type{display:flex;flex-direction:column-reverse}.community_type .text{flex:2}.community_type .text p{line-height:30px;text-align:justify}.community_type .image{flex:1;display:flex;justify-content:center;align-items:center}.community_type_section{padding:20px}@media (min-width: 641px){.codeweek-content-wrapper{margin:40px 60px 0}.codeweek-content-header{margin:0 60px}.codeweek-content-wrapper-inside{margin:5px 55px}.codeweek-question-container{padding:40px 50px 0}.codeweek-question-container .expansion,.codeweek-question-container .container-expansible .expansion{display:flex}.codeweek-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px}.hackathons-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:20px}}@media (min-width: 961px){.codeweek-content-wrapper{margin:50px 100px 0}.codeweek-content-header{margin:0 100px}.codeweek-content-wrapper-inside{margin:15px 55px}.community_type{flex-direction:row}}@media (min-width: 1200px){.codeweek-content-wrapper-inside{margin:15px 115px}}.codeweek-youtube-container{width:100%;border:none;height:500px;margin:auto;background-color:#000;position:relative;overflow:hidden}.codeweek-youtube-container .background{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;color:#fff;display:none;align-items:center;justify-content:center;text-align:center}.codeweek-youtube-container .background .container .content{max-width:90%}.codeweek-youtube-container .background .info{width:90%;margin:auto}.codeweek-youtube-container .background .info .button button{background-color:#40b5d1;color:#fff;border:none;padding:10px 20px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;margin:auto}.codeweek-youtube-container .background .info .button button:hover{background:#fe6824}.codeweek-youtube-container .background .info .button button svg{margin-right:.5rem}.codeweek-youtube-container .remember input{margin-right:.5rem}@media (min-width: 1025px){.codeweek-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:15px}.hackathons-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:15px}}@media (min-width: 1281px){.codeweek-question-container{padding:40px 230px 0 100px}}.hackathons-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:15px}.hackathons-content-grid .codeweek-card-grid{background-color:#f2f2f8}.hackathons-content-grid .title{font-size:20px;font-weight:700;color:#fe6824;padding:20px}.hackathons-content-grid .author{color:#fe6824;padding:20px}.codeweek-container-lg{max-width:1460px;width:100%;padding:0 20px;margin-left:auto;margin-right:auto}@media screen and (min-width: 768px){.codeweek-container-lg{padding:0 40px}}.codeweek-container{max-width:1220px;width:100%;padding:0 20px;margin-left:auto;margin-right:auto}@media screen and (min-width: 768px){.codeweek-container{padding:0 40px}}.codeweek-pagination{margin-top:80px;margin-bottom:60px;display:flex;justify-content:center}.codeweek-pagination ul{list-style:none;display:flex;padding:0;margin:0}.codeweek-pagination ul li a,.codeweek-pagination ul li.active span{cursor:pointer;font-size:16px}.codeweek-pagination ul li a.back,.codeweek-pagination ul li a.next{text-transform:uppercase}.codeweek-pagination ul li a.back{margin-right:10px}.codeweek-pagination ul li a.next{margin-left:5px}.codeweek-pagination ul li a.page,.codeweek-pagination ul li .page-link{border:1px solid #E6E6E6;padding:10px 18px;border-radius:50%;margin-right:5px}.codeweek-pagination ul li a.page.current{color:#000}.codeweek-pagination ul li a[disabled=disabled]{color:#9b9b9b;cursor:not-allowed}@media (min-width: 641px){.codeweek-pagination ul li a,.codeweek-pagination ul li.active span{font-size:18px}.codeweek-pagination ul li a.page,.codeweek-pagination ul li .page-link{padding:15px 22px;margin-right:8px}.codeweek-pagination ul li a.back{margin-right:20px}.codeweek-pagination ul li a.next{margin-left:12px}}@media (min-width: 1281px){.codeweek-pagination ul li a,.codeweek-pagination ul li.active span{font-size:20px}.codeweek-pagination ul li a.page,.codeweek-pagination ul li .page-link{padding:20px 28px;margin-right:10px}.codeweek-pagination ul li a.back{margin-right:20px}.codeweek-pagination ul li a.next{margin-left:10px}}.codeweek-view-calendar .month{font-size:18px;color:#707070;font-family:Helvetica;text-align:center;text-transform:capitalize}.codeweek-view-calendar .month th{font-weight:400;font-family:PT Sans,Roboto;color:#000;font-size:20px}.codeweek-view-calendar .month .filled{background-color:#ffeee6}@media (max-width: 600px){.codeweek-view-calendar{display:none}}.codeweek-table{width:100%}.codeweek-table tr:nth-child(2n){background-color:#ffeee6}.codeweek-table th{color:#fff;background-color:#fe6824;padding:5px;font-weight:400}.codeweek-table td{padding:5px}.codeweek-table .actions{display:flex;justify-content:center}.codeweek-question-container:nth-child(2n){background-color:#ebebf0}#codeweek-schools-page .codeweek-content-wrapper{margin:0;align-items:stretch}#codeweek-beambassadors-page ul{list-style:inherit}#codeweek-ambassadors-page .codeweek-searchbox,#codeweek-pending-events-page .codeweek-searchbox{align-items:center;justify-content:center}#codeweek-training-page .codeweek-banner h2{text-transform:uppercase}#codeweek-searchpage-component .home-map .add-button{top:40px;position:absolute;z-index:3;left:20px}#codeweek-sponsors-page .codeweek-content-wrapper ul{display:grid;grid-template-columns:1fr;grid-gap:30px}#codeweek-sponsors-page .codeweek-content-wrapper ul li{display:flex;justify-content:center;align-items:center;border:1px solid lightgrey;border-radius:10px}#codeweek-pending-events-page .codeweek-content-header .header{display:flex;justify-content:space-between}#codeweek-pending-events-page .codeweek-content-header .header .actions{display:flex;align-items:center}#teacher-details li.active{border-left-color:#f97316;border-top-color:#f97316}@media (min-width: 641px){#codeweek-sponsors-page .codeweek-content-wrapper ul{grid-template-columns:1fr 1fr}}@media (min-width: 961px){#codeweek-sponsors-page .codeweek-content-wrapper ul{grid-template-columns:1fr 1fr 1fr}}#main-banner{background-color:#fe6824;display:flex;flex-direction:column;justify-content:space-between}#main-banner .what{display:flex;margin:50px 10%;margin-bottom:1rem}#main-banner .what .separator{width:32px;border:1px solid #FFFFFF;border-right:0}#main-banner .what .text{font-family:OCR A Std,Open Sans;color:#fff;padding-top:20px;line-height:1.4;padding-bottom:10px}#main-banner .info{display:flex;flex-direction:column}#main-banner .info .when{margin:40px 0 20px 10%}@media (max-width: 993px){#main-banner .info .when{margin:4rem}}@media (max-width: 525px){#main-banner .info .when{margin:0rem}#main-banner .info{padding:1rem}}#main-banner .info .when .arrow{text-align:center;margin-top:70px;margin-left:-10%}#main-banner .info .when .text{display:none}#main-banner .info .when .title{color:#fff;font-size:35px;font-weight:700}#main-banner .info .when .date{color:#fe6824;font-size:23px;font-weight:700;background-color:#fff;padding:5px;margin-top:15px;text-align:center;width:220px}@media (max-width: 993px){#main-banner .info .when .date{width:100%}}#main-banner .info .countdown{margin-bottom:15px}#school-banner{display:flex;flex-direction:column;align-items:center;margin:20px 15px 0;background-color:#ffe3d6;padding:25px 20px 20px;font-weight:700;color:#fe6824}#school-banner .title{font-size:40px;text-align:center}#school-banner .text{font-size:14px;text-align:center}#school-banner .text a{color:#fe6824}#school-banner .text a:hover,#school-banner a:hover .title{color:#40b5d1}.sub-section{display:flex;flex-direction:column;align-items:center;margin:0 15px;padding-top:40px;color:#fe6824}.sub-section .text{font-size:17px;font-weight:700;text-align:center;padding:0 30px;margin-bottom:20px;line-height:1.4}.sub-section .title{margin:30px;border:1px solid #FE6824;border-radius:16px;padding:20px;font-family:OCR A Std,Open Sans;font-size:21px;line-height:1.6}#organize-activity{background-color:#ffe3d6;padding-top:0}#get-started{background-color:#ffeec7}#access-resources{background-color:#dbecf0}#content .mobile-arrow{margin:20px auto;text-align:center}#content .mobile-arrow path{stroke:#fe6824!important}.countdown{position:relative;display:flex;flex-direction:column}#countdown div{padding:10px 5px;margin-right:2px;background-color:#000;color:#fff;font-size:18px;font-family:OCR A Std,Open Sans}#countdown .separator{background-color:transparent;color:#000}@media (min-width: 641px){#main-banner{background-repeat:no-repeat;background-position-x:112%}#main-banner .what .text{font-size:20px}#main-banner .info .when .title{font-size:50px}#main-banner .info .when .date{font-size:25px}}@media (min-width: 961px){#main-banner .what .text{font-size:25px}#main-banner .info{flex-direction:row-reverse;justify-content:flex-end}#main-banner .info .when{width:320px;margin:0 10px 20px 10%}#main-banner .info .when .title{font-size:60px}#main-banner .info .when .date{font-size:35px;width:auto;margin:15px 0}#main-banner .info .when .text{display:initial;color:#fff;font-weight:700;line-height:1.3}#main-banner .info .when .arrow{margin-top:40px}#school-banner{background-color:transparent;flex-direction:row;justify-content:center;margin:40px 0}#school-banner .title{font-size:55px;margin-right:20px}#school-banner .text{font-size:30px;margin-left:10px}.sub-section{flex-direction:row-reverse;padding:60px 0;margin:0 50px}.sub-section .text{font-size:20px;flex-basis:33%;text-align:left}.sub-section .title{font-size:28px;width:420px}.sub-section img{height:400px;flex-basis:33%}#content .mobile-arrow{display:none}#organize-activity{padding:60px 0}#get-started img,#access-resources img{margin-left:-100px;z-index:1}#access-resources{padding:30px 0}#access-resources img{height:470px}}@media (min-width: 1281px){#main-banner{height:644px}#main-banner .info .when{margin-right:50px;width:auto;max-width:500px}#main-banner .info .when .date{font-size:38px;margin-bottom:1rem}#main-banner .info .when .text{font-size:18px}#main-banner .info .countdown{margin-top:3rem;margin-left:-10px}#main-banner .info .when .arrow{width:94px;height:94px;border-radius:50%;background-color:#fe6824;margin-left:94px;margin-top:10px;display:flex;align-items:center;justify-content:center;cursor:pointer}}.homepage-robot .robot-word{position:absolute;top:0;right:60%;transform:scale(.5) translateY(-100%);opacity:0;animation:robotWordAnimation 2s forwards}.homepage-robot .robot-land{transform:translateY(20%);animation:robotLandAnimation 2s forwards}@keyframes robotWordAnimation{to{top:15%;right:70%;transform:scale(1) translateY(-100%);opacity:1}}@keyframes robotLandAnimation{to{transform:translateY(0)}}#codeweek-searchpage-component .home-map .wtmap .wtfooter{display:none}#codeweek-searchpage-component .codeweek-searchbox .basic-fields .right-fields{display:flex}#codeweek-searchpage-component .codeweek-searchbox .basic-fields .codeweek-button,#codeweek-searchpage-component .codeweek-searchbox .basic-fields .year-selection{margin-right:10px}#codeweek-searchpage-component .codeweek-searchbox .basic-fields{flex-direction:column}#codeweek-searchpage-component .codeweek-searchbox .basic-fields .right-fields{margin-top:10px;justify-content:center}#codeweek-searchpage-component{position:relative;padding-bottom:30px}#loadmask{width:100%;height:452px;display:flex;justify-content:center;align-items:center;position:absolute;top:0;z-index:1000;background-color:#fff}#loadmask .loading{display:flex;justify-content:center;align-items:center}.sub-category-title{color:#fe6824;font-size:40px;font-style:italic;width:100%;margin-bottom:40px;text-align:center}.reported-event,.event-already-reported,.report-event{display:flex;justify-content:flex-end;align-items:center;padding:5px;background-color:#f8f8f8}.reported-event .actions,.event-already-reported .actions,.report-event .actions{margin-left:10px}.moderate-event{display:flex;align-items:center;padding:5px;background-color:#f8f8f8}.moderate-event .actions{margin-left:10px}.event-is-pending{padding:10px;background-color:#ffffc3;text-align:center}@media (min-width: 641px){.sub-category-title{text-align:left}}@media (min-width: 961px){#codeweek-searchpage-component .codeweek-searchbox .basic-fields{flex-direction:row}#codeweek-searchpage-component .codeweek-searchbox .basic-fields .right-fields{margin-top:0}}.codeweek-content-wrapper .tools{display:flex;justify-content:flex-end;padding-bottom:30px;width:100%}#codeweek-about-page .codeweek-content-wrapper h1,#codeweek-about-page .codeweek-content-wrapper p{padding:15px 20px}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-blue-box{background-color:#deebf4;padding:20px}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-white-box{padding:20px}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-blue-box h1,#codeweek-about-page .codeweek-content-wrapper .codeweek-about-blue-box p{padding-left:0}#codeweek-about-page .codeweek-content-wrapper .partners a{display:flex}#codeweek-about-page .codeweek-content-wrapper .partners a:hover h1{color:#40b5d1}#codeweek-about-page .codeweek-content-wrapper .partners a h1{padding-right:10px}@media (min-width: 641px){#codeweek-about-page .codeweek-content-wrapper h1,#codeweek-about-page .codeweek-content-wrapper p{padding:15px 40px}#codeweek-about-page h3{margin-top:15px}#codeweek-about-page h4{margin-top:8px;margin-left:10px;margin-bottom:4px;color:#0d2460}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-blue-box .codeweek-about-white-box{padding:20px 40px}}@media (min-width: 961px){#codeweek-about-page .codeweek-content-wrapper h1,#codeweek-about-page .codeweek-content-wrapper p{padding:20px 100px}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-blue-box{background-color:#deebf4;padding:40px 100px}#codeweek-about-page .codeweek-content-wrapper .codeweek-about-white-box{padding:40px 100px}}@media (min-width: 1025px){#codeweek-about-page .codeweek-content-wrapper .about-two-column{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}}#codeweek-login-page .codeweek-content-wrapper-inside{display:flex;flex-direction:column}#codeweek-login-page .codeweek-content-wrapper-inside .social-media-buttons{order:3;display:flex;flex-direction:column}#codeweek-login-page .codeweek-content-wrapper-inside .social-media-buttons .codeweek-action-link-button{text-transform:none}#codeweek-login-page .login-form{flex:1;margin-left:10px;margin-top:30px;order:1}#codeweek-login-page .codeweek-form-field-checkbox{text-transform:uppercase;justify-content:flex-start}#codeweek-login-page .codeweek-form-field input{min-height:57px}#codeweek-login-page .codeweek-form-field label{width:auto;text-align:left;margin-left:20px;margin-bottom:10px}#codeweek-login-page .codeweek-button{display:flex;flex:1}#codeweek-login-page .codeweek-button input{flex:1}#codeweek-login-page .separator{display:flex;flex-direction:row;align-items:center;padding:0 30px;order:2;gap:10px}#codeweek-login-page .separator .line{border-top:1px solid #ccc;flex:1}#codeweek-login-page .separator .text{padding:20px 0;font-size:22px}#codeweek-login-page .social-media-buttons .codeweek-action-link-button{display:flex;align-items:center;margin-bottom:15px;font-size:24px;font-weight:400;height:80px}#codeweek-login-page .social-media-buttons .codeweek-action-link-button svg,#codeweek-login-page .social-media-buttons .codeweek-action-link-button img{height:50px;fill:#fff;margin-right:30px;border-right:1px solid;padding-right:10px}#codeweek-login-page .social-media-buttons .codeweek-action-link-button.github{background-color:#8f7ba1}#codeweek-login-page .social-media-buttons .codeweek-action-link-button.twitter{background-color:#000}#codeweek-login-page .social-media-buttons .codeweek-action-link-button.facebook{background-color:#4267b2}#codeweek-login-page .social-media-buttons .codeweek-action-link-button.google{background-color:#db3236}#codeweek-login-page .social-media-buttons .codeweek-action-link-button.azure{background-color:#0072c6}#codeweek-login-page .login-other-actions{display:flex;margin-top:60px;font-size:14px;height:30px}#codeweek-login-page .login-other-actions .forgot-password{margin-right:20px;border-right:1px solid #ccc;padding-right:20px}#codeweek-login-page .login-other-actions .forgot-password,#codeweek-login-page .login-other-actions .sign-up{display:flex;align-items:center}@media (min-width: 1200px){#codeweek-login-page .codeweek-content-wrapper-inside{display:flex;flex-direction:row}#codeweek-login-page .codeweek-content-wrapper-inside .social-media-buttons{order:1}#codeweek-login-page .separator{order:2;display:flex;flex-direction:column;align-items:center;padding:0 30px;gap:0}#codeweek-login-page .login-form{order:3}#codeweek-login-page .separator .line{border-right:1px solid #ccc;flex:1}}.help-block .errorlist{margin:0}.reset_title{color:var(--Dark-Blue-500, #1C4DA1);font-family:Montserrat;font-size:36px;font-style:normal;font-weight:500;line-height:44px;letter-spacing:-.72px;padding-bottom:40px}.reset_description{color:var(--Slate-500, #333E48);font-family:Blinker;font-size:20px;font-style:normal;font-weight:400;line-height:30px;padding-bottom:40px}#codeweek-login-page .codeweek-form-field{flex-direction:column;align-items:flex-start}#codeweek-forgotpassword-page .codeweek-form-field,.codeweek-form-field-searchable{display:flex;justify-content:stretch;flex:1;align-items:flex-start;flex-direction:column;align-content:flex-start}.codeweek-form-field-add{display:flex;flex:1;flex-direction:row;align-items:center}@media screen and (max-width: 1080px){.reset_title{color:var(--Dark-Blue-500, #1C4DA1);font-family:Montserrat;font-size:30px;font-style:normal;font-weight:400;line-height:36px;letter-spacing:-.72px;display:flex;padding-bottom:24px}.reset_description{font-family:Blinker;font-size:20px;font-style:normal;font-weight:400;line-height:30px;padding-bottom:24px}}#codeweek-toolkits-page .codeweek-content-wrapper .button{text-align:center;margin:15px}.copyright{margin-top:30px;padding-bottom:30px;width:100%;color:#0e4984;font-size:small}.subtitle{margin-top:10px;font-size:x-large}.codeweek-code-hunting-map-card{display:flex}.codeweek-code-hunting-map-card .left{display:flex;flex-direction:column}.codeweek-code-hunting-map-card .left img{border-radius:15px;width:150px;height:150px;-o-object-fit:cover;object-fit:cover}.codeweek-code-hunting-map-card .left .links{display:flex;flex-direction:column;align-items:center}.codeweek-code-hunting-map-card .left .links .link{padding:5px}.codeweek-code-hunting-map-card .center{margin:0 10px;flex:1}.codeweek-code-hunting-map-card .center .title{font-size:18px;font-weight:700}.codeweek-code-hunting-map-card .center .description{line-height:1.5;margin-top:5px}.codeweek-code-hunting-map-card .center .link{padding:10px;display:flex;align-items:center;justify-content:center}.codeweek-code-hunting-map-card .qrcode{width:150px}.codeweek-code-hunting-map-card .qrcode-link{height:-moz-max-content;height:max-content}header.hackathons nav{max-width:none}header.hackathons nav ul li a{font-size:19px}header.hackathons #right-menu{padding-right:0}header.hackathons #right-menu #hackathons-register-button{background-color:#fe6824;width:195px;height:156px;display:flex;justify-content:center;align-items:center}header.hackathons #right-menu #hackathons-register-button a{height:100%;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center}.hackathons-content-header{flex:1;display:flex;flex-direction:column;justify-content:flex-start;height:100%}#secondary-menu{display:flex;justify-content:flex-end;margin-right:30px;flex:initial;margin-bottom:10px}#secondary-menu ul li a{font-size:16px;display:flex;color:#9b9b9b}#secondary-menu ul li a img{margin-right:10px}.codeweek-banner.hackathons{height:auto;margin:0;display:block}.codeweek-banner.hackathons .image{margin:0}.codeweek-banner.hackathons .image .text{position:absolute;margin:215px 5px 10px;max-width:300px;text-align:center}.codeweek-banner.hackathons .image .desktop{display:none}.hackathons-content-grid{grid-template-columns:1fr 1fr}.codeweek-banner.hackathons .image{justify-content:center}.codeweek-banner.hackathons .image .text .text-inside h1{color:#fe6824}#codeweek-hackathons-page h1{font-size:30px;font-weight:400}#codeweek-hackathons-page .align-center{text-align:center}.hackathons_section{display:flex;padding:20px 40px}.hackathons_section img{flex:1}#codeweek-hackathons-page p{font-size:14px;line-height:1.4}.hackathons_section{flex-direction:column}.hackathons_section .text-inside{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.hackathons_section p{color:#fff}.hackathons_section.how_coding{background-color:#180053}.hackathons-content-grid{margin-top:35px;margin-bottom:80px}.hackathons-content-grid .codeweek-card-grid{background-color:transparent}.hackathons-content-grid .codeweek-card-grid .date{font-size:25px;color:#fe6824;font-weight:700}.hackathons-content-grid .codeweek-card-grid .location{font-size:18px;color:#fe6824}.hackathons-content-grid .codeweek-card-grid .city-image{position:relative;margin-bottom:5px}.hackathons-content-grid .codeweek-card-grid .city-image .transparent{position:absolute;width:100%;height:100%;top:0;opacity:.35;background-color:#180253}.hackathons-content-grid .codeweek-card-grid .city-image .text{position:absolute;top:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column}.hackathons-content-grid .codeweek-card-grid .city-image .text .title{padding:0;color:#fff;font-family:OCR A Std,Open Sans}.hackathons-content-grid .codeweek-card-grid .city-image .text .title.hackaton{font-size:20px}.hackathons-content-grid .codeweek-card-grid :hover .transparent{opacity:.69}.hackathons-content-grid .codeweek-card-grid :hover .city-image .text .title{color:#fe6824}@media (min-width: 481px){.codeweek-banner.hackathons .image .desktop{display:block}.codeweek-banner.hackathons .image .mobile{display:none}.codeweek-banner.hackathons .image .text{margin:10px 5px}.codeweek-banner.hackathons .image{justify-content:flex-end}}@media (min-width: 641px){#codeweek-hackathons-page h2{font-size:20px}.codeweek-banner.hackathons .image .text .text-inside{text-align:center}.hackathons-content-grid{grid-template-columns:1fr 1fr 1fr 1fr 1fr}#codeweek-hackathons-page h1{font-size:40px}#codeweek-hackathons-page h1+p{padding-top:30px}#codeweek-hackathons-page .align-center{text-align:center}.hackathons_section{flex-direction:row}.hackathons_section .text-inside{margin-left:70px}}@media (min-width: 961px){#codeweek-hackathons-page h1{font-size:45px}#codeweek-hackathons-page h2{font-size:25px}.codeweek-banner.hackathons .image .text{position:absolute;margin:15px 10px;max-width:350px}}@media (min-width: 1025px){#codeweek-hackathons-page h1{font-size:50px}#codeweek-hackathons-page h2{font-size:30px}.codeweek-banner.hackathons .image .text{position:absolute;margin:30px 20px;max-width:400px}}@media (min-width: 1281px){#codeweek-hackathons-page h1{font-size:55px}#codeweek-hackathons-page h2{font-size:35px}.hackathons-content-grid{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr}.codeweek-banner.hackathons .image .text{position:absolute;margin:40px 25px;max-width:415px}.hackathons_section{padding:90px 120px}#codeweek-hackathons-page p{font-size:18px}}#codeweek-hackathons-page .hackathons_section.organisers{background-color:#ddd;padding:0 0 20px;align-items:flex-start}#codeweek-hackathons-page .hackathons_section.organisers p{color:#000}#codeweek-hackathons-page .hackathons_section.organisers img{flex:initial}#codeweek-hackathons-page .hackathons_section.organisers .text-inside{padding:20px}@media (min-width: 641px){#codeweek-hackathons-page .hackathons_section.organisers{padding:0 0 40px;flex-direction:row-reverse}#codeweek-hackathons-page .hackathons_section.organisers img{width:450px}#codeweek-hackathons-page .hackathons_section.organisers h1{margin-top:30px;margin-right:0}#codeweek-hackathons-page .hackathons_section.organisers .text-inside{margin-left:40px}}@media (min-width: 1025px){#codeweek-hackathons-page .hackathons_section.organisers img{width:auto}#codeweek-hackathons-page .hackathons_section.organisers h1{margin-right:-150px;margin-top:80px}#codeweek-hackathons-page .hackathons_section.organisers .text-inside{padding-top:80px}}#codeweek-hackathons-page .hackathons_section.look_like{background-image:url(/images/hackathons/look_like.png);background-repeat:no-repeat;padding:0;justify-content:flex-end;background-size:cover}#codeweek-hackathons-page .hackathons_section.look_like .text-inside{background-color:#180053a6;flex:1;margin:0;padding:20px;text-align:center}@media (min-width: 641px){#codeweek-hackathons-page .hackathons_section.look_like .text-inside{width:60%;flex:initial;margin:0;padding:30px 20px;text-align:left}}@media (min-width: 961px){#codeweek-hackathons-page .hackathons_section.look_like .text-inside{width:40%;padding:100px 60px}}#codeweek-hackathons-page .hackathons_section.take_part{background-color:#f2f2f2;padding:20px}#codeweek-hackathons-page .hackathons_section.take_part p{color:#000}#codeweek-hackathons-page .hackathons_section.take_part .text-inside{margin:0}@media (min-width: 961px){#codeweek-hackathons-page .hackathons_section.take_part{padding:50px 70px 30px}#codeweek-hackathons-page .hackathons_section.take_part h1{padding-right:30px}#codeweek-hackathons-page .hackathons_section.take_part p{padding-right:70px}}:lang(el) header nav ul li a{font-size:17px}:lang(de) header nav ul li a,:lang(fr) header nav ul li a,:lang(nl) header nav ul li a{font-size:18px}@media (min-width: 1281px){:lang(bg) #main-banner .info .when .date,:lang(de) #main-banner .info .when .date{font-size:30px}:lang(bg) #main-banner .info .when .arrow,:lang(de) #main-banner .info .when .arrow{margin-top:30px}:lang(el) #main-banner .info .when .date,:lang(hu) #main-banner .info .when .date,:lang(it) #main-banner .info .when .date,:lang(me) #main-banner .info .when .date,:lang(mk) #main-banner .info .when .date,:lang(nl) #main-banner .info .when .date,:lang(ro) #main-banner .info .when .date{font-size:30px}:lang(es) #main-banner .info .when .date,:lang(pl) #main-banner .info .when .date{font-size:25px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 480px){.container{max-width:480px}}@media (min-width: 575px){.container{max-width:575px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 993px){.container{max-width:993px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-bottom-10{bottom:-2.5rem}.-bottom-2{bottom:-.5rem}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-bottom-6{bottom:-1.5rem}.-left-1\/4{left:-25%}.-left-2{left:-.5rem}.-left-36{left:-9rem}.-left-6{left:-1.5rem}.-left-\[10rem\]{left:-10rem}.-right-1\/4{right:-25%}.-right-14{right:-3.5rem}.-right-16{right:-4rem}.-right-2{right:-.5rem}.-right-8{right:-2rem}.-top-52{top:-13rem}.-top-6{top:-1.5rem}.-top-8{top:-2rem}.bottom-0{bottom:0}.bottom-10{bottom:2.5rem}.bottom-12{bottom:3rem}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.bottom-4{bottom:1rem}.bottom-40{bottom:10rem}.left-0{left:0}.left-1\/2{left:50%}.left-12{left:3rem}.left-2{left:.5rem}.left-24{left:6rem}.left-4{left:1rem}.left-40{left:10rem}.left-5{left:1.25rem}.left-6{left:1.5rem}.left-\[3px\]{left:3px}.right-0{right:0}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-20{right:5rem}.right-3{right:.75rem}.right-36{right:9rem}.right-4{right:1rem}.right-40{right:10rem}.right-6{right:1.5rem}.right-\[20px\]{right:20px}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-14{top:3.5rem}.top-24{top:6rem}.top-28{top:7rem}.top-4{top:1rem}.top-\[125px\]{top:125px}.top-\[139px\]{top:139px}.top-\[198px\]{top:198px}.top-\[57px\]{top:57px}.top-full{top:100%}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[1\]{z-index:1}.z-\[8\]{z-index:8}.z-\[99\]{z-index:99}.order-1{order:1}.col-span-2{grid-column:span 2 / span 2}.float-left{float:left}.m-0{margin:0}.m-12{margin:3rem}.m-2{margin:.5rem}.m-4{margin:1rem}.m-6{margin:1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-px{margin-bottom:-1px}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.-mt-24{margin-top:-6rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.ms-2{margin-inline-start:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[\.1rem\]{margin-top:.1rem}.mt-\[13px\]{margin-top:13px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[1\.5\]{aspect-ratio:1.5}.aspect-\[1\.63\]{aspect-ratio:1.63}.aspect-\[1097\/845\]{aspect-ratio:1097/845}.aspect-\[3\/2\]{aspect-ratio:3/2}.size-full{width:100%;height:100%}.h-0{height:0px}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[118px\]{height:118px}.h-\[160px\]{height:160px}.h-\[1px\]{height:1px}.h-\[280px\]{height:280px}.h-\[50\%\]{height:50%}.h-\[500px\]{height:500px}.h-\[50px\]{height:50px}.h-\[56px\]{height:56px}.h-\[760px\]{height:760px}.h-\[800px\]{height:800px}.h-\[88px\]{height:88px}.h-\[93px\]{height:93px}.h-\[calc\(100dvh-139px\)\]{height:calc(100dvh - 139px)}.h-\[calc\(80vw-40px\)\]{height:calc(80vw - 40px)}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-0{max-height:0px}.max-h-\[449px\]{max-height:449px}.max-h-\[450px\]{max-height:450px}.max-h-\[600px\]{max-height:600px}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.max-h-full{max-height:100%}.min-h-12{min-height:3rem}.min-h-3{min-height:.75rem}.min-h-8{min-height:2rem}.min-h-\[120px\]{min-height:120px}.min-h-\[160px\]{min-height:160px}.min-h-\[244px\]{min-height:244px}.min-h-\[24px\]{min-height:24px}.min-h-\[366px\]{min-height:366px}.min-h-\[560px\]{min-height:560px}.min-h-\[600px\]{min-height:600px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100px\]{width:100px}.w-\[118px\]{width:118px}.w-\[140px\]{width:140px}.w-\[150vw\]{width:150vw}.w-\[184px\]{width:184px}.w-\[208px\]{width:208px}.w-\[26px\]{width:26px}.w-\[280px\]{width:280px}.w-\[57\.875rem\]{width:57.875rem}.w-\[68\.5625rem\]{width:68.5625rem}.w-\[88px\]{width:88px}.w-\[93px\]{width:93px}.w-\[calc\(33\.33\%-8px\)\]{width:calc(33.33% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-12{min-width:3rem}.min-w-4{min-width:1rem}.min-w-8{min-width:2rem}.min-w-\[353px\]{min-width:353px}.min-w-\[55\%\]{min-width:55%}.min-w-full{min-width:100%}.\!max-w-none{max-width:none!important}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[1080px\]{max-width:1080px}.max-w-\[140px\]{max-width:140px}.max-w-\[1428px\]{max-width:1428px}.max-w-\[191px\]{max-width:191px}.max-w-\[450px\]{max-width:450px}.max-w-\[480px\]{max-width:480px}.max-w-\[500px\]{max-width:500px}.max-w-\[525px\]{max-width:525px}.max-w-\[532px\]{max-width:532px}.max-w-\[560px\]{max-width:560px}.max-w-\[582px\]{max-width:582px}.max-w-\[600px\]{max-width:600px}.max-w-\[708px\]{max-width:708px}.max-w-\[720px\]{max-width:720px}.max-w-\[725px\]{max-width:725px}.max-w-\[80\%\]{max-width:80%}.max-w-\[819px\]{max-width:819px}.max-w-\[82px\]{max-width:82px}.max-w-\[830px\]{max-width:830px}.max-w-\[880px\]{max-width:880px}.max-w-\[890px\]{max-width:890px}.max-w-\[900px\]{max-width:900px}.max-w-\[907px\]{max-width:907px}.max-w-\[calc\(70vw\)\]{max-width:70vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-0{flex-basis:0px}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-12{--tw-translate-x: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-6{--tw-translate-x: -1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-3{--tw-translate-y: -.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-162\.343deg\]{--tw-rotate: -162.343deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-28{gap:7rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[22px\]{gap:22px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[32px\]{border-radius:32px}.rounded-\[5px\]{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.\!border-b-0{border-bottom-width:0px!important}.\!border-r-0{border-right-width:0px!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-b-8{border-bottom-width:8px}.border-b-\[20px\]{border-bottom-width:20px}.border-b-\[3px\]{border-bottom-width:3px}.border-l-\[20px\]{border-left-width:20px}.border-r-\[20px\]{border-right-width:20px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[3px\]{border-top-width:3px}.border-t-\[5px\]{border-top-width:5px}.border-solid{border-style:solid}.border-\[\#1C4DA1\]{--tw-border-opacity: 1;border-color:rgb(28 77 161 / var(--tw-border-opacity, 1))}.border-\[\#A4B8D9\]{--tw-border-opacity: 1;border-color:rgb(164 184 217 / var(--tw-border-opacity, 1))}.border-\[\#A9A9A9\]{--tw-border-opacity: 1;border-color:rgb(169 169 169 / var(--tw-border-opacity, 1))}.border-\[\#CA8A00\]{--tw-border-opacity: 1;border-color:rgb(202 138 0 / var(--tw-border-opacity, 1))}.border-\[\#D6D8DA\]{--tw-border-opacity: 1;border-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.border-\[\#DBECF0\]{--tw-border-opacity: 1;border-color:rgb(219 236 240 / var(--tw-border-opacity, 1))}.border-\[\#DEDEDE\]{--tw-border-opacity: 1;border-color:rgb(222 222 222 / var(--tw-border-opacity, 1))}.border-\[\#FBBB26\]{--tw-border-opacity: 1;border-color:rgb(251 187 38 / var(--tw-border-opacity, 1))}.border-\[\#FFEF99\]{--tw-border-opacity: 1;border-color:rgb(255 239 153 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-800{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.border-dark-blue{--tw-border-opacity: 1;border-color:rgb(28 77 161 / var(--tw-border-opacity, 1))}.border-dark-blue-200{--tw-border-opacity: 1;border-color:rgb(164 184 217 / var(--tw-border-opacity, 1))}.border-dark-blue-300{--tw-border-opacity: 1;border-color:rgb(119 148 199 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-orange-500{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:rgb(249 92 34 / var(--tw-border-opacity, 1))}.border-secondary{--tw-border-opacity: 1;border-color:rgb(22 65 148 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-zinc-100{--tw-border-opacity: 1;border-color:rgb(244 244 245 / var(--tw-border-opacity, 1))}.border-b-aqua{--tw-border-opacity: 1;border-bottom-color:rgb(177 224 229 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-r-transparent{border-right-color:transparent}.\!bg-primary{--tw-bg-opacity: 1 !important;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))!important}.bg-\[\#00B3E3\]{--tw-bg-opacity: 1;background-color:rgb(0 179 227 / var(--tw-bg-opacity, 1))}.bg-\[\#1C4DA1CC\]{background-color:#1c4da1cc}.bg-\[\#1C4DA1\]{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.bg-\[\#99E1F4\]{--tw-bg-opacity: 1;background-color:rgb(153 225 244 / var(--tw-bg-opacity, 1))}.bg-\[\#A4B8D9\]{--tw-bg-opacity: 1;background-color:rgb(164 184 217 / var(--tw-bg-opacity, 1))}.bg-\[\#CCF0F9\]{--tw-bg-opacity: 1;background-color:rgb(204 240 249 / var(--tw-bg-opacity, 1))}.bg-\[\#F2FBFE\]{--tw-bg-opacity: 1;background-color:rgb(242 251 254 / var(--tw-bg-opacity, 1))}.bg-\[\#F4F6FA\]{--tw-bg-opacity: 1;background-color:rgb(244 246 250 / var(--tw-bg-opacity, 1))}.bg-\[\#F95C22\]{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.bg-\[\#FEEFE9\]{--tw-bg-opacity: 1;background-color:rgb(254 239 233 / var(--tw-bg-opacity, 1))}.bg-\[\#FFD700\]{--tw-bg-opacity: 1;background-color:rgb(255 215 0 / var(--tw-bg-opacity, 1))}.bg-\[\#FFEF99\]{--tw-bg-opacity: 1;background-color:rgb(255 239 153 / var(--tw-bg-opacity, 1))}.bg-\[\#FFFBE5\]{--tw-bg-opacity: 1;background-color:rgb(255 251 229 / var(--tw-bg-opacity, 1))}.bg-aqua{--tw-bg-opacity: 1;background-color:rgb(177 224 229 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.bg-blue-50\/75{background-color:#eff6ffbf}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-800{--tw-bg-opacity: 1;background-color:rgb(30 64 175 / var(--tw-bg-opacity, 1))}.bg-blue-900{--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.bg-cyan-200{--tw-bg-opacity: 1;background-color:rgb(165 243 252 / var(--tw-bg-opacity, 1))}.bg-dark-blue{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.bg-dark-blue-50{--tw-bg-opacity: 1;background-color:rgb(232 237 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-800{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity, 1))}.bg-light-blue{--tw-bg-opacity: 1;background-color:rgb(242 251 254 / var(--tw-bg-opacity, 1))}.bg-light-blue-100{--tw-bg-opacity: 1;background-color:rgb(204 240 249 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow{--tw-bg-opacity: 1;background-color:rgb(255 215 0 / var(--tw-bg-opacity, 1))}.bg-yellow-2{--tw-bg-opacity: 1;background-color:rgb(255 247 204 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(255 251 229 / var(--tw-bg-opacity, 1))}.bg-opacity-25{--tw-bg-opacity: .25}.bg-blue-gradient{background-image:linear-gradient(161.75deg,#1254c5 16.95%,#0040ae 31.1%)}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.bg-light-blue-gradient{background-image:linear-gradient(161.75deg,#33c2e9 16.95%,#00b3e3 31.1%)}.bg-orange-gradient{background-image:linear-gradient(36.92deg,#f95c22 20.32%,#ff885c 28.24%)}.bg-secondary-gradient{background-image:linear-gradient(36.92deg,#1c4da1 20.32%,#0040ae 28.24%)}.bg-violet-gradient{background-image:linear-gradient(247deg,#410098 22.05%,#6733ad 79.09%)}.bg-yellow-transparent-gradient{background-image:linear-gradient(90deg,#fffbe5 35%,#0000 90%)}.bg-yellow-transparent-opposite-gradient{background-image:linear-gradient(90deg,#0000 10%,#fffbe5 65%)}.from-\[\#ff4694\]{--tw-gradient-from: #ff4694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-\[\#776fff\]{--tw-gradient-to: #776fff var(--tw-gradient-to-position)}.fill-\[\#000000\]{fill:#000}.fill-\[\#FFD700\]{fill:gold}.fill-current{fill:currentColor}.fill-orange-500{fill:#f97316}.fill-primary{fill:#f95c22}.fill-white{fill:#fff}.stroke-\[\#414141\]{stroke:#414141}.stroke-current{stroke:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[13px\]{padding:13px}.\!px-0{padding-left:0!important;padding-right:0!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-20{padding-left:5rem;padding-right:5rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-48{padding-left:12rem;padding-right:12rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[44px\]{padding-left:44px;padding-right:44px}.px-\[60px\]{padding-left:60px;padding-right:60px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[7px\]{padding-top:7px;padding-bottom:7px}.\!pb-0{padding-bottom:0!important}.\!pb-8{padding-bottom:2rem!important}.\!pr-10{padding-right:2.5rem!important}.\!pt-16{padding-top:4rem!important}.pb-0{padding-bottom:0}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-28{padding-bottom:7rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0\.5{padding-left:.125rem}.pl-14{padding-left:3.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-10{padding-right:2.5rem}.pr-14{padding-right:3.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-48{padding-right:12rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-28{padding-top:7rem}.pt-3\.5{padding-top:.875rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-48{padding-top:12rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-60{padding-top:15rem}.pt-8{padding-top:2rem}.pt-\[5rem\]{padding-top:5rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.font-\[\'Blinker\'\]{font-family:Blinker}.font-\[\'Montserrat\'\]{font-family:Montserrat}.font-\[Blinker\]{font-family:Blinker}.font-blinker{font-family:Blinker,sans-serif}.\!text-\[16px\]{font-size:16px!important}.\!text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[30px\]{font-size:30px}.text-\[60px\]{font-size:60px}.text-base{font-size:1.125rem}.text-default{font-size:16px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.\!capitalize{text-transform:capitalize!important}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-\[20px\]{line-height:20px}.leading-\[22px\]{line-height:22px}.leading-\[30px\]{line-height:30px}.leading-\[44px\]{line-height:44px}.leading-\[48px\]{line-height:48px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[\.1px\]{letter-spacing:.1px}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-\[\#1C4DA1\]{--tw-text-opacity: 1 !important;color:rgb(28 77 161 / var(--tw-text-opacity, 1))!important}.text-\[\#164194\]{--tw-text-opacity: 1;color:rgb(22 65 148 / var(--tw-text-opacity, 1))}.text-\[\#1C4DA1\],.text-\[\#1c4da1\]{--tw-text-opacity: 1;color:rgb(28 77 161 / var(--tw-text-opacity, 1))}.text-\[\#20262C\],.text-\[\#20262c\]{--tw-text-opacity: 1;color:rgb(32 38 44 / var(--tw-text-opacity, 1))}.text-\[\#333E48\],.text-\[\#333e48\]{--tw-text-opacity: 1;color:rgb(51 62 72 / var(--tw-text-opacity, 1))}.text-\[\'\#20262C\'\]{color:"#20262C"}.text-\[\'Blinker\'\]{color:"Blinker"}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-dark-blue{--tw-text-opacity: 1;color:rgb(28 77 161 / var(--tw-text-opacity, 1))}.text-dark-blue-400{--tw-text-opacity: 1;color:rgb(73 113 180 / var(--tw-text-opacity, 1))}.text-error-200{--tw-text-opacity: 1;color:rgb(227 5 25 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(249 92 34 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(22 65 148 / var(--tw-text-opacity, 1))}.text-slate{--tw-text-opacity: 1;color:rgb(92 101 109 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(51 62 72 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-zinc-800{--tw-text-opacity: 1;color:rgb(39 39 42 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.bg-blend-multiply{background-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-blue-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[118px\]{--tw-blur: blur(118px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-\[1\.5s\]{transition-duration:1.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}html{line-height:1.15}body{margin:0;font-family:PT Sans,Roboto;background-color:#eee}a{color:#40b5d1;text-decoration:none;box-sizing:border-box}img{max-width:100%;height:auto}input{margin:0;line-height:1.15;border:0;font-family:inherit;outline:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,p,pre{margin:0}button{cursor:pointer;background-color:transparent;border:0}h1{color:#fe6824;font-weight:700;font-size:20px;line-height:1.3}h2{color:#fe6824;font-weight:700;font-size:18px;line-height:1.3}.orange{color:#fe6824}p{padding:15px 0}p.partner_text{color:#fff;font-family:PT Sans;font-size:16px;font-style:normal;font-weight:700;line-height:24px}h1+p{padding-top:30px}main{margin-left:auto;margin-right:auto;background-color:#fff}body:not(.new-layout) main{max-width:1280px}ul{list-style:none;line-height:1.5;padding:0;margin:20px 0}#app{position:relative;background-color:#fff;margin-right:auto;margin-left:auto}body:not(.new-layout) #app{max-width:1280px}.show{display:block!important}.hide{display:none!important}.show-flex{display:flex!important}@media (min-width: 641px){h1{font-size:30px}h2{font-size:25px}}@media (min-width: 961px){h1{font-size:40px}h2{font-size:30px}}.cookweek-link{display:inline-flex;align-items:center;gap:4px;font-family:Montserrat;color:#1c4da1;font-size:16px;font-weight:600}.cookweek-link.hover-underline{position:relative}.cookweek-link.hover-underline .arrow-icon{color:#1c4da1;transition-duration:.3s}.cookweek-link.hover-underline:hover .arrow-icon{transform:scale(-1)}.cookweek-link.hover-underline:hover:after{width:100%}.cookweek-link.hover-underline:after{content:"";position:absolute;width:0;height:2px;background-color:#1c4da1;bottom:0;left:0;transition-duration:.3s}.cookies ul{list-style:disc;line-height:1.5;padding:5px;margin:5px 20px 10px}.placeholder\:font-normal::-moz-placeholder{font-weight:400}.placeholder\:font-normal::placeholder{font-weight:400}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:mt-2:after{content:var(--tw-content);margin-top:.5rem}.after\:block:after{content:var(--tw-content);display:block}.after\:h-\[50px\]:after{content:var(--tw-content);height:50px}.after\:h-full:after{content:var(--tw-content);height:100%}.after\:max-h-\[50px\]:after{content:var(--tw-content);max-height:50px}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:bg-\[\#5F718A\]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(95 113 138 / var(--tw-bg-opacity, 1))}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.checked\:border-0:checked{border-width:0px}.checked\:bg-dark-blue:checked{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.focus-within\:placeholder-dark-orange:focus-within::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(182 49 0 / var(--tw-placeholder-opacity, 1))}.focus-within\:placeholder-dark-orange:focus-within::placeholder{--tw-placeholder-opacity: 1;color:rgb(182 49 0 / var(--tw-placeholder-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-inset:focus-within{--tw-ring-inset: inset}.focus-within\:ring-dark-orange:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(182 49 0 / var(--tw-ring-opacity, 1))}.hover\:bottom-0:hover{bottom:0}.hover\:left-0:hover{left:0}.hover\:right-0:hover{right:0}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-l-orange-500:hover{--tw-border-opacity: 1;border-left-color:rgb(249 115 22 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#001E52\]:hover{--tw-bg-opacity: 1;background-color:rgb(0 30 82 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#061b45\]:hover{--tw-bg-opacity: 1;background-color:rgb(6 27 69 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1C4DA1\]:hover{--tw-bg-opacity: 1;background-color:rgb(28 77 161 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1C4DA1\]\/10:hover{background-color:#1c4da11a}.hover\:bg-\[\#98E1F5\]:hover{--tw-bg-opacity: 1;background-color:rgb(152 225 245 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#E8EDF6\]:hover{--tw-bg-opacity: 1;background-color:rgb(232 237 246 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F95C22\]:hover{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FB9D7A\]:hover{--tw-bg-opacity: 1;background-color:rgb(251 157 122 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FFEF99\]:hover{--tw-bg-opacity: 1;background-color:rgb(255 239 153 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-green-500:hover{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-hover-blue:hover{--tw-bg-opacity: 1;background-color:rgb(10 66 161 / var(--tw-bg-opacity, 1))}.hover\:bg-hover-orange:hover{--tw-bg-opacity: 1;background-color:rgb(251 157 122 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-500:hover{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.hover\:bg-primary:hover{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-900:hover{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(22 65 148 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:text-gray-400:hover{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-indigo-900:hover{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(249 92 34 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-gray-300:focus{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.focus\:border-indigo-700:focus{--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity, 1))}.focus\:border-red-700:focus{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.focus\:bg-gray-700:focus{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.focus\:bg-orange-50:focus{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.focus\:text-gray-700:focus{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.focus\:text-indigo-700:focus{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.focus\:text-indigo-800:focus{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-indigo-500:focus-visible{outline-color:#6366f1}.focus-visible\:outline-white:focus-visible{outline-color:#fff}.active\:bg-gray-100:active{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.active\:bg-gray-900:active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.active\:bg-indigo-700:active{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.active\:bg-red-700:active{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.active\:text-gray-500:active{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.active\:text-gray-700:active{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:top-1\/2{top:50%}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:h-full{height:100%}.group:hover .group-hover\:w-full{width:100%}.group:hover .group-hover\:max-w-\[90\%\]{max-width:90%}.group:hover .group-hover\:max-w-full{max-width:100%}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-primary{--tw-bg-opacity: 1;background-color:rgb(249 92 34 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:fill-\[\#1C4DA1\]{fill:#1c4da1}.group:hover .group-hover\:fill-\[\#ffffff\]{fill:#fff}.group:hover .group-hover\:fill-secondary{fill:#164194}.group:hover .group-hover\:fill-white{fill:#fff}.group:hover .group-hover\:stroke-\[\#ffffff\]{stroke:#fff}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:block{display:block}@media not all and (min-width: 1280px){.max-xl\:flex{display:flex}.max-xl\:hidden{display:none}.max-xl\:w-full{width:100%}.max-xl\:flex-col{flex-direction:column}.max-xl\:\!items-start{align-items:flex-start!important}.max-xl\:overflow-auto{overflow:auto}.max-xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-xl\:px-8{padding-left:2rem;padding-right:2rem}.max-xl\:pt-6{padding-top:1.5rem}}@media not all and (min-width: 1024px){.max-lg\:hidden{display:none}.max-lg\:flex-col-reverse{flex-direction:column-reverse}.max-lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-lg\:py-12{padding-top:3rem;padding-bottom:3rem}.max-lg\:pb-12{padding-bottom:3rem}.max-lg\:pt-\[50px\]{padding-top:50px}}@media not all and (min-width: 768px){.max-md\:fixed{position:fixed}.max-md\:mx-auto{margin-left:auto;margin-right:auto}.max-md\:mt-2{margin-top:.5rem}.max-md\:mt-4{margin-top:1rem}.max-md\:hidden{display:none}.max-md\:h-\[386px\]{height:386px}.max-md\:h-\[calc\(100dvh-125px\)\]{height:calc(100dvh - 125px)}.max-md\:h-full{height:100%}.max-md\:w-full{width:100%}.max-md\:max-w-full{max-width:100%}.max-md\:justify-end{justify-content:flex-end}.max-md\:gap-2{gap:.5rem}.max-md\:overflow-auto{overflow:auto}.max-md\:rounded-none{border-radius:0}.max-md\:border-r-2{border-right-width:2px}.max-md\:border-r-\[\#D6D8DA\]{--tw-border-opacity: 1;border-right-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.max-md\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.max-md\:p-6{padding:1.5rem}.max-md\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.max-md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.max-md\:py-12{padding-top:3rem;padding-bottom:3rem}.max-md\:pb-4{padding-bottom:1rem}.max-md\:text-2xl{font-size:1.5rem;line-height:2rem}.max-md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.max-md\:text-6xl{font-size:3.75rem;line-height:1}.max-md\:text-\[22px\]{font-size:22px}.max-md\:leading-8{line-height:2rem}}@media not all and (min-width: 575px){.max-sm\:top-6{top:1.5rem}.max-sm\:top-8{top:2rem}.max-sm\:mb-10{margin-bottom:2.5rem}.max-sm\:hidden{display:none}.max-sm\:h-\[224px\]{height:224px}.max-sm\:w-full{width:100%}.max-sm\:gap-1\.5{gap:.375rem}.max-sm\:p-0{padding:0}.max-sm\:p-\[10px\]{padding:10px}.max-sm\:px-1{padding-left:.25rem;padding-right:.25rem}.max-sm\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.max-sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.max-sm\:leading-7{line-height:1.75rem}}@media not all and (min-width: 480px){.max-xs\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-xs\:text-\[20px\]{font-size:20px}}@media (min-width: 575px){.sm\:static{position:static}.sm\:absolute{position:absolute}.sm\:-bottom-16{bottom:-4rem}.sm\:-right-60{right:-15rem}.sm\:-top-10{top:-2.5rem}.sm\:left-3{left:.75rem}.sm\:right-1\/2{right:50%}.sm\:top-2{top:.5rem}.sm\:top-\[-28rem\]{top:-28rem}.sm\:-z-10{z-index:-10}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:col-span-3{grid-column:span 3 / span 3}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-mt-20{margin-top:-5rem}.sm\:mb-12{margin-bottom:3rem}.sm\:ml-16{margin-left:4rem}.sm\:mr-10{margin-right:2.5rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-auto{height:auto}.sm\:w-\[324px\]{width:324px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-md{max-width:28rem}.sm\:flex-1{flex:1 1 0%}.sm\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-10{gap:2.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-md{border-radius:.375rem}.sm\:p-2{padding:.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:py-32{padding-top:8rem;padding-bottom:8rem}.sm\:pb-8{padding-bottom:2rem}.sm\:pr-20{padding-right:5rem}.sm\:pr-6{padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:pt-24{padding-top:6rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1.125rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:leading-5{line-height:1.25rem}.sm\:blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:-right-36{right:-9rem}.md\:-right-40{right:-10rem}.md\:bottom-auto{bottom:auto}.md\:left-0{left:0}.md\:right-0{right:0}.md\:top-1\/2{top:50%}.md\:top-1\/3{top:33.333333%}.md\:top-2\/3{top:66.666667%}.md\:top-\[123px\]{top:123px}.md\:order-2{order:2}.md\:col-span-1{grid-column:span 1 / span 1}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:ml-auto{margin-left:auto}.md\:mr-auto{margin-right:auto}.md\:mt-10{margin-top:2.5rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-64{height:16rem}.md\:h-72{height:18rem}.md\:h-8{height:2rem}.md\:h-\[642px\]{height:642px}.md\:h-\[calc\(100dvh-123px\)\]{height:calc(100dvh - 123px)}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.666667%}.md\:w-64{width:16rem}.md\:w-72{width:18rem}.md\:w-8{width:2rem}.md\:w-\[130px\]{width:130px}.md\:w-\[177px\]{width:177px}.md\:w-\[200px\]{width:200px}.md\:w-\[260px\]{width:260px}.md\:w-\[329px\]{width:329px}.md\:w-\[480px\]{width:480px}.md\:w-\[60vw\]{width:60vw}.md\:w-auto{width:auto}.md\:w-fit{width:-moz-fit-content;width:fit-content}.md\:w-full{width:100%}.md\:max-w-60{max-width:15rem}.md\:max-w-\[386px\]{max-width:386px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[472px\]{max-width:472px}.md\:max-w-\[760px\]{max-width:760px}.md\:max-w-\[825px\]{max-width:825px}.md\:max-w-md{max-width:28rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:gap-10{gap:2.5rem}.md\:gap-16{gap:4rem}.md\:gap-20{gap:5rem}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:overflow-x-hidden{overflow-x:hidden}.md\:overflow-y-hidden{overflow-y:hidden}.md\:overflow-y-scroll{overflow-y:scroll}.md\:whitespace-nowrap{white-space:nowrap}.md\:rounded-br-lg{border-bottom-right-radius:.5rem}.md\:rounded-tl-lg{border-top-left-radius:.5rem}.md\:rounded-tr-lg{border-top-right-radius:.5rem}.md\:border-b-2{border-bottom-width:2px}.md\:border-l-\[5px\]{border-left-width:5px}.md\:border-t-0{border-top-width:0px}.md\:border-b-\[\#D6D8DA\]{--tw-border-opacity: 1;border-bottom-color:rgb(214 216 218 / var(--tw-border-opacity, 1))}.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}.md\:p-12{padding:3rem}.md\:p-4{padding:1rem}.md\:p-8{padding:2rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-14{padding-left:3.5rem;padding-right:3.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-24{padding-left:6rem;padding-right:6rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:py-40{padding-top:10rem;padding-bottom:10rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:py-\[186px\]{padding-top:186px;padding-bottom:186px}.md\:py-\[4\.5rem\]{padding-top:4.5rem;padding-bottom:4.5rem}.md\:py-\[7\.5rem\]{padding-top:7.5rem;padding-bottom:7.5rem}.md\:py-\[72px\]{padding-top:72px;padding-bottom:72px}.md\:py-\[84px\]{padding-top:84px;padding-bottom:84px}.md\:\!pt-12{padding-top:3rem!important}.md\:pb-10{padding-bottom:2.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-28{padding-bottom:7rem}.md\:pb-48{padding-bottom:12rem}.md\:pb-6{padding-bottom:1.5rem}.md\:pb-8{padding-bottom:2rem}.md\:pl-0{padding-left:0}.md\:pl-16{padding-left:4rem}.md\:pr-3{padding-right:.75rem}.md\:pt-12{padding-top:3rem}.md\:pt-20{padding-top:5rem}.md\:pt-28{padding-top:7rem}.md\:pt-32{padding-top:8rem}.md\:pt-4{padding-top:1rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-52{padding-top:13rem}.md\:text-center{text-align:center}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[30px\]{font-size:30px}.md\:text-\[45px\]{font-size:45px}.md\:text-\[48px\]{font-size:48px}.md\:text-\[60px\]{font-size:60px}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:leading-7{line-height:1.75rem}.md\:leading-8{line-height:2rem}.md\:leading-9{line-height:2.25rem}.md\:leading-\[30px\]{line-height:30px}.md\:leading-\[44px\]{line-height:44px}.md\:leading-\[52px\]{line-height:52px}.md\:leading-\[58px\]{line-height:58px}.md\:leading-\[72px\]{line-height:72px}}@media (min-width: 993px){.tablet\:top-16{top:4rem}.tablet\:mb-0{margin-bottom:0}.tablet\:mb-10{margin-bottom:2.5rem}.tablet\:mb-8{margin-bottom:2rem}.tablet\:flex{display:flex}.tablet\:hidden{display:none}.tablet\:w-1\/3{width:33.333333%}.tablet\:w-2\/3{width:66.666667%}.tablet\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tablet\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tablet\:flex-row{flex-direction:row}.tablet\:gap-32{gap:8rem}.tablet\:gap-6{gap:1.5rem}.tablet\:py-20{padding-top:5rem;padding-bottom:5rem}.tablet\:pb-16{padding-bottom:4rem}.tablet\:pb-6{padding-bottom:1.5rem}.tablet\:text-left{text-align:left}.tablet\:text-center{text-align:center}.tablet\:text-2xl{font-size:1.5rem;line-height:2rem}.tablet\:text-xl{font-size:1.25rem;line-height:1.75rem}.tablet\:leading-7{line-height:1.75rem}.tablet\:leading-\[30px\]{line-height:30px}}@media (min-width: 1024px){.lg\:absolute{position:absolute}.lg\:-bottom-20{bottom:-5rem}.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-full{grid-column:1 / -1}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:mb-6{margin-bottom:1.5rem}.lg\:mt-10{margin-top:2.5rem}.lg\:mt-12{margin-top:3rem}.lg\:line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-\[320px\]{height:320px}.lg\:w-1\/2{width:50%}.lg\:w-20{width:5rem}.lg\:w-fit{width:-moz-fit-content;width:fit-content}.lg\:max-w-\[429px\]{max-width:429px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:gap-8{gap:2rem}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:p-10{padding:2.5rem}.lg\:p-16{padding:4rem}.lg\:p-20{padding:5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pl-24{padding-left:6rem}.lg\:pr-0{padding-right:0}.lg\:pr-12{padding-right:3rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-20{padding-top:5rem}.lg\:text-\[20px\]{font-size:20px}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:leading-\[22px\]{line-height:22px}.lg\:leading-\[44px\]{line-height:44px}}@media (min-width: 1280px){.xl\:static{position:static}.xl\:-bottom-28{bottom:-7rem}.xl\:-bottom-32{bottom:-8rem}.xl\:-bottom-36{bottom:-9rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:ml-8{margin-left:2rem}.xl\:mr-8{margin-right:2rem}.xl\:mt-20{margin-top:5rem}.xl\:block{display:block}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:w-1\/3{width:33.333333%}.xl\:w-2\/3{width:66.666667%}.xl\:w-3\/4{width:75%}.xl\:w-72{width:18rem}.xl\:w-auto{width:auto}.xl\:w-full{width:100%}.xl\:max-w-\[640px\]{max-width:640px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:justify-between{justify-content:space-between}.xl\:gap-10{gap:2.5rem}.xl\:gap-12{gap:3rem}.xl\:gap-20{gap:5rem}.xl\:gap-28{gap:7rem}.xl\:gap-\[120px\]{gap:120px}.xl\:whitespace-nowrap{white-space:nowrap}.xl\:px-20{padding-left:5rem;padding-right:5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pl-16{padding-left:4rem}.xl\:pl-32{padding-left:8rem}.xl\:pt-\[10rem\]{padding-top:10rem}.xl\:text-\[60px\]{font-size:60px}.xl\:leading-\[72px\]{line-height:72px}}@media (min-width: 1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32xl\:flex-row{flex-direction:row}.\32xl\:gap-8{gap:2rem}.\32xl\:text-4xl{font-size:2.25rem;line-height:2.5rem}}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-700:focus{--tw-border-opacity: 1;border-color:rgb(29 78 216 / var(--tw-border-opacity, 1))}.dark\:focus\:border-blue-800:focus{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:active\:bg-gray-700:active{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:active\:text-gray-300:active{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}}.\[\&_li\]\:my-2 li{margin-top:.5rem;margin-bottom:.5rem}.\[\&_p\]\:\!p-0 p{padding:0!important} diff --git a/public/build/assets/app-CJh7_Din.js b/public/build/assets/app-CJh7_Din.js new file mode 100644 index 000000000..02cbd851c --- /dev/null +++ b/public/build/assets/app-CJh7_Din.js @@ -0,0 +1,237 @@ +var sE=Object.defineProperty;var iE=(e,t,n)=>t in e?sE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ye=(e,t,n)=>iE(e,typeof t!="symbol"?t+"":t,n);const aE="modulepreload",lE=function(e){return"/build/"+e},Vv={},Vt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),u=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.allSettled(n.map(d=>{if(d=lE(d),d in Vv)return;Vv[d]=!0;const h=d.endsWith(".css"),f=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${f}`))return;const p=document.createElement("link");if(p.rel=h?"stylesheet":aE,h||(p.as="script"),p.crossOrigin="",p.href=d,u&&p.setAttribute("nonce",u),document.head.appendChild(p),h)return new Promise((m,y)=>{p.addEventListener("load",m),p.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${d}`)))})}))}function a(o){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=o,window.dispatchEvent(u),!u.defaultPrevented)throw o}return s.then(o=>{for(const u of o||[])u.status==="rejected"&&a(u.reason);return t().catch(a)})};function S0(e,t){return function(){return e.apply(t,arguments)}}const{toString:oE}=Object.prototype,{getPrototypeOf:zh}=Object,Rc=(e=>t=>{const n=oE.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),_s=e=>(e=e.toLowerCase(),t=>Rc(t)===e),Dc=e=>t=>typeof t===e,{isArray:xl}=Array,co=Dc("undefined");function uE(e){return e!==null&&!co(e)&&e.constructor!==null&&!co(e.constructor)&&Br(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const T0=_s("ArrayBuffer");function cE(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&T0(e.buffer),t}const dE=Dc("string"),Br=Dc("function"),A0=Dc("number"),Pc=e=>e!==null&&typeof e=="object",fE=e=>e===!0||e===!1,Wu=e=>{if(Rc(e)!=="object")return!1;const t=zh(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},hE=_s("Date"),pE=_s("File"),mE=_s("Blob"),gE=_s("FileList"),vE=e=>Pc(e)&&Br(e.pipe),yE=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Br(e.append)&&((t=Rc(e))==="formdata"||t==="object"&&Br(e.toString)&&e.toString()==="[object FormData]"))},_E=_s("URLSearchParams"),[bE,wE,xE,kE]=["ReadableStream","Request","Response","Headers"].map(_s),SE=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mo(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),xl(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const ia=typeof globalThis<"u"?globalThis:typeof self<"u"?self:window,E0=e=>!co(e)&&e!==ia;function oh(){const{caseless:e}=E0(this)&&this||{},t={},n=(r,s)=>{const a=e&&C0(t,s)||s;Wu(t[a])&&Wu(r)?t[a]=oh(t[a],r):Wu(r)?t[a]=oh({},r):xl(r)?t[a]=r.slice():t[a]=r};for(let r=0,s=arguments.length;r(Mo(t,(s,a)=>{n&&Br(s)?e[a]=S0(s,n):e[a]=s},{allOwnKeys:r}),e),AE=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),CE=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},EE=(e,t,n,r)=>{let s,a,o;const u={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),a=s.length;a-- >0;)o=s[a],(!r||r(o,e,t))&&!u[o]&&(t[o]=e[o],u[o]=!0);e=n!==!1&&zh(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},OE=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},ME=e=>{if(!e)return null;if(xl(e))return e;let t=e.length;if(!A0(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},RE=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zh(Uint8Array)),DE=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const a=s.value;t.call(e,a[0],a[1])}},PE=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},LE=_s("HTMLFormElement"),IE=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Fv=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NE=_s("RegExp"),O0=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Mo(n,(s,a)=>{let o;(o=t(s,a,e))!==!1&&(r[a]=o||s)}),Object.defineProperties(e,r)},VE=e=>{O0(e,(t,n)=>{if(Br(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Br(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},FE=(e,t)=>{const n={},r=s=>{s.forEach(a=>{n[a]=!0})};return xl(e)?r(e):r(String(e).split(t)),n},$E=()=>{},BE=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function HE(e){return!!(e&&Br(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const UE=e=>{const t=new Array(10),n=(r,s)=>{if(Pc(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const a=xl(r)?[]:{};return Mo(r,(o,u)=>{const d=n(o,s+1);!co(d)&&(a[u]=d)}),t[s]=void 0,a}}return r};return n(e,0)},jE=_s("AsyncFunction"),WE=e=>e&&(Pc(e)||Br(e))&&Br(e.then)&&Br(e.catch),M0=((e,t)=>e?setImmediate:t?((n,r)=>(ia.addEventListener("message",({source:s,data:a})=>{s===ia&&a===n&&r.length&&r.shift()()},!1),s=>{r.push(s),ia.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Br(ia.postMessage)),qE=typeof queueMicrotask<"u"?queueMicrotask.bind(ia):typeof process<"u"&&process.nextTick||M0,be={isArray:xl,isArrayBuffer:T0,isBuffer:uE,isFormData:yE,isArrayBufferView:cE,isString:dE,isNumber:A0,isBoolean:fE,isObject:Pc,isPlainObject:Wu,isReadableStream:bE,isRequest:wE,isResponse:xE,isHeaders:kE,isUndefined:co,isDate:hE,isFile:pE,isBlob:mE,isRegExp:NE,isFunction:Br,isStream:vE,isURLSearchParams:_E,isTypedArray:RE,isFileList:gE,forEach:Mo,merge:oh,extend:TE,trim:SE,stripBOM:AE,inherits:CE,toFlatObject:EE,kindOf:Rc,kindOfTest:_s,endsWith:OE,toArray:ME,forEachEntry:DE,matchAll:PE,isHTMLForm:LE,hasOwnProperty:Fv,hasOwnProp:Fv,reduceDescriptors:O0,freezeMethods:VE,toObjectSet:FE,toCamelCase:IE,noop:$E,toFiniteNumber:BE,findKey:C0,global:ia,isContextDefined:E0,isSpecCompliantForm:HE,toJSONObject:UE,isAsyncFn:jE,isThenable:WE,setImmediate:M0,asap:qE};function ht(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}be.inherits(ht,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:be.toJSONObject(this.config),code:this.code,status:this.status}}});const R0=ht.prototype,D0={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{D0[e]={value:e}});Object.defineProperties(ht,D0);Object.defineProperty(R0,"isAxiosError",{value:!0});ht.from=(e,t,n,r,s,a)=>{const o=Object.create(R0);return be.toFlatObject(e,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError"),ht.call(o,e.message,t,n,r,s),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};const YE=null;function uh(e){return be.isPlainObject(e)||be.isArray(e)}function P0(e){return be.endsWith(e,"[]")?e.slice(0,-2):e}function $v(e,t,n){return e?e.concat(t).map(function(s,a){return s=P0(s),!n&&a?"["+s+"]":s}).join(n?".":""):t}function zE(e){return be.isArray(e)&&!e.some(uh)}const KE=be.toFlatObject(be,{},null,function(t){return/^is[A-Z]/.test(t)});function Lc(e,t,n){if(!be.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=be.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(_,C){return!be.isUndefined(C[_])});const r=n.metaTokens,s=n.visitor||f,a=n.dots,o=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&be.isSpecCompliantForm(t);if(!be.isFunction(s))throw new TypeError("visitor must be a function");function h(w){if(w===null)return"";if(be.isDate(w))return w.toISOString();if(!d&&be.isBlob(w))throw new ht("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(w)||be.isTypedArray(w)?d&&typeof Blob=="function"?new Blob([w]):Buffer.from(w):w}function f(w,_,C){let U=w;if(w&&!C&&typeof w=="object"){if(be.endsWith(_,"{}"))_=r?_:_.slice(0,-2),w=JSON.stringify(w);else if(be.isArray(w)&&zE(w)||(be.isFileList(w)||be.endsWith(_,"[]"))&&(U=be.toArray(w)))return _=P0(_),U.forEach(function(x,E){!(be.isUndefined(x)||x===null)&&t.append(o===!0?$v([_],E,a):o===null?_:_+"[]",h(x))}),!1}return uh(w)?!0:(t.append($v(C,_,a),h(w)),!1)}const p=[],m=Object.assign(KE,{defaultVisitor:f,convertValue:h,isVisitable:uh});function y(w,_){if(!be.isUndefined(w)){if(p.indexOf(w)!==-1)throw Error("Circular reference detected in "+_.join("."));p.push(w),be.forEach(w,function(U,F){(!(be.isUndefined(U)||U===null)&&s.call(t,U,be.isString(F)?F.trim():F,_,m))===!0&&y(U,_?_.concat(F):[F])}),p.pop()}}if(!be.isObject(e))throw new TypeError("data must be an object");return y(e),t}function Bv(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Kh(e,t){this._pairs=[],e&&Lc(e,this,t)}const L0=Kh.prototype;L0.append=function(t,n){this._pairs.push([t,n])};L0.toString=function(t){const n=t?function(r){return t.call(this,r,Bv)}:Bv;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function GE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function I0(e,t,n){if(!t)return e;const r=n&&n.encode||GE;be.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let a;if(s?a=s(t,n):a=be.isURLSearchParams(t)?t.toString():new Kh(t,n).toString(r),a){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class Hv{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){be.forEach(this.handlers,function(r){r!==null&&t(r)})}}const N0={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},JE=typeof URLSearchParams<"u"?URLSearchParams:Kh,ZE=typeof FormData<"u"?FormData:null,XE=typeof Blob<"u"?Blob:null,QE={isBrowser:!0,classes:{URLSearchParams:JE,FormData:ZE,Blob:XE},protocols:["http","https","file","blob","url","data"]},Gh=typeof window<"u"&&typeof document<"u",ch=typeof navigator=="object"&&navigator||void 0,eO=Gh&&(!ch||["ReactNative","NativeScript","NS"].indexOf(ch.product)<0),tO=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",nO=Gh&&window.location.href||"http://localhost",rO=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Gh,hasStandardBrowserEnv:eO,hasStandardBrowserWebWorkerEnv:tO,navigator:ch,origin:nO},Symbol.toStringTag,{value:"Module"})),tr={...rO,...QE};function sO(e,t){return Lc(e,new tr.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,a){return tr.isNode&&be.isBuffer(n)?(this.append(r,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function iO(e){return be.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function aO(e){const t={},n=Object.keys(e);let r;const s=n.length;let a;for(r=0;r=n.length;return o=!o&&be.isArray(s)?s.length:o,d?(be.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!u):((!s[o]||!be.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],a)&&be.isArray(s[o])&&(s[o]=aO(s[o])),!u)}if(be.isFormData(e)&&be.isFunction(e.entries)){const n={};return be.forEachEntry(e,(r,s)=>{t(iO(r),s,n,0)}),n}return null}function lO(e,t,n){if(be.isString(e))try{return(t||JSON.parse)(e),be.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ro={transitional:N0,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,a=be.isObject(t);if(a&&be.isHTMLForm(t)&&(t=new FormData(t)),be.isFormData(t))return s?JSON.stringify(V0(t)):t;if(be.isArrayBuffer(t)||be.isBuffer(t)||be.isStream(t)||be.isFile(t)||be.isBlob(t)||be.isReadableStream(t))return t;if(be.isArrayBufferView(t))return t.buffer;if(be.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(a){if(r.indexOf("application/x-www-form-urlencoded")>-1)return sO(t,this.formSerializer).toString();if((u=be.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Lc(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||s?(n.setContentType("application/json",!1),lO(t)):t}],transformResponse:[function(t){const n=this.transitional||Ro.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(be.isResponse(t)||be.isReadableStream(t))return t;if(t&&be.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(u){if(o)throw u.name==="SyntaxError"?ht.from(u,ht.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:tr.classes.FormData,Blob:tr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch"],e=>{Ro.headers[e]={}});const oO=be.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),uO=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&oO[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Uv=Symbol("internals");function Wl(e){return e&&String(e).trim().toLowerCase()}function qu(e){return e===!1||e==null?e:be.isArray(e)?e.map(qu):String(e)}function cO(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const dO=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Of(e,t,n,r,s){if(be.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!be.isString(t)){if(be.isString(r))return t.indexOf(r)!==-1;if(be.isRegExp(r))return r.test(t)}}function fO(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function hO(e,t){const n=be.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,a,o){return this[r].call(this,t,s,a,o)},configurable:!0})})}let Tr=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function a(u,d,h){const f=Wl(d);if(!f)throw new Error("header name must be a non-empty string");const p=be.findKey(s,f);(!p||s[p]===void 0||h===!0||h===void 0&&s[p]!==!1)&&(s[p||d]=qu(u))}const o=(u,d)=>be.forEach(u,(h,f)=>a(h,f,d));if(be.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(be.isString(t)&&(t=t.trim())&&!dO(t))o(uO(t),n);else if(be.isHeaders(t))for(const[u,d]of t.entries())a(d,u,r);else t!=null&&a(n,t,r);return this}get(t,n){if(t=Wl(t),t){const r=be.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return cO(s);if(be.isFunction(n))return n.call(this,s,r);if(be.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Wl(t),t){const r=be.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Of(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function a(o){if(o=Wl(o),o){const u=be.findKey(r,o);u&&(!n||Of(r,r[u],u,n))&&(delete r[u],s=!0)}}return be.isArray(t)?t.forEach(a):a(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const a=n[r];(!t||Of(this,this[a],a,t,!0))&&(delete this[a],s=!0)}return s}normalize(t){const n=this,r={};return be.forEach(this,(s,a)=>{const o=be.findKey(r,a);if(o){n[o]=qu(s),delete n[a];return}const u=t?fO(a):String(a).trim();u!==a&&delete n[a],n[u]=qu(s),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return be.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&be.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[Uv]=this[Uv]={accessors:{}}).accessors,s=this.prototype;function a(o){const u=Wl(o);r[u]||(hO(s,o),r[u]=!0)}return be.isArray(t)?t.forEach(a):a(t),this}};Tr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);be.reduceDescriptors(Tr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});be.freezeMethods(Tr);function Mf(e,t){const n=this||Ro,r=t||n,s=Tr.from(r.headers);let a=r.data;return be.forEach(e,function(u){a=u.call(n,a,s.normalize(),t?t.status:void 0)}),s.normalize(),a}function F0(e){return!!(e&&e.__CANCEL__)}function kl(e,t,n){ht.call(this,e??"canceled",ht.ERR_CANCELED,t,n),this.name="CanceledError"}be.inherits(kl,ht,{__CANCEL__:!0});function $0(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ht("Request failed with status code "+n.status,[ht.ERR_BAD_REQUEST,ht.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function pO(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function mO(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,a=0,o;return t=t!==void 0?t:1e3,function(d){const h=Date.now(),f=r[a];o||(o=h),n[s]=d,r[s]=h;let p=a,m=0;for(;p!==s;)m+=n[p++],p=p%e;if(s=(s+1)%e,s===a&&(a=(a+1)%e),h-o{n=f,s=null,a&&(clearTimeout(a),a=null),e.apply(null,h)};return[(...h)=>{const f=Date.now(),p=f-n;p>=r?o(h,f):(s=h,a||(a=setTimeout(()=>{a=null,o(s)},r-p)))},()=>s&&o(s)]}const tc=(e,t,n=3)=>{let r=0;const s=mO(50,250);return gO(a=>{const o=a.loaded,u=a.lengthComputable?a.total:void 0,d=o-r,h=s(d),f=o<=u;r=o;const p={loaded:o,total:u,progress:u?o/u:void 0,bytes:d,rate:h||void 0,estimated:h&&u&&f?(u-o)/h:void 0,event:a,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},jv=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wv=e=>(...t)=>be.asap(()=>e(...t)),vO=tr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,tr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(tr.origin),tr.navigator&&/(msie|trident)/i.test(tr.navigator.userAgent)):()=>!0,yO=tr.hasStandardBrowserEnv?{write(e,t,n,r,s,a){const o=[e+"="+encodeURIComponent(t)];be.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),be.isString(r)&&o.push("path="+r),be.isString(s)&&o.push("domain="+s),a===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function _O(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function bO(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function B0(e,t,n){let r=!_O(t);return e&&(r||n==!1)?bO(e,t):t}const qv=e=>e instanceof Tr?{...e}:e;function va(e,t){t=t||{};const n={};function r(h,f,p,m){return be.isPlainObject(h)&&be.isPlainObject(f)?be.merge.call({caseless:m},h,f):be.isPlainObject(f)?be.merge({},f):be.isArray(f)?f.slice():f}function s(h,f,p,m){if(be.isUndefined(f)){if(!be.isUndefined(h))return r(void 0,h,p,m)}else return r(h,f,p,m)}function a(h,f){if(!be.isUndefined(f))return r(void 0,f)}function o(h,f){if(be.isUndefined(f)){if(!be.isUndefined(h))return r(void 0,h)}else return r(void 0,f)}function u(h,f,p){if(p in t)return r(h,f);if(p in e)return r(void 0,h)}const d={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:u,headers:(h,f,p)=>s(qv(h),qv(f),p,!0)};return be.forEach(Object.keys(Object.assign({},e,t)),function(f){const p=d[f]||s,m=p(e[f],t[f],f);be.isUndefined(m)&&p!==u||(n[f]=m)}),n}const H0=e=>{const t=va({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:a,headers:o,auth:u}=t;t.headers=o=Tr.from(o),t.url=I0(B0(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&o.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):"")));let d;if(be.isFormData(n)){if(tr.hasStandardBrowserEnv||tr.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((d=o.getContentType())!==!1){const[h,...f]=d?d.split(";").map(p=>p.trim()).filter(Boolean):[];o.setContentType([h||"multipart/form-data",...f].join("; "))}}if(tr.hasStandardBrowserEnv&&(r&&be.isFunction(r)&&(r=r(t)),r||r!==!1&&vO(t.url))){const h=s&&a&&yO.read(a);h&&o.set(s,h)}return t},wO=typeof XMLHttpRequest<"u",xO=wO&&function(e){return new Promise(function(n,r){const s=H0(e);let a=s.data;const o=Tr.from(s.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:h}=s,f,p,m,y,w;function _(){y&&y(),w&&w(),s.cancelToken&&s.cancelToken.unsubscribe(f),s.signal&&s.signal.removeEventListener("abort",f)}let C=new XMLHttpRequest;C.open(s.method.toUpperCase(),s.url,!0),C.timeout=s.timeout;function U(){if(!C)return;const x=Tr.from("getAllResponseHeaders"in C&&C.getAllResponseHeaders()),V={data:!u||u==="text"||u==="json"?C.responseText:C.response,status:C.status,statusText:C.statusText,headers:x,config:e,request:C};$0(function($){n($),_()},function($){r($),_()},V),C=null}"onloadend"in C?C.onloadend=U:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(U)},C.onabort=function(){C&&(r(new ht("Request aborted",ht.ECONNABORTED,e,C)),C=null)},C.onerror=function(){r(new ht("Network Error",ht.ERR_NETWORK,e,C)),C=null},C.ontimeout=function(){let E=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const V=s.transitional||N0;s.timeoutErrorMessage&&(E=s.timeoutErrorMessage),r(new ht(E,V.clarifyTimeoutError?ht.ETIMEDOUT:ht.ECONNABORTED,e,C)),C=null},a===void 0&&o.setContentType(null),"setRequestHeader"in C&&be.forEach(o.toJSON(),function(E,V){C.setRequestHeader(V,E)}),be.isUndefined(s.withCredentials)||(C.withCredentials=!!s.withCredentials),u&&u!=="json"&&(C.responseType=s.responseType),h&&([m,w]=tc(h,!0),C.addEventListener("progress",m)),d&&C.upload&&([p,y]=tc(d),C.upload.addEventListener("progress",p),C.upload.addEventListener("loadend",y)),(s.cancelToken||s.signal)&&(f=x=>{C&&(r(!x||x.type?new kl(null,e,C):x),C.abort(),C=null)},s.cancelToken&&s.cancelToken.subscribe(f),s.signal&&(s.signal.aborted?f():s.signal.addEventListener("abort",f)));const F=pO(s.url);if(F&&tr.protocols.indexOf(F)===-1){r(new ht("Unsupported protocol "+F+":",ht.ERR_BAD_REQUEST,e));return}C.send(a||null)})},kO=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const a=function(h){if(!s){s=!0,u();const f=h instanceof Error?h:this.reason;r.abort(f instanceof ht?f:new kl(f instanceof Error?f.message:f))}};let o=t&&setTimeout(()=>{o=null,a(new ht(`timeout ${t} of ms exceeded`,ht.ETIMEDOUT))},t);const u=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(h=>{h.unsubscribe?h.unsubscribe(a):h.removeEventListener("abort",a)}),e=null)};e.forEach(h=>h.addEventListener("abort",a));const{signal:d}=r;return d.unsubscribe=()=>be.asap(u),d}},SO=function*(e,t){let n=e.byteLength;if(n{const s=TO(e,t);let a=0,o,u=d=>{o||(o=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:h,value:f}=await s.next();if(h){u(),d.close();return}let p=f.byteLength;if(n){let m=a+=p;n(m)}d.enqueue(new Uint8Array(f))}catch(h){throw u(h),h}},cancel(d){return u(d),s.return()}},{highWaterMark:2})},Ic=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",U0=Ic&&typeof ReadableStream=="function",CO=Ic&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),j0=(e,...t)=>{try{return!!e(...t)}catch{return!1}},EO=U0&&j0(()=>{let e=!1;const t=new Request(tr.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),zv=64*1024,dh=U0&&j0(()=>be.isReadableStream(new Response("").body)),nc={stream:dh&&(e=>e.body)};Ic&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!nc[t]&&(nc[t]=be.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new ht(`Response type '${t}' is not supported`,ht.ERR_NOT_SUPPORT,r)})})})(new Response);const OO=async e=>{if(e==null)return 0;if(be.isBlob(e))return e.size;if(be.isSpecCompliantForm(e))return(await new Request(tr.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(be.isArrayBufferView(e)||be.isArrayBuffer(e))return e.byteLength;if(be.isURLSearchParams(e)&&(e=e+""),be.isString(e))return(await CO(e)).byteLength},MO=async(e,t)=>{const n=be.toFiniteNumber(e.getContentLength());return n??OO(t)},RO=Ic&&(async e=>{let{url:t,method:n,data:r,signal:s,cancelToken:a,timeout:o,onDownloadProgress:u,onUploadProgress:d,responseType:h,headers:f,withCredentials:p="same-origin",fetchOptions:m}=H0(e);h=h?(h+"").toLowerCase():"text";let y=kO([s,a&&a.toAbortSignal()],o),w;const _=y&&y.unsubscribe&&(()=>{y.unsubscribe()});let C;try{if(d&&EO&&n!=="get"&&n!=="head"&&(C=await MO(f,r))!==0){let V=new Request(t,{method:"POST",body:r,duplex:"half"}),B;if(be.isFormData(r)&&(B=V.headers.get("content-type"))&&f.setContentType(B),V.body){const[$,M]=jv(C,tc(Wv(d)));r=Yv(V.body,zv,$,M)}}be.isString(p)||(p=p?"include":"omit");const U="credentials"in Request.prototype;w=new Request(t,{...m,signal:y,method:n.toUpperCase(),headers:f.normalize().toJSON(),body:r,duplex:"half",credentials:U?p:void 0});let F=await fetch(w);const x=dh&&(h==="stream"||h==="response");if(dh&&(u||x&&_)){const V={};["status","statusText","headers"].forEach(T=>{V[T]=F[T]});const B=be.toFiniteNumber(F.headers.get("content-length")),[$,M]=u&&jv(B,tc(Wv(u),!0))||[];F=new Response(Yv(F.body,zv,$,()=>{M&&M(),_&&_()}),V)}h=h||"text";let E=await nc[be.findKey(nc,h)||"text"](F,e);return!x&&_&&_(),await new Promise((V,B)=>{$0(V,B,{data:E,headers:Tr.from(F.headers),status:F.status,statusText:F.statusText,config:e,request:w})})}catch(U){throw _&&_(),U&&U.name==="TypeError"&&/fetch/i.test(U.message)?Object.assign(new ht("Network Error",ht.ERR_NETWORK,e,w),{cause:U.cause||U}):ht.from(U,U&&U.code,e,w)}}),fh={http:YE,xhr:xO,fetch:RO};be.forEach(fh,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Kv=e=>`- ${e}`,DO=e=>be.isFunction(e)||e===null||e===!1,W0={getAdapter:e=>{e=be.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let a=0;a`adapter ${u} `+(d===!1?"is not supported by the environment":"is not available in the build"));let o=t?a.length>1?`since : +`+a.map(Kv).join(` +`):" "+Kv(a[0]):"as no adapter specified";throw new ht("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return r},adapters:fh};function Rf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new kl(null,e)}function Gv(e){return Rf(e),e.headers=Tr.from(e.headers),e.data=Mf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),W0.getAdapter(e.adapter||Ro.adapter)(e).then(function(r){return Rf(e),r.data=Mf.call(e,e.transformResponse,r),r.headers=Tr.from(r.headers),r},function(r){return F0(r)||(Rf(e),r&&r.response&&(r.response.data=Mf.call(e,e.transformResponse,r.response),r.response.headers=Tr.from(r.response.headers))),Promise.reject(r)})}const q0="1.8.4",Nc={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Nc[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Jv={};Nc.transitional=function(t,n,r){function s(a,o){return"[Axios v"+q0+"] Transitional option '"+a+"'"+o+(r?". "+r:"")}return(a,o,u)=>{if(t===!1)throw new ht(s(o," has been removed"+(n?" in "+n:"")),ht.ERR_DEPRECATED);return n&&!Jv[o]&&(Jv[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,o,u):!0}};Nc.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function PO(e,t,n){if(typeof e!="object")throw new ht("options must be an object",ht.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const a=r[s],o=t[a];if(o){const u=e[a],d=u===void 0||o(u,a,e);if(d!==!0)throw new ht("option "+a+" must be "+d,ht.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ht("Unknown option "+a,ht.ERR_BAD_OPTION)}}const Yu={assertOptions:PO,validators:Nc},Ts=Yu.validators;let ua=class{constructor(t){this.defaults=t,this.interceptors={request:new Hv,response:new Hv}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const a=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?a&&!String(r.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+a):r.stack=a}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=va(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:a}=n;r!==void 0&&Yu.assertOptions(r,{silentJSONParsing:Ts.transitional(Ts.boolean),forcedJSONParsing:Ts.transitional(Ts.boolean),clarifyTimeoutError:Ts.transitional(Ts.boolean)},!1),s!=null&&(be.isFunction(s)?n.paramsSerializer={serialize:s}:Yu.assertOptions(s,{encode:Ts.function,serialize:Ts.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Yu.assertOptions(n,{baseUrl:Ts.spelling("baseURL"),withXsrfToken:Ts.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=a&&be.merge(a.common,a[n.method]);a&&be.forEach(["delete","get","head","post","put","patch","common"],w=>{delete a[w]}),n.headers=Tr.concat(o,a);const u=[];let d=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(d=d&&_.synchronous,u.unshift(_.fulfilled,_.rejected))});const h=[];this.interceptors.response.forEach(function(_){h.push(_.fulfilled,_.rejected)});let f,p=0,m;if(!d){const w=[Gv.bind(this),void 0];for(w.unshift.apply(w,u),w.push.apply(w,h),m=w.length,f=Promise.resolve(n);p{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](s);r._listeners=null}),this.promise.then=s=>{let a;const o=new Promise(u=>{r.subscribe(u),a=u}).then(s);return o.cancel=function(){r.unsubscribe(a)},o},t(function(a,o,u){r.reason||(r.reason=new kl(a,o,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Y0(function(s){t=s}),cancel:t}}};function IO(e){return function(n){return e.apply(null,n)}}function NO(e){return be.isObject(e)&&e.isAxiosError===!0}const hh={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(hh).forEach(([e,t])=>{hh[t]=e});function z0(e){const t=new ua(e),n=S0(ua.prototype.request,t);return be.extend(n,ua.prototype,t,{allOwnKeys:!0}),be.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return z0(va(e,s))},n}const St=z0(Ro);St.Axios=ua;St.CanceledError=kl;St.CancelToken=LO;St.isCancel=F0;St.VERSION=q0;St.toFormData=Lc;St.AxiosError=ht;St.Cancel=St.CanceledError;St.all=function(t){return Promise.all(t)};St.spread=IO;St.isAxiosError=NO;St.mergeConfig=va;St.AxiosHeaders=Tr;St.formToJSON=e=>V0(be.isHTMLForm(e)?new FormData(e):e);St.getAdapter=W0.getAdapter;St.HttpStatusCode=hh;St.default=St;const{Axios:N9,AxiosError:V9,CanceledError:F9,isCancel:$9,CancelToken:B9,VERSION:H9,all:U9,Cancel:j9,isAxiosError:W9,spread:q9,toFormData:Y9,AxiosHeaders:z9,HttpStatusCode:K9,formToJSON:G9,getAdapter:J9,mergeConfig:Z9}=St;window.axios=St;window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";let Zv=document.head.querySelector('meta[name="csrf-token"]');Zv?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=Zv.content:console.error("CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token");/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function jr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const kt={},tl=[],Yn=()=>{},Zl=()=>!1,wa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Jh=e=>e.startsWith("onUpdate:"),Tt=Object.assign,Zh=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},VO=Object.prototype.hasOwnProperty,Dt=(e,t)=>VO.call(e,t),qe=Array.isArray,nl=e=>Sl(e)==="[object Map]",xa=e=>Sl(e)==="[object Set]",Xv=e=>Sl(e)==="[object Date]",FO=e=>Sl(e)==="[object RegExp]",st=e=>typeof e=="function",ct=e=>typeof e=="string",Cr=e=>typeof e=="symbol",Ht=e=>e!==null&&typeof e=="object",Xh=e=>(Ht(e)||st(e))&&st(e.then)&&st(e.catch),K0=Object.prototype.toString,Sl=e=>K0.call(e),$O=e=>Sl(e).slice(8,-1),Vc=e=>Sl(e)==="[object Object]",Qh=e=>ct(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ai=jr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),BO=jr("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),Fc=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},HO=/-(\w)/g,Jt=Fc(e=>e.replace(HO,(t,n)=>n?n.toUpperCase():"")),UO=/\B([A-Z])/g,xr=Fc(e=>e.replace(UO,"-$1").toLowerCase()),ka=Fc(e=>e.charAt(0).toUpperCase()+e.slice(1)),rl=Fc(e=>e?`on${ka(e)}`:""),dr=(e,t)=>!Object.is(e,t),sl=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},rc=e=>{const t=parseFloat(e);return isNaN(t)?e:t},sc=e=>{const t=ct(e)?Number(e):NaN;return isNaN(t)?e:t};let Qv;const $c=()=>Qv||(Qv=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"||typeof window<"u"?window:{});function jO(e,t){return e+JSON.stringify(t,(n,r)=>typeof r=="function"?r.toString():r)}const WO="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",qO=jr(WO);function bn(e){if(qe(e)){const t={};for(let n=0;n{if(n){const r=n.split(zO);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Fe(e){let t="";if(ct(e))t=e;else if(qe(e))for(let n=0;nPi(n,t))}const X0=e=>!!(e&&e.__v_isRef===!0),ce=e=>ct(e)?e:e==null?"":qe(e)||Ht(e)&&(e.toString===K0||!st(e.toString))?X0(e)?ce(e.value):JSON.stringify(e,Q0,2):String(e),Q0=(e,t)=>X0(t)?Q0(e,t.value):nl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],a)=>(n[Df(r,a)+" =>"]=s,n),{})}:xa(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Df(n))}:Cr(t)?Df(t):Ht(t)&&!qe(t)&&!Vc(t)?String(t):t,Df=(e,t="")=>{var n;return Cr(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ur;class ep{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ur,!t&&ur&&(this.index=(ur.scopes||(ur.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(to){let t=to;for(to=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;eo;){let t=eo;for(eo=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function r_(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function s_(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),sp(r),lM(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ph(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(i_(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function i_(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ho))return;e.globalVersion=ho;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!ph(e)){e.flags&=-3;return}const n=zt,r=ps;zt=e,ps=!0;try{r_(e);const s=e.fn(e._value);(t.version===0||dr(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{zt=n,ps=r,s_(e),e.flags&=-3}}function sp(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)sp(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function lM(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function oM(e,t){e.effect instanceof fo&&(e=e.effect.fn);const n=new fo(e);t&&Tt(n,t);try{n.run()}catch(s){throw n.stop(),s}const r=n.run.bind(n);return r.effect=n,r}function uM(e){e.effect.stop()}let ps=!0;const a_=[];function Fi(){a_.push(ps),ps=!1}function $i(){const e=a_.pop();ps=e===void 0?!0:e}function ey(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=zt;zt=void 0;try{t()}finally{zt=n}}}let ho=0;class cM{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Hc{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!zt||!ps||zt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==zt)n=this.activeLink=new cM(zt,this),zt.deps?(n.prevDep=zt.depsTail,zt.depsTail.nextDep=n,zt.depsTail=n):zt.deps=zt.depsTail=n,l_(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=zt.depsTail,n.nextDep=void 0,zt.depsTail.nextDep=n,zt.depsTail=n,zt.deps===n&&(zt.deps=r)}return n}trigger(t){this.version++,ho++,this.notify(t)}notify(t){np();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{rp()}}}function l_(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)l_(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ic=new WeakMap,ca=Symbol(""),mh=Symbol(""),po=Symbol("");function Qn(e,t,n){if(ps&&zt){let r=ic.get(e);r||ic.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Hc),s.map=r,s.key=n),s.track()}}function Gs(e,t,n,r,s,a){const o=ic.get(e);if(!o){ho++;return}const u=d=>{d&&d.trigger()};if(np(),t==="clear")o.forEach(u);else{const d=qe(e),h=d&&Qh(n);if(d&&n==="length"){const f=Number(r);o.forEach((p,m)=>{(m==="length"||m===po||!Cr(m)&&m>=f)&&u(p)})}else switch((n!==void 0||o.has(void 0))&&u(o.get(n)),h&&u(o.get(po)),t){case"add":d?h&&u(o.get("length")):(u(o.get(ca)),nl(e)&&u(o.get(mh)));break;case"delete":d||(u(o.get(ca)),nl(e)&&u(o.get(mh)));break;case"set":nl(e)&&u(o.get(ca));break}}rp()}function dM(e,t){const n=ic.get(e);return n&&n.get(t)}function Ua(e){const t=Ot(e);return t===e?t:(Qn(t,"iterate",po),Ur(e)?t:t.map(er))}function Uc(e){return Qn(e=Ot(e),"iterate",po),e}const fM={__proto__:null,[Symbol.iterator](){return Lf(this,Symbol.iterator,er)},concat(...e){return Ua(this).concat(...e.map(t=>qe(t)?Ua(t):t))},entries(){return Lf(this,"entries",e=>(e[1]=er(e[1]),e))},every(e,t){return Ws(this,"every",e,t,void 0,arguments)},filter(e,t){return Ws(this,"filter",e,t,n=>n.map(er),arguments)},find(e,t){return Ws(this,"find",e,t,er,arguments)},findIndex(e,t){return Ws(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ws(this,"findLast",e,t,er,arguments)},findLastIndex(e,t){return Ws(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ws(this,"forEach",e,t,void 0,arguments)},includes(...e){return If(this,"includes",e)},indexOf(...e){return If(this,"indexOf",e)},join(e){return Ua(this).join(e)},lastIndexOf(...e){return If(this,"lastIndexOf",e)},map(e,t){return Ws(this,"map",e,t,void 0,arguments)},pop(){return ql(this,"pop")},push(...e){return ql(this,"push",e)},reduce(e,...t){return ty(this,"reduce",e,t)},reduceRight(e,...t){return ty(this,"reduceRight",e,t)},shift(){return ql(this,"shift")},some(e,t){return Ws(this,"some",e,t,void 0,arguments)},splice(...e){return ql(this,"splice",e)},toReversed(){return Ua(this).toReversed()},toSorted(e){return Ua(this).toSorted(e)},toSpliced(...e){return Ua(this).toSpliced(...e)},unshift(...e){return ql(this,"unshift",e)},values(){return Lf(this,"values",er)}};function Lf(e,t,n){const r=Uc(e),s=r[t]();return r!==e&&!Ur(e)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.value&&(a.value=n(a.value)),a}),s}const hM=Array.prototype;function Ws(e,t,n,r,s,a){const o=Uc(e),u=o!==e&&!Ur(e),d=o[t];if(d!==hM[t]){const p=d.apply(e,a);return u?er(p):p}let h=n;o!==e&&(u?h=function(p,m){return n.call(this,er(p),m,e)}:n.length>2&&(h=function(p,m){return n.call(this,p,m,e)}));const f=d.call(o,h,r);return u&&s?s(f):f}function ty(e,t,n,r){const s=Uc(e);let a=n;return s!==e&&(Ur(e)?n.length>3&&(a=function(o,u,d){return n.call(this,o,u,d,e)}):a=function(o,u,d){return n.call(this,o,er(u),d,e)}),s[t](a,...r)}function If(e,t,n){const r=Ot(e);Qn(r,"iterate",po);const s=r[t](...n);return(s===-1||s===!1)&&qc(n[0])?(n[0]=Ot(n[0]),r[t](...n)):s}function ql(e,t,n=[]){Fi(),np();const r=Ot(e)[t].apply(e,n);return rp(),$i(),r}const pM=jr("__proto__,__v_isRef,__isVue"),o_=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Cr));function mM(e){Cr(e)||(e=String(e));const t=Ot(this);return Qn(t,"has",e),t.hasOwnProperty(e)}class u_{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return a;if(n==="__v_raw")return r===(s?a?m_:p_:a?h_:f_).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=qe(t);if(!s){let d;if(o&&(d=fM[n]))return d;if(n==="hasOwnProperty")return mM}const u=Reflect.get(t,n,Tn(t)?t:r);return(Cr(n)?o_.has(n):pM(n))||(s||Qn(t,"get",n),a)?u:Tn(u)?o&&Qh(n)?u:u.value:Ht(u)?s?ip(u):Hr(u):u}}class c_ extends u_{constructor(t=!1){super(!1,t)}set(t,n,r,s){let a=t[n];if(!this._isShallow){const d=Li(a);if(!Ur(r)&&!Li(r)&&(a=Ot(a),r=Ot(r)),!qe(t)&&Tn(a)&&!Tn(r))return d?!1:(a.value=r,!0)}const o=qe(t)&&Qh(n)?Number(n)e,Ou=e=>Reflect.getPrototypeOf(e);function bM(e,t,n){return function(...r){const s=this.__v_raw,a=Ot(s),o=nl(a),u=e==="entries"||e===Symbol.iterator&&o,d=e==="keys"&&o,h=s[e](...r),f=n?gh:t?vh:er;return!t&&Qn(a,"iterate",d?mh:ca),{next(){const{value:p,done:m}=h.next();return m?{value:p,done:m}:{value:u?[f(p[0]),f(p[1])]:f(p),done:m}},[Symbol.iterator](){return this}}}}function Mu(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function wM(e,t){const n={get(s){const a=this.__v_raw,o=Ot(a),u=Ot(s);e||(dr(s,u)&&Qn(o,"get",s),Qn(o,"get",u));const{has:d}=Ou(o),h=t?gh:e?vh:er;if(d.call(o,s))return h(a.get(s));if(d.call(o,u))return h(a.get(u));a!==o&&a.get(s)},get size(){const s=this.__v_raw;return!e&&Qn(Ot(s),"iterate",ca),Reflect.get(s,"size",s)},has(s){const a=this.__v_raw,o=Ot(a),u=Ot(s);return e||(dr(s,u)&&Qn(o,"has",s),Qn(o,"has",u)),s===u?a.has(s):a.has(s)||a.has(u)},forEach(s,a){const o=this,u=o.__v_raw,d=Ot(u),h=t?gh:e?vh:er;return!e&&Qn(d,"iterate",ca),u.forEach((f,p)=>s.call(a,h(f),h(p),o))}};return Tt(n,e?{add:Mu("add"),set:Mu("set"),delete:Mu("delete"),clear:Mu("clear")}:{add(s){!t&&!Ur(s)&&!Li(s)&&(s=Ot(s));const a=Ot(this);return Ou(a).has.call(a,s)||(a.add(s),Gs(a,"add",s,s)),this},set(s,a){!t&&!Ur(a)&&!Li(a)&&(a=Ot(a));const o=Ot(this),{has:u,get:d}=Ou(o);let h=u.call(o,s);h||(s=Ot(s),h=u.call(o,s));const f=d.call(o,s);return o.set(s,a),h?dr(a,f)&&Gs(o,"set",s,a):Gs(o,"add",s,a),this},delete(s){const a=Ot(this),{has:o,get:u}=Ou(a);let d=o.call(a,s);d||(s=Ot(s),d=o.call(a,s)),u&&u.call(a,s);const h=a.delete(s);return d&&Gs(a,"delete",s,void 0),h},clear(){const s=Ot(this),a=s.size!==0,o=s.clear();return a&&Gs(s,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=bM(s,e,t)}),n}function jc(e,t){const n=wM(e,t);return(r,s,a)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Dt(n,s)&&s in r?n:r,s,a)}const xM={get:jc(!1,!1)},kM={get:jc(!1,!0)},SM={get:jc(!0,!1)},TM={get:jc(!0,!0)},f_=new WeakMap,h_=new WeakMap,p_=new WeakMap,m_=new WeakMap;function AM(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function CM(e){return e.__v_skip||!Object.isExtensible(e)?0:AM($O(e))}function Hr(e){return Li(e)?e:Wc(e,!1,gM,xM,f_)}function g_(e){return Wc(e,!1,yM,kM,h_)}function ip(e){return Wc(e,!0,vM,SM,p_)}function EM(e){return Wc(e,!0,_M,TM,m_)}function Wc(e,t,n,r,s){if(!Ht(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=s.get(e);if(a)return a;const o=CM(e);if(o===0)return e;const u=new Proxy(e,o===2?r:n);return s.set(e,u),u}function Ci(e){return Li(e)?Ci(e.__v_raw):!!(e&&e.__v_isReactive)}function Li(e){return!!(e&&e.__v_isReadonly)}function Ur(e){return!!(e&&e.__v_isShallow)}function qc(e){return e?!!e.__v_raw:!1}function Ot(e){const t=e&&e.__v_raw;return t?Ot(t):e}function v_(e){return!Dt(e,"__v_skip")&&Object.isExtensible(e)&&G0(e,"__v_skip",!0),e}const er=e=>Ht(e)?Hr(e):e,vh=e=>Ht(e)?ip(e):e;function Tn(e){return e?e.__v_isRef===!0:!1}function fe(e){return __(e,!1)}function y_(e){return __(e,!0)}function __(e,t){return Tn(e)?e:new OM(e,t)}class OM{constructor(t,n){this.dep=new Hc,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Ot(t),this._value=n?t:er(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ur(t)||Li(t);t=r?t:Ot(t),dr(t,n)&&(this._rawValue=t,this._value=r?t:er(t),this.dep.trigger())}}function MM(e){e.dep&&e.dep.trigger()}function Z(e){return Tn(e)?e.value:e}function RM(e){return st(e)?e():Z(e)}const DM={get:(e,t,n)=>t==="__v_raw"?e:Z(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Tn(s)&&!Tn(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function ap(e){return Ci(e)?e:new Proxy(e,DM)}class PM{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Hc,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function b_(e){return new PM(e)}function LM(e){const t=qe(e)?new Array(e.length):{};for(const n in e)t[n]=w_(e,n);return t}class IM{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return dM(Ot(this._object),this._key)}}class NM{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ll(e,t,n){return Tn(e)?e:st(e)?new NM(e):Ht(e)&&arguments.length>1?w_(e,t,n):fe(e)}function w_(e,t,n){const r=e[t];return Tn(r)?r:new IM(e,t,n)}class VM{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Hc(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ho-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&zt!==this)return n_(this,!0),!0}get value(){const t=this.dep.track();return i_(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function FM(e,t,n=!1){let r,s;return st(e)?r=e:(r=e.get,s=e.set),new VM(r,s,n)}const $M={GET:"get",HAS:"has",ITERATE:"iterate"},BM={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Ru={},ac=new WeakMap;let bi;function HM(){return bi}function x_(e,t=!1,n=bi){if(n){let r=ac.get(n);r||ac.set(n,r=[]),r.push(e)}}function UM(e,t,n=kt){const{immediate:r,deep:s,once:a,scheduler:o,augmentJob:u,call:d}=n,h=E=>s?E:Ur(E)||s===!1||s===0?Js(E,1):Js(E);let f,p,m,y,w=!1,_=!1;if(Tn(e)?(p=()=>e.value,w=Ur(e)):Ci(e)?(p=()=>h(e),w=!0):qe(e)?(_=!0,w=e.some(E=>Ci(E)||Ur(E)),p=()=>e.map(E=>{if(Tn(E))return E.value;if(Ci(E))return h(E);if(st(E))return d?d(E,2):E()})):st(e)?t?p=d?()=>d(e,2):e:p=()=>{if(m){Fi();try{m()}finally{$i()}}const E=bi;bi=f;try{return d?d(e,3,[y]):e(y)}finally{bi=E}}:p=Yn,t&&s){const E=p,V=s===!0?1/0:s;p=()=>Js(E(),V)}const C=tp(),U=()=>{f.stop(),C&&C.active&&Zh(C.effects,f)};if(a&&t){const E=t;t=(...V)=>{E(...V),U()}}let F=_?new Array(e.length).fill(Ru):Ru;const x=E=>{if(!(!(f.flags&1)||!f.dirty&&!E))if(t){const V=f.run();if(s||w||(_?V.some((B,$)=>dr(B,F[$])):dr(V,F))){m&&m();const B=bi;bi=f;try{const $=[V,F===Ru?void 0:_&&F[0]===Ru?[]:F,y];d?d(t,3,$):t(...$),F=V}finally{bi=B}}}else f.run()};return u&&u(x),f=new fo(p),f.scheduler=o?()=>o(x,!1):x,y=E=>x_(E,!1,f),m=f.onStop=()=>{const E=ac.get(f);if(E){if(d)d(E,4);else for(const V of E)V();ac.delete(f)}},t?r?x(!0):F=f.run():o?o(x.bind(null,!0),!0):f.run(),U.pause=f.pause.bind(f),U.resume=f.resume.bind(f),U.stop=U,U}function Js(e,t=1/0,n){if(t<=0||!Ht(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,Tn(e))Js(e.value,t,n);else if(qe(e))for(let r=0;r{Js(r,t,n)});else if(Vc(e)){for(const r in e)Js(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Js(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const k_=[];function jM(e){k_.push(e)}function WM(){k_.pop()}function qM(e,t){}const YM={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},zM={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function Tl(e,t,n,r){try{return r?e(...r):e()}catch(s){Sa(s,t,n)}}function rs(e,t,n,r){if(st(e)){const s=Tl(e,t,n,r);return s&&Xh(s)&&s.catch(a=>{Sa(a,t,n)}),s}if(qe(e)){const s=[];for(let a=0;a>>1,s=fr[r],a=go(s);a=go(n)?fr.push(e):fr.splice(GM(t),0,e),e.flags|=1,T_()}}function T_(){lc||(lc=S_.then(A_))}function mo(e){qe(e)?il.push(...e):wi&&e.id===-1?wi.splice(Ga+1,0,e):e.flags&1||(il.push(e),e.flags|=1),T_()}function ny(e,t,n=Cs+1){for(;ngo(n)-go(r));if(il.length=0,wi){wi.push(...t);return}for(wi=t,Ga=0;Gae.id==null?e.flags&2?-1:1/0:e.id;function A_(e){try{for(Cs=0;CsJa.emit(s,...a)),Du=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{C_(a,t)}),setTimeout(()=>{Ja||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Du=[])},3e3)):Du=[]}let In=null,Yc=null;function vo(e){const t=In;return In=e,Yc=e&&e.type.__scopeId||null,t}function JM(e){Yc=e}function ZM(){Yc=null}const XM=e=>Te;function Te(e,t=In,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&Th(-1);const a=vo(t);let o;try{o=e(...s)}finally{vo(a),r._d&&Th(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Dn(e,t){if(In===null)return e;const n=Lo(In),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,no=e=>e&&(e.disabled||e.disabled===""),ry=e=>e&&(e.defer||e.defer===""),sy=e=>typeof SVGElement<"u"&&e instanceof SVGElement,iy=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,yh=(e,t)=>{const n=e&&e.to;return ct(n)?t?t(n):null:n},M_={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,a,o,u,d,h){const{mc:f,pc:p,pbc:m,o:{insert:y,querySelector:w,createText:_,createComment:C}}=h,U=no(t.props);let{shapeFlag:F,children:x,dynamicChildren:E}=t;if(e==null){const V=t.el=_(""),B=t.anchor=_("");y(V,n,r),y(B,n,r);const $=(T,H)=>{F&16&&(s&&s.isCE&&(s.ce._teleportTarget=T),f(x,T,H,s,a,o,u,d))},M=()=>{const T=t.target=yh(t.props,w),H=D_(T,t,_,y);T&&(o!=="svg"&&sy(T)?o="svg":o!=="mathml"&&iy(T)&&(o="mathml"),U||($(T,H),zu(t,!1)))};U&&($(n,B),zu(t,!0)),ry(t.props)?Mn(()=>{M(),t.el.__isMounted=!0},a):M()}else{if(ry(t.props)&&!e.el.__isMounted){Mn(()=>{M_.process(e,t,n,r,s,a,o,u,d,h),delete e.el.__isMounted},a);return}t.el=e.el,t.targetStart=e.targetStart;const V=t.anchor=e.anchor,B=t.target=e.target,$=t.targetAnchor=e.targetAnchor,M=no(e.props),T=M?n:B,H=M?V:$;if(o==="svg"||sy(B)?o="svg":(o==="mathml"||iy(B))&&(o="mathml"),E?(m(e.dynamicChildren,E,T,s,a,o,u),gp(e,t,!0)):d||p(e,t,T,H,s,a,o,u,!1),U)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Pu(t,n,V,h,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const re=t.target=yh(t.props,w);re&&Pu(t,re,null,h,0)}else M&&Pu(t,B,$,h,1);zu(t,U)}},remove(e,t,n,{um:r,o:{remove:s}},a){const{shapeFlag:o,children:u,anchor:d,targetStart:h,targetAnchor:f,target:p,props:m}=e;if(p&&(s(h),s(f)),a&&s(d),o&16){const y=a||!no(m);for(let w=0;w{e.isMounted=!0}),Zc(()=>{e.isUnmounting=!0}),e}const Qr=[Function,Array],up={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Qr,onEnter:Qr,onAfterEnter:Qr,onEnterCancelled:Qr,onBeforeLeave:Qr,onLeave:Qr,onAfterLeave:Qr,onLeaveCancelled:Qr,onBeforeAppear:Qr,onAppear:Qr,onAfterAppear:Qr,onAppearCancelled:Qr},P_=e=>{const t=e.subTree;return t.component?P_(t.component):t},eR={name:"BaseTransition",props:up,setup(e,{slots:t}){const n=ss(),r=op();return()=>{const s=t.default&&zc(t.default(),!0);if(!s||!s.length)return;const a=L_(s),o=Ot(e),{mode:u}=o;if(r.isLeaving)return Nf(a);const d=ay(a);if(!d)return Nf(a);let h=ol(d,o,r,n,p=>h=p);d.type!==An&&ti(d,h);let f=n.subTree&&ay(n.subTree);if(f&&f.type!==An&&!ds(d,f)&&P_(n).type!==An){let p=ol(f,o,r,n);if(ti(f,p),u==="out-in"&&d.type!==An)return r.isLeaving=!0,p.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete p.afterLeave,f=void 0},Nf(a);u==="in-out"&&d.type!==An?p.delayLeave=(m,y,w)=>{const _=N_(r,f);_[String(f.key)]=f,m[xi]=()=>{y(),m[xi]=void 0,delete h.delayedLeave,f=void 0},h.delayedLeave=()=>{w(),delete h.delayedLeave,f=void 0}}:f=void 0}else f&&(f=void 0);return a}}};function L_(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==An){t=n;break}}return t}const I_=eR;function N_(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ol(e,t,n,r,s){const{appear:a,mode:o,persisted:u=!1,onBeforeEnter:d,onEnter:h,onAfterEnter:f,onEnterCancelled:p,onBeforeLeave:m,onLeave:y,onAfterLeave:w,onLeaveCancelled:_,onBeforeAppear:C,onAppear:U,onAfterAppear:F,onAppearCancelled:x}=t,E=String(e.key),V=N_(n,e),B=(T,H)=>{T&&rs(T,r,9,H)},$=(T,H)=>{const re=H[1];B(T,H),qe(T)?T.every(Q=>Q.length<=1)&&re():T.length<=1&&re()},M={mode:o,persisted:u,beforeEnter(T){let H=d;if(!n.isMounted)if(a)H=C||d;else return;T[xi]&&T[xi](!0);const re=V[E];re&&ds(e,re)&&re.el[xi]&&re.el[xi](),B(H,[T])},enter(T){let H=h,re=f,Q=p;if(!n.isMounted)if(a)H=U||h,re=F||f,Q=x||p;else return;let ne=!1;const J=T[Lu]=P=>{ne||(ne=!0,P?B(Q,[T]):B(re,[T]),M.delayedLeave&&M.delayedLeave(),T[Lu]=void 0)};H?$(H,[T,J]):J()},leave(T,H){const re=String(e.key);if(T[Lu]&&T[Lu](!0),n.isUnmounting)return H();B(m,[T]);let Q=!1;const ne=T[xi]=J=>{Q||(Q=!0,H(),J?B(_,[T]):B(w,[T]),T[xi]=void 0,V[re]===e&&delete V[re])};V[re]=e,y?$(y,[T,ne]):ne()},clone(T){const H=ol(T,t,n,r,s);return s&&s(H),H}};return M}function Nf(e){if(Do(e))return e=Ps(e),e.children=null,e}function ay(e){if(!Do(e))return O_(e.type)&&e.children?L_(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&st(n.default))return n.default()}}function ti(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ti(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zc(e,t=!1,n){let r=[],s=0;for(let a=0;a1)for(let a=0;an.value,set:a=>n.value=a})}return n}function yo(e,t,n,r,s=!1){if(qe(e)){e.forEach((w,_)=>yo(w,t&&(qe(t)?t[_]:t),n,r,s));return}if(Ei(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&yo(e,t,n,r.component.subTree);return}const a=r.shapeFlag&4?Lo(r.component):r.el,o=s?null:a,{i:u,r:d}=e,h=t&&t.r,f=u.refs===kt?u.refs={}:u.refs,p=u.setupState,m=Ot(p),y=p===kt?()=>!1:w=>Dt(m,w);if(h!=null&&h!==d&&(ct(h)?(f[h]=null,y(h)&&(p[h]=null)):Tn(h)&&(h.value=null)),st(d))Tl(d,u,12,[o,f]);else{const w=ct(d),_=Tn(d);if(w||_){const C=()=>{if(e.f){const U=w?y(d)?p[d]:f[d]:d.value;s?qe(U)&&Zh(U,a):qe(U)?U.includes(a)||U.push(a):w?(f[d]=[a],y(d)&&(p[d]=f[d])):(d.value=[a],e.k&&(f[e.k]=d.value))}else w?(f[d]=o,y(d)&&(p[d]=o)):_&&(d.value=o,e.k&&(f[e.k]=o))};o?(C.id=-1,Mn(C,n)):C()}}}let ly=!1;const ja=()=>{ly||(console.error("Hydration completed but contains mismatches."),ly=!0)},rR=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sR=e=>e.namespaceURI.includes("MathML"),Iu=e=>{if(e.nodeType===1){if(rR(e))return"svg";if(sR(e))return"mathml"}},Qa=e=>e.nodeType===8;function iR(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:a,parentNode:o,remove:u,insert:d,createComment:h}}=e,f=(x,E)=>{if(!E.hasChildNodes()){n(null,x,E),oc(),E._vnode=x;return}p(E.firstChild,x,null,null,null),oc(),E._vnode=x},p=(x,E,V,B,$,M=!1)=>{M=M||!!E.dynamicChildren;const T=Qa(x)&&x.data==="[",H=()=>_(x,E,V,B,$,T),{type:re,ref:Q,shapeFlag:ne,patchFlag:J}=E;let P=x.nodeType;E.el=x,J===-2&&(M=!1,E.dynamicChildren=null);let z=null;switch(re){case Oi:P!==3?E.children===""?(d(E.el=s(""),o(x),x),z=x):z=H():(x.data!==E.children&&(ja(),x.data=E.children),z=a(x));break;case An:F(x)?(z=a(x),U(E.el=x.content.firstChild,x,V)):P!==8||T?z=H():z=a(x);break;case fa:if(T&&(x=a(x),P=x.nodeType),P===1||P===3){z=x;const R=!E.children.length;for(let te=0;te{M=M||!!E.dynamicChildren;const{type:T,props:H,patchFlag:re,shapeFlag:Q,dirs:ne,transition:J}=E,P=T==="input"||T==="option";if(P||re!==-1){ne&&Es(E,null,V,"created");let z=!1;if(F(x)){z=ub(null,J)&&V&&V.vnode.props&&V.vnode.props.appear;const te=x.content.firstChild;z&&J.beforeEnter(te),U(te,x,V),E.el=x=te}if(Q&16&&!(H&&(H.innerHTML||H.textContent))){let te=y(x.firstChild,E,x,V,B,$,M);for(;te;){Nu(x,1)||ja();const xe=te;te=te.nextSibling,u(xe)}}else if(Q&8){let te=E.children;te[0]===` +`&&(x.tagName==="PRE"||x.tagName==="TEXTAREA")&&(te=te.slice(1)),x.textContent!==te&&(Nu(x,0)||ja(),x.textContent=E.children)}if(H){if(P||!M||re&48){const te=x.tagName.includes("-");for(const xe in H)(P&&(xe.endsWith("value")||xe==="indeterminate")||wa(xe)&&!Ai(xe)||xe[0]==="."||te)&&r(x,xe,null,H[xe],void 0,V)}else if(H.onClick)r(x,"onClick",null,H.onClick,void 0,V);else if(re&4&&Ci(H.style))for(const te in H.style)H.style[te]}let R;(R=H&&H.onVnodeBeforeMount)&&br(R,V,E),ne&&Es(E,null,V,"beforeMount"),((R=H&&H.onVnodeMounted)||ne||z)&&_b(()=>{R&&br(R,V,E),z&&J.enter(x),ne&&Es(E,null,V,"mounted")},B)}return x.nextSibling},y=(x,E,V,B,$,M,T)=>{T=T||!!E.dynamicChildren;const H=E.children,re=H.length;for(let Q=0;Q{const{slotScopeIds:T}=E;T&&($=$?$.concat(T):T);const H=o(x),re=y(a(x),E,H,V,B,$,M);return re&&Qa(re)&&re.data==="]"?a(E.anchor=re):(ja(),d(E.anchor=h("]"),H,re),re)},_=(x,E,V,B,$,M)=>{if(Nu(x.parentElement,1)||ja(),E.el=null,M){const re=C(x);for(;;){const Q=a(x);if(Q&&Q!==re)u(Q);else break}}const T=a(x),H=o(x);return u(x),n(null,E,H,T,V,B,Iu(H),$),V&&(V.vnode.el=E.el,Qc(V,E.el)),T},C=(x,E="[",V="]")=>{let B=0;for(;x;)if(x=a(x),x&&Qa(x)&&(x.data===E&&B++,x.data===V)){if(B===0)return a(x);B--}return x},U=(x,E,V)=>{const B=E.parentNode;B&&B.replaceChild(x,E);let $=V;for(;$;)$.vnode.el===E&&($.vnode.el=$.subTree.el=x),$=$.parent},F=x=>x.nodeType===1&&x.tagName==="TEMPLATE";return[f,p]}const oy="data-allow-mismatch",aR={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Nu(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(oy);)e=e.parentElement;const n=e&&e.getAttribute(oy);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(aR[t])}}const lR=$c().requestIdleCallback||(e=>setTimeout(e,1)),oR=$c().cancelIdleCallback||(e=>clearTimeout(e)),uR=(e=1e4)=>t=>{const n=lR(t,{timeout:e});return()=>oR(n)};function cR(e){const{top:t,left:n,bottom:r,right:s}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:o}=window;return(t>0&&t0&&r0&&n0&&s(t,n)=>{const r=new IntersectionObserver(s=>{for(const a of s)if(a.isIntersecting){r.disconnect(),t();break}},e);return n(s=>{if(s instanceof Element){if(cR(s))return t(),r.disconnect(),!1;r.observe(s)}}),()=>r.disconnect()},fR=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},hR=(e=[])=>(t,n)=>{ct(e)&&(e=[e]);let r=!1;const s=o=>{r||(r=!0,a(),t(),o.target.dispatchEvent(new o.constructor(o.type,o)))},a=()=>{n(o=>{for(const u of e)o.removeEventListener(u,s)})};return n(o=>{for(const u of e)o.addEventListener(u,s,{once:!0})}),a};function pR(e,t){if(Qa(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Qa(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Ei=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function mR(e){st(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:a,timeout:o,suspensible:u=!0,onError:d}=e;let h=null,f,p=0;const m=()=>(p++,h=null,y()),y=()=>{let w;return h||(w=h=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),d)return new Promise((C,U)=>{d(_,()=>C(m()),()=>U(_),p+1)});throw _}).then(_=>w!==h&&h?h:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),f=_,_)))};return fn({name:"AsyncComponentWrapper",__asyncLoader:y,__asyncHydrate(w,_,C){const U=a?()=>{const F=a(C,x=>pR(w,x));F&&(_.bum||(_.bum=[])).push(F)}:C;f?U():y().then(()=>!_.isUnmounted&&U())},get __asyncResolved(){return f},setup(){const w=Pn;if(cp(w),f)return()=>Vf(f,w);const _=x=>{h=null,Sa(x,w,13,!r)};if(u&&w.suspense||ul)return y().then(x=>()=>Vf(x,w)).catch(x=>(_(x),()=>r?he(r,{error:x}):null));const C=fe(!1),U=fe(),F=fe(!!s);return s&&setTimeout(()=>{F.value=!1},s),o!=null&&setTimeout(()=>{if(!C.value&&!U.value){const x=new Error(`Async component timed out after ${o}ms.`);_(x),U.value=x}},o),y().then(()=>{C.value=!0,w.parent&&Do(w.parent.vnode)&&w.parent.update()}).catch(x=>{_(x),U.value=x}),()=>{if(C.value&&f)return Vf(f,w);if(U.value&&r)return he(r,{error:U.value});if(n&&!F.value)return he(n)}}})}function Vf(e,t){const{ref:n,props:r,children:s,ce:a}=t.vnode,o=he(e,r,s);return o.ref=n,o.ce=a,delete t.vnode.ce,o}const Do=e=>e.type.__isKeepAlive,gR={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=ss(),r=n.ctx;if(!r.renderer)return()=>{const F=t.default&&t.default();return F&&F.length===1?F[0]:F};const s=new Map,a=new Set;let o=null;const u=n.suspense,{renderer:{p:d,m:h,um:f,o:{createElement:p}}}=r,m=p("div");r.activate=(F,x,E,V,B)=>{const $=F.component;h(F,x,E,0,u),d($.vnode,F,x,E,$,u,V,F.slotScopeIds,B),Mn(()=>{$.isDeactivated=!1,$.a&&sl($.a);const M=F.props&&F.props.onVnodeMounted;M&&br(M,$.parent,F)},u)},r.deactivate=F=>{const x=F.component;cc(x.m),cc(x.a),h(F,m,null,1,u),Mn(()=>{x.da&&sl(x.da);const E=F.props&&F.props.onVnodeUnmounted;E&&br(E,x.parent,F),x.isDeactivated=!0},u)};function y(F){Ff(F),f(F,n,u,!0)}function w(F){s.forEach((x,E)=>{const V=Mh(x.type);V&&!F(V)&&_(E)})}function _(F){const x=s.get(F);x&&(!o||!ds(x,o))?y(x):o&&Ff(o),s.delete(F),a.delete(F)}Wt(()=>[e.include,e.exclude],([F,x])=>{F&&w(E=>Xl(F,E)),x&&w(E=>!Xl(x,E))},{flush:"post",deep:!0});let C=null;const U=()=>{C!=null&&(dc(n.subTree.type)?Mn(()=>{s.set(C,Vu(n.subTree))},n.subTree.suspense):s.set(C,Vu(n.subTree)))};return Ft(U),Jc(U),Zc(()=>{s.forEach(F=>{const{subTree:x,suspense:E}=n,V=Vu(x);if(F.type===V.type&&F.key===V.key){Ff(V);const B=V.component.da;B&&Mn(B,E);return}y(F)})}),()=>{if(C=null,!t.default)return o=null;const F=t.default(),x=F[0];if(F.length>1)return o=null,F;if(!ni(x)||!(x.shapeFlag&4)&&!(x.shapeFlag&128))return o=null,x;let E=Vu(x);if(E.type===An)return o=null,E;const V=E.type,B=Mh(Ei(E)?E.type.__asyncResolved||{}:V),{include:$,exclude:M,max:T}=e;if($&&(!B||!Xl($,B))||M&&B&&Xl(M,B))return E.shapeFlag&=-257,o=E,x;const H=E.key==null?V:E.key,re=s.get(H);return E.el&&(E=Ps(E),x.shapeFlag&128&&(x.ssContent=E)),C=H,re?(E.el=re.el,E.component=re.component,E.transition&&ti(E,E.transition),E.shapeFlag|=512,a.delete(H),a.add(H)):(a.add(H),T&&a.size>parseInt(T,10)&&_(a.values().next().value)),E.shapeFlag|=256,o=E,dc(x.type)?x:E}}},vR=gR;function Xl(e,t){return qe(e)?e.some(n=>Xl(n,t)):ct(e)?e.split(",").includes(t):FO(e)?(e.lastIndex=0,e.test(t)):!1}function V_(e,t){$_(e,"a",t)}function F_(e,t){$_(e,"da",t)}function $_(e,t,n=Pn){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Kc(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Do(s.parent.vnode)&&yR(r,t,n,s),s=s.parent}}function yR(e,t,n,r){const s=Kc(t,e,r,!0);ii(()=>{Zh(r[t],s)},n)}function Ff(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Vu(e){return e.shapeFlag&128?e.ssContent:e}function Kc(e,t,n=Pn,r=!1){if(n){const s=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...o)=>{Fi();const u=_a(n),d=rs(t,n,e,o);return u(),$i(),d});return r?s.unshift(a):s.push(a),a}}const si=e=>(t,n=Pn)=>{(!ul||e==="sp")&&Kc(e,(...r)=>t(...r),n)},B_=si("bm"),Ft=si("m"),Gc=si("bu"),Jc=si("u"),Zc=si("bum"),ii=si("um"),H_=si("sp"),U_=si("rtg"),j_=si("rtc");function W_(e,t=Pn){Kc("ec",e,t)}const dp="components",_R="directives";function at(e,t){return fp(dp,e,!0,t)||e}const q_=Symbol.for("v-ndc");function Al(e){return ct(e)?fp(dp,e,!1)||e:e||q_}function Y_(e){return fp(_R,e)}function fp(e,t,n=!0,r=!1){const s=In||Pn;if(s){const a=s.type;if(e===dp){const u=Mh(a,!1);if(u&&(u===t||u===Jt(t)||u===ka(Jt(t))))return a}const o=uy(s[e]||a[e],t)||uy(s.appContext[e],t);return!o&&r?a:o}}function uy(e,t){return e&&(e[t]||e[Jt(t)]||e[ka(Jt(t))])}function Ze(e,t,n,r){let s;const a=n&&n[r],o=qe(e);if(o||ct(e)){const u=o&&Ci(e);let d=!1;u&&(d=!Ur(e),e=Uc(e)),s=new Array(e.length);for(let h=0,f=e.length;ht(u,d,void 0,a&&a[d]));else{const u=Object.keys(e);s=new Array(u.length);for(let d=0,h=u.length;d{const a=r.fn(...s);return a&&(a.key=r.key),a}:r.fn)}return e}function Le(e,t,n={},r,s){if(In.ce||In.parent&&Ei(In.parent)&&In.parent.ce)return t!=="default"&&(n.name=t),k(),it(Ie,null,[he("slot",n,r&&r())],64);let a=e[t];a&&a._c&&(a._d=!1),k();const o=a&&hp(a(n)),u=n.key||o&&o.key,d=it(Ie,{key:(u&&!Cr(u)?u:`_${t}`)+(!o&&r?"_fb":"")},o||(r?r():[]),o&&e._===1?64:-2);return!s&&d.scopeId&&(d.slotScopeIds=[d.scopeId+"-s"]),a&&a._c&&(a._d=!0),d}function hp(e){return e.some(t=>ni(t)?!(t.type===An||t.type===Ie&&!hp(t.children)):!0)?e:null}function bR(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:rl(r)]=e[r];return n}const _h=e=>e?Sb(e)?Lo(e):_h(e.parent):null,ro=Tt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>_h(e.parent),$root:e=>_h(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>pp(e),$forceUpdate:e=>e.f||(e.f=()=>{lp(e.update)}),$nextTick:e=>e.n||(e.n=Hn.bind(e.proxy)),$watch:e=>JR.bind(e)}),$f=(e,t)=>e!==kt&&!e.__isScriptSetup&&Dt(e,t),bh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:a,accessCache:o,type:u,appContext:d}=e;let h;if(t[0]!=="$"){const y=o[t];if(y!==void 0)switch(y){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return a[t]}else{if($f(r,t))return o[t]=1,r[t];if(s!==kt&&Dt(s,t))return o[t]=2,s[t];if((h=e.propsOptions[0])&&Dt(h,t))return o[t]=3,a[t];if(n!==kt&&Dt(n,t))return o[t]=4,n[t];wh&&(o[t]=0)}}const f=ro[t];let p,m;if(f)return t==="$attrs"&&Qn(e.attrs,"get",""),f(e);if((p=u.__cssModules)&&(p=p[t]))return p;if(n!==kt&&Dt(n,t))return o[t]=4,n[t];if(m=d.config.globalProperties,Dt(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:a}=e;return $f(s,t)?(s[t]=n,!0):r!==kt&&Dt(r,t)?(r[t]=n,!0):Dt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:a}},o){let u;return!!n[o]||e!==kt&&Dt(e,o)||$f(t,o)||(u=a[0])&&Dt(u,o)||Dt(r,o)||Dt(ro,o)||Dt(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Dt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},wR=Tt({},bh,{get(e,t){if(t!==Symbol.unscopables)return bh.get(e,t,e)},has(e,t){return t[0]!=="_"&&!qO(t)}});function xR(){return null}function kR(){return null}function SR(e){}function TR(e){}function AR(){return null}function CR(){}function ER(e,t){return null}function Bi(){return z_().slots}function OR(){return z_().attrs}function z_(){const e=ss();return e.setupContext||(e.setupContext=Eb(e))}function _o(e){return qe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function MR(e,t){const n=_o(e);for(const r in t){if(r.startsWith("__skip"))continue;let s=n[r];s?qe(s)||st(s)?s=n[r]={type:s,default:t[r]}:s.default=t[r]:s===null&&(s=n[r]={default:t[r]}),s&&t[`__skip_${r}`]&&(s.skipFactory=!0)}return n}function RR(e,t){return!e||!t?e||t:qe(e)&&qe(t)?e.concat(t):Tt({},_o(e),_o(t))}function DR(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function PR(e){const t=ss();let n=e();return Ch(),Xh(n)&&(n=n.catch(r=>{throw _a(t),r})),[n,()=>_a(t)]}let wh=!0;function LR(e){const t=pp(e),n=e.proxy,r=e.ctx;wh=!1,t.beforeCreate&&cy(t.beforeCreate,e,"bc");const{data:s,computed:a,methods:o,watch:u,provide:d,inject:h,created:f,beforeMount:p,mounted:m,beforeUpdate:y,updated:w,activated:_,deactivated:C,beforeDestroy:U,beforeUnmount:F,destroyed:x,unmounted:E,render:V,renderTracked:B,renderTriggered:$,errorCaptured:M,serverPrefetch:T,expose:H,inheritAttrs:re,components:Q,directives:ne,filters:J}=t;if(h&&IR(h,r,null),o)for(const R in o){const te=o[R];st(te)&&(r[R]=te.bind(n))}if(s){const R=s.call(n,n);Ht(R)&&(e.data=Hr(R))}if(wh=!0,a)for(const R in a){const te=a[R],xe=st(te)?te.bind(n,n):st(te.get)?te.get.bind(n,n):Yn,De=!st(te)&&st(te.set)?te.set.bind(n):Yn,Be=me({get:xe,set:De});Object.defineProperty(r,R,{enumerable:!0,configurable:!0,get:()=>Be.value,set:K=>Be.value=K})}if(u)for(const R in u)K_(u[R],r,n,R);if(d){const R=st(d)?d.call(n):d;Reflect.ownKeys(R).forEach(te=>{J_(te,R[te])})}f&&cy(f,e,"c");function z(R,te){qe(te)?te.forEach(xe=>R(xe.bind(n))):te&&R(te.bind(n))}if(z(B_,p),z(Ft,m),z(Gc,y),z(Jc,w),z(V_,_),z(F_,C),z(W_,M),z(j_,B),z(U_,$),z(Zc,F),z(ii,E),z(H_,T),qe(H))if(H.length){const R=e.exposed||(e.exposed={});H.forEach(te=>{Object.defineProperty(R,te,{get:()=>n[te],set:xe=>n[te]=xe})})}else e.exposed||(e.exposed={});V&&e.render===Yn&&(e.render=V),re!=null&&(e.inheritAttrs=re),Q&&(e.components=Q),ne&&(e.directives=ne),T&&cp(e)}function IR(e,t,n=Yn){qe(e)&&(e=xh(e));for(const r in e){const s=e[r];let a;Ht(s)?"default"in s?a=so(s.from||r,s.default,!0):a=so(s.from||r):a=so(s),Tn(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):t[r]=a}}function cy(e,t,n){rs(qe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function K_(e,t,n,r){let s=r.includes(".")?mb(n,r):()=>n[r];if(ct(e)){const a=t[e];st(a)&&Wt(s,a)}else if(st(e))Wt(s,e.bind(n));else if(Ht(e))if(qe(e))e.forEach(a=>K_(a,t,n,r));else{const a=st(e.handler)?e.handler.bind(n):t[e.handler];st(a)&&Wt(s,a,e)}}function pp(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,u=a.get(t);let d;return u?d=u:!s.length&&!n&&!r?d=t:(d={},s.length&&s.forEach(h=>uc(d,h,o,!0)),uc(d,t,o)),Ht(t)&&a.set(t,d),d}function uc(e,t,n,r=!1){const{mixins:s,extends:a}=t;a&&uc(e,a,n,!0),s&&s.forEach(o=>uc(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const u=NR[o]||n&&n[o];e[o]=u?u(e[o],t[o]):t[o]}return e}const NR={data:dy,props:fy,emits:fy,methods:Ql,computed:Ql,beforeCreate:lr,created:lr,beforeMount:lr,mounted:lr,beforeUpdate:lr,updated:lr,beforeDestroy:lr,beforeUnmount:lr,destroyed:lr,unmounted:lr,activated:lr,deactivated:lr,errorCaptured:lr,serverPrefetch:lr,components:Ql,directives:Ql,watch:FR,provide:dy,inject:VR};function dy(e,t){return t?e?function(){return Tt(st(e)?e.call(this,this):e,st(t)?t.call(this,this):t)}:t:e}function VR(e,t){return Ql(xh(e),xh(t))}function xh(e){if(qe(e)){const t={};for(let n=0;n1)return n&&st(t)?t.call(r&&r.proxy):t}}function HR(){return!!(Pn||In||da)}const Z_={},X_=()=>Object.create(Z_),Q_=e=>Object.getPrototypeOf(e)===Z_;function UR(e,t,n,r=!1){const s={},a=X_();e.propsDefaults=Object.create(null),eb(e,t,s,a);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:g_(s):e.type.props?e.props=s:e.props=a,e.attrs=a}function jR(e,t,n,r){const{props:s,attrs:a,vnode:{patchFlag:o}}=e,u=Ot(s),[d]=e.propsOptions;let h=!1;if((r||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let p=0;p{d=!0;const[m,y]=tb(p,t,!0);Tt(o,m),y&&u.push(...y)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!d)return Ht(e)&&r.set(e,tl),tl;if(qe(a))for(let f=0;fe[0]==="_"||e==="$stable",mp=e=>qe(e)?e.map(wr):[wr(e)],qR=(e,t,n)=>{if(t._n)return t;const r=Te((...s)=>mp(t(...s)),n);return r._c=!1,r},rb=(e,t,n)=>{const r=e._ctx;for(const s in e){if(nb(s))continue;const a=e[s];if(st(a))t[s]=qR(s,a,r);else if(a!=null){const o=mp(a);t[s]=()=>o}}},sb=(e,t)=>{const n=mp(t);e.slots.default=()=>n},ib=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},YR=(e,t,n)=>{const r=e.slots=X_();if(e.vnode.shapeFlag&32){const s=t._;s?(ib(r,t,n),n&&G0(r,"_",s,!0)):rb(t,r)}else t&&sb(e,t)},zR=(e,t,n)=>{const{vnode:r,slots:s}=e;let a=!0,o=kt;if(r.shapeFlag&32){const u=t._;u?n&&u===1?a=!1:ib(s,t,n):(a=!t.$stable,rb(t,s)),o=t}else t&&(sb(e,t),o={default:1});if(a)for(const u in s)!nb(u)&&o[u]==null&&delete s[u]},Mn=_b;function ab(e){return ob(e)}function lb(e){return ob(e,iR)}function ob(e,t){const n=$c();n.__VUE__=!0;const{insert:r,remove:s,patchProp:a,createElement:o,createText:u,createComment:d,setText:h,setElementText:f,parentNode:p,nextSibling:m,setScopeId:y=Yn,insertStaticContent:w}=e,_=(S,N,G,ee=null,pe=null,j=null,de=void 0,ge=null,ke=!!N.dynamicChildren)=>{if(S===N)return;S&&!ds(S,N)&&(ee=q(S),K(S,pe,j,!0),S=null),N.patchFlag===-2&&(ke=!1,N.dynamicChildren=null);const{type:Ae,ref:Ee,shapeFlag:$e}=N;switch(Ae){case Oi:C(S,N,G,ee);break;case An:U(S,N,G,ee);break;case fa:S==null&&F(N,G,ee,de);break;case Ie:Q(S,N,G,ee,pe,j,de,ge,ke);break;default:$e&1?V(S,N,G,ee,pe,j,de,ge,ke):$e&6?ne(S,N,G,ee,pe,j,de,ge,ke):($e&64||$e&128)&&Ae.process(S,N,G,ee,pe,j,de,ge,ke,_e)}Ee!=null&&pe&&yo(Ee,S&&S.ref,j,N||S,!N)},C=(S,N,G,ee)=>{if(S==null)r(N.el=u(N.children),G,ee);else{const pe=N.el=S.el;N.children!==S.children&&h(pe,N.children)}},U=(S,N,G,ee)=>{S==null?r(N.el=d(N.children||""),G,ee):N.el=S.el},F=(S,N,G,ee)=>{[S.el,S.anchor]=w(S.children,N,G,ee,S.el,S.anchor)},x=({el:S,anchor:N},G,ee)=>{let pe;for(;S&&S!==N;)pe=m(S),r(S,G,ee),S=pe;r(N,G,ee)},E=({el:S,anchor:N})=>{let G;for(;S&&S!==N;)G=m(S),s(S),S=G;s(N)},V=(S,N,G,ee,pe,j,de,ge,ke)=>{N.type==="svg"?de="svg":N.type==="math"&&(de="mathml"),S==null?B(N,G,ee,pe,j,de,ge,ke):T(S,N,pe,j,de,ge,ke)},B=(S,N,G,ee,pe,j,de,ge)=>{let ke,Ae;const{props:Ee,shapeFlag:$e,transition:He,dirs:Qe}=S;if(ke=S.el=o(S.type,j,Ee&&Ee.is,Ee),$e&8?f(ke,S.children):$e&16&&M(S.children,ke,null,ee,pe,Bf(S,j),de,ge),Qe&&Es(S,null,ee,"created"),$(ke,S,S.scopeId,de,ee),Ee){for(const tt in Ee)tt!=="value"&&!Ai(tt)&&a(ke,tt,null,Ee[tt],j,ee);"value"in Ee&&a(ke,"value",null,Ee.value,j),(Ae=Ee.onVnodeBeforeMount)&&br(Ae,ee,S)}Qe&&Es(S,null,ee,"beforeMount");const Ue=ub(pe,He);Ue&&He.beforeEnter(ke),r(ke,N,G),((Ae=Ee&&Ee.onVnodeMounted)||Ue||Qe)&&Mn(()=>{Ae&&br(Ae,ee,S),Ue&&He.enter(ke),Qe&&Es(S,null,ee,"mounted")},pe)},$=(S,N,G,ee,pe)=>{if(G&&y(S,G),ee)for(let j=0;j{for(let Ae=ke;Ae{const ge=N.el=S.el;let{patchFlag:ke,dynamicChildren:Ae,dirs:Ee}=N;ke|=S.patchFlag&16;const $e=S.props||kt,He=N.props||kt;let Qe;if(G&&ea(G,!1),(Qe=He.onVnodeBeforeUpdate)&&br(Qe,G,N,S),Ee&&Es(N,S,G,"beforeUpdate"),G&&ea(G,!0),($e.innerHTML&&He.innerHTML==null||$e.textContent&&He.textContent==null)&&f(ge,""),Ae?H(S.dynamicChildren,Ae,ge,G,ee,Bf(N,pe),j):de||te(S,N,ge,null,G,ee,Bf(N,pe),j,!1),ke>0){if(ke&16)re(ge,$e,He,G,pe);else if(ke&2&&$e.class!==He.class&&a(ge,"class",null,He.class,pe),ke&4&&a(ge,"style",$e.style,He.style,pe),ke&8){const Ue=N.dynamicProps;for(let tt=0;tt{Qe&&br(Qe,G,N,S),Ee&&Es(N,S,G,"updated")},ee)},H=(S,N,G,ee,pe,j,de)=>{for(let ge=0;ge{if(N!==G){if(N!==kt)for(const j in N)!Ai(j)&&!(j in G)&&a(S,j,N[j],null,pe,ee);for(const j in G){if(Ai(j))continue;const de=G[j],ge=N[j];de!==ge&&j!=="value"&&a(S,j,ge,de,pe,ee)}"value"in G&&a(S,"value",N.value,G.value,pe)}},Q=(S,N,G,ee,pe,j,de,ge,ke)=>{const Ae=N.el=S?S.el:u(""),Ee=N.anchor=S?S.anchor:u("");let{patchFlag:$e,dynamicChildren:He,slotScopeIds:Qe}=N;Qe&&(ge=ge?ge.concat(Qe):Qe),S==null?(r(Ae,G,ee),r(Ee,G,ee),M(N.children||[],G,Ee,pe,j,de,ge,ke)):$e>0&&$e&64&&He&&S.dynamicChildren?(H(S.dynamicChildren,He,G,pe,j,de,ge),(N.key!=null||pe&&N===pe.subTree)&&gp(S,N,!0)):te(S,N,G,Ee,pe,j,de,ge,ke)},ne=(S,N,G,ee,pe,j,de,ge,ke)=>{N.slotScopeIds=ge,S==null?N.shapeFlag&512?pe.ctx.activate(N,G,ee,de,ke):J(N,G,ee,pe,j,de,ke):P(S,N,ke)},J=(S,N,G,ee,pe,j,de)=>{const ge=S.component=kb(S,ee,pe);if(Do(S)&&(ge.ctx.renderer=_e),Tb(ge,!1,de),ge.asyncDep){if(pe&&pe.registerDep(ge,z,de),!S.el){const ke=ge.subTree=he(An);U(null,ke,N,G)}}else z(ge,S,N,G,pe,j,de)},P=(S,N,G)=>{const ee=N.component=S.component;if(n3(S,N,G))if(ee.asyncDep&&!ee.asyncResolved){R(ee,N,G);return}else ee.next=N,ee.update();else N.el=S.el,ee.vnode=N},z=(S,N,G,ee,pe,j,de)=>{const ge=()=>{if(S.isMounted){let{next:$e,bu:He,u:Qe,parent:Ue,vnode:tt}=S;{const hn=cb(S);if(hn){$e&&($e.el=tt.el,R(S,$e,de)),hn.asyncDep.then(()=>{S.isUnmounted||ge()});return}}let dt=$e,an;ea(S,!1),$e?($e.el=tt.el,R(S,$e,de)):$e=tt,He&&sl(He),(an=$e.props&&$e.props.onVnodeBeforeUpdate)&&br(an,Ue,$e,tt),ea(S,!0);const Zt=Ku(S),Cn=S.subTree;S.subTree=Zt,_(Cn,Zt,p(Cn.el),q(Cn),S,pe,j),$e.el=Zt.el,dt===null&&Qc(S,Zt.el),Qe&&Mn(Qe,pe),(an=$e.props&&$e.props.onVnodeUpdated)&&Mn(()=>br(an,Ue,$e,tt),pe)}else{let $e;const{el:He,props:Qe}=N,{bm:Ue,m:tt,parent:dt,root:an,type:Zt}=S,Cn=Ei(N);if(ea(S,!1),Ue&&sl(Ue),!Cn&&($e=Qe&&Qe.onVnodeBeforeMount)&&br($e,dt,N),ea(S,!0),He&&W){const hn=()=>{S.subTree=Ku(S),W(He,S.subTree,S,pe,null)};Cn&&Zt.__asyncHydrate?Zt.__asyncHydrate(He,S,hn):hn()}else{an.ce&&an.ce._injectChildStyle(Zt);const hn=S.subTree=Ku(S);_(null,hn,G,ee,S,pe,j),N.el=hn.el}if(tt&&Mn(tt,pe),!Cn&&($e=Qe&&Qe.onVnodeMounted)){const hn=N;Mn(()=>br($e,dt,hn),pe)}(N.shapeFlag&256||dt&&Ei(dt.vnode)&&dt.vnode.shapeFlag&256)&&S.a&&Mn(S.a,pe),S.isMounted=!0,N=G=ee=null}};S.scope.on();const ke=S.effect=new fo(ge);S.scope.off();const Ae=S.update=ke.run.bind(ke),Ee=S.job=ke.runIfDirty.bind(ke);Ee.i=S,Ee.id=S.uid,ke.scheduler=()=>lp(Ee),ea(S,!0),Ae()},R=(S,N,G)=>{N.component=S;const ee=S.vnode.props;S.vnode=N,S.next=null,jR(S,N.props,ee,G),zR(S,N.children,G),Fi(),ny(S),$i()},te=(S,N,G,ee,pe,j,de,ge,ke=!1)=>{const Ae=S&&S.children,Ee=S?S.shapeFlag:0,$e=N.children,{patchFlag:He,shapeFlag:Qe}=N;if(He>0){if(He&128){De(Ae,$e,G,ee,pe,j,de,ge,ke);return}else if(He&256){xe(Ae,$e,G,ee,pe,j,de,ge,ke);return}}Qe&8?(Ee&16&&ye(Ae,pe,j),$e!==Ae&&f(G,$e)):Ee&16?Qe&16?De(Ae,$e,G,ee,pe,j,de,ge,ke):ye(Ae,pe,j,!0):(Ee&8&&f(G,""),Qe&16&&M($e,G,ee,pe,j,de,ge,ke))},xe=(S,N,G,ee,pe,j,de,ge,ke)=>{S=S||tl,N=N||tl;const Ae=S.length,Ee=N.length,$e=Math.min(Ae,Ee);let He;for(He=0;He<$e;He++){const Qe=N[He]=ke?ki(N[He]):wr(N[He]);_(S[He],Qe,G,null,pe,j,de,ge,ke)}Ae>Ee?ye(S,pe,j,!0,!1,$e):M(N,G,ee,pe,j,de,ge,ke,$e)},De=(S,N,G,ee,pe,j,de,ge,ke)=>{let Ae=0;const Ee=N.length;let $e=S.length-1,He=Ee-1;for(;Ae<=$e&&Ae<=He;){const Qe=S[Ae],Ue=N[Ae]=ke?ki(N[Ae]):wr(N[Ae]);if(ds(Qe,Ue))_(Qe,Ue,G,null,pe,j,de,ge,ke);else break;Ae++}for(;Ae<=$e&&Ae<=He;){const Qe=S[$e],Ue=N[He]=ke?ki(N[He]):wr(N[He]);if(ds(Qe,Ue))_(Qe,Ue,G,null,pe,j,de,ge,ke);else break;$e--,He--}if(Ae>$e){if(Ae<=He){const Qe=He+1,Ue=QeHe)for(;Ae<=$e;)K(S[Ae],pe,j,!0),Ae++;else{const Qe=Ae,Ue=Ae,tt=new Map;for(Ae=Ue;Ae<=He;Ae++){const pn=N[Ae]=ke?ki(N[Ae]):wr(N[Ae]);pn.key!=null&&tt.set(pn.key,Ae)}let dt,an=0;const Zt=He-Ue+1;let Cn=!1,hn=0;const Er=new Array(Zt);for(Ae=0;Ae=Zt){K(pn,pe,j,!0);continue}let ue;if(pn.key!=null)ue=tt.get(pn.key);else for(dt=Ue;dt<=He;dt++)if(Er[dt-Ue]===0&&ds(pn,N[dt])){ue=dt;break}ue===void 0?K(pn,pe,j,!0):(Er[ue-Ue]=Ae+1,ue>=hn?hn=ue:Cn=!0,_(pn,N[ue],G,null,pe,j,de,ge,ke),an++)}const ws=Cn?KR(Er):tl;for(dt=ws.length-1,Ae=Zt-1;Ae>=0;Ae--){const pn=Ue+Ae,ue=N[pn],Ne=pn+1{const{el:j,type:de,transition:ge,children:ke,shapeFlag:Ae}=S;if(Ae&6){Be(S.component.subTree,N,G,ee);return}if(Ae&128){S.suspense.move(N,G,ee);return}if(Ae&64){de.move(S,N,G,_e);return}if(de===Ie){r(j,N,G);for(let $e=0;$ege.enter(j),pe);else{const{leave:$e,delayLeave:He,afterLeave:Qe}=ge,Ue=()=>r(j,N,G),tt=()=>{$e(j,()=>{Ue(),Qe&&Qe()})};He?He(j,Ue,tt):tt()}else r(j,N,G)},K=(S,N,G,ee=!1,pe=!1)=>{const{type:j,props:de,ref:ge,children:ke,dynamicChildren:Ae,shapeFlag:Ee,patchFlag:$e,dirs:He,cacheIndex:Qe}=S;if($e===-2&&(pe=!1),ge!=null&&yo(ge,null,G,S,!0),Qe!=null&&(N.renderCache[Qe]=void 0),Ee&256){N.ctx.deactivate(S);return}const Ue=Ee&1&&He,tt=!Ei(S);let dt;if(tt&&(dt=de&&de.onVnodeBeforeUnmount)&&br(dt,N,S),Ee&6)ae(S.component,G,ee);else{if(Ee&128){S.suspense.unmount(G,ee);return}Ue&&Es(S,null,N,"beforeUnmount"),Ee&64?S.type.remove(S,N,G,_e,ee):Ae&&!Ae.hasOnce&&(j!==Ie||$e>0&&$e&64)?ye(Ae,N,G,!1,!0):(j===Ie&&$e&384||!pe&&Ee&16)&&ye(ke,N,G),ee&&oe(S)}(tt&&(dt=de&&de.onVnodeUnmounted)||Ue)&&Mn(()=>{dt&&br(dt,N,S),Ue&&Es(S,null,N,"unmounted")},G)},oe=S=>{const{type:N,el:G,anchor:ee,transition:pe}=S;if(N===Ie){D(G,ee);return}if(N===fa){E(S);return}const j=()=>{s(G),pe&&!pe.persisted&&pe.afterLeave&&pe.afterLeave()};if(S.shapeFlag&1&&pe&&!pe.persisted){const{leave:de,delayLeave:ge}=pe,ke=()=>de(G,j);ge?ge(S.el,j,ke):ke()}else j()},D=(S,N)=>{let G;for(;S!==N;)G=m(S),s(S),S=G;s(N)},ae=(S,N,G)=>{const{bum:ee,scope:pe,job:j,subTree:de,um:ge,m:ke,a:Ae}=S;cc(ke),cc(Ae),ee&&sl(ee),pe.stop(),j&&(j.flags|=8,K(de,S,N,G)),ge&&Mn(ge,N),Mn(()=>{S.isUnmounted=!0},N),N&&N.pendingBranch&&!N.isUnmounted&&S.asyncDep&&!S.asyncResolved&&S.suspenseId===N.pendingId&&(N.deps--,N.deps===0&&N.resolve())},ye=(S,N,G,ee=!1,pe=!1,j=0)=>{for(let de=j;de{if(S.shapeFlag&6)return q(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const N=m(S.anchor||S.el),G=N&&N[E_];return G?m(G):N};let Pe=!1;const Ke=(S,N,G)=>{S==null?N._vnode&&K(N._vnode,null,null,!0):_(N._vnode||null,S,N,null,null,null,G),N._vnode=S,Pe||(Pe=!0,ny(),oc(),Pe=!1)},_e={p:_,um:K,m:Be,r:oe,mt:J,mc:M,pc:te,pbc:H,n:q,o:e};let Xe,W;return t&&([Xe,W]=t(_e)),{render:Ke,hydrate:Xe,createApp:BR(Ke,Xe)}}function Bf({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ea({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ub(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function gp(e,t,n=!1){const r=e.children,s=t.children;if(qe(r)&&qe(s))for(let a=0;a>1,e[n[u]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function cb(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:cb(t)}function cc(e){if(e)for(let t=0;tso(db);function hb(e,t){return Po(e,null,t)}function GR(e,t){return Po(e,null,{flush:"post"})}function pb(e,t){return Po(e,null,{flush:"sync"})}function Wt(e,t,n){return Po(e,t,n)}function Po(e,t,n=kt){const{immediate:r,deep:s,flush:a,once:o}=n,u=Tt({},n),d=t&&r||!t&&a!=="post";let h;if(ul){if(a==="sync"){const y=fb();h=y.__watcherHandles||(y.__watcherHandles=[])}else if(!d){const y=()=>{};return y.stop=Yn,y.resume=Yn,y.pause=Yn,y}}const f=Pn;u.call=(y,w,_)=>rs(y,f,w,_);let p=!1;a==="post"?u.scheduler=y=>{Mn(y,f&&f.suspense)}:a!=="sync"&&(p=!0,u.scheduler=(y,w)=>{w?y():lp(y)}),u.augmentJob=y=>{t&&(y.flags|=4),p&&(y.flags|=2,f&&(y.id=f.uid,y.i=f))};const m=UM(e,t,u);return ul&&(h?h.push(m):d&&m()),m}function JR(e,t,n){const r=this.proxy,s=ct(e)?e.includes(".")?mb(r,e):()=>r[e]:e.bind(r,r);let a;st(t)?a=t:(a=t.handler,n=t);const o=_a(this),u=Po(s,a.bind(r),n);return o(),u}function mb(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{let f,p=kt,m;return pb(()=>{const y=e[s];dr(f,y)&&(f=y,h())}),{get(){return d(),n.get?n.get(f):f},set(y){const w=n.set?n.set(y):y;if(!dr(w,f)&&!(p!==kt&&dr(y,p)))return;const _=r.vnode.props;_&&(t in _||s in _||a in _)&&(`onUpdate:${t}`in _||`onUpdate:${s}`in _||`onUpdate:${a}`in _)||(f=y,h()),r.emit(`update:${t}`,w),dr(y,w)&&dr(y,p)&&!dr(w,m)&&h(),p=y,m=w}}});return u[Symbol.iterator]=()=>{let d=0;return{next(){return d<2?{value:d++?o||kt:u,done:!1}:{done:!0}}}},u}const gb=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Jt(t)}Modifiers`]||e[`${xr(t)}Modifiers`];function XR(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||kt;let s=n;const a=t.startsWith("update:"),o=a&&gb(r,t.slice(7));o&&(o.trim&&(s=n.map(f=>ct(f)?f.trim():f)),o.number&&(s=n.map(rc)));let u,d=r[u=rl(t)]||r[u=rl(Jt(t))];!d&&a&&(d=r[u=rl(xr(t))]),d&&rs(d,e,6,s);const h=r[u+"Once"];if(h){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,rs(h,e,6,s)}}function vb(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const a=e.emits;let o={},u=!1;if(!st(e)){const d=h=>{const f=vb(h,t,!0);f&&(u=!0,Tt(o,f))};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!a&&!u?(Ht(e)&&r.set(e,null),null):(qe(a)?a.forEach(d=>o[d]=null):Tt(o,a),Ht(e)&&r.set(e,o),o)}function Xc(e,t){return!e||!wa(t)?!1:(t=t.slice(2).replace(/Once$/,""),Dt(e,t[0].toLowerCase()+t.slice(1))||Dt(e,xr(t))||Dt(e,t))}function Ku(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[a],slots:o,attrs:u,emit:d,render:h,renderCache:f,props:p,data:m,setupState:y,ctx:w,inheritAttrs:_}=e,C=vo(e);let U,F;try{if(n.shapeFlag&4){const E=s||r,V=E;U=wr(h.call(V,E,f,p,y,m,w)),F=u}else{const E=t;U=wr(E.length>1?E(p,{attrs:u,slots:o,emit:d}):E(p,null)),F=t.props?u:e3(u)}}catch(E){io.length=0,Sa(E,e,1),U=he(An)}let x=U;if(F&&_!==!1){const E=Object.keys(F),{shapeFlag:V}=x;E.length&&V&7&&(a&&E.some(Jh)&&(F=t3(F,a)),x=Ps(x,F,!1,!0))}return n.dirs&&(x=Ps(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition&&ti(x,n.transition),U=x,vo(C),U}function QR(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||wa(n))&&((t||(t={}))[n]=e[n]);return t},t3=(e,t)=>{const n={};for(const r in e)(!Jh(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function n3(e,t,n){const{props:r,children:s,component:a}=e,{props:o,children:u,patchFlag:d}=t,h=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&d>=0){if(d&1024)return!0;if(d&16)return r?py(r,o,h):!!o;if(d&8){const f=t.dynamicProps;for(let p=0;pe.__isSuspense;let Sh=0;const r3={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,a,o,u,d,h){if(e==null)i3(t,n,r,s,a,o,u,d,h);else{if(a&&a.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}a3(e,t,n,r,s,o,u,d,h)}},hydrate:l3,normalize:o3},s3=r3;function bo(e,t){const n=e.props&&e.props[t];st(n)&&n()}function i3(e,t,n,r,s,a,o,u,d){const{p:h,o:{createElement:f}}=d,p=f("div"),m=e.suspense=yb(e,s,r,t,p,n,a,o,u,d);h(null,m.pendingBranch=e.ssContent,p,null,r,m,a,o),m.deps>0?(bo(e,"onPending"),bo(e,"onFallback"),h(null,e.ssFallback,t,n,r,null,a,o),al(m,e.ssFallback)):m.resolve(!1,!0)}function a3(e,t,n,r,s,a,o,u,{p:d,um:h,o:{createElement:f}}){const p=t.suspense=e.suspense;p.vnode=t,t.el=e.el;const m=t.ssContent,y=t.ssFallback,{activeBranch:w,pendingBranch:_,isInFallback:C,isHydrating:U}=p;if(_)p.pendingBranch=m,ds(m,_)?(d(_,m,p.hiddenContainer,null,s,p,a,o,u),p.deps<=0?p.resolve():C&&(U||(d(w,y,n,r,s,null,a,o,u),al(p,y)))):(p.pendingId=Sh++,U?(p.isHydrating=!1,p.activeBranch=_):h(_,s,p),p.deps=0,p.effects.length=0,p.hiddenContainer=f("div"),C?(d(null,m,p.hiddenContainer,null,s,p,a,o,u),p.deps<=0?p.resolve():(d(w,y,n,r,s,null,a,o,u),al(p,y))):w&&ds(m,w)?(d(w,m,n,r,s,p,a,o,u),p.resolve(!0)):(d(null,m,p.hiddenContainer,null,s,p,a,o,u),p.deps<=0&&p.resolve()));else if(w&&ds(m,w))d(w,m,n,r,s,p,a,o,u),al(p,m);else if(bo(t,"onPending"),p.pendingBranch=m,m.shapeFlag&512?p.pendingId=m.component.suspenseId:p.pendingId=Sh++,d(null,m,p.hiddenContainer,null,s,p,a,o,u),p.deps<=0)p.resolve();else{const{timeout:F,pendingId:x}=p;F>0?setTimeout(()=>{p.pendingId===x&&p.fallback(y)},F):F===0&&p.fallback(y)}}function yb(e,t,n,r,s,a,o,u,d,h,f=!1){const{p,m,um:y,n:w,o:{parentNode:_,remove:C}}=h;let U;const F=u3(e);F&&t&&t.pendingBranch&&(U=t.pendingId,t.deps++);const x=e.props?sc(e.props.timeout):void 0,E=a,V={vnode:e,parent:t,parentComponent:n,namespace:o,container:r,hiddenContainer:s,deps:0,pendingId:Sh++,timeout:typeof x=="number"?x:-1,activeBranch:null,pendingBranch:null,isInFallback:!f,isHydrating:f,isUnmounted:!1,effects:[],resolve(B=!1,$=!1){const{vnode:M,activeBranch:T,pendingBranch:H,pendingId:re,effects:Q,parentComponent:ne,container:J}=V;let P=!1;V.isHydrating?V.isHydrating=!1:B||(P=T&&H.transition&&H.transition.mode==="out-in",P&&(T.transition.afterLeave=()=>{re===V.pendingId&&(m(H,J,a===E?w(T):a,0),mo(Q))}),T&&(_(T.el)===J&&(a=w(T)),y(T,ne,V,!0)),P||m(H,J,a,0)),al(V,H),V.pendingBranch=null,V.isInFallback=!1;let z=V.parent,R=!1;for(;z;){if(z.pendingBranch){z.effects.push(...Q),R=!0;break}z=z.parent}!R&&!P&&mo(Q),V.effects=[],F&&t&&t.pendingBranch&&U===t.pendingId&&(t.deps--,t.deps===0&&!$&&t.resolve()),bo(M,"onResolve")},fallback(B){if(!V.pendingBranch)return;const{vnode:$,activeBranch:M,parentComponent:T,container:H,namespace:re}=V;bo($,"onFallback");const Q=w(M),ne=()=>{V.isInFallback&&(p(null,B,H,Q,T,null,re,u,d),al(V,B))},J=B.transition&&B.transition.mode==="out-in";J&&(M.transition.afterLeave=ne),V.isInFallback=!0,y(M,T,null,!0),J||ne()},move(B,$,M){V.activeBranch&&m(V.activeBranch,B,$,M),V.container=B},next(){return V.activeBranch&&w(V.activeBranch)},registerDep(B,$,M){const T=!!V.pendingBranch;T&&V.deps++;const H=B.vnode.el;B.asyncDep.catch(re=>{Sa(re,B,0)}).then(re=>{if(B.isUnmounted||V.isUnmounted||V.pendingId!==B.suspenseId)return;B.asyncResolved=!0;const{vnode:Q}=B;Eh(B,re,!1),H&&(Q.el=H);const ne=!H&&B.subTree.el;$(B,Q,_(H||B.subTree.el),H?null:w(B.subTree),V,o,M),ne&&C(ne),Qc(B,Q.el),T&&--V.deps===0&&V.resolve()})},unmount(B,$){V.isUnmounted=!0,V.activeBranch&&y(V.activeBranch,n,B,$),V.pendingBranch&&y(V.pendingBranch,n,B,$)}};return V}function l3(e,t,n,r,s,a,o,u,d){const h=t.suspense=yb(t,r,n,e.parentNode,document.createElement("div"),null,s,a,o,u,!0),f=d(e,h.pendingBranch=t.ssContent,n,h,a,o);return h.deps===0&&h.resolve(!1,!0),f}function o3(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=my(r?n.default:n),e.ssFallback=r?my(n.fallback):he(An)}function my(e){let t;if(st(e)){const n=ya&&e._c;n&&(e._d=!1,k()),e=e(),n&&(e._d=!0,t=nr,bb())}return qe(e)&&(e=QR(e)),e=wr(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function _b(e,t){t&&t.pendingBranch?qe(e)?t.effects.push(...e):t.effects.push(e):mo(e)}function al(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,Qc(r,s))}function u3(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Ie=Symbol.for("v-fgt"),Oi=Symbol.for("v-txt"),An=Symbol.for("v-cmt"),fa=Symbol.for("v-stc"),io=[];let nr=null;function k(e=!1){io.push(nr=e?null:[])}function bb(){io.pop(),nr=io[io.length-1]||null}let ya=1;function Th(e,t=!1){ya+=e,e<0&&nr&&t&&(nr.hasOnce=!0)}function wb(e){return e.dynamicChildren=ya>0?nr||tl:null,bb(),ya>0&&nr&&nr.push(e),e}function I(e,t,n,r,s,a){return wb(v(e,t,n,r,s,a,!0))}function it(e,t,n,r,s){return wb(he(e,t,n,r,s,!0))}function ni(e){return e?e.__v_isVNode===!0:!1}function ds(e,t){return e.type===t.type&&e.key===t.key}function c3(e){}const xb=({key:e})=>e??null,Gu=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ct(e)||Tn(e)||st(e)?{i:In,r:e,k:t,f:!!n}:e:null);function v(e,t=null,n=null,r=0,s=null,a=e===Ie?0:1,o=!1,u=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xb(t),ref:t&&Gu(t),scopeId:Yc,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:In};return u?(yp(d,n),a&128&&e.normalize(d)):n&&(d.shapeFlag|=ct(n)?8:16),ya>0&&!o&&nr&&(d.patchFlag>0||a&6)&&d.patchFlag!==32&&nr.push(d),d}const he=d3;function d3(e,t=null,n=null,r=0,s=null,a=!1){if((!e||e===q_)&&(e=An),ni(e)){const u=Ps(e,t,!0);return n&&yp(u,n),ya>0&&!a&&nr&&(u.shapeFlag&6?nr[nr.indexOf(e)]=u:nr.push(u)),u.patchFlag=-2,u}if(v3(e)&&(e=e.__vccOpts),t){t=qn(t);let{class:u,style:d}=t;u&&!ct(u)&&(t.class=Fe(u)),Ht(d)&&(qc(d)&&!qe(d)&&(d=Tt({},d)),t.style=bn(d))}const o=ct(e)?1:dc(e)?128:O_(e)?64:Ht(e)?4:st(e)?2:0;return v(e,t,n,r,s,o,a,!0)}function qn(e){return e?qc(e)||Q_(e)?Tt({},e):e:null}function Ps(e,t,n=!1,r=!1){const{props:s,ref:a,patchFlag:o,children:u,transition:d}=e,h=t?cn(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:h,key:h&&xb(h),ref:t&&t.ref?n&&a?qe(a)?a.concat(Gu(t)):[a,Gu(t)]:Gu(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ie?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:d,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ps(e.ssContent),ssFallback:e.ssFallback&&Ps(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return d&&r&&ti(f,d.clone(f)),f}function ut(e=" ",t=0){return he(Oi,null,e,t)}function vp(e,t){const n=he(fa,null,e);return n.staticCount=t,n}function se(e="",t=!1){return t?(k(),it(An,null,e)):he(An,null,e)}function wr(e){return e==null||typeof e=="boolean"?he(An):qe(e)?he(Ie,null,e.slice()):ni(e)?ki(e):he(Oi,null,String(e))}function ki(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ps(e)}function yp(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(qe(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),yp(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Q_(t)?t._ctx=In:s===3&&In&&(In.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else st(t)?(t={default:t,_ctx:In},n=32):(t=String(t),r&64?(n=16,t=[ut(t)]):n=8);e.children=t,e.shapeFlag|=n}function cn(...e){const t={};for(let n=0;nPn||In;let fc,Ah;{const e=$c(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),a=>{s.length>1?s.forEach(o=>o(a)):s[0](a)}};fc=t("__VUE_INSTANCE_SETTERS__",n=>Pn=n),Ah=t("__VUE_SSR_SETTERS__",n=>ul=n)}const _a=e=>{const t=Pn;return fc(e),e.scope.on(),()=>{e.scope.off(),fc(t)}},Ch=()=>{Pn&&Pn.scope.off(),fc(null)};function Sb(e){return e.vnode.shapeFlag&4}let ul=!1;function Tb(e,t=!1,n=!1){t&&Ah(t);const{props:r,children:s}=e.vnode,a=Sb(e);UR(e,r,a,t),YR(e,s,n);const o=a?p3(e,t):void 0;return t&&Ah(!1),o}function p3(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bh);const{setup:r}=n;if(r){Fi();const s=e.setupContext=r.length>1?Eb(e):null,a=_a(e),o=Tl(r,e,0,[e.props,s]),u=Xh(o);if($i(),a(),(u||e.sp)&&!Ei(e)&&cp(e),u){if(o.then(Ch,Ch),t)return o.then(d=>{Eh(e,d,t)}).catch(d=>{Sa(d,e,0)});e.asyncDep=o}else Eh(e,o,t)}else Cb(e,t)}function Eh(e,t,n){st(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ht(t)&&(e.setupState=ap(t)),Cb(e,n)}let hc,Oh;function Ab(e){hc=e,Oh=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,wR))}}const m3=()=>!hc;function Cb(e,t,n){const r=e.type;if(!e.render){if(!t&&hc&&!r.render){const s=r.template||pp(e).template;if(s){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:u,compilerOptions:d}=r,h=Tt(Tt({isCustomElement:a,delimiters:u},o),d);r.render=hc(s,h)}}e.render=r.render||Yn,Oh&&Oh(e)}{const s=_a(e);Fi();try{LR(e)}finally{$i(),s()}}}const g3={get(e,t){return Qn(e,"get",""),e[t]}};function Eb(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,g3),slots:e.slots,emit:e.emit,expose:t}}function Lo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ap(v_(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ro)return ro[n](e)},has(t,n){return n in t||n in ro}})):e.proxy}function Mh(e,t=!0){return st(e)?e.displayName||e.name:e.name||t&&e.__name}function v3(e){return st(e)&&"__vccOpts"in e}const me=(e,t)=>FM(e,t,ul);function _p(e,t,n){const r=arguments.length;return r===2?Ht(t)&&!qe(t)?ni(t)?he(e,null,[t]):he(e,t):he(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ni(n)&&(n=[n]),he(e,t,n))}function y3(){}function _3(e,t,n,r){const s=n[r];if(s&&Ob(s,e))return s;const a=t();return a.memo=e.slice(),a.cacheIndex=r,n[r]=a}function Ob(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let r=0;r0&&nr&&nr.push(e),!0}const Mb="3.5.13",b3=Yn,w3=zM,x3=Ja,k3=C_,S3={createComponentInstance:kb,setupComponent:Tb,renderComponentRoot:Ku,setCurrentRenderingInstance:vo,isVNode:ni,normalizeVNode:wr,getComponentPublicInstance:Lo,ensureValidVNode:hp,pushWarningContext:jM,popWarningContext:WM},T3=S3,A3=null,C3=null,E3=null;/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Rh;const gy=typeof window<"u"&&window.trustedTypes;if(gy)try{Rh=gy.createPolicy("vue",{createHTML:e=>e})}catch{}const Rb=Rh?e=>Rh.createHTML(e):e=>e,O3="http://www.w3.org/2000/svg",M3="http://www.w3.org/1998/Math/MathML",zs=typeof document<"u"?document:null,vy=zs&&zs.createElement("template"),R3={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?zs.createElementNS(O3,e):t==="mathml"?zs.createElementNS(M3,e):n?zs.createElement(e,{is:n}):zs.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>zs.createTextNode(e),createComment:e=>zs.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>zs.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,a){const o=n?n.previousSibling:t.lastChild;if(s&&(s===a||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===a||!(s=s.nextSibling)););else{vy.innerHTML=Rb(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const u=vy.content;if(r==="svg"||r==="mathml"){const d=u.firstChild;for(;d.firstChild;)u.appendChild(d.firstChild);u.removeChild(d)}t.insertBefore(u,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},mi="transition",Yl="animation",cl=Symbol("_vtc"),Db={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Pb=Tt({},up,Db),D3=e=>(e.displayName="Transition",e.props=Pb,e),vs=D3((e,{slots:t})=>_p(I_,Lb(e),t)),ta=(e,t=[])=>{qe(e)?e.forEach(n=>n(...t)):e&&e(...t)},yy=e=>e?qe(e)?e.some(t=>t.length>1):e.length>1:!1;function Lb(e){const t={};for(const Q in e)Q in Db||(t[Q]=e[Q]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:u=`${n}-enter-to`,appearFromClass:d=a,appearActiveClass:h=o,appearToClass:f=u,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:y=`${n}-leave-to`}=e,w=P3(s),_=w&&w[0],C=w&&w[1],{onBeforeEnter:U,onEnter:F,onEnterCancelled:x,onLeave:E,onLeaveCancelled:V,onBeforeAppear:B=U,onAppear:$=F,onAppearCancelled:M=x}=t,T=(Q,ne,J,P)=>{Q._enterCancelled=P,_i(Q,ne?f:u),_i(Q,ne?h:o),J&&J()},H=(Q,ne)=>{Q._isLeaving=!1,_i(Q,p),_i(Q,y),_i(Q,m),ne&&ne()},re=Q=>(ne,J)=>{const P=Q?$:F,z=()=>T(ne,Q,J);ta(P,[ne,z]),_y(()=>{_i(ne,Q?d:a),As(ne,Q?f:u),yy(P)||by(ne,r,_,z)})};return Tt(t,{onBeforeEnter(Q){ta(U,[Q]),As(Q,a),As(Q,o)},onBeforeAppear(Q){ta(B,[Q]),As(Q,d),As(Q,h)},onEnter:re(!1),onAppear:re(!0),onLeave(Q,ne){Q._isLeaving=!0;const J=()=>H(Q,ne);As(Q,p),Q._enterCancelled?(As(Q,m),Dh()):(Dh(),As(Q,m)),_y(()=>{Q._isLeaving&&(_i(Q,p),As(Q,y),yy(E)||by(Q,r,C,J))}),ta(E,[Q,J])},onEnterCancelled(Q){T(Q,!1,void 0,!0),ta(x,[Q])},onAppearCancelled(Q){T(Q,!0,void 0,!0),ta(M,[Q])},onLeaveCancelled(Q){H(Q),ta(V,[Q])}})}function P3(e){if(e==null)return null;if(Ht(e))return[Hf(e.enter),Hf(e.leave)];{const t=Hf(e);return[t,t]}}function Hf(e){return sc(e)}function As(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cl]||(e[cl]=new Set)).add(t)}function _i(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[cl];n&&(n.delete(t),n.size||(e[cl]=void 0))}function _y(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let L3=0;function by(e,t,n,r){const s=e._endId=++L3,a=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(a,n);const{type:o,timeout:u,propCount:d}=Ib(e,t);if(!o)return r();const h=o+"end";let f=0;const p=()=>{e.removeEventListener(h,m),a()},m=y=>{y.target===e&&++f>=d&&p()};setTimeout(()=>{f(n[w]||"").split(", "),s=r(`${mi}Delay`),a=r(`${mi}Duration`),o=wy(s,a),u=r(`${Yl}Delay`),d=r(`${Yl}Duration`),h=wy(u,d);let f=null,p=0,m=0;t===mi?o>0&&(f=mi,p=o,m=a.length):t===Yl?h>0&&(f=Yl,p=h,m=d.length):(p=Math.max(o,h),f=p>0?o>h?mi:Yl:null,m=f?f===mi?a.length:d.length:0);const y=f===mi&&/\b(transform|all)(,|$)/.test(r(`${mi}Property`).toString());return{type:f,timeout:p,propCount:m,hasTransform:y}}function wy(e,t){for(;e.lengthxy(n)+xy(e[r])))}function xy(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Dh(){return document.body.offsetHeight}function I3(e,t,n){const r=e[cl];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const pc=Symbol("_vod"),Nb=Symbol("_vsh"),Vr={beforeMount(e,{value:t},{transition:n}){e[pc]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):zl(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),zl(e,!0),r.enter(e)):r.leave(e,()=>{zl(e,!1)}):zl(e,t))},beforeUnmount(e,{value:t}){zl(e,t)}};function zl(e,t){e.style.display=t?e[pc]:"none",e[Nb]=!t}function N3(){Vr.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const Vb=Symbol("");function V3(e){const t=ss();if(!t)return;const n=t.ut=(s=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(a=>mc(a,s))},r=()=>{const s=e(t.proxy);t.ce?mc(t.ce,s):Ph(t.subTree,s),n(s)};Gc(()=>{mo(r)}),Ft(()=>{Wt(r,Yn,{flush:"post"});const s=new MutationObserver(r);s.observe(t.subTree.el.parentNode,{childList:!0}),ii(()=>s.disconnect())})}function Ph(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Ph(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)mc(e.el,t);else if(e.type===Ie)e.children.forEach(n=>Ph(n,t));else if(e.type===fa){let{el:n,anchor:r}=e;for(;n&&(mc(n,t),n!==r);)n=n.nextSibling}}function mc(e,t){if(e.nodeType===1){const n=e.style;let r="";for(const s in t)n.setProperty(`--${s}`,t[s]),r+=`--${s}: ${t[s]};`;n[Vb]=r}}const F3=/(^|;)\s*display\s*:/;function $3(e,t,n){const r=e.style,s=ct(n);let a=!1;if(n&&!s){if(t)if(ct(t))for(const o of t.split(";")){const u=o.slice(0,o.indexOf(":")).trim();n[u]==null&&Ju(r,u,"")}else for(const o in t)n[o]==null&&Ju(r,o,"");for(const o in n)o==="display"&&(a=!0),Ju(r,o,n[o])}else if(s){if(t!==n){const o=r[Vb];o&&(n+=";"+o),r.cssText=n,a=F3.test(n)}}else t&&e.removeAttribute("style");pc in e&&(e[pc]=a?r.display:"",e[Nb]&&(r.display="none"))}const ky=/\s*!important$/;function Ju(e,t,n){if(qe(n))n.forEach(r=>Ju(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=B3(e,t);ky.test(n)?e.setProperty(xr(r),n.replace(ky,""),"important"):e[r]=n}}const Sy=["Webkit","Moz","ms"],Uf={};function B3(e,t){const n=Uf[t];if(n)return n;let r=Jt(t);if(r!=="filter"&&r in e)return Uf[t]=r;r=ka(r);for(let s=0;sjf||(W3.then(()=>jf=0),jf=Date.now());function Y3(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;rs(z3(r,n.value),t,5,[r])};return n.value=e,n.attached=q3(),n}function z3(e,t){if(qe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const My=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,K3=(e,t,n,r,s,a)=>{const o=s==="svg";t==="class"?I3(e,r,o):t==="style"?$3(e,n,r):wa(t)?Jh(t)||U3(e,t,n,r,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):G3(e,t,r,o))?(Cy(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ay(e,t,r,o,a,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ct(r))?Cy(e,Jt(t),r,a,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ay(e,t,r,o))};function G3(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&My(t)&&st(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return My(t)&&ct(n)?!1:t in e}const Ry={};/*! #__NO_SIDE_EFFECTS__ */function Fb(e,t,n){const r=fn(e,t);Vc(r)&&Tt(r,t);class s extends ed{constructor(o){super(r,o,n)}}return s.def=r,s}/*! #__NO_SIDE_EFFECTS__ */const J3=(e,t)=>Fb(e,t,zb),Z3=typeof HTMLElement<"u"?HTMLElement:class{};class ed extends Z3{constructor(t,n={},r=yc){super(),this._def=t,this._props=n,this._createApp=r,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&r!==yc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this,this._def.__asyncLoader||this._resolveProps(this._def)}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof ed){this._parent=t;break}this._instance||(this._resolved?(this._setParent(),this._update()):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._instance.provides=t._instance.provides)}disconnectedCallback(){this._connected=!1,Hn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let r=0;r{for(const s of r)this._setAttr(s.attributeName)}),this._ob.observe(this,{attributes:!0});const t=(r,s=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:a,styles:o}=r;let u;if(a&&!qe(a))for(const d in a){const h=a[d];(h===Number||h&&h.type===Number)&&(d in this._props&&(this._props[d]=sc(this._props[d])),(u||(u=Object.create(null)))[Jt(d)]=!0)}this._numberProps=u,s&&this._resolveProps(r),this.shadowRoot&&this._applyStyles(o),this._mount(r)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(r=>t(this._def=r,!0)):t(this._def)}_mount(t){this._app=this._createApp(t),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const r in n)Dt(this,r)||Object.defineProperty(this,r,{get:()=>Z(n[r])})}_resolveProps(t){const{props:n}=t,r=qe(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&r.includes(s)&&this._setProp(s,this[s]);for(const s of r.map(Jt))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(a){this._setProp(s,a,!0,!0)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let r=n?this.getAttribute(t):Ry;const s=Jt(t);n&&this._numberProps&&this._numberProps[s]&&(r=sc(r)),this._setProp(s,r,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,r=!0,s=!1){if(n!==this._props[t]&&(n===Ry?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),r)){const a=this._ob;a&&a.disconnect(),n===!0?this.setAttribute(xr(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(xr(t),n+""):n||this.removeAttribute(xr(t)),a&&a.observe(this,{attributes:!0})}}_update(){vc(this._createVNode(),this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=he(this._def,Tt(t,this._props));return this._instance||(n.ce=r=>{this._instance=r,r.ce=this,r.isCE=!0;const s=(a,o)=>{this.dispatchEvent(new CustomEvent(a,Vc(o[0])?Tt({detail:o},o[0]):{detail:o}))};r.emit=(a,...o)=>{s(a,o),xr(a)!==a&&s(xr(a),o)},this._setParent()}),n}_applyStyles(t,n){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const r=this._nonce;for(let s=t.length-1;s>=0;s--){const a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=t[s],this.shadowRoot.prepend(a)}}_parseSlots(){const t=this._slots={};let n;for(;n=this.firstChild;){const r=n.nodeType===1&&n.getAttribute("slot")||"default";(t[r]||(t[r]=[])).push(n),this.removeChild(n)}}_renderSlots(){const t=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let r=0;r(delete e.props.mode,e),tD=eD({name:"TransitionGroup",props:Tt({},Pb,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ss(),r=op();let s,a;return Jc(()=>{if(!s.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!aD(s[0].el,n.vnode.el,o))return;s.forEach(rD),s.forEach(sD);const u=s.filter(iD);Dh(),u.forEach(d=>{const h=d.el,f=h.style;As(h,o),f.transform=f.webkitTransform=f.transitionDuration="";const p=h[gc]=m=>{m&&m.target!==h||(!m||/transform$/.test(m.propertyName))&&(h.removeEventListener("transitionend",p),h[gc]=null,_i(h,o))};h.addEventListener("transitionend",p)})}),()=>{const o=Ot(e),u=Lb(o);let d=o.tag||Ie;if(s=[],a)for(let h=0;h{u.split(/\s+/).forEach(d=>d&&r.classList.remove(d))}),n.split(/\s+/).forEach(u=>u&&r.classList.add(u)),r.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(r);const{hasTransform:o}=Ib(r);return a.removeChild(r),o}const Ii=e=>{const t=e.props["onUpdate:modelValue"]||!1;return qe(t)?n=>sl(t,n):t};function lD(e){e.target.composing=!0}function Py(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ns=Symbol("_assign"),Ni={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ns]=Ii(s);const a=r||s.props&&s.props.type==="number";Zs(e,t?"change":"input",o=>{if(o.target.composing)return;let u=e.value;n&&(u=u.trim()),a&&(u=rc(u)),e[ns](u)}),n&&Zs(e,"change",()=>{e.value=e.value.trim()}),t||(Zs(e,"compositionstart",lD),Zs(e,"compositionend",Py),Zs(e,"change",Py))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:a}},o){if(e[ns]=Ii(o),e.composing)return;const u=(a||e.type==="number")&&!/^0\d/.test(e.value)?rc(e.value):e.value,d=t??"";u!==d&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===d)||(e.value=d))}},bp={deep:!0,created(e,t,n){e[ns]=Ii(n),Zs(e,"change",()=>{const r=e._modelValue,s=dl(e),a=e.checked,o=e[ns];if(qe(r)){const u=Bc(r,s),d=u!==-1;if(a&&!d)o(r.concat(s));else if(!a&&d){const h=[...r];h.splice(u,1),o(h)}}else if(xa(r)){const u=new Set(r);a?u.add(s):u.delete(s),o(u)}else o(Ub(e,a))})},mounted:Ly,beforeUpdate(e,t,n){e[ns]=Ii(n),Ly(e,t,n)}};function Ly(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(qe(t))s=Bc(t,r.props.value)>-1;else if(xa(t))s=t.has(r.props.value);else{if(t===n)return;s=Pi(t,Ub(e,!0))}e.checked!==s&&(e.checked=s)}const wp={created(e,{value:t},n){e.checked=Pi(t,n.props.value),e[ns]=Ii(n),Zs(e,"change",()=>{e[ns](dl(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[ns]=Ii(r),t!==n&&(e.checked=Pi(t,r.props.value))}},xp={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=xa(t);Zs(e,"change",()=>{const a=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?rc(dl(o)):dl(o));e[ns](e.multiple?s?new Set(a):a:a[0]),e._assigning=!0,Hn(()=>{e._assigning=!1})}),e[ns]=Ii(r)},mounted(e,{value:t}){Iy(e,t)},beforeUpdate(e,t,n){e[ns]=Ii(n)},updated(e,{value:t}){e._assigning||Iy(e,t)}};function Iy(e,t){const n=e.multiple,r=qe(t);if(!(n&&!r&&!xa(t))){for(let s=0,a=e.options.length;sString(h)===String(u)):o.selected=Bc(t,u)>-1}else o.selected=t.has(u);else if(Pi(dl(o),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function dl(e){return"_value"in e?e._value:e.value}function Ub(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const kp={created(e,t,n){Fu(e,t,n,null,"created")},mounted(e,t,n){Fu(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){Fu(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){Fu(e,t,n,r,"updated")}};function jb(e,t){switch(e){case"SELECT":return xp;case"TEXTAREA":return Ni;default:switch(t){case"checkbox":return bp;case"radio":return wp;default:return Ni}}}function Fu(e,t,n,r,s){const o=jb(e.tagName,n.props&&n.props.type)[s];o&&o(e,t,n,r)}function oD(){Ni.getSSRProps=({value:e})=>({value:e}),wp.getSSRProps=({value:e},t)=>{if(t.props&&Pi(t.props.value,e))return{checked:!0}},bp.getSSRProps=({value:e},t)=>{if(qe(e)){if(t.props&&Bc(e,t.props.value)>-1)return{checked:!0}}else if(xa(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},kp.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=jb(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const uD=["ctrl","shift","alt","meta"],cD={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>uD.some(n=>e[`${n}Key`]&&!t.includes(n))},Ct=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...a)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const a=xr(s.key);if(t.some(o=>o===a||dD[o]===a))return e(s)})},Wb=Tt({patchProp:K3},R3);let ao,Ny=!1;function qb(){return ao||(ao=ab(Wb))}function Yb(){return ao=Ny?ao:lb(Wb),Ny=!0,ao}const vc=(...e)=>{qb().render(...e)},fD=(...e)=>{Yb().hydrate(...e)},yc=(...e)=>{const t=qb().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Gb(r);if(!s)return;const a=t._component;!st(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Kb(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},zb=(...e)=>{const t=Yb().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Gb(r);if(s)return n(s,!0,Kb(s))},t};function Kb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Gb(e){return ct(e)?document.querySelector(e):e}let Vy=!1;const hD=()=>{Vy||(Vy=!0,oD(),N3())},pD=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:I_,BaseTransitionPropsValidators:up,Comment:An,DeprecationTypes:E3,EffectScope:ep,ErrorCodes:YM,ErrorTypeStrings:w3,Fragment:Ie,KeepAlive:vR,ReactiveEffect:fo,Static:fa,Suspense:s3,Teleport:R_,Text:Oi,TrackOpTypes:$M,Transition:vs,TransitionGroup:nD,TriggerOpTypes:BM,VueElement:ed,assertNumber:qM,callWithAsyncErrorHandling:rs,callWithErrorHandling:Tl,camelize:Jt,capitalize:ka,cloneVNode:Ps,compatUtils:C3,computed:me,createApp:yc,createBlock:it,createCommentVNode:se,createElementBlock:I,createElementVNode:v,createHydrationRenderer:lb,createPropsRestProxy:DR,createRenderer:ab,createSSRApp:zb,createSlots:Bn,createStaticVNode:vp,createTextVNode:ut,createVNode:he,customRef:b_,defineAsyncComponent:mR,defineComponent:fn,defineCustomElement:Fb,defineEmits:kR,defineExpose:SR,defineModel:CR,defineOptions:TR,defineProps:xR,defineSSRCustomElement:J3,defineSlots:AR,devtools:x3,effect:oM,effectScope:aM,getCurrentInstance:ss,getCurrentScope:tp,getCurrentWatcher:HM,getTransitionRawChildren:zc,guardReactiveProps:qn,h:_p,handleError:Sa,hasInjectionContext:HR,hydrate:fD,hydrateOnIdle:uR,hydrateOnInteraction:hR,hydrateOnMediaQuery:fR,hydrateOnVisible:dR,initCustomFormatter:y3,initDirectivesForSSR:hD,inject:so,isMemoSame:Ob,isProxy:qc,isReactive:Ci,isReadonly:Li,isRef:Tn,isRuntimeOnly:m3,isShallow:Ur,isVNode:ni,markRaw:v_,mergeDefaults:MR,mergeModels:RR,mergeProps:cn,nextTick:Hn,normalizeClass:Fe,normalizeProps:wn,normalizeStyle:bn,onActivated:V_,onBeforeMount:B_,onBeforeUnmount:Zc,onBeforeUpdate:Gc,onDeactivated:F_,onErrorCaptured:W_,onMounted:Ft,onRenderTracked:j_,onRenderTriggered:U_,onScopeDispose:e_,onServerPrefetch:H_,onUnmounted:ii,onUpdated:Jc,onWatcherCleanup:x_,openBlock:k,popScopeId:ZM,provide:J_,proxyRefs:ap,pushScopeId:JM,queuePostFlushCb:mo,reactive:Hr,readonly:ip,ref:fe,registerRuntimeCompiler:Ab,render:vc,renderList:Ze,renderSlot:Le,resolveComponent:at,resolveDirective:Y_,resolveDynamicComponent:Al,resolveFilter:A3,resolveTransitionHooks:ol,setBlockTracking:Th,setDevtoolsHook:k3,setTransitionHooks:ti,shallowReactive:g_,shallowReadonly:EM,shallowRef:y_,ssrContextKey:db,ssrUtils:T3,stop:uM,toDisplayString:ce,toHandlerKey:rl,toHandlers:bR,toRaw:Ot,toRef:ll,toRefs:LM,toValue:RM,transformVNodeArgs:c3,triggerRef:MM,unref:Z,useAttrs:OR,useCssModule:Q3,useCssVars:V3,useHost:$b,useId:tR,useModel:ZR,useSSRContext:fb,useShadowRoot:X3,useSlots:Bi,useTemplateRef:nR,useTransitionState:op,vModelCheckbox:bp,vModelDynamic:kp,vModelRadio:wp,vModelSelect:xp,vModelText:Ni,vShow:Vr,version:Mb,warn:b3,watch:Wt,watchEffect:hb,watchPostEffect:GR,watchSyncEffect:pb,withAsyncContext:PR,withCtx:Te,withDefaults:ER,withDirectives:Dn,withKeys:$n,withMemo:_3,withModifiers:Ct,withScopeId:XM},Symbol.toStringTag,{value:"Module"}));/** +* @vue/compiler-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const wo=Symbol(""),lo=Symbol(""),Sp=Symbol(""),_c=Symbol(""),Jb=Symbol(""),ba=Symbol(""),Zb=Symbol(""),Xb=Symbol(""),Tp=Symbol(""),Ap=Symbol(""),Io=Symbol(""),Cp=Symbol(""),Qb=Symbol(""),Ep=Symbol(""),Op=Symbol(""),Mp=Symbol(""),Rp=Symbol(""),Dp=Symbol(""),Pp=Symbol(""),e1=Symbol(""),t1=Symbol(""),td=Symbol(""),bc=Symbol(""),Lp=Symbol(""),Ip=Symbol(""),xo=Symbol(""),No=Symbol(""),Np=Symbol(""),Lh=Symbol(""),mD=Symbol(""),Ih=Symbol(""),wc=Symbol(""),gD=Symbol(""),vD=Symbol(""),Vp=Symbol(""),yD=Symbol(""),_D=Symbol(""),Fp=Symbol(""),n1=Symbol(""),fl={[wo]:"Fragment",[lo]:"Teleport",[Sp]:"Suspense",[_c]:"KeepAlive",[Jb]:"BaseTransition",[ba]:"openBlock",[Zb]:"createBlock",[Xb]:"createElementBlock",[Tp]:"createVNode",[Ap]:"createElementVNode",[Io]:"createCommentVNode",[Cp]:"createTextVNode",[Qb]:"createStaticVNode",[Ep]:"resolveComponent",[Op]:"resolveDynamicComponent",[Mp]:"resolveDirective",[Rp]:"resolveFilter",[Dp]:"withDirectives",[Pp]:"renderList",[e1]:"renderSlot",[t1]:"createSlots",[td]:"toDisplayString",[bc]:"mergeProps",[Lp]:"normalizeClass",[Ip]:"normalizeStyle",[xo]:"normalizeProps",[No]:"guardReactiveProps",[Np]:"toHandlers",[Lh]:"camelize",[mD]:"capitalize",[Ih]:"toHandlerKey",[wc]:"setBlockTracking",[gD]:"pushScopeId",[vD]:"popScopeId",[Vp]:"withCtx",[yD]:"unref",[_D]:"isRef",[Fp]:"withMemo",[n1]:"isMemoSame"};function bD(e){Object.getOwnPropertySymbols(e).forEach(t=>{fl[t]=e[t]})}const Wr={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function wD(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Wr}}function ko(e,t,n,r,s,a,o,u=!1,d=!1,h=!1,f=Wr){return e&&(u?(e.helper(ba),e.helper(ml(e.inSSR,h))):e.helper(pl(e.inSSR,h)),o&&e.helper(Dp)),{type:13,tag:t,props:n,children:r,patchFlag:s,dynamicProps:a,directives:o,isBlock:u,disableTracking:d,isComponent:h,loc:f}}function ha(e,t=Wr){return{type:17,loc:t,elements:e}}function ts(e,t=Wr){return{type:15,loc:t,properties:e}}function xn(e,t){return{type:16,loc:Wr,key:ct(e)?pt(e,!0):e,value:t}}function pt(e,t=!1,n=Wr,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function ms(e,t=Wr){return{type:8,loc:t,children:e}}function Rn(e,t=[],n=Wr){return{type:14,loc:n,callee:e,arguments:t}}function hl(e,t=void 0,n=!1,r=!1,s=Wr){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:s}}function Nh(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Wr}}function xD(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:Wr}}function kD(e){return{type:21,body:e,loc:Wr}}function pl(e,t){return e||t?Tp:Ap}function ml(e,t){return e||t?Zb:Xb}function $p(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(pl(r,e.isComponent)),t(ba),t(ml(r,e.isComponent)))}const Fy=new Uint8Array([123,123]),$y=new Uint8Array([125,125]);function By(e){return e>=97&&e<=122||e>=65&&e<=90}function Ir(e){return e===32||e===10||e===9||e===12||e===13}function gi(e){return e===47||e===62||Ir(e)}function xc(e){const t=new Uint8Array(e.length);for(let n=0;n=0;s--){const a=this.newlines[s];if(t>a){n=s+2,r=t-a;break}}return{column:r,line:n,offset:t}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(t){t===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&t===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(t))}stateInterpolationOpen(t){if(t===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const n=this.index+1-this.delimiterOpen.length;n>this.sectionStart&&this.cbs.ontext(this.sectionStart,n),this.state=3,this.sectionStart=n}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(t)):(this.state=1,this.stateText(t))}stateInterpolation(t){t===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(t))}stateInterpolationClose(t){t===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(t))}stateSpecialStartSequence(t){const n=this.sequenceIndex===this.currentSequence.length;if(!(n?gi(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!n){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(t)}stateInRCDATA(t){if(this.sequenceIndex===this.currentSequence.length){if(t===62||Ir(t)){const n=this.index-this.currentSequence.length;if(this.sectionStart=t||(this.state===28?this.currentSequence===Gn.CdataEnd?this.cbs.oncdata(this.sectionStart,t):this.cbs.oncomment(this.sectionStart,t):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,t))}emitCodePoint(t,n){}}function Hy(e,{compatConfig:t}){const n=t&&t[e];return e==="MODE"?n||3:n}function pa(e,t){const n=Hy("MODE",t),r=Hy(e,t);return n===3?r===!0:r!==!1}function So(e,t,n,...r){return pa(e,t)}function Bp(e){throw e}function r1(e){}function en(e,t,n,r){const s=`https://vuejs.org/error-reference/#compiler-${e}`,a=new SyntaxError(String(s));return a.code=e,a.loc=t,a}const kr=e=>e.type===4&&e.isStatic;function s1(e){switch(e){case"Teleport":case"teleport":return lo;case"Suspense":case"suspense":return Sp;case"KeepAlive":case"keep-alive":return _c;case"BaseTransition":case"base-transition":return Jb}}const TD=/^\d|[^\$\w\xA0-\uFFFF]/,Hp=e=>!TD.test(e),AD=/[A-Za-z_$\xA0-\uFFFF]/,CD=/[\.\?\w$\xA0-\uFFFF]/,ED=/\s+[.[]\s*|\s*[.[]\s+/g,i1=e=>e.type===4?e.content:e.loc.source,OD=e=>{const t=i1(e).trim().replace(ED,u=>u.trim());let n=0,r=[],s=0,a=0,o=null;for(let u=0;u|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,RD=e=>MD.test(i1(e)),DD=RD;function es(e,t,n=!1){for(let r=0;rt.type===7&&t.name==="bind"&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function Wf(e){return e.type===5||e.type===2}function LD(e){return e.type===7&&e.name==="slot"}function kc(e){return e.type===1&&e.tagType===3}function Sc(e){return e.type===1&&e.tagType===2}const ID=new Set([xo,No]);function l1(e,t=[]){if(e&&!ct(e)&&e.type===14){const n=e.callee;if(!ct(n)&&ID.has(n))return l1(e.arguments[0],t.concat(e))}return[e,t]}function Tc(e,t,n){let r,s=e.type===13?e.props:e.arguments[2],a=[],o;if(s&&!ct(s)&&s.type===14){const u=l1(s);s=u[0],a=u[1],o=a[a.length-1]}if(s==null||ct(s))r=ts([t]);else if(s.type===14){const u=s.arguments[0];!ct(u)&&u.type===15?Uy(t,u)||u.properties.unshift(t):s.callee===Np?r=Rn(n.helper(bc),[ts([t]),s]):s.arguments.unshift(ts([t])),!r&&(r=s)}else s.type===15?(Uy(t,s)||s.properties.unshift(t),r=s):(r=Rn(n.helper(bc),[ts([t]),s]),o&&o.callee===No&&(o=a[a.length-2]));e.type===13?o?o.arguments[0]=r:e.props=r:o?o.arguments[0]=r:e.arguments[2]=r}function Uy(e,t){let n=!1;if(e.key.type===4){const r=e.key.content;n=t.properties.some(s=>s.key.type===4&&s.key.content===r)}return n}function To(e,t){return`_${t}_${e.replace(/[^\w]/g,(n,r)=>n==="-"?"_":e.charCodeAt(r).toString())}`}function ND(e){return e.type===14&&e.callee===Fp?e.arguments[1].returns:e}const VD=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,o1={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:Zl,isPreTag:Zl,isIgnoreNewlineTag:Zl,isCustomElement:Zl,onError:Bp,onWarn:r1,comments:!1,prefixIdentifiers:!1};let Pt=o1,Ao=null,Qs="",Zn=null,Et=null,_r="",Ys=-1,na=-1,Up=0,Si=!1,Vh=null;const Qt=[],un=new SD(Qt,{onerr:qs,ontext(e,t){$u(Wn(e,t),e,t)},ontextentity(e,t,n){$u(e,t,n)},oninterpolation(e,t){if(Si)return $u(Wn(e,t),e,t);let n=e+un.delimiterOpen.length,r=t-un.delimiterClose.length;for(;Ir(Qs.charCodeAt(n));)n++;for(;Ir(Qs.charCodeAt(r-1));)r--;let s=Wn(n,r);s.includes("&")&&(s=Pt.decodeEntities(s,!1)),Fh({type:5,content:Xu(s,!1,yn(n,r)),loc:yn(e,t)})},onopentagname(e,t){const n=Wn(e,t);Zn={type:1,tag:n,ns:Pt.getNamespace(n,Qt[0],Pt.ns),tagType:0,props:[],children:[],loc:yn(e-1,t),codegenNode:void 0}},onopentagend(e){Wy(e)},onclosetag(e,t){const n=Wn(e,t);if(!Pt.isVoidTag(n)){let r=!1;for(let s=0;s0&&qs(24,Qt[0].loc.start.offset);for(let o=0;o<=s;o++){const u=Qt.shift();Zu(u,t,o(r.type===7?r.rawName:r.name)===n)&&qs(2,t)},onattribend(e,t){if(Zn&&Et){if(la(Et.loc,t),e!==0)if(_r.includes("&")&&(_r=Pt.decodeEntities(_r,!0)),Et.type===6)Et.name==="class"&&(_r=d1(_r).trim()),e===1&&!_r&&qs(13,t),Et.value={type:2,content:_r,loc:e===1?yn(Ys,na):yn(Ys-1,na+1)},un.inSFCRoot&&Zn.tag==="template"&&Et.name==="lang"&&_r&&_r!=="html"&&un.enterRCDATA(xc("s.content==="sync"))>-1&&So("COMPILER_V_BIND_SYNC",Pt,Et.loc,Et.rawName)&&(Et.name="model",Et.modifiers.splice(r,1))}(Et.type!==7||Et.name!=="pre")&&Zn.props.push(Et)}_r="",Ys=na=-1},oncomment(e,t){Pt.comments&&Fh({type:3,content:Wn(e,t),loc:yn(e-4,t+3)})},onend(){const e=Qs.length;for(let t=0;t{const w=t.start.offset+m,_=w+p.length;return Xu(p,!1,yn(w,_),0,y?1:0)},u={source:o(a.trim(),n.indexOf(a,s.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let d=s.trim().replace(FD,"").trim();const h=s.indexOf(d),f=d.match(jy);if(f){d=d.replace(jy,"").trim();const p=f[1].trim();let m;if(p&&(m=n.indexOf(p,h+d.length),u.key=o(p,m,!0)),f[2]){const y=f[2].trim();y&&(u.index=o(y,n.indexOf(y,u.key?m+p.length:h+d.length),!0))}}return d&&(u.value=o(d,h,!0)),u}function Wn(e,t){return Qs.slice(e,t)}function Wy(e){un.inSFCRoot&&(Zn.innerLoc=yn(e+1,e+1)),Fh(Zn);const{tag:t,ns:n}=Zn;n===0&&Pt.isPreTag(t)&&Up++,Pt.isVoidTag(t)?Zu(Zn,e):(Qt.unshift(Zn),(n===1||n===2)&&(un.inXML=!0)),Zn=null}function $u(e,t,n){{const a=Qt[0]&&Qt[0].tag;a!=="script"&&a!=="style"&&e.includes("&")&&(e=Pt.decodeEntities(e,!1))}const r=Qt[0]||Ao,s=r.children[r.children.length-1];s&&s.type===2?(s.content+=e,la(s.loc,n)):r.children.push({type:2,content:e,loc:yn(t,n)})}function Zu(e,t,n=!1){n?la(e.loc,u1(t,60)):la(e.loc,BD(t,62)+1),un.inSFCRoot&&(e.children.length?e.innerLoc.end=Tt({},e.children[e.children.length-1].loc.end):e.innerLoc.end=Tt({},e.innerLoc.start),e.innerLoc.source=Wn(e.innerLoc.start.offset,e.innerLoc.end.offset));const{tag:r,ns:s,children:a}=e;if(Si||(r==="slot"?e.tagType=2:qy(e)?e.tagType=3:UD(e)&&(e.tagType=1)),un.inRCDATA||(e.children=c1(a)),s===0&&Pt.isIgnoreNewlineTag(r)){const o=a[0];o&&o.type===2&&(o.content=o.content.replace(/^\r?\n/,""))}s===0&&Pt.isPreTag(r)&&Up--,Vh===e&&(Si=un.inVPre=!1,Vh=null),un.inXML&&(Qt[0]?Qt[0].ns:Pt.ns)===0&&(un.inXML=!1);{const o=e.props;if(!un.inSFCRoot&&pa("COMPILER_NATIVE_TEMPLATE",Pt)&&e.tag==="template"&&!qy(e)){const d=Qt[0]||Ao,h=d.children.indexOf(e);d.children.splice(h,1,...e.children)}const u=o.find(d=>d.type===6&&d.name==="inline-template");u&&So("COMPILER_INLINE_TEMPLATE",Pt,u.loc)&&e.children.length&&(u.value={type:2,content:Wn(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:u.loc})}}function BD(e,t){let n=e;for(;Qs.charCodeAt(n)!==t&&n=0;)n--;return n}const HD=new Set(["if","else","else-if","for","slot"]);function qy({tag:e,props:t}){if(e==="template"){for(let n=0;n64&&e<91}const WD=/\r\n/g;function c1(e,t){const n=Pt.whitespace!=="preserve";let r=!1;for(let s=0;s0){if(m>=2){p.codegenNode.patchFlag=-1,o.push(p);continue}}else{const y=p.codegenNode;if(y.type===13){const w=y.patchFlag;if((w===void 0||w===512||w===1)&&p1(p,n)>=2){const _=m1(p);_&&(y.props=n.hoist(_))}y.dynamicProps&&(y.dynamicProps=n.hoist(y.dynamicProps))}}}else if(p.type===12&&(r?0:Fr(p,n))>=2){o.push(p);continue}if(p.type===1){const m=p.tagType===1;m&&n.scopes.vSlot++,Qu(p,e,n,!1,s),m&&n.scopes.vSlot--}else if(p.type===11)Qu(p,e,n,p.children.length===1,!0);else if(p.type===9)for(let m=0;my.key===p||y.key.content===p);return m&&m.value}}o.length&&n.transformHoist&&n.transformHoist(a,n,e)}function Fr(e,t){const{constantCache:n}=t;switch(e.type){case 1:if(e.tagType!==0)return 0;const r=n.get(e);if(r!==void 0)return r;const s=e.codegenNode;if(s.type!==13||s.isBlock&&e.tag!=="svg"&&e.tag!=="foreignObject"&&e.tag!=="math")return 0;if(s.patchFlag===void 0){let o=3;const u=p1(e,t);if(u===0)return n.set(e,0),0;u1)for(let d=0;dre&&(M.childIndex--,M.onNodeRemoved()),M.parent.children.splice(re,1)},onNodeRemoved:Yn,addIdentifiers(T){},removeIdentifiers(T){},hoist(T){ct(T)&&(T=pt(T)),M.hoists.push(T);const H=pt(`_hoisted_${M.hoists.length}`,!1,T.loc,2);return H.hoisted=T,H},cache(T,H=!1,re=!1){const Q=xD(M.cached.length,T,H,re);return M.cached.push(Q),Q}};return M.filters=new Set,M}function eP(e,t){const n=QD(e,t);rd(e,n),t.hoistStatic&&ZD(e,n),t.ssr||tP(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function tP(e,t){const{helper:n}=t,{children:r}=e;if(r.length===1){const s=r[0];if(f1(e,s)&&s.codegenNode){const a=s.codegenNode;a.type===13&&$p(a,t),e.codegenNode=a}else e.codegenNode=s}else if(r.length>1){let s=64;e.codegenNode=ko(t,n(wo),void 0,e.children,s,void 0,void 0,!0,void 0,!1)}}function nP(e,t){let n=0;const r=()=>{n--};for(;nr===e:r=>e.test(r);return(r,s)=>{if(r.type===1){const{props:a}=r;if(r.tagType===3&&a.some(LD))return;const o=[];for(let u=0;u`${fl[e]}: _${fl[e]}`;function rP(e,{mode:t="function",prefixIdentifiers:n=t==="module",sourceMap:r=!1,filename:s="template.vue.html",scopeId:a=null,optimizeImports:o=!1,runtimeGlobalName:u="Vue",runtimeModuleName:d="vue",ssrRuntimeModuleName:h="vue/server-renderer",ssr:f=!1,isTS:p=!1,inSSR:m=!1}){const y={mode:t,prefixIdentifiers:n,sourceMap:r,filename:s,scopeId:a,optimizeImports:o,runtimeGlobalName:u,runtimeModuleName:d,ssrRuntimeModuleName:h,ssr:f,isTS:p,inSSR:m,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(_){return`_${fl[_]}`},push(_,C=-2,U){y.code+=_},indent(){w(++y.indentLevel)},deindent(_=!1){_?--y.indentLevel:w(--y.indentLevel)},newline(){w(y.indentLevel)}};function w(_){y.push(` +`+" ".repeat(_),0)}return y}function sP(e,t={}){const n=rP(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:r,push:s,prefixIdentifiers:a,indent:o,deindent:u,newline:d,scopeId:h,ssr:f}=n,p=Array.from(e.helpers),m=p.length>0,y=!a&&r!=="module";iP(e,n);const _=f?"ssrRender":"render",U=(f?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(s(`function ${_}(${U}) {`),o(),y&&(s("with (_ctx) {"),o(),m&&(s(`const { ${p.map(v1).join(", ")} } = _Vue +`,-1),d())),e.components.length&&(qf(e.components,"component",n),(e.directives.length||e.temps>0)&&d()),e.directives.length&&(qf(e.directives,"directive",n),e.temps>0&&d()),e.filters&&e.filters.length&&(d(),qf(e.filters,"filter",n),d()),e.temps>0){s("let ");for(let F=0;F0?", ":""}_temp${F}`)}return(e.components.length||e.directives.length||e.temps)&&(s(` +`,0),d()),f||s("return "),e.codegenNode?rr(e.codegenNode,n):s("null"),y&&(u(),s("}")),u(),s("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function iP(e,t){const{ssr:n,prefixIdentifiers:r,push:s,newline:a,runtimeModuleName:o,runtimeGlobalName:u,ssrRuntimeModuleName:d}=t,h=u,f=Array.from(e.helpers);if(f.length>0&&(s(`const _Vue = ${h} +`,-1),e.hoists.length)){const p=[Tp,Ap,Io,Cp,Qb].filter(m=>f.includes(m)).map(v1).join(", ");s(`const { ${p} } = _Vue +`,-1)}aP(e.hoists,t),a(),s("return ")}function qf(e,t,{helper:n,push:r,newline:s,isTS:a}){const o=n(t==="filter"?Rp:t==="component"?Ep:Mp);for(let u=0;u3||!1;t.push("["),n&&t.indent(),Vo(e,t,n),n&&t.deindent(),t.push("]")}function Vo(e,t,n=!1,r=!0){const{push:s,newline:a}=t;for(let o=0;on||"null")}function hP(e,t){const{push:n,helper:r,pure:s}=t,a=ct(e.callee)?e.callee:r(e.callee);s&&n(sd),n(a+"(",-2,e),Vo(e.arguments,t),n(")")}function pP(e,t){const{push:n,indent:r,deindent:s,newline:a}=t,{properties:o}=e;if(!o.length){n("{}",-2,e);return}const u=o.length>1||!1;n(u?"{":"{ "),u&&r();for(let d=0;d "),(d||u)&&(n("{"),r()),o?(d&&n("return "),qe(o)?jp(o,t):rr(o,t)):u&&rr(u,t),(d||u)&&(s(),n("}")),h&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}function vP(e,t){const{test:n,consequent:r,alternate:s,newline:a}=e,{push:o,indent:u,deindent:d,newline:h}=t;if(n.type===4){const p=!Hp(n.content);p&&o("("),y1(n,t),p&&o(")")}else o("("),rr(n,t),o(")");a&&u(),t.indentLevel++,a||o(" "),o("? "),rr(r,t),t.indentLevel--,a&&h(),a||o(" "),o(": ");const f=s.type===19;f||t.indentLevel++,rr(s,t),f||t.indentLevel--,a&&d(!0)}function yP(e,t){const{push:n,helper:r,indent:s,deindent:a,newline:o}=t,{needPauseTracking:u,needArraySpread:d}=e;d&&n("[...("),n(`_cache[${e.index}] || (`),u&&(s(),n(`${r(wc)}(-1`),e.inVOnce&&n(", true"),n("),"),o(),n("(")),n(`_cache[${e.index}] = `),rr(e.value,t),u&&(n(`).cacheIndex = ${e.index},`),o(),n(`${r(wc)}(1),`),o(),n(`_cache[${e.index}]`),a()),n(")"),d&&n(")]")}new RegExp("\\b"+"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b")+"\\b");const _P=g1(/^(if|else|else-if)$/,(e,t,n)=>bP(e,t,n,(r,s,a)=>{const o=n.parent.children;let u=o.indexOf(r),d=0;for(;u-->=0;){const h=o[u];h&&h.type===9&&(d+=h.branches.length)}return()=>{if(a)r.codegenNode=zy(s,d,n);else{const h=wP(r.codegenNode);h.alternate=zy(s,d+r.branches.length-1,n)}}}));function bP(e,t,n,r){if(t.name!=="else"&&(!t.exp||!t.exp.content.trim())){const s=t.exp?t.exp.loc:e.loc;n.onError(en(28,t.loc)),t.exp=pt("true",!1,s)}if(t.name==="if"){const s=Yy(e,t),a={type:9,loc:zD(e.loc),branches:[s]};if(n.replaceNode(a),r)return r(a,s,!0)}else{const s=n.parent.children;let a=s.indexOf(e);for(;a-->=-1;){const o=s[a];if(o&&o.type===3){n.removeNode(o);continue}if(o&&o.type===2&&!o.content.trim().length){n.removeNode(o);continue}if(o&&o.type===9){t.name==="else-if"&&o.branches[o.branches.length-1].condition===void 0&&n.onError(en(30,e.loc)),n.removeNode();const u=Yy(e,t);o.branches.push(u);const d=r&&r(o,u,!1);rd(u,n),d&&d(),n.currentNode=null}else n.onError(en(30,e.loc));break}}}function Yy(e,t){const n=e.tagType===3;return{type:10,loc:e.loc,condition:t.name==="else"?void 0:t.exp,children:n&&!es(e,"for")?e.children:[e],userKey:nd(e,"key"),isTemplateIf:n}}function zy(e,t,n){return e.condition?Nh(e.condition,Ky(e,t,n),Rn(n.helper(Io),['""',"true"])):Ky(e,t,n)}function Ky(e,t,n){const{helper:r}=n,s=xn("key",pt(`${t}`,!1,Wr,2)),{children:a}=e,o=a[0];if(a.length!==1||o.type!==1)if(a.length===1&&o.type===11){const d=o.codegenNode;return Tc(d,s,n),d}else return ko(n,r(wo),ts([s]),a,64,void 0,void 0,!0,!1,!1,e.loc);else{const d=o.codegenNode,h=ND(d);return h.type===13&&$p(h,n),Tc(h,s,n),d}}function wP(e){for(;;)if(e.type===19)if(e.alternate.type===19)e=e.alternate;else return e;else e.type===20&&(e=e.value)}const xP=(e,t,n)=>{const{modifiers:r,loc:s}=e,a=e.arg;let{exp:o}=e;if(o&&o.type===4&&!o.content.trim()&&(o=void 0),!o){if(a.type!==4||!a.isStatic)return n.onError(en(52,a.loc)),{props:[xn(a,pt("",!0,s))]};b1(e),o=e.exp}return a.type!==4?(a.children.unshift("("),a.children.push(') || ""')):a.isStatic||(a.content=`${a.content} || ""`),r.some(u=>u.content==="camel")&&(a.type===4?a.isStatic?a.content=Jt(a.content):a.content=`${n.helperString(Lh)}(${a.content})`:(a.children.unshift(`${n.helperString(Lh)}(`),a.children.push(")"))),n.inSSR||(r.some(u=>u.content==="prop")&&Gy(a,"."),r.some(u=>u.content==="attr")&&Gy(a,"^")),{props:[xn(a,o)]}},b1=(e,t)=>{const n=e.arg,r=Jt(n.content);e.exp=pt(r,!1,n.loc)},Gy=(e,t)=>{e.type===4?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},kP=g1("for",(e,t,n)=>{const{helper:r,removeHelper:s}=n;return SP(e,t,n,a=>{const o=Rn(r(Pp),[a.source]),u=kc(e),d=es(e,"memo"),h=nd(e,"key",!1,!0);h&&h.type===7&&!h.exp&&b1(h);let p=h&&(h.type===6?h.value?pt(h.value.content,!0):void 0:h.exp);const m=h&&p?xn("key",p):null,y=a.source.type===4&&a.source.constType>0,w=y?64:h?128:256;return a.codegenNode=ko(n,r(wo),void 0,o,w,void 0,void 0,!0,!y,!1,e.loc),()=>{let _;const{children:C}=a,U=C.length!==1||C[0].type!==1,F=Sc(e)?e:u&&e.children.length===1&&Sc(e.children[0])?e.children[0]:null;if(F?(_=F.codegenNode,u&&m&&Tc(_,m,n)):U?_=ko(n,r(wo),m?ts([m]):void 0,e.children,64,void 0,void 0,!0,void 0,!1):(_=C[0].codegenNode,u&&m&&Tc(_,m,n),_.isBlock!==!y&&(_.isBlock?(s(ba),s(ml(n.inSSR,_.isComponent))):s(pl(n.inSSR,_.isComponent))),_.isBlock=!y,_.isBlock?(r(ba),r(ml(n.inSSR,_.isComponent))):r(pl(n.inSSR,_.isComponent))),d){const x=hl($h(a.parseResult,[pt("_cached")]));x.body=kD([ms(["const _memo = (",d.exp,")"]),ms(["if (_cached",...p?[" && _cached.key === ",p]:[],` && ${n.helperString(n1)}(_cached, _memo)) return _cached`]),ms(["const _item = ",_]),pt("_item.memo = _memo"),pt("return _item")]),o.arguments.push(x,pt("_cache"),pt(String(n.cached.length))),n.cached.push(null)}else o.arguments.push(hl($h(a.parseResult),_,!0))}})});function SP(e,t,n,r){if(!t.exp){n.onError(en(31,t.loc));return}const s=t.forParseResult;if(!s){n.onError(en(32,t.loc));return}w1(s);const{addIdentifiers:a,removeIdentifiers:o,scopes:u}=n,{source:d,value:h,key:f,index:p}=s,m={type:11,loc:t.loc,source:d,valueAlias:h,keyAlias:f,objectIndexAlias:p,parseResult:s,children:kc(e)?e.children:[e]};n.replaceNode(m),u.vFor++;const y=r&&r(m);return()=>{u.vFor--,y&&y()}}function w1(e,t){e.finalized||(e.finalized=!0)}function $h({value:e,key:t,index:n},r=[]){return TP([e,t,n,...r])}function TP(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((n,r)=>n||pt("_".repeat(r+1),!1))}const Jy=pt("undefined",!1),AP=(e,t)=>{if(e.type===1&&(e.tagType===1||e.tagType===3)){const n=es(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},CP=(e,t,n,r)=>hl(e,n,!1,!0,n.length?n[0].loc:r);function EP(e,t,n=CP){t.helper(Vp);const{children:r,loc:s}=e,a=[],o=[];let u=t.scopes.vSlot>0||t.scopes.vFor>0;const d=es(e,"slot",!0);if(d){const{arg:C,exp:U}=d;C&&!kr(C)&&(u=!0),a.push(xn(C||pt("default",!0),n(U,void 0,r,s)))}let h=!1,f=!1;const p=[],m=new Set;let y=0;for(let C=0;C{const x=n(U,void 0,F,s);return t.compatConfig&&(x.isNonScopedSlot=!0),xn("default",x)};h?p.length&&p.some(U=>x1(U))&&(f?t.onError(en(39,p[0].loc)):a.push(C(void 0,p))):a.push(C(void 0,r))}const w=u?2:ec(e.children)?3:1;let _=ts(a.concat(xn("_",pt(w+"",!1))),s);return o.length&&(_=Rn(t.helper(t1),[_,ha(o)])),{slots:_,hasDynamicSlots:u}}function Bu(e,t,n){const r=[xn("name",e),xn("fn",t)];return n!=null&&r.push(xn("key",pt(String(n),!0))),ts(r)}function ec(e){for(let t=0;tfunction(){if(e=t.currentNode,!(e.type===1&&(e.tagType===0||e.tagType===1)))return;const{tag:r,props:s}=e,a=e.tagType===1;let o=a?MP(e,t):`"${r}"`;const u=Ht(o)&&o.callee===Op;let d,h,f=0,p,m,y,w=u||o===lo||o===Sp||!a&&(r==="svg"||r==="foreignObject"||r==="math");if(s.length>0){const _=S1(e,t,void 0,a,u);d=_.props,f=_.patchFlag,m=_.dynamicPropNames;const C=_.directives;y=C&&C.length?ha(C.map(U=>DP(U,t))):void 0,_.shouldUseBlock&&(w=!0)}if(e.children.length>0)if(o===_c&&(w=!0,f|=1024),a&&o!==lo&&o!==_c){const{slots:C,hasDynamicSlots:U}=EP(e,t);h=C,U&&(f|=1024)}else if(e.children.length===1&&o!==lo){const C=e.children[0],U=C.type,F=U===5||U===8;F&&Fr(C,t)===0&&(f|=1),F||U===2?h=C:h=e.children}else h=e.children;m&&m.length&&(p=PP(m)),e.codegenNode=ko(t,o,d,h,f===0?void 0:f,p,y,!!w,!1,a,e.loc)};function MP(e,t,n=!1){let{tag:r}=e;const s=Bh(r),a=nd(e,"is",!1,!0);if(a)if(s||pa("COMPILER_IS_ON_ELEMENT",t)){let u;if(a.type===6?u=a.value&&pt(a.value.content,!0):(u=a.exp,u||(u=pt("is",!1,a.arg.loc))),u)return Rn(t.helper(Op),[u])}else a.type===6&&a.value.content.startsWith("vue:")&&(r=a.value.content.slice(4));const o=s1(r)||t.isBuiltInComponent(r);return o?(n||t.helper(o),o):(t.helper(Ep),t.components.add(r),To(r,"component"))}function S1(e,t,n=e.props,r,s,a=!1){const{tag:o,loc:u,children:d}=e;let h=[];const f=[],p=[],m=d.length>0;let y=!1,w=0,_=!1,C=!1,U=!1,F=!1,x=!1,E=!1;const V=[],B=H=>{h.length&&(f.push(ts(Zy(h),u)),h=[]),H&&f.push(H)},$=()=>{t.scopes.vFor>0&&h.push(xn(pt("ref_for",!0),pt("true")))},M=({key:H,value:re})=>{if(kr(H)){const Q=H.content,ne=wa(Q);if(ne&&(!r||s)&&Q.toLowerCase()!=="onclick"&&Q!=="onUpdate:modelValue"&&!Ai(Q)&&(F=!0),ne&&Ai(Q)&&(E=!0),ne&&re.type===14&&(re=re.arguments[0]),re.type===20||(re.type===4||re.type===8)&&Fr(re,t)>0)return;Q==="ref"?_=!0:Q==="class"?C=!0:Q==="style"?U=!0:Q!=="key"&&!V.includes(Q)&&V.push(Q),r&&(Q==="class"||Q==="style")&&!V.includes(Q)&&V.push(Q)}else x=!0};for(let H=0;HDe.content==="prop")&&(w|=32);const xe=t.directiveTransforms[Q];if(xe){const{props:De,needRuntime:Be}=xe(re,e,t);!a&&De.forEach(M),te&&ne&&!kr(ne)?B(ts(De,u)):h.push(...De),Be&&(p.push(re),Cr(Be)&&k1.set(re,Be))}else BO(Q)||(p.push(re),m&&(y=!0))}}let T;if(f.length?(B(),f.length>1?T=Rn(t.helper(bc),f,u):T=f[0]):h.length&&(T=ts(Zy(h),u)),x?w|=16:(C&&!r&&(w|=2),U&&!r&&(w|=4),V.length&&(w|=8),F&&(w|=32)),!y&&(w===0||w===32)&&(_||E||p.length>0)&&(w|=512),!t.inSSR&&T)switch(T.type){case 15:let H=-1,re=-1,Q=!1;for(let P=0;Pxn(o,a)),s))}return ha(n,e.loc)}function PP(e){let t="[";for(let n=0,r=e.length;n{if(Sc(e)){const{children:n,loc:r}=e,{slotName:s,slotProps:a}=IP(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"];let u=2;a&&(o[2]=a,u=3),n.length&&(o[3]=hl([],n,!1,!1,r),u=4),t.scopeId&&!t.slotted&&(u=5),o.splice(u),e.codegenNode=Rn(t.helper(e1),o,r)}};function IP(e,t){let n='"default"',r;const s=[];for(let a=0;a0){const{props:a,directives:o}=S1(e,t,s,!1,!1);r=a,o.length&&t.onError(en(36,o[0].loc))}return{slotName:n,slotProps:r}}const T1=(e,t,n,r)=>{const{loc:s,modifiers:a,arg:o}=e;!e.exp&&!a.length&&n.onError(en(35,s));let u;if(o.type===4)if(o.isStatic){let p=o.content;p.startsWith("vue:")&&(p=`vnode-${p.slice(4)}`);const m=t.tagType!==0||p.startsWith("vnode")||!/[A-Z]/.test(p)?rl(Jt(p)):`on:${p}`;u=pt(m,!0,o.loc)}else u=ms([`${n.helperString(Ih)}(`,o,")"]);else u=o,u.children.unshift(`${n.helperString(Ih)}(`),u.children.push(")");let d=e.exp;d&&!d.content.trim()&&(d=void 0);let h=n.cacheHandlers&&!d&&!n.inVOnce;if(d){const p=a1(d),m=!(p||DD(d)),y=d.content.includes(";");(m||h&&p)&&(d=ms([`${m?"$event":"(...args)"} => ${y?"{":"("}`,d,y?"}":")"]))}let f={props:[xn(u,d||pt("() => {}",!1,s))]};return r&&(f=r(f)),h&&(f.props[0].value=n.cache(f.props[0].value)),f.props.forEach(p=>p.key.isHandlerKey=!0),f},NP=(e,t)=>{if(e.type===0||e.type===1||e.type===11||e.type===10)return()=>{const n=e.children;let r,s=!1;for(let a=0;aa.type===7&&!t.directiveTransforms[a.name])&&e.tag!=="template")))for(let a=0;a{if(e.type===1&&es(e,"once",!0))return Xy.has(e)||t.inVOnce||t.inSSR?void 0:(Xy.add(e),t.inVOnce=!0,t.helper(wc),()=>{t.inVOnce=!1;const n=t.currentNode;n.codegenNode&&(n.codegenNode=t.cache(n.codegenNode,!0,!0))})},A1=(e,t,n)=>{const{exp:r,arg:s}=e;if(!r)return n.onError(en(41,e.loc)),Hu();const a=r.loc.source.trim(),o=r.type===4?r.content:a,u=n.bindingMetadata[a];if(u==="props"||u==="props-aliased")return n.onError(en(44,r.loc)),Hu();if(!o.trim()||!a1(r))return n.onError(en(42,r.loc)),Hu();const d=s||pt("modelValue",!0),h=s?kr(s)?`onUpdate:${Jt(s.content)}`:ms(['"onUpdate:" + ',s]):"onUpdate:modelValue";let f;const p=n.isTS?"($event: any)":"$event";f=ms([`${p} => ((`,r,") = $event)"]);const m=[xn(d,e.exp),xn(h,f)];if(e.modifiers.length&&t.tagType===1){const y=e.modifiers.map(_=>_.content).map(_=>(Hp(_)?_:JSON.stringify(_))+": true").join(", "),w=s?kr(s)?`${s.content}Modifiers`:ms([s,' + "Modifiers"']):"modelModifiers";m.push(xn(w,pt(`{ ${y} }`,!1,e.loc,2)))}return Hu(m)};function Hu(e=[]){return{props:e}}const FP=/[\w).+\-_$\]]/,$P=(e,t)=>{pa("COMPILER_FILTERS",t)&&(e.type===5?Ac(e.content,t):e.type===1&&e.props.forEach(n=>{n.type===7&&n.name!=="for"&&n.exp&&Ac(n.exp,t)}))};function Ac(e,t){if(e.type===4)Qy(e,t);else for(let n=0;n=0&&(F=n.charAt(U),F===" ");U--);(!F||!FP.test(F))&&(o=!0)}}w===void 0?w=n.slice(0,y).trim():f!==0&&C();function C(){_.push(n.slice(f,y).trim()),f=y+1}if(_.length){for(y=0;y<_.length;y++)w=BP(w,_[y],t);e.content=w,e.ast=void 0}}function BP(e,t,n){n.helper(Rp);const r=t.indexOf("(");if(r<0)return n.filters.add(t),`${To(t,"filter")}(${e})`;{const s=t.slice(0,r),a=t.slice(r+1);return n.filters.add(s),`${To(s,"filter")}(${e}${a!==")"?","+a:a}`}}const e0=new WeakSet,HP=(e,t)=>{if(e.type===1){const n=es(e,"memo");return!n||e0.has(e)?void 0:(e0.add(e),()=>{const r=e.codegenNode||t.currentNode.codegenNode;r&&r.type===13&&(e.tagType!==1&&$p(r,t),e.codegenNode=Rn(t.helper(Fp),[n.exp,hl(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))})}};function UP(e){return[[VP,_P,HP,kP,$P,LP,OP,AP,NP],{on:T1,bind:xP,model:A1}]}function jP(e,t={}){const n=t.onError||Bp,r=t.mode==="module";t.prefixIdentifiers===!0?n(en(47)):r&&n(en(48));const s=!1;t.cacheHandlers&&n(en(49)),t.scopeId&&!r&&n(en(50));const a=Tt({},t,{prefixIdentifiers:s}),o=ct(e)?JD(e,a):e,[u,d]=UP();return eP(o,Tt({},a,{nodeTransforms:[...u,...t.nodeTransforms||[]],directiveTransforms:Tt({},d,t.directiveTransforms||{})})),sP(o,a)}const WP=()=>({props:[]});/** +* @vue/compiler-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const C1=Symbol(""),E1=Symbol(""),O1=Symbol(""),M1=Symbol(""),Hh=Symbol(""),R1=Symbol(""),D1=Symbol(""),P1=Symbol(""),L1=Symbol(""),I1=Symbol("");bD({[C1]:"vModelRadio",[E1]:"vModelCheckbox",[O1]:"vModelText",[M1]:"vModelSelect",[Hh]:"vModelDynamic",[R1]:"withModifiers",[D1]:"withKeys",[P1]:"vShow",[L1]:"Transition",[I1]:"TransitionGroup"});let Wa;function qP(e,t=!1){return Wa||(Wa=document.createElement("div")),t?(Wa.innerHTML=`
`,Wa.children[0].getAttribute("foo")):(Wa.innerHTML=e,Wa.textContent)}const YP={parseMode:"html",isVoidTag:nM,isNativeTag:e=>QO(e)||eM(e)||tM(e),isPreTag:e=>e==="pre",isIgnoreNewlineTag:e=>e==="pre"||e==="textarea",decodeEntities:qP,isBuiltInComponent:e=>{if(e==="Transition"||e==="transition")return L1;if(e==="TransitionGroup"||e==="transition-group")return I1},getNamespace(e,t,n){let r=t?t.ns:n;if(t&&r===2)if(t.tag==="annotation-xml"){if(e==="svg")return 1;t.props.some(s=>s.type===6&&s.name==="encoding"&&s.value!=null&&(s.value.content==="text/html"||s.value.content==="application/xhtml+xml"))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&e!=="mglyph"&&e!=="malignmark"&&(r=0);else t&&r===1&&(t.tag==="foreignObject"||t.tag==="desc"||t.tag==="title")&&(r=0);if(r===0){if(e==="svg")return 1;if(e==="math")return 2}return r}},zP=e=>{e.type===1&&e.props.forEach((t,n)=>{t.type===6&&t.name==="style"&&t.value&&(e.props[n]={type:7,name:"bind",arg:pt("style",!0,t.loc),exp:KP(t.value.content,t.loc),modifiers:[],loc:t.loc})})},KP=(e,t)=>{const n=J0(e);return pt(JSON.stringify(n),!1,t,3)};function Mi(e,t){return en(e,t)}const GP=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Mi(53,s)),t.children.length&&(n.onError(Mi(54,s)),t.children.length=0),{props:[xn(pt("innerHTML",!0,s),r||pt("",!0))]}},JP=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Mi(55,s)),t.children.length&&(n.onError(Mi(56,s)),t.children.length=0),{props:[xn(pt("textContent",!0),r?Fr(r,n)>0?r:Rn(n.helperString(td),[r],s):pt("",!0))]}},ZP=(e,t,n)=>{const r=A1(e,t,n);if(!r.props.length||t.tagType===1)return r;e.arg&&n.onError(Mi(58,e.arg.loc));const{tag:s}=t,a=n.isCustomElement(s);if(s==="input"||s==="textarea"||s==="select"||a){let o=O1,u=!1;if(s==="input"||a){const d=nd(t,"type");if(d){if(d.type===7)o=Hh;else if(d.value)switch(d.value.content){case"radio":o=C1;break;case"checkbox":o=E1;break;case"file":u=!0,n.onError(Mi(59,e.loc));break}}else PD(t)&&(o=Hh)}else s==="select"&&(o=M1);u||(r.needRuntime=n.helper(o))}else n.onError(Mi(57,e.loc));return r.props=r.props.filter(o=>!(o.key.type===4&&o.key.content==="modelValue")),r},XP=jr("passive,once,capture"),QP=jr("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),eL=jr("left,right"),N1=jr("onkeyup,onkeydown,onkeypress"),tL=(e,t,n,r)=>{const s=[],a=[],o=[];for(let u=0;ukr(e)&&e.content.toLowerCase()==="onclick"?pt(t,!0):e.type!==4?ms(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,nL=(e,t,n)=>T1(e,t,n,r=>{const{modifiers:s}=e;if(!s.length)return r;let{key:a,value:o}=r.props[0];const{keyModifiers:u,nonKeyModifiers:d,eventOptionModifiers:h}=tL(a,s,n,e.loc);if(d.includes("right")&&(a=t0(a,"onContextmenu")),d.includes("middle")&&(a=t0(a,"onMouseup")),d.length&&(o=Rn(n.helper(R1),[o,JSON.stringify(d)])),u.length&&(!kr(a)||N1(a.content.toLowerCase()))&&(o=Rn(n.helper(D1),[o,JSON.stringify(u)])),h.length){const f=h.map(ka).join("");a=kr(a)?pt(`${a.content}${f}`,!0):ms(["(",a,`) + "${f}"`])}return{props:[xn(a,o)]}}),rL=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Mi(61,s)),{props:[],needRuntime:n.helper(P1)}},sL=(e,t)=>{e.type===1&&e.tagType===0&&(e.tag==="script"||e.tag==="style")&&t.removeNode()},iL=[zP],aL={cloak:WP,html:GP,text:JP,model:ZP,on:nL,show:rL};function lL(e,t={}){return jP(e,Tt({},YP,t,{nodeTransforms:[sL,...iL,...t.nodeTransforms||[]],directiveTransforms:Tt({},aL,t.directiveTransforms||{}),transformHoist:null}))}/** +* vue v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const n0=Object.create(null);function oL(e,t){if(!ct(e))if(e.nodeType)e=e.innerHTML;else return Yn;const n=jO(e,t),r=n0[n];if(r)return r;if(e[0]==="#"){const u=document.querySelector(e);e=u?u.innerHTML:""}const s=Tt({hoistStatic:!0,onError:void 0,onWarn:Yn},t);!s.isCustomElement&&typeof customElements<"u"&&(s.isCustomElement=u=>!!customElements.get(u));const{code:a}=lL(e,s),o=new Function("Vue",a)(pD);return o._rc=!0,n0[n]=o}Ab(oL);var V1=typeof globalThis<"u"?globalThis:typeof window<"u"||typeof window<"u"?window:typeof self<"u"?self:{};function uL(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Cc={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */Cc.exports;(function(e,t){(function(){var n,r="4.17.21",s=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",u="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",h=500,f="__lodash_placeholder__",p=1,m=2,y=4,w=1,_=2,C=1,U=2,F=4,x=8,E=16,V=32,B=64,$=128,M=256,T=512,H=30,re="...",Q=800,ne=16,J=1,P=2,z=3,R=1/0,te=9007199254740991,xe=17976931348623157e292,De=NaN,Be=4294967295,K=Be-1,oe=Be>>>1,D=[["ary",$],["bind",C],["bindKey",U],["curry",x],["curryRight",E],["flip",T],["partial",V],["partialRight",B],["rearg",M]],ae="[object Arguments]",ye="[object Array]",q="[object AsyncFunction]",Pe="[object Boolean]",Ke="[object Date]",_e="[object DOMException]",Xe="[object Error]",W="[object Function]",S="[object GeneratorFunction]",N="[object Map]",G="[object Number]",ee="[object Null]",pe="[object Object]",j="[object Promise]",de="[object Proxy]",ge="[object RegExp]",ke="[object Set]",Ae="[object String]",Ee="[object Symbol]",$e="[object Undefined]",He="[object WeakMap]",Qe="[object WeakSet]",Ue="[object ArrayBuffer]",tt="[object DataView]",dt="[object Float32Array]",an="[object Float64Array]",Zt="[object Int8Array]",Cn="[object Int16Array]",hn="[object Int32Array]",Er="[object Uint8Array]",ws="[object Uint8ClampedArray]",pn="[object Uint16Array]",ue="[object Uint32Array]",Ne=/\b__p \+= '';/g,we=/\b(__p \+=) '' \+/g,Ve=/(__e\(.*?\)|\b__t\)) \+\n'';/g,We=/&(?:amp|lt|gt|quot|#39);/g,Nn=/[&<>"']/g,pr=RegExp(We.source),Ls=RegExp(Nn.source),Ca=/<%-([\s\S]+?)%>/g,Wi=/<%([\s\S]+?)%>/g,is=/<%=([\s\S]+?)%>/g,El=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,md=/^\w*$/,Lw=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gd=/[\\^$.*+?()[\]{}|]/g,Iw=RegExp(gd.source),vd=/^\s+/,Nw=/\s/,Vw=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Fw=/\{\n\/\* \[wrapped with (.+)\] \*/,$w=/,? & /,Bw=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Hw=/[()=,{}\[\]\/\s]/,Uw=/\\(\\)?/g,jw=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dm=/\w*$/,Ww=/^[-+]0x[0-9a-f]+$/i,qw=/^0b[01]+$/i,Yw=/^\[object .+?Constructor\]$/,zw=/^0o[0-7]+$/i,Kw=/^(?:0|[1-9]\d*)$/,Gw=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ho=/($^)/,Jw=/['\n\r\u2028\u2029\\]/g,Uo="\\ud800-\\udfff",Zw="\\u0300-\\u036f",Xw="\\ufe20-\\ufe2f",Qw="\\u20d0-\\u20ff",fm=Zw+Xw+Qw,hm="\\u2700-\\u27bf",pm="a-z\\xdf-\\xf6\\xf8-\\xff",ex="\\xac\\xb1\\xd7\\xf7",tx="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",nx="\\u2000-\\u206f",rx=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",mm="A-Z\\xc0-\\xd6\\xd8-\\xde",gm="\\ufe0e\\ufe0f",vm=ex+tx+nx+rx,yd="['’]",sx="["+Uo+"]",ym="["+vm+"]",jo="["+fm+"]",_m="\\d+",ix="["+hm+"]",bm="["+pm+"]",wm="[^"+Uo+vm+_m+hm+pm+mm+"]",_d="\\ud83c[\\udffb-\\udfff]",ax="(?:"+jo+"|"+_d+")",xm="[^"+Uo+"]",bd="(?:\\ud83c[\\udde6-\\uddff]){2}",wd="[\\ud800-\\udbff][\\udc00-\\udfff]",Ea="["+mm+"]",km="\\u200d",Sm="(?:"+bm+"|"+wm+")",lx="(?:"+Ea+"|"+wm+")",Tm="(?:"+yd+"(?:d|ll|m|re|s|t|ve))?",Am="(?:"+yd+"(?:D|LL|M|RE|S|T|VE))?",Cm=ax+"?",Em="["+gm+"]?",ox="(?:"+km+"(?:"+[xm,bd,wd].join("|")+")"+Em+Cm+")*",ux="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",cx="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Om=Em+Cm+ox,dx="(?:"+[ix,bd,wd].join("|")+")"+Om,fx="(?:"+[xm+jo+"?",jo,bd,wd,sx].join("|")+")",hx=RegExp(yd,"g"),px=RegExp(jo,"g"),xd=RegExp(_d+"(?="+_d+")|"+fx+Om,"g"),mx=RegExp([Ea+"?"+bm+"+"+Tm+"(?="+[ym,Ea,"$"].join("|")+")",lx+"+"+Am+"(?="+[ym,Ea+Sm,"$"].join("|")+")",Ea+"?"+Sm+"+"+Tm,Ea+"+"+Am,cx,ux,_m,dx].join("|"),"g"),gx=RegExp("["+km+Uo+fm+gm+"]"),vx=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,yx=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],_x=-1,Kt={};Kt[dt]=Kt[an]=Kt[Zt]=Kt[Cn]=Kt[hn]=Kt[Er]=Kt[ws]=Kt[pn]=Kt[ue]=!0,Kt[ae]=Kt[ye]=Kt[Ue]=Kt[Pe]=Kt[tt]=Kt[Ke]=Kt[Xe]=Kt[W]=Kt[N]=Kt[G]=Kt[pe]=Kt[ge]=Kt[ke]=Kt[Ae]=Kt[He]=!1;var Yt={};Yt[ae]=Yt[ye]=Yt[Ue]=Yt[tt]=Yt[Pe]=Yt[Ke]=Yt[dt]=Yt[an]=Yt[Zt]=Yt[Cn]=Yt[hn]=Yt[N]=Yt[G]=Yt[pe]=Yt[ge]=Yt[ke]=Yt[Ae]=Yt[Ee]=Yt[Er]=Yt[ws]=Yt[pn]=Yt[ue]=!0,Yt[Xe]=Yt[W]=Yt[He]=!1;var bx={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},wx={"&":"&","<":"<",">":">",'"':""","'":"'"},xx={"&":"&","<":"<",">":">",""":'"',"'":"'"},kx={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Sx=parseFloat,Tx=parseInt,Mm=typeof window=="object"&&window&&window.Object===Object&&window,Ax=typeof self=="object"&&self&&self.Object===Object&&self,Un=Mm||Ax||Function("return this")(),kd=t&&!t.nodeType&&t,qi=kd&&!0&&e&&!e.nodeType&&e,Rm=qi&&qi.exports===kd,Sd=Rm&&Mm.process,qr=function(){try{var ie=qi&&qi.require&&qi.require("util").types;return ie||Sd&&Sd.binding&&Sd.binding("util")}catch{}}(),Dm=qr&&qr.isArrayBuffer,Pm=qr&&qr.isDate,Lm=qr&&qr.isMap,Im=qr&&qr.isRegExp,Nm=qr&&qr.isSet,Vm=qr&&qr.isTypedArray;function Or(ie,Se,ve){switch(ve.length){case 0:return ie.call(Se);case 1:return ie.call(Se,ve[0]);case 2:return ie.call(Se,ve[0],ve[1]);case 3:return ie.call(Se,ve[0],ve[1],ve[2])}return ie.apply(Se,ve)}function Cx(ie,Se,ve,ze){for(var ot=-1,Mt=ie==null?0:ie.length;++ot-1}function Td(ie,Se,ve){for(var ze=-1,ot=ie==null?0:ie.length;++ze-1;);return ve}function qm(ie,Se){for(var ve=ie.length;ve--&&Oa(Se,ie[ve],0)>-1;);return ve}function Nx(ie,Se){for(var ve=ie.length,ze=0;ve--;)ie[ve]===Se&&++ze;return ze}var Vx=Od(bx),Fx=Od(wx);function $x(ie){return"\\"+kx[ie]}function Bx(ie,Se){return ie==null?n:ie[Se]}function Ma(ie){return gx.test(ie)}function Hx(ie){return vx.test(ie)}function Ux(ie){for(var Se,ve=[];!(Se=ie.next()).done;)ve.push(Se.value);return ve}function Pd(ie){var Se=-1,ve=Array(ie.size);return ie.forEach(function(ze,ot){ve[++Se]=[ot,ze]}),ve}function Ym(ie,Se){return function(ve){return ie(Se(ve))}}function oi(ie,Se){for(var ve=-1,ze=ie.length,ot=0,Mt=[];++ve-1}function Ok(i,l){var c=this.__data__,g=lu(c,i);return g<0?(++this.size,c.push([i,l])):c[g][1]=l,this}Is.prototype.clear=Tk,Is.prototype.delete=Ak,Is.prototype.get=Ck,Is.prototype.has=Ek,Is.prototype.set=Ok;function Ns(i){var l=-1,c=i==null?0:i.length;for(this.clear();++l=l?i:l)),i}function Gr(i,l,c,g,b,O){var Y,X=l&p,le=l&m,Ce=l&y;if(c&&(Y=b?c(i,g,b,O):c(i)),Y!==n)return Y;if(!tn(i))return i;var Oe=ft(i);if(Oe){if(Y=PS(i),!X)return mr(i,Y)}else{var Me=Kn(i),je=Me==W||Me==S;if(pi(i))return Eg(i,X);if(Me==pe||Me==ae||je&&!b){if(Y=le||je?{}:zg(i),!X)return le?xS(i,qk(Y,i)):wS(i,sg(Y,i))}else{if(!Yt[Me])return b?i:{};Y=LS(i,Me,X)}}O||(O=new ls);var Ge=O.get(i);if(Ge)return Ge;O.set(i,Y),xv(i)?i.forEach(function(rt){Y.add(Gr(rt,l,c,rt,i,O))}):bv(i)&&i.forEach(function(rt,_t){Y.set(_t,Gr(rt,l,c,_t,i,O))});var nt=Ce?le?af:sf:le?vr:Vn,gt=Oe?n:nt(i);return Yr(gt||i,function(rt,_t){gt&&(_t=rt,rt=i[_t]),Il(Y,_t,Gr(rt,l,c,_t,i,O))}),Y}function Yk(i){var l=Vn(i);return function(c){return ig(c,i,l)}}function ig(i,l,c){var g=c.length;if(i==null)return!g;for(i=Ut(i);g--;){var b=c[g],O=l[b],Y=i[b];if(Y===n&&!(b in i)||!O(Y))return!1}return!0}function ag(i,l,c){if(typeof i!="function")throw new zr(o);return Ul(function(){i.apply(n,c)},l)}function Nl(i,l,c,g){var b=-1,O=Wo,Y=!0,X=i.length,le=[],Ce=l.length;if(!X)return le;c&&(l=Xt(l,Mr(c))),g?(O=Td,Y=!1):l.length>=s&&(O=Ol,Y=!1,l=new Ki(l));e:for(;++bb?0:b+c),g=g===n||g>b?b:mt(g),g<0&&(g+=b),g=c>g?0:Sv(g);c0&&c(X)?l>1?jn(X,l-1,c,g,b):li(b,X):g||(b[b.length]=X)}return b}var Bd=Lg(),ug=Lg(!0);function xs(i,l){return i&&Bd(i,l,Vn)}function Hd(i,l){return i&&ug(i,l,Vn)}function uu(i,l){return ai(l,function(c){return Hs(i[c])})}function Ji(i,l){l=fi(l,i);for(var c=0,g=l.length;i!=null&&cl}function Gk(i,l){return i!=null&&$t.call(i,l)}function Jk(i,l){return i!=null&&l in Ut(i)}function Zk(i,l,c){return i>=zn(l,c)&&i=120&&Oe.length>=120)?new Ki(Y&&Oe):n}Oe=i[0];var Me=-1,je=X[0];e:for(;++Me-1;)X!==i&&eu.call(X,le,1),eu.call(i,le,1);return i}function bg(i,l){for(var c=i?l.length:0,g=c-1;c--;){var b=l[c];if(c==g||b!==O){var O=b;Bs(b)?eu.call(i,b,1):Zd(i,b)}}return i}function Kd(i,l){return i+ru(eg()*(l-i+1))}function cS(i,l,c,g){for(var b=-1,O=On(nu((l-i)/(c||1)),0),Y=ve(O);O--;)Y[g?O:++b]=i,i+=c;return Y}function Gd(i,l){var c="";if(!i||l<1||l>te)return c;do l%2&&(c+=i),l=ru(l/2),l&&(i+=i);while(l);return c}function yt(i,l){return hf(Jg(i,l,yr),i+"")}function dS(i){return rg(Ha(i))}function fS(i,l){var c=Ha(i);return bu(c,Gi(l,0,c.length))}function $l(i,l,c,g){if(!tn(i))return i;l=fi(l,i);for(var b=-1,O=l.length,Y=O-1,X=i;X!=null&&++bb?0:b+l),c=c>b?b:c,c<0&&(c+=b),b=l>c?0:c-l>>>0,l>>>=0;for(var O=ve(b);++g>>1,Y=i[O];Y!==null&&!Dr(Y)&&(c?Y<=l:Y=s){var Ce=l?null:AS(i);if(Ce)return Yo(Ce);Y=!1,b=Ol,le=new Ki}else le=l?[]:X;e:for(;++g=g?i:Jr(i,l,c)}var Cg=rk||function(i){return Un.clearTimeout(i)};function Eg(i,l){if(l)return i.slice();var c=i.length,g=Gm?Gm(c):new i.constructor(c);return i.copy(g),g}function tf(i){var l=new i.constructor(i.byteLength);return new Xo(l).set(new Xo(i)),l}function vS(i,l){var c=l?tf(i.buffer):i.buffer;return new i.constructor(c,i.byteOffset,i.byteLength)}function yS(i){var l=new i.constructor(i.source,dm.exec(i));return l.lastIndex=i.lastIndex,l}function _S(i){return Ll?Ut(Ll.call(i)):{}}function Og(i,l){var c=l?tf(i.buffer):i.buffer;return new i.constructor(c,i.byteOffset,i.length)}function Mg(i,l){if(i!==l){var c=i!==n,g=i===null,b=i===i,O=Dr(i),Y=l!==n,X=l===null,le=l===l,Ce=Dr(l);if(!X&&!Ce&&!O&&i>l||O&&Y&&le&&!X&&!Ce||g&&Y&&le||!c&&le||!b)return 1;if(!g&&!O&&!Ce&&i=X)return le;var Ce=c[g];return le*(Ce=="desc"?-1:1)}}return i.index-l.index}function Rg(i,l,c,g){for(var b=-1,O=i.length,Y=c.length,X=-1,le=l.length,Ce=On(O-Y,0),Oe=ve(le+Ce),Me=!g;++X1?c[b-1]:n,Y=b>2?c[2]:n;for(O=i.length>3&&typeof O=="function"?(b--,O):n,Y&&ir(c[0],c[1],Y)&&(O=b<3?n:O,b=1),l=Ut(l);++g-1?b[O?l[Y]:Y]:n}}function Vg(i){return $s(function(l){var c=l.length,g=c,b=Kr.prototype.thru;for(i&&l.reverse();g--;){var O=l[g];if(typeof O!="function")throw new zr(o);if(b&&!Y&&yu(O)=="wrapper")var Y=new Kr([],!0)}for(g=Y?g:c;++g1&&At.reverse(),Oe&&le<_t&&(At.length=le),this&&this!==Un&&this instanceof rt&&(js=gt||Bl(js)),js.apply(us,At)}return rt}function Fg(i,l){return function(c,g){return Xk(c,i,l(g),{})}}function mu(i,l){return function(c,g){var b;if(c===n&&g===n)return l;if(c!==n&&(b=c),g!==n){if(b===n)return g;typeof c=="string"||typeof g=="string"?(c=Rr(c),g=Rr(g)):(c=kg(c),g=kg(g)),b=i(c,g)}return b}}function nf(i){return $s(function(l){return l=Xt(l,Mr(et())),yt(function(c){var g=this;return i(l,function(b){return Or(b,g,c)})})})}function gu(i,l){l=l===n?" ":Rr(l);var c=l.length;if(c<2)return c?Gd(l,i):l;var g=Gd(l,nu(i/Ra(l)));return Ma(l)?hi(as(g),0,i).join(""):g.slice(0,i)}function TS(i,l,c,g){var b=l&C,O=Bl(i);function Y(){for(var X=-1,le=arguments.length,Ce=-1,Oe=g.length,Me=ve(Oe+le),je=this&&this!==Un&&this instanceof Y?O:i;++CeX))return!1;var Ce=O.get(i),Oe=O.get(l);if(Ce&&Oe)return Ce==l&&Oe==i;var Me=-1,je=!0,Ge=c&_?new Ki:n;for(O.set(i,l),O.set(l,i);++Me1?"& ":"")+l[g],l=l.join(c>2?", ":" "),i.replace(Vw,`{ +/* [wrapped with `+l+`] */ +`)}function NS(i){return ft(i)||Qi(i)||!!(Xm&&i&&i[Xm])}function Bs(i,l){var c=typeof i;return l=l??te,!!l&&(c=="number"||c!="symbol"&&Kw.test(i))&&i>-1&&i%1==0&&i0){if(++l>=Q)return arguments[0]}else l=0;return i.apply(n,arguments)}}function bu(i,l){var c=-1,g=i.length,b=g-1;for(l=l===n?g:l;++c1?i[l-1]:n;return c=typeof c=="function"?(i.pop(),c):n,ov(i,c)});function uv(i){var l=A(i);return l.__chain__=!0,l}function zT(i,l){return l(i),i}function wu(i,l){return l(i)}var KT=$s(function(i){var l=i.length,c=l?i[0]:0,g=this.__wrapped__,b=function(O){return $d(O,i)};return l>1||this.__actions__.length||!(g instanceof wt)||!Bs(c)?this.thru(b):(g=g.slice(c,+c+(l?1:0)),g.__actions__.push({func:wu,args:[b],thisArg:n}),new Kr(g,this.__chain__).thru(function(O){return l&&!O.length&&O.push(n),O}))});function GT(){return uv(this)}function JT(){return new Kr(this.value(),this.__chain__)}function ZT(){this.__values__===n&&(this.__values__=kv(this.value()));var i=this.__index__>=this.__values__.length,l=i?n:this.__values__[this.__index__++];return{done:i,value:l}}function XT(){return this}function QT(i){for(var l,c=this;c instanceof au;){var g=nv(c);g.__index__=0,g.__values__=n,l?b.__wrapped__=g:l=g;var b=g;c=c.__wrapped__}return b.__wrapped__=i,l}function e2(){var i=this.__wrapped__;if(i instanceof wt){var l=i;return this.__actions__.length&&(l=new wt(this)),l=l.reverse(),l.__actions__.push({func:wu,args:[pf],thisArg:n}),new Kr(l,this.__chain__)}return this.thru(pf)}function t2(){return Tg(this.__wrapped__,this.__actions__)}var n2=hu(function(i,l,c){$t.call(i,c)?++i[c]:Vs(i,c,1)});function r2(i,l,c){var g=ft(i)?Fm:zk;return c&&ir(i,l,c)&&(l=n),g(i,et(l,3))}function s2(i,l){var c=ft(i)?ai:og;return c(i,et(l,3))}var i2=Ng(rv),a2=Ng(sv);function l2(i,l){return jn(xu(i,l),1)}function o2(i,l){return jn(xu(i,l),R)}function u2(i,l,c){return c=c===n?1:mt(c),jn(xu(i,l),c)}function cv(i,l){var c=ft(i)?Yr:ci;return c(i,et(l,3))}function dv(i,l){var c=ft(i)?Ex:lg;return c(i,et(l,3))}var c2=hu(function(i,l,c){$t.call(i,c)?i[c].push(l):Vs(i,c,[l])});function d2(i,l,c,g){i=gr(i)?i:Ha(i),c=c&&!g?mt(c):0;var b=i.length;return c<0&&(c=On(b+c,0)),Cu(i)?c<=b&&i.indexOf(l,c)>-1:!!b&&Oa(i,l,c)>-1}var f2=yt(function(i,l,c){var g=-1,b=typeof l=="function",O=gr(i)?ve(i.length):[];return ci(i,function(Y){O[++g]=b?Or(l,Y,c):Vl(Y,l,c)}),O}),h2=hu(function(i,l,c){Vs(i,c,l)});function xu(i,l){var c=ft(i)?Xt:pg;return c(i,et(l,3))}function p2(i,l,c,g){return i==null?[]:(ft(l)||(l=l==null?[]:[l]),c=g?n:c,ft(c)||(c=c==null?[]:[c]),yg(i,l,c))}var m2=hu(function(i,l,c){i[c?0:1].push(l)},function(){return[[],[]]});function g2(i,l,c){var g=ft(i)?Ad:Um,b=arguments.length<3;return g(i,et(l,4),c,b,ci)}function v2(i,l,c){var g=ft(i)?Ox:Um,b=arguments.length<3;return g(i,et(l,4),c,b,lg)}function y2(i,l){var c=ft(i)?ai:og;return c(i,Tu(et(l,3)))}function _2(i){var l=ft(i)?rg:dS;return l(i)}function b2(i,l,c){(c?ir(i,l,c):l===n)?l=1:l=mt(l);var g=ft(i)?Uk:fS;return g(i,l)}function w2(i){var l=ft(i)?jk:pS;return l(i)}function x2(i){if(i==null)return 0;if(gr(i))return Cu(i)?Ra(i):i.length;var l=Kn(i);return l==N||l==ke?i.size:qd(i).length}function k2(i,l,c){var g=ft(i)?Cd:mS;return c&&ir(i,l,c)&&(l=n),g(i,et(l,3))}var S2=yt(function(i,l){if(i==null)return[];var c=l.length;return c>1&&ir(i,l[0],l[1])?l=[]:c>2&&ir(l[0],l[1],l[2])&&(l=[l[0]]),yg(i,jn(l,1),[])}),ku=sk||function(){return Un.Date.now()};function T2(i,l){if(typeof l!="function")throw new zr(o);return i=mt(i),function(){if(--i<1)return l.apply(this,arguments)}}function fv(i,l,c){return l=c?n:l,l=i&&l==null?i.length:l,Fs(i,$,n,n,n,n,l)}function hv(i,l){var c;if(typeof l!="function")throw new zr(o);return i=mt(i),function(){return--i>0&&(c=l.apply(this,arguments)),i<=1&&(l=n),c}}var gf=yt(function(i,l,c){var g=C;if(c.length){var b=oi(c,$a(gf));g|=V}return Fs(i,g,l,c,b)}),pv=yt(function(i,l,c){var g=C|U;if(c.length){var b=oi(c,$a(pv));g|=V}return Fs(l,g,i,c,b)});function mv(i,l,c){l=c?n:l;var g=Fs(i,x,n,n,n,n,n,l);return g.placeholder=mv.placeholder,g}function gv(i,l,c){l=c?n:l;var g=Fs(i,E,n,n,n,n,n,l);return g.placeholder=gv.placeholder,g}function vv(i,l,c){var g,b,O,Y,X,le,Ce=0,Oe=!1,Me=!1,je=!0;if(typeof i!="function")throw new zr(o);l=Xr(l)||0,tn(c)&&(Oe=!!c.leading,Me="maxWait"in c,O=Me?On(Xr(c.maxWait)||0,l):O,je="trailing"in c?!!c.trailing:je);function Ge(gn){var us=g,js=b;return g=b=n,Ce=gn,Y=i.apply(js,us),Y}function nt(gn){return Ce=gn,X=Ul(_t,l),Oe?Ge(gn):Y}function gt(gn){var us=gn-le,js=gn-Ce,Nv=l-us;return Me?zn(Nv,O-js):Nv}function rt(gn){var us=gn-le,js=gn-Ce;return le===n||us>=l||us<0||Me&&js>=O}function _t(){var gn=ku();if(rt(gn))return At(gn);X=Ul(_t,gt(gn))}function At(gn){return X=n,je&&g?Ge(gn):(g=b=n,Y)}function Pr(){X!==n&&Cg(X),Ce=0,g=le=b=X=n}function ar(){return X===n?Y:At(ku())}function Lr(){var gn=ku(),us=rt(gn);if(g=arguments,b=this,le=gn,us){if(X===n)return nt(le);if(Me)return Cg(X),X=Ul(_t,l),Ge(le)}return X===n&&(X=Ul(_t,l)),Y}return Lr.cancel=Pr,Lr.flush=ar,Lr}var A2=yt(function(i,l){return ag(i,1,l)}),C2=yt(function(i,l,c){return ag(i,Xr(l)||0,c)});function E2(i){return Fs(i,T)}function Su(i,l){if(typeof i!="function"||l!=null&&typeof l!="function")throw new zr(o);var c=function(){var g=arguments,b=l?l.apply(this,g):g[0],O=c.cache;if(O.has(b))return O.get(b);var Y=i.apply(this,g);return c.cache=O.set(b,Y)||O,Y};return c.cache=new(Su.Cache||Ns),c}Su.Cache=Ns;function Tu(i){if(typeof i!="function")throw new zr(o);return function(){var l=arguments;switch(l.length){case 0:return!i.call(this);case 1:return!i.call(this,l[0]);case 2:return!i.call(this,l[0],l[1]);case 3:return!i.call(this,l[0],l[1],l[2])}return!i.apply(this,l)}}function O2(i){return hv(2,i)}var M2=gS(function(i,l){l=l.length==1&&ft(l[0])?Xt(l[0],Mr(et())):Xt(jn(l,1),Mr(et()));var c=l.length;return yt(function(g){for(var b=-1,O=zn(g.length,c);++b=l}),Qi=dg(function(){return arguments}())?dg:function(i){return ln(i)&&$t.call(i,"callee")&&!Zm.call(i,"callee")},ft=ve.isArray,q2=Dm?Mr(Dm):Qk;function gr(i){return i!=null&&Au(i.length)&&!Hs(i)}function mn(i){return ln(i)&&gr(i)}function Y2(i){return i===!0||i===!1||ln(i)&&sr(i)==Pe}var pi=ak||Ef,z2=Pm?Mr(Pm):eS;function K2(i){return ln(i)&&i.nodeType===1&&!jl(i)}function G2(i){if(i==null)return!0;if(gr(i)&&(ft(i)||typeof i=="string"||typeof i.splice=="function"||pi(i)||Ba(i)||Qi(i)))return!i.length;var l=Kn(i);if(l==N||l==ke)return!i.size;if(Hl(i))return!qd(i).length;for(var c in i)if($t.call(i,c))return!1;return!0}function J2(i,l){return Fl(i,l)}function Z2(i,l,c){c=typeof c=="function"?c:n;var g=c?c(i,l):n;return g===n?Fl(i,l,n,c):!!g}function yf(i){if(!ln(i))return!1;var l=sr(i);return l==Xe||l==_e||typeof i.message=="string"&&typeof i.name=="string"&&!jl(i)}function X2(i){return typeof i=="number"&&Qm(i)}function Hs(i){if(!tn(i))return!1;var l=sr(i);return l==W||l==S||l==q||l==de}function _v(i){return typeof i=="number"&&i==mt(i)}function Au(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=te}function tn(i){var l=typeof i;return i!=null&&(l=="object"||l=="function")}function ln(i){return i!=null&&typeof i=="object"}var bv=Lm?Mr(Lm):nS;function Q2(i,l){return i===l||Wd(i,l,of(l))}function eA(i,l,c){return c=typeof c=="function"?c:n,Wd(i,l,of(l),c)}function tA(i){return wv(i)&&i!=+i}function nA(i){if($S(i))throw new ot(a);return fg(i)}function rA(i){return i===null}function sA(i){return i==null}function wv(i){return typeof i=="number"||ln(i)&&sr(i)==G}function jl(i){if(!ln(i)||sr(i)!=pe)return!1;var l=Qo(i);if(l===null)return!0;var c=$t.call(l,"constructor")&&l.constructor;return typeof c=="function"&&c instanceof c&&Go.call(c)==ek}var _f=Im?Mr(Im):rS;function iA(i){return _v(i)&&i>=-9007199254740991&&i<=te}var xv=Nm?Mr(Nm):sS;function Cu(i){return typeof i=="string"||!ft(i)&&ln(i)&&sr(i)==Ae}function Dr(i){return typeof i=="symbol"||ln(i)&&sr(i)==Ee}var Ba=Vm?Mr(Vm):iS;function aA(i){return i===n}function lA(i){return ln(i)&&Kn(i)==He}function oA(i){return ln(i)&&sr(i)==Qe}var uA=vu(Yd),cA=vu(function(i,l){return i<=l});function kv(i){if(!i)return[];if(gr(i))return Cu(i)?as(i):mr(i);if(Ml&&i[Ml])return Ux(i[Ml]());var l=Kn(i),c=l==N?Pd:l==ke?Yo:Ha;return c(i)}function Us(i){if(!i)return i===0?i:0;if(i=Xr(i),i===R||i===-1/0){var l=i<0?-1:1;return l*xe}return i===i?i:0}function mt(i){var l=Us(i),c=l%1;return l===l?c?l-c:l:0}function Sv(i){return i?Gi(mt(i),0,Be):0}function Xr(i){if(typeof i=="number")return i;if(Dr(i))return De;if(tn(i)){var l=typeof i.valueOf=="function"?i.valueOf():i;i=tn(l)?l+"":l}if(typeof i!="string")return i===0?i:+i;i=jm(i);var c=qw.test(i);return c||zw.test(i)?Tx(i.slice(2),c?2:8):Ww.test(i)?De:+i}function Tv(i){return ks(i,vr(i))}function dA(i){return i?Gi(mt(i),-9007199254740991,te):i===0?i:0}function Nt(i){return i==null?"":Rr(i)}var fA=Va(function(i,l){if(Hl(l)||gr(l)){ks(l,Vn(l),i);return}for(var c in l)$t.call(l,c)&&Il(i,c,l[c])}),Av=Va(function(i,l){ks(l,vr(l),i)}),Eu=Va(function(i,l,c,g){ks(l,vr(l),i,g)}),hA=Va(function(i,l,c,g){ks(l,Vn(l),i,g)}),pA=$s($d);function mA(i,l){var c=Na(i);return l==null?c:sg(c,l)}var gA=yt(function(i,l){i=Ut(i);var c=-1,g=l.length,b=g>2?l[2]:n;for(b&&ir(l[0],l[1],b)&&(g=1);++c1),O}),ks(i,af(i),c),g&&(c=Gr(c,p|m|y,CS));for(var b=l.length;b--;)Zd(c,l[b]);return c});function LA(i,l){return Ev(i,Tu(et(l)))}var IA=$s(function(i,l){return i==null?{}:oS(i,l)});function Ev(i,l){if(i==null)return{};var c=Xt(af(i),function(g){return[g]});return l=et(l),_g(i,c,function(g,b){return l(g,b[0])})}function NA(i,l,c){l=fi(l,i);var g=-1,b=l.length;for(b||(b=1,i=n);++gl){var g=i;i=l,l=g}if(c||i%1||l%1){var b=eg();return zn(i+b*(l-i+Sx("1e-"+((b+"").length-1))),l)}return Kd(i,l)}var zA=Fa(function(i,l,c){return l=l.toLowerCase(),i+(c?Rv(l):l)});function Rv(i){return xf(Nt(i).toLowerCase())}function Dv(i){return i=Nt(i),i&&i.replace(Gw,Vx).replace(px,"")}function KA(i,l,c){i=Nt(i),l=Rr(l);var g=i.length;c=c===n?g:Gi(mt(c),0,g);var b=c;return c-=l.length,c>=0&&i.slice(c,b)==l}function GA(i){return i=Nt(i),i&&Ls.test(i)?i.replace(Nn,Fx):i}function JA(i){return i=Nt(i),i&&Iw.test(i)?i.replace(gd,"\\$&"):i}var ZA=Fa(function(i,l,c){return i+(c?"-":"")+l.toLowerCase()}),XA=Fa(function(i,l,c){return i+(c?" ":"")+l.toLowerCase()}),QA=Ig("toLowerCase");function eC(i,l,c){i=Nt(i),l=mt(l);var g=l?Ra(i):0;if(!l||g>=l)return i;var b=(l-g)/2;return gu(ru(b),c)+i+gu(nu(b),c)}function tC(i,l,c){i=Nt(i),l=mt(l);var g=l?Ra(i):0;return l&&g>>0,c?(i=Nt(i),i&&(typeof l=="string"||l!=null&&!_f(l))&&(l=Rr(l),!l&&Ma(i))?hi(as(i),0,c):i.split(l,c)):[]}var oC=Fa(function(i,l,c){return i+(c?" ":"")+xf(l)});function uC(i,l,c){return i=Nt(i),c=c==null?0:Gi(mt(c),0,i.length),l=Rr(l),i.slice(c,c+l.length)==l}function cC(i,l,c){var g=A.templateSettings;c&&ir(i,l,c)&&(l=n),i=Nt(i),l=Eu({},l,g,Ug);var b=Eu({},l.imports,g.imports,Ug),O=Vn(b),Y=Dd(b,O),X,le,Ce=0,Oe=l.interpolate||Ho,Me="__p += '",je=Ld((l.escape||Ho).source+"|"+Oe.source+"|"+(Oe===is?jw:Ho).source+"|"+(l.evaluate||Ho).source+"|$","g"),Ge="//# sourceURL="+($t.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++_x+"]")+` +`;i.replace(je,function(rt,_t,At,Pr,ar,Lr){return At||(At=Pr),Me+=i.slice(Ce,Lr).replace(Jw,$x),_t&&(X=!0,Me+=`' + +__e(`+_t+`) + +'`),ar&&(le=!0,Me+=`'; +`+ar+`; +__p += '`),At&&(Me+=`' + +((__t = (`+At+`)) == null ? '' : __t) + +'`),Ce=Lr+rt.length,rt}),Me+=`'; +`;var nt=$t.call(l,"variable")&&l.variable;if(!nt)Me=`with (obj) { +`+Me+` +} +`;else if(Hw.test(nt))throw new ot(u);Me=(le?Me.replace(Ne,""):Me).replace(we,"$1").replace(Ve,"$1;"),Me="function("+(nt||"obj")+`) { +`+(nt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(X?", __e = _.escape":"")+(le?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Me+`return __p +}`;var gt=Lv(function(){return Mt(O,Ge+"return "+Me).apply(n,Y)});if(gt.source=Me,yf(gt))throw gt;return gt}function dC(i){return Nt(i).toLowerCase()}function fC(i){return Nt(i).toUpperCase()}function hC(i,l,c){if(i=Nt(i),i&&(c||l===n))return jm(i);if(!i||!(l=Rr(l)))return i;var g=as(i),b=as(l),O=Wm(g,b),Y=qm(g,b)+1;return hi(g,O,Y).join("")}function pC(i,l,c){if(i=Nt(i),i&&(c||l===n))return i.slice(0,zm(i)+1);if(!i||!(l=Rr(l)))return i;var g=as(i),b=qm(g,as(l))+1;return hi(g,0,b).join("")}function mC(i,l,c){if(i=Nt(i),i&&(c||l===n))return i.replace(vd,"");if(!i||!(l=Rr(l)))return i;var g=as(i),b=Wm(g,as(l));return hi(g,b).join("")}function gC(i,l){var c=H,g=re;if(tn(l)){var b="separator"in l?l.separator:b;c="length"in l?mt(l.length):c,g="omission"in l?Rr(l.omission):g}i=Nt(i);var O=i.length;if(Ma(i)){var Y=as(i);O=Y.length}if(c>=O)return i;var X=c-Ra(g);if(X<1)return g;var le=Y?hi(Y,0,X).join(""):i.slice(0,X);if(b===n)return le+g;if(Y&&(X+=le.length-X),_f(b)){if(i.slice(X).search(b)){var Ce,Oe=le;for(b.global||(b=Ld(b.source,Nt(dm.exec(b))+"g")),b.lastIndex=0;Ce=b.exec(Oe);)var Me=Ce.index;le=le.slice(0,Me===n?X:Me)}}else if(i.indexOf(Rr(b),X)!=X){var je=le.lastIndexOf(b);je>-1&&(le=le.slice(0,je))}return le+g}function vC(i){return i=Nt(i),i&&pr.test(i)?i.replace(We,Yx):i}var yC=Fa(function(i,l,c){return i+(c?" ":"")+l.toUpperCase()}),xf=Ig("toUpperCase");function Pv(i,l,c){return i=Nt(i),l=c?n:l,l===n?Hx(i)?Gx(i):Dx(i):i.match(l)||[]}var Lv=yt(function(i,l){try{return Or(i,n,l)}catch(c){return yf(c)?c:new ot(c)}}),_C=$s(function(i,l){return Yr(l,function(c){c=Ss(c),Vs(i,c,gf(i[c],i))}),i});function bC(i){var l=i==null?0:i.length,c=et();return i=l?Xt(i,function(g){if(typeof g[1]!="function")throw new zr(o);return[c(g[0]),g[1]]}):[],yt(function(g){for(var b=-1;++bte)return[];var c=Be,g=zn(i,Be);l=et(l),i-=Be;for(var b=Rd(g,l);++c0||l<0)?new wt(c):(i<0?c=c.takeRight(-i):i&&(c=c.drop(i)),l!==n&&(l=mt(l),c=l<0?c.dropRight(-l):c.take(l-i)),c)},wt.prototype.takeRightWhile=function(i){return this.reverse().takeWhile(i).reverse()},wt.prototype.toArray=function(){return this.take(Be)},xs(wt.prototype,function(i,l){var c=/^(?:filter|find|map|reject)|While$/.test(l),g=/^(?:head|last)$/.test(l),b=A[g?"take"+(l=="last"?"Right":""):l],O=g||/^find/.test(l);b&&(A.prototype[l]=function(){var Y=this.__wrapped__,X=g?[1]:arguments,le=Y instanceof wt,Ce=X[0],Oe=le||ft(Y),Me=function(_t){var At=b.apply(A,li([_t],X));return g&&je?At[0]:At};Oe&&c&&typeof Ce=="function"&&Ce.length!=1&&(le=Oe=!1);var je=this.__chain__,Ge=!!this.__actions__.length,nt=O&&!je,gt=le&&!Ge;if(!O&&Oe){Y=gt?Y:new wt(this);var rt=i.apply(Y,X);return rt.__actions__.push({func:wu,args:[Me],thisArg:n}),new Kr(rt,je)}return nt&>?i.apply(this,X):(rt=this.thru(Me),nt?g?rt.value()[0]:rt.value():rt)})}),Yr(["pop","push","shift","sort","splice","unshift"],function(i){var l=zo[i],c=/^(?:push|sort|unshift)$/.test(i)?"tap":"thru",g=/^(?:pop|shift)$/.test(i);A.prototype[i]=function(){var b=arguments;if(g&&!this.__chain__){var O=this.value();return l.apply(ft(O)?O:[],b)}return this[c](function(Y){return l.apply(ft(Y)?Y:[],b)})}}),xs(wt.prototype,function(i,l){var c=A[l];if(c){var g=c.name+"";$t.call(Ia,g)||(Ia[g]=[]),Ia[g].push({name:l,func:c})}}),Ia[pu(n,U).name]=[{name:"wrapper",func:n}],wt.prototype.clone=vk,wt.prototype.reverse=yk,wt.prototype.value=_k,A.prototype.at=KT,A.prototype.chain=GT,A.prototype.commit=JT,A.prototype.next=ZT,A.prototype.plant=QT,A.prototype.reverse=e2,A.prototype.toJSON=A.prototype.valueOf=A.prototype.value=t2,A.prototype.first=A.prototype.head,Ml&&(A.prototype[Ml]=XT),A},Da=Jx();qi?((qi.exports=Da)._=Da,kd._=Da):Un._=Da}).call(V1)})(Cc,Cc.exports);var cL=Cc.exports;const cr=uL(cL);function dL(e,t){switch(e.replace("_","-")){case"af":case"af-ZA":case"bn":case"bn-BD":case"bn-IN":case"bg":case"bg-BG":case"ca":case"ca-AD":case"ca-ES":case"ca-FR":case"ca-IT":case"da":case"da-DK":case"de":case"de-AT":case"de-BE":case"de-CH":case"de-DE":case"de-LI":case"de-LU":case"el":case"el-CY":case"el-GR":case"en":case"en-AG":case"en-AU":case"en-BW":case"en-CA":case"en-DK":case"en-GB":case"en-HK":case"en-IE":case"en-IN":case"en-NG":case"en-NZ":case"en-PH":case"en-SG":case"en-US":case"en-ZA":case"en-ZM":case"en-ZW":case"eo":case"eo-US":case"es":case"es-AR":case"es-BO":case"es-CL":case"es-CO":case"es-CR":case"es-CU":case"es-DO":case"es-EC":case"es-ES":case"es-GT":case"es-HN":case"es-MX":case"es-NI":case"es-PA":case"es-PE":case"es-PR":case"es-PY":case"es-SV":case"es-US":case"es-UY":case"es-VE":case"et":case"et-EE":case"eu":case"eu-ES":case"eu-FR":case"fa":case"fa-IR":case"fi":case"fi-FI":case"fo":case"fo-FO":case"fur":case"fur-IT":case"fy":case"fy-DE":case"fy-NL":case"gl":case"gl-ES":case"gu":case"gu-IN":case"ha":case"ha-NG":case"he":case"he-IL":case"hu":case"hu-HU":case"is":case"is-IS":case"it":case"it-CH":case"it-IT":case"ku":case"ku-TR":case"lb":case"lb-LU":case"ml":case"ml-IN":case"mn":case"mn-MN":case"mr":case"mr-IN":case"nah":case"nb":case"nb-NO":case"ne":case"ne-NP":case"nl":case"nl-AW":case"nl-BE":case"nl-NL":case"nn":case"nn-NO":case"no":case"om":case"om-ET":case"om-KE":case"or":case"or-IN":case"pa":case"pa-IN":case"pa-PK":case"pap":case"pap-AN":case"pap-AW":case"pap-CW":case"ps":case"ps-AF":case"pt":case"pt-BR":case"pt-PT":case"so":case"so-DJ":case"so-ET":case"so-KE":case"so-SO":case"sq":case"sq-AL":case"sq-MK":case"sv":case"sv-FI":case"sv-SE":case"sw":case"sw-KE":case"sw-TZ":case"ta":case"ta-IN":case"ta-LK":case"te":case"te-IN":case"tk":case"tk-TM":case"ur":case"ur-IN":case"ur-PK":case"zu":case"zu-ZA":return t===1?0:1;case"am":case"am-ET":case"bh":case"fil":case"fil-PH":case"fr":case"fr-BE":case"fr-CA":case"fr-CH":case"fr-FR":case"fr-LU":case"gun":case"hi":case"hi-IN":case"hy":case"hy-AM":case"ln":case"ln-CD":case"mg":case"mg-MG":case"nso":case"nso-ZA":case"ti":case"ti-ER":case"ti-ET":case"wa":case"wa-BE":case"xbr":return t===0||t===1?0:1;case"be":case"be-BY":case"bs":case"bs-BA":case"hr":case"hr-HR":case"ru":case"ru-RU":case"ru-UA":case"sr":case"sr-ME":case"sr-RS":case"uk":case"uk-UA":return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"cs-CZ":case"sk":case"sk-SK":return t==1?0:t>=2&&t<=4?1:2;case"ga":case"ga-IE":return t==1?0:t==2?1:2;case"lt":case"lt-LT":return t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":case"sl-SI":return t%100==1?0:t%100==2?1:t%100==3||t%100==4?2:3;case"mk":case"mk-MK":return t%10==1?0:1;case"mt":case"mt-MT":return t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":case"lv-LV":return t==0?0:t%10==1&&t%100!=11?1:2;case"pl":case"pl-PL":return t==1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":case"cy-GB":return t==1?0:t==2?1:t==8||t==11?2:3;case"ro":case"ro-RO":return t==1?0:t==0||t%100>0&&t%100<20?1:2;case"ar":case"ar-AE":case"ar-BH":case"ar-DZ":case"ar-EG":case"ar-IN":case"ar-IQ":case"ar-JO":case"ar-KW":case"ar-LB":case"ar-LY":case"ar-MA":case"ar-OM":case"ar-QA":case"ar-SA":case"ar-SD":case"ar-SS":case"ar-SY":case"ar-TN":case"ar-YE":return t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function fL(e,t,n){let r=e.split("|");const s=hL(r,t);if(s!==null)return s.trim();r=mL(r);const a=dL(n,t);return r.length===1||!r[a]?r[0]:r[a]}function hL(e,t){for(const n of e){let r=pL(n,t);if(r!==null)return r}return null}function pL(e,t){const n=e.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s)||[];if(n.length!==3)return null;const r=n[1],s=n[2];if(r.includes(",")){let[a,o]=r.split(",");if(o==="*"&&t>=parseFloat(a))return s;if(a==="*"&&t<=parseFloat(o))return s;if(t>=parseFloat(a)&&t<=parseFloat(o))return s}return parseFloat(r)===t?s:null}function mL(e){return e.map(t=>t.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}const Yf=(e,t,n={})=>{try{return e(t)}catch{return n}},zf=async(e,t={})=>{try{return(await e).default||t}catch{return t}},gL={};function r0(e){return e||vL()||yL()}function vL(){return typeof process<"u"}function yL(){return typeof gL<"u"}const Za=typeof window>"u";let qa=null;const s0={lang:!Za&&document.documentElement.lang?document.documentElement.lang.replace("-","_"):null,fallbackLang:"en",fallbackMissingTranslations:!1,resolve:e=>new Promise(t=>t({default:{}})),onLoad:e=>{}},_L={shared:!0};function Rt(e,t={}){return Nr.getSharedInstance().trans(e,t)}const bL={install(e,t={}){t={..._L,...t};const n=t.shared?Nr.getSharedInstance(t,!0):new Nr(t);e.config.globalProperties.$t=(r,s)=>n.trans(r,s),e.config.globalProperties.$tChoice=(r,s,a)=>n.transChoice(r,s,a),e.provide("i18n",n)}};class Nr{constructor(t={}){this.activeMessages=Hr({}),this.fallbackMessages=Hr({}),this.reset=()=>{Nr.loaded=[],this.options=s0;for(const[n]of Object.entries(this.activeMessages))this.activeMessages[n]=null;this===qa&&(qa=null)},this.options={...s0,...t},this.options.fallbackMissingTranslations?this.loadFallbackLanguage():this.load()}setOptions(t={},n=!1){return this.options={...this.options,...t},n&&this.load(),this}load(){this[Za?"loadLanguage":"loadLanguageAsync"](this.getActiveLanguage())}loadFallbackLanguage(){if(!Za){this.resolveLangAsync(this.options.resolve,this.options.fallbackLang).then(({default:n})=>{this.applyFallbackLanguage(this.options.fallbackLang,n),this.load()});return}const{default:t}=this.resolveLang(this.options.resolve,this.options.fallbackLang);this.applyFallbackLanguage(this.options.fallbackLang,t),this.loadLanguage(this.getActiveLanguage())}loadLanguage(t,n=!1){const r=Nr.loaded.find(a=>a.lang===t);if(r){this.setLanguage(r);return}const{default:s}=this.resolveLang(this.options.resolve,t);this.applyLanguage(t,s,n,this.loadLanguage)}loadLanguageAsync(t,n=!1,r=!1){var a;r||((a=this.abortController)==null||a.abort(),this.abortController=new AbortController);const s=Nr.loaded.find(o=>o.lang===t);return s?Promise.resolve(this.setLanguage(s)):new Promise((o,u)=>{this.abortController.signal.addEventListener("abort",()=>{o()}),this.resolveLangAsync(this.options.resolve,t).then(({default:d})=>{o(this.applyLanguage(t,d,n,this.loadLanguageAsync))})})}resolveLang(t,n,r={}){return Object.keys(r).length||(r=Yf(t,n)),r0(Za)?{default:{...r,...Yf(t,`php_${n}`)}}:{default:r}}async resolveLangAsync(t,n){let r=Yf(t,n);if(!(r instanceof Promise))return this.resolveLang(t,n,r);if(r0(Za)){const s=await zf(t(`php_${n}`)),a=await zf(r);return new Promise(o=>o({default:{...s,...a}}))}return new Promise(async s=>s({default:await zf(r)}))}applyLanguage(t,n,r=!1,s){if(Object.keys(n).length<1){if(/[-_]/g.test(t)&&!r)return s.call(this,t.replace(/[-_]/g,o=>o==="-"?"_":"-"),!0,!0);if(t!==this.options.fallbackLang)return s.call(this,this.options.fallbackLang,!1,!0)}const a={lang:t,messages:n};return this.addLoadedLang(a),this.setLanguage(a)}applyFallbackLanguage(t,n){for(const[r,s]of Object.entries(n))this.fallbackMessages[r]=s;this.addLoadedLang({lang:this.options.fallbackLang,messages:n})}addLoadedLang(t){const n=Nr.loaded.findIndex(r=>r.lang===t.lang);if(n!==-1){Nr.loaded[n]=t;return}Nr.loaded.push(t)}setLanguage({lang:t,messages:n}){Za||document.documentElement.setAttribute("lang",t.replace("_","-")),this.options.lang=t;for(const[r,s]of Object.entries(n))this.activeMessages[r]=s;for(const[r,s]of Object.entries(this.fallbackMessages))(!this.isValid(n[r])||this.activeMessages[r]===r)&&(this.activeMessages[r]=s);for(const[r]of Object.entries(this.activeMessages))!this.isValid(n[r])&&!this.isValid(this.fallbackMessages[r])&&(this.activeMessages[r]=null);return this.options.onLoad(t),t}getActiveLanguage(){return this.options.lang||this.options.fallbackLang}isLoaded(t){return t??(t=this.getActiveLanguage()),Nr.loaded.some(n=>n.lang.replace(/[-_]/g,"-")===t.replace(/[-_]/g,"-"))}trans(t,n={}){return this.wTrans(t,n).value}wTrans(t,n={}){return hb(()=>{let r=this.findTranslation(t);this.isValid(r)||(r=this.findTranslation(t.replace(/\//g,"."))),this.activeMessages[t]=this.isValid(r)?r:t}),me(()=>this.makeReplacements(this.activeMessages[t],n))}transChoice(t,n,r={}){return this.wTransChoice(t,n,r).value}wTransChoice(t,n,r={}){const s=this.wTrans(t,r);return r.count=n.toString(),me(()=>this.makeReplacements(fL(s.value,n,this.options.lang),r))}findTranslation(t){if(this.isValid(this.activeMessages[t]))return this.activeMessages[t];if(this.activeMessages[`${t}.0`]!==void 0){const r=Object.entries(this.activeMessages).filter(s=>s[0].startsWith(`${t}.`)).map(s=>s[1]);return Hr(r)}return this.activeMessages[t]}makeReplacements(t,n){const r=s=>s.charAt(0).toUpperCase()+s.slice(1);return Object.entries(n||[]).sort((s,a)=>s[0].length>=a[0].length?-1:1).forEach(([s,a])=>{a=a.toString(),t=(t||"").replace(new RegExp(`:${s}`,"g"),a).replace(new RegExp(`:${s.toUpperCase()}`,"g"),a.toUpperCase()).replace(new RegExp(`:${r(s)}`,"g"),r(a))}),t}isValid(t){return t!=null}static getSharedInstance(t,n=!1){return(qa==null?void 0:qa.setOptions(t,n))||(qa=new Nr(t))}}Nr.loaded=[];function Hi(){const e=_=>{const C={};return _==null||_.forEach(U=>{C[U.id]=U.name}),C},t=me(()=>["Activity overview","Who is the activity for","Organiser"]),n=me(()=>[{id:"coding-camp",name:"Coding camp"},{id:"summer-camp",name:"Summercamp"},{id:"weekend-course",name:"Weekend course"},{id:"evening-course",name:"Evening course"},{id:"careerday",name:"Careerday"},{id:"university-visit",name:"University visit"},{id:"coding-home",name:"Coding@Home"},{id:"code-week-challenge",name:"Code Week Challenge"},{id:"competition",name:"Competition"},{id:"other",name:"Other (e.g. Group work, Seminars, Workshops"}]),r=me(()=>e(n.value)),s=me(()=>[{id:"open-online",name:Rt("event.activitytype.open-online")},{id:"invite-online",name:Rt("event.activitytype.invite-online")},{id:"open-in-person",name:Rt("event.activitytype.open-in-person")},{id:"invite-in-person",name:Rt("event.activitytype.invite-in-person")},{id:"other",name:Rt("event.organizertype.other")}]),a=me(()=>e(s.value)),o=me(()=>({daily:"Daily",weekly:"Weekly",monthly:"Monthly"})),u=me(()=>[{id:"0-1",name:Rt("event.duration.0-1-hour")},{id:"1-2",name:Rt("event.duration.1-2-hours")},{id:"2-4",name:Rt("event.duration.2-4-hours")},{id:"over-4",name:Rt("event.duration.more-than-4-hours")}]),d=me(()=>e(u.value)),h=me(()=>[{id:"consecutive",name:"Consecutive learning over multiple sessions"},{id:"individual",name:"Individual, stand-alone lessons under a common theme/joint event."}]),f=me(()=>e(h.value)),p=me(()=>[{id:"under-5",name:"Under 5 - Early learners"},{id:"6-9",name:"6-9 - Primary"},{id:"10-12",name:"10-12 - Upper primary"},{id:"13-15",name:"13-15 - Lower secondary"},{id:"16-18",name:"16-18 - Upper secondary"},{id:"19-25",name:"19-25 - Young Adults"},{id:"over-25",name:"Over 25 - Adults"}]),m=me(()=>e(p.value)),y=me(()=>[{id:"school",name:Rt("event.organizertype.school")},{id:"library",name:Rt("event.organizertype.library")},{id:"non profit",name:Rt("event.organizertype.non profit")},{id:"private business",name:Rt("event.organizertype.private business")},{id:"other",name:Rt("event.organizertype.other")}]),w=me(()=>e(y.value));return{stepTitles:t,activityFormatOptions:n,activityFormatOptionsMap:r,activityTypeOptions:s,activityTypeOptionsMap:a,recurringFrequentlyMap:o,durationOptions:u,durationOptionsMap:d,recurringTypeOptions:h,recurringTypeOptionsMap:f,ageOptions:p,ageOptionsMap:m,organizerTypeOptions:y,organizerTypeOptionsMap:w}}const vt=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},wL={props:{contentClass:{type:String},position:{type:String,default:"top",validator:e=>["top","right","bottom","left"].includes(e)}},setup(e){const t=fe(!1),n=me(()=>{switch(e.position){case"top":return"bottom-full pb-2 left-1/2 -translate-x-1/2";case"right":return"left-full pl-2 top-1/2 -translate-y-1/2";case"bottom":return"top-full pt-2 left-1/2 -translate-x-1/2";case"left":return"right-full pr-2 top-1/2 -translate-y-1/2";default:return""}}),r=me(()=>{switch(e.position){case"top":return"absolute left-1/2 bottom-0 -translate-x-1/2 translate-y-2 border-8 border-transparent border-t-gray-800";case"right":return"absolute top-1/2 left-0 -translate-y-1/2 -translate-x-2 border-8 border-transparent border-r-gray-800";case"bottom":return"absolute left-1/2 top-0 -translate-x-1/2 -translate-y-2 border-8 border-transparent border-b-gray-800";case"left":return"absolute top-1/2 right-0 -translate-y-1/2 translate-x-2 border-8 border-transparent border-l-gray-800";default:return""}});return{show:t,positionClass:n,arrowClass:r}}},xL={class:"w-full px-3 py-2 rounded-lg bg-gray-800 text-white text-sm"};function kL(e,t,n,r,s,a){return k(),I("div",{class:"relative inline-block",onMouseenter:t[0]||(t[0]=o=>r.show=!0),onMouseleave:t[1]||(t[1]=o=>r.show=!1)},[Le(e.$slots,"trigger",{},void 0,!0),r.show?(k(),I("div",{key:0,class:Fe(["absolute z-10 break-words",r.positionClass,n.contentClass]),role:"tooltip"},[v("div",xL,[Le(e.$slots,"content",{},void 0,!0)]),v("div",{class:Fe(["tooltip-arrow",r.arrowClass])},null,2)],2)):se("",!0)],32)}const F1=vt(wL,[["render",kL],["__scopeId","data-v-ad76dce9"]]),SL={props:{horizontalBreakpoint:String,horizontal:Boolean,label:String,name:String,names:Array,errors:Object},components:{Tooltip:F1},setup(e,{slots:t}){const n=me(()=>{const r=[],s=[];return e.name&&s.push(e.name),e.names&&s.push(...e.names),s.forEach(a=>{var o,u;(o=e.errors)!=null&&o[a]&&r.push(...(u=e.errors)==null?void 0:u[a])}),cr.uniq(r)});return{slots:t,errorList:n}}},TL=["for"],AL={key:0,class:"flex item-start gap-3 text-error-200 font-semibold mt-2.5 empty:hidden"},CL={class:"leading-5"};function EL(e,t,n,r,s,a){var u;const o=at("Tooltip");return k(),I("div",{class:Fe(["flex items-start flex-col gap-x-3 gap-y-2",[n.horizontalBreakpoint==="md"&&"md:gap-10 md:flex-row"]])},[v("label",{for:`id_${n.name||((u=n.names)==null?void 0:u[0])||""}`,class:Fe(["flex items-center font-normal text-xl flex-1 text-slate-500 'w-full",[n.horizontalBreakpoint==="md"&&"md:min-h-[48px] md:w-1/3"]])},[v("span",null,[ut(ce(n.label)+" ",1),r.slots.tooltip?(k(),it(o,{key:0,class:"ml-1 translate-y-1",contentClass:"w-64"},{trigger:Te(()=>t[0]||(t[0]=[v("img",{class:"text-dark-blue w-6 h-6",src:"/images/icon_question.svg"},null,-1)])),content:Te(()=>[Le(e.$slots,"tooltip")]),_:3})):se("",!0)])],10,TL),v("div",{class:Fe(["h-full w-full",[n.horizontalBreakpoint==="md"&&"md:w-2/3"]])},[Le(e.$slots,"default"),r.errorList.length?(k(),I("div",AL,[t[1]||(t[1]=v("img",{src:"/images/icon_error.svg"},null,-1)),(k(!0),I(Ie,null,Ze(r.errorList,d=>(k(),I("div",CL,ce(d),1))),256))])):se("",!0),Le(e.$slots,"end")],2)],2)}const id=vt(SL,[["render",EL]]);function Kf(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function OL(e){return(...t)=>!e(...t)}function ML(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function RL(e){return e.filter(t=>!t.$isLabel)}function Gf(e,t){return n=>n.reduce((r,s)=>s[e]&&s[e].length?(r.push({$groupLabel:s[t],$isLabel:!0}),r.concat(s[e])):r,[])}const i0=(...e)=>t=>e.reduce((n,r)=>r(n),t);var DL={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return Kf(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1},filteringSortFunc:{type:Function,default:null}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):this.filterOptions(n,t,this.label,this.customLabel):n=this.groupValues?Gf(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(OL(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:{handler(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},deep:!0},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return i0(this.filterGroups(t,n,this.groupValues,this.groupLabel,this.customLabel),Gf(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return i0(Gf(this.groupValues,this.groupLabel),RL)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(Kf(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return Kf(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.trackBy?t[this.groupValues].map(s=>s[this.trackBy]):t[this.groupValues],r=this.internalValue.filter(s=>n.indexOf(this.trackBy?s[this.trackBy]:s)===-1);this.$emit("update:modelValue",r)}else{const n=t[this.groupValues].filter(r=>!(this.isOptionDisabled(r)||this.isSelected(r)));this.max&&n.splice(this.max-this.internalValue.length),this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){const r=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",r)}else this.$emit("update:modelValue",null);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.preventAutofocus||typeof this.$el<"u"&&this.$el.focus(),this.$emit("open",this.id))},deactivate(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search!==null&&typeof this.$refs.search<"u"&&this.$refs.search.blur():typeof this.$el<"u"&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window>"u")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))},filterOptions(e,t,n,r){return t?e.filter(s=>ML(r(s,n),t)).sort((s,a)=>typeof this.filteringSortFunc=="function"?this.filteringSortFunc(s,a):r(s,n).length-r(a,n).length):e},filterGroups(e,t,n,r,s){return a=>a.map(o=>{if(!o[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const u=this.filterOptions(o[n],e,t,s);return u.length?{[r]:o[r],[n]:u}:[]})}}},PL={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(r=>r[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},Ta={name:"vue-multiselect",mixins:[DL,PL],compatConfig:{MODE:3,ATTR_ENUMERATED_COERCION:!1},props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},spellcheck:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0},required:{type:Boolean,default:!1}},computed:{hasOptionGroup(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)},isRequired(){return this.required===!1?!1:this.internalValue.length<=0}}};const LL=["tabindex","aria-expanded","aria-owns","aria-activedescendant"],IL={ref:"tags",class:"multiselect__tags"},NL={class:"multiselect__tags-wrap"},VL=["textContent"],FL=["onKeypress","onMousedown"],$L=["textContent"],BL={class:"multiselect__spinner"},HL=["name","id","spellcheck","placeholder","required","value","disabled","tabindex","aria-label","aria-controls"],UL=["id","aria-multiselectable"],jL={key:0},WL={class:"multiselect__option"},qL=["aria-selected","id","role"],YL=["onClick","onMouseenter","data-select","data-selected","data-deselect"],zL=["data-select","data-deselect","onMouseenter","onMousedown"],KL={class:"multiselect__option"},GL={class:"multiselect__option"};function JL(e,t,n,r,s,a){return k(),I("div",{tabindex:e.searchable?-1:n.tabindex,class:Fe([{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":a.isAbove,"multiselect--has-options-group":a.hasOptionGroup},"multiselect"]),onFocus:t[14]||(t[14]=o=>e.activate()),onBlur:t[15]||(t[15]=o=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=$n(Ct(o=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=$n(Ct(o=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=$n(Ct(o=>e.addPointerElement(o),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=$n(o=>e.deactivate(),["esc"])),role:"combobox","aria-expanded":e.isOpen,"aria-owns":"listbox-"+e.id,"aria-activedescendant":e.isOpen&&e.pointer!==null?e.id+"-"+e.pointer:null},[Le(e.$slots,"caret",{toggle:e.toggle},()=>[v("div",{onMousedown:t[0]||(t[0]=Ct(o=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),Le(e.$slots,"clear",{search:e.search}),v("div",IL,[Le(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:a.visibleValues,isOpen:e.isOpen},()=>[Dn(v("div",NL,[(k(!0),I(Ie,null,Ze(a.visibleValues,(o,u)=>Le(e.$slots,"tag",{option:o,search:e.search,remove:e.removeElement},()=>[(k(),I("span",{class:"multiselect__tag",key:u,onMousedown:t[1]||(t[1]=Ct(()=>{},["prevent"]))},[v("span",{textContent:ce(e.getOptionLabel(o))},null,8,VL),v("i",{tabindex:"1",onKeypress:$n(Ct(d=>e.removeElement(o),["prevent"]),["enter"]),onMousedown:Ct(d=>e.removeElement(o),["prevent"]),class:"multiselect__tag-icon"},null,40,FL)],32))])),256))],512),[[Vr,a.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?Le(e.$slots,"limit",{key:0},()=>[v("strong",{class:"multiselect__strong",textContent:ce(n.limitText(e.internalValue.length-n.limit))},null,8,$L)]):se("v-if",!0)]),he(vs,{name:"multiselect__loading"},{default:Te(()=>[Le(e.$slots,"loading",{},()=>[Dn(v("div",BL,null,512),[[Vr,n.loading]])])]),_:3}),e.searchable?(k(),I("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:n.spellcheck,placeholder:e.placeholder,required:a.isRequired,style:bn(a.inputStyle),value:e.search,disabled:n.disabled,tabindex:n.tabindex,"aria-label":n.name+"-searchbox",onInput:t[2]||(t[2]=o=>e.updateSearch(o.target.value)),onFocus:t[3]||(t[3]=Ct(o=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=Ct(o=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=$n(o=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=$n(Ct(o=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=$n(Ct(o=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=$n(Ct(o=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=$n(Ct(o=>e.addPointerElement(o),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,HL)):se("v-if",!0),a.isSingleLabelVisible?(k(),I("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=Ct((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Le(e.$slots,"singleLabel",{option:a.singleValue},()=>[ut(ce(e.currentOptionLabel),1)])],32)):se("v-if",!0),a.isPlaceholderVisible?(k(),I("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=Ct((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Le(e.$slots,"placeholder",{},()=>[ut(ce(e.placeholder),1)])],32)):se("v-if",!0)],512),he(vs,{name:"multiselect",persisted:""},{default:Te(()=>[Dn(v("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...o)=>e.activate&&e.activate(...o)),tabindex:"-1",onMousedown:t[13]||(t[13]=Ct(()=>{},["prevent"])),style:bn({maxHeight:e.optimizedHeight+"px"}),ref:"list"},[v("ul",{class:"multiselect__content",style:bn(a.contentStyle),role:"listbox",id:"listbox-"+e.id,"aria-multiselectable":e.multiple},[Le(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(k(),I("li",jL,[v("span",WL,[Le(e.$slots,"maxElements",{},()=>[ut("Maximum of "+ce(e.max)+" options selected. First remove a selected option to select another.",1)])])])):se("v-if",!0),!e.max||e.internalValue.length(k(),I("li",{class:"multiselect__element",key:u,"aria-selected":e.isSelected(o),id:e.id+"-"+u,role:o&&(o.$isLabel||o.$isDisabled)?null:"option"},[o&&(o.$isLabel||o.$isDisabled)?se("v-if",!0):(k(),I("span",{key:0,class:Fe([e.optionHighlight(u,o),"multiselect__option"]),onClick:Ct(d=>e.select(o),["stop"]),onMouseenter:Ct(d=>e.pointerSet(u),["self"]),"data-select":o&&o.isTag?e.tagPlaceholder:a.selectLabelText,"data-selected":a.selectedLabelText,"data-deselect":a.deselectLabelText},[Le(e.$slots,"option",{option:o,search:e.search,index:u},()=>[v("span",null,ce(e.getOptionLabel(o)),1)])],42,YL)),o&&(o.$isLabel||o.$isDisabled)?(k(),I("span",{key:1,"data-select":e.groupSelect&&a.selectGroupLabelText,"data-deselect":e.groupSelect&&a.deselectGroupLabelText,class:Fe([e.groupHighlight(u,o),"multiselect__option"]),onMouseenter:Ct(d=>e.groupSelect&&e.pointerSet(u),["self"]),onMousedown:Ct(d=>e.selectGroup(o),["prevent"])},[Le(e.$slots,"option",{option:o,search:e.search,index:u},()=>[v("span",null,ce(e.getOptionLabel(o)),1)])],42,zL)):se("v-if",!0)],8,qL))),128)):se("v-if",!0),Dn(v("li",null,[v("span",KL,[Le(e.$slots,"noResult",{search:e.search},()=>[t[20]||(t[20]=ut("No elements found. Consider changing the search query."))])])],512),[[Vr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),Dn(v("li",null,[v("span",GL,[Le(e.$slots,"noOptions",{},()=>[t[21]||(t[21]=ut("List is empty."))])])],512),[[Vr,n.showNoOptions&&(e.options.length===0||a.hasOptionGroup===!0&&e.filteredOptions.length===0)&&!e.search&&!n.loading]]),Le(e.$slots,"afterList")],12,UL)],36),[[Vr,e.isOpen]])]),_:3})],42,LL)}Ta.render=JL;const ZL={props:{multiple:Boolean,returnObject:Boolean,allowEmpty:{type:Boolean,default:!0},modelValue:[Array,String],deselectLabel:String,options:Array,idName:{type:String,default:"id"},labelField:{type:String,default:"name"},theme:{type:String,default:"new"},largeText:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1}},components:{Multiselect:Ta},emits:["update:modelValue","onChange"],setup(e,{emit:t}){const n=fe(),r=a=>{if(e.multiple){const o=e.returnObject?a:a.map(u=>u[e.idName]);t("update:modelValue",o),t("onChange",o)}else{const o=e.returnObject?a:a[e.idName];t("update:modelValue",o),t("onChange",o)}},s=a=>{var o,u;return e.multiple?(o=n.value)==null?void 0:o.some(d=>String(d[e.idName])===String(a[e.idName])):String((u=n.value)==null?void 0:u[e.idName])===String(a[e.idName])};return Wt([()=>e.multiple,()=>e.returnObject,()=>e.options,()=>e.modelValue],()=>{var a,o;e.returnObject?n.value=e.modelValue:e.multiple?Array.isArray(e.modelValue)&&(n.value=(a=e.modelValue)==null?void 0:a.map(u=>e.options.find(d=>d[e.idName]===u))):n.value=(o=e.options)==null?void 0:o.find(u=>u[e.idName]===e.modelValue)},{immediate:!0}),{selectedValues:n,isSelectedOption:s,onUpdateModalValue:r}}},XL={class:"flex justify-between items-center cursor-pointer"},QL={class:"whitespace-normal leading-6"},eI=["for"],tI={key:0,class:"h-4 w-4 text-[#05603A]",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},nI={class:"flex gap-2.5 items-center rounded-full bg-dark-blue text-white px-4 py-2"},rI={class:"font-semibold leading-4"},sI=["onClick"],iI={class:"flex gap-4 items-center cursor-pointer"},aI={class:"whitespace-normal leading-6"},lI={key:0,class:"h-5 w-5 text-slate-600",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},oI=["onMousedown"];function uI(e,t,n,r,s,a){const o=at("multiselect");return k(),it(o,{class:Fe(["multi-select",[n.multiple&&"multiple",n.theme==="new"&&"new-theme large-text",n.largeText&&"large-text"]]),modelValue:r.selectedValues,"onUpdate:modelValue":[t[0]||(t[0]=u=>r.selectedValues=u),r.onUpdateModalValue],"track-by":n.idName,label:n.labelField,multiple:n.multiple,"preselect-first":!1,"close-on-select":!n.multiple,"clear-on-select":!n.multiple,"preserve-search":!0,searchable:n.searchable,"allow-empty":n.allowEmpty,"deselect-label":n.deselectLabel,options:n.options},Bn({tag:Te(({option:u,remove:d})=>[v("span",nI,[v("span",rI,ce(u.name),1),v("span",{onClick:h=>d(u)},t[2]||(t[2]=[v("img",{src:"/images/close-white.svg"},null,-1)]),8,sI)])]),caret:Te(({toggle:u})=>[v("div",{class:"cursor-pointer absolute top-1/2 right-4 -translate-y-1/2",onMousedown:Ct(u,["prevent"])},t[4]||(t[4]=[v("img",{src:"/images/select-arrow.svg"},null,-1)]),40,oI)]),noResult:Te(()=>[t[5]||(t[5]=v("div",{class:"text-gray-400 text-center"},"No elements found",-1))]),_:2},[n.multiple&&n.theme==="new"?{name:"option",fn:Te(({option:u})=>[v("div",XL,[v("span",QL,ce(u[n.labelField]),1),v("div",{class:Fe(["flex-shrink-0 h-6 w-6 border-2 bg-white flex items-center justify-center cursor-pointer rounded",[r.isSelectedOption(u)?"border-[#05603A]":"border-dark-blue-200"]]),for:e.id},[r.isSelectedOption(u)?(k(),I("svg",tI,t[1]||(t[1]=[v("path",{d:"M5 13l4 4L19 7"},null,-1)]))):se("",!0)],10,eI)])]),key:"0"}:void 0,n.multiple?void 0:{name:"option",fn:Te(({option:u})=>[v("div",iI,[v("span",aI,ce(u[n.labelField]),1),v("div",null,[r.isSelectedOption(u)?(k(),I("svg",lI,t[3]||(t[3]=[v("path",{d:"M5 13l4 4L19 7"},null,-1)]))):se("",!0)])])]),key:"1"}]),1032,["class","modelValue","track-by","label","multiple","close-on-select","clear-on-select","searchable","allow-empty","deselect-label","options","onUpdate:modelValue"])}const ad=vt(ZL,[["render",uI]]),cI={props:{modelValue:[String,Number],name:String,min:Number,max:Number,type:{type:String,default:"text"}},emits:["update:modelValue","onChange","onBlur"],setup(e,{emit:t}){const n=fe(e.modelValue);return Wt(()=>e.modelValue,()=>{n.value=e.modelValue}),{localValue:n,onChange:a=>{let o=a.target.value;e.type==="number"&&(o=o&&Number(o),e.min!==void 0&&e.min!==null&&(o=Math.max(o,e.min)),e.max!==void 0&&e.max!==null&&(o=Math.min(o,e.max))),Hn(()=>{t("update:modelValue",o),t("onChange",o)})},onBlur:()=>{t("onBlur")}}}},dI=["id","type","min","max","name"];function fI(e,t,n,r,s,a){return Dn((k(),I("input",{class:"w-full border-2 border-solid border-dark-blue-200 rounded-full h-12 px-6 text-xl text-slate-600",id:`id_${n.name}`,type:n.type,min:n.min,max:n.max,name:n.name,"onUpdate:modelValue":t[0]||(t[0]=o=>r.localValue=o),onInput:t[1]||(t[1]=(...o)=>r.onChange&&r.onChange(...o)),onBlur:t[2]||(t[2]=(...o)=>r.onBlur&&r.onBlur(...o))},null,40,dI)),[[kp,r.localValue]])}const ld=vt(cI,[["render",fI]]),hI={props:{modelValue:String,name:String,label:String,value:String},emits:["update:modelValue"],setup(e,{emit:t}){return{onChange:r=>{t("update:modelValue",r.target.value)}}}},pI={class:"flex items-center gap-2 cursor-pointer"},mI=["id","name","value","checked"],gI=["for"],vI={class:"cursor-pointer text-xl text-slate-500"};function yI(e,t,n,r,s,a){return k(),I("label",pI,[v("input",{class:"peer hidden",type:"radio",id:`${n.name}-${n.value}`,name:n.name,value:n.value,checked:n.modelValue===n.value,onChange:t[0]||(t[0]=(...o)=>r.onChange&&r.onChange(...o))},null,40,mI),v("div",{class:"h-8 w-8 rounded-full border-2 bg-white border-dark-blue-200 flex items-center justify-center cursor-pointer peer-checked:before:content-[''] peer-checked:before:block peer-checked:before:w-3 peer-checked:before:h-3 peer-checked:before:rounded-full peer-checked:before:bg-slate-600",for:`${n.name}-${n.value}`},null,8,gI),v("span",vI,ce(n.label),1)])}const Wp=vt(hI,[["render",yI]]),_I={props:{modelValue:String,name:String,placeholder:String,height:{type:Number,default:400}},emits:["update:modelValue","onChange"],setup(e,{emit:t}){const n=a=>{t("update:modelValue",a),t("onChange",a)},r=()=>{const a="/js/tinymce/tinymce.min.js";return new Promise((o,u)=>{if(document.querySelector(`script[src="${a}"]`))return o();const d=document.createElement("script");d.src=a,d.onload=()=>o(),d.onerror=()=>u(new Error(`Failed to load script ${a}`)),document.head.appendChild(d)})},s=async()=>{try{await r()}catch(a){console.log("Can't load tinymce scrip:",a)}tinymce.init({selector:`#id_${e.name}`,height:e.height,width:"100%",setup:a=>{a.on("init",()=>{a.setContent(e.modelValue||"")}),a.on("change input",()=>{const o=a.getContent();a.save(),n(o)})}})};return Ft(()=>{s()}),{}}},bI={class:"custom-tinymce"},wI=["id","name","placeholder"];function xI(e,t,n,r,s,a){return k(),I("div",bI,[v("textarea",{class:"hidden",cols:"40",id:`id_${n.name}`,name:n.name,placeholder:n.placeholder,rows:"10"},null,8,wI)])}const kI=vt(_I,[["render",xI]]),SI={props:{errors:Object,formValues:Object,themes:Array,location:Object,countries:Array},components:{FieldWrapper:id,SelectField:ad,InputField:ld,RadioField:Wp,TinymceField:kI},setup(e,{emit:t}){const{activityFormatOptions:n,activityTypeOptions:r,durationOptions:s,recurringTypeOptions:a}=Hi();return{activityFormatOptions:n,activityTypeOptions:r,durationOptions:s,recurringTypeOptions:a,handleLocationChange:({location:u,geoposition:d,country_iso:h})=>{e.formValues.location=u,e.formValues.geoposition=d;const f=e.countries.find(({iso:p})=>p===h);e.formValues.country_iso=f}}}},TI={class:"flex flex-col gap-4 w-full"},AI={class:"w-full md:w-1/2"},CI={class:"w-full flex px-3 justify-between items-center text-gray-700 whitespace-nowrap rounded-3xl border-2 border-dark-blue-200 h-[50px] bg-white"},EI={class:"flex items-center gap-8 min-h-[48px]"},OI={key:0,class:"w-full bg-dark-blue-50 border border-dark-blue-100 rounded-2xl p-4 mt-4"},MI={class:"flex items-center flex-wrap gap-8"};function RI(e,t,n,r,s,a){const o=at("InputField"),u=at("FieldWrapper"),d=at("SelectField"),h=at("autocomplete-geo"),f=at("date-time"),p=at("RadioField"),m=at("TinymceField");return k(),I("div",TI,[he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.title.label")}*`,name:"title",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.title,"onUpdate:modelValue":t[0]||(t[0]=y=>n.formValues.title=y),required:"",name:"title",placeholder:e.$t("event.title.placeholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:"Specify the format of the activity",name:"activity_format",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.activity_format,"onUpdate:modelValue":t[1]||(t[1]=y=>n.formValues.activity_format=y),multiple:"",name:"activity_format",options:r.activityFormatOptions},null,8,["modelValue","options"])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.activitytype.label")}*`,name:"activity_type",errors:n.errors},{end:Te(()=>t[14]||(t[14]=[v("div",{class:"w-full flex gap-4 bg-dark-blue-50 border border-dark-blue-100 rounded-2xl p-4 mt-2.5"},[v("img",{class:"flex-shrink-0 mt-1 w-6 h-6",src:"/images/icon_info.svg"}),v("span",{class:"text-slate-500 text-xl"}," Any address added below won’t be shown publicly for invite-only actitivities. ")],-1)])),default:Te(()=>[he(d,{modelValue:n.formValues.activity_type,"onUpdate:modelValue":t[2]||(t[2]=y=>n.formValues.activity_type=y),required:"",name:"activity_type",options:r.activityTypeOptions},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.address.label")} ${["open-online","invite-online"].includes(n.formValues.activity_type)?"(optional)":"*"}`,name:"location",errors:n.errors},{default:Te(()=>[he(h,{class:"custom-geo-input",name:"location",placeholder:e.$t("event.address.placeholder"),location:n.formValues.location,value:n.formValues.location,geoposition:n.formValues.geoposition,onOnChange:r.handleLocationChange},null,8,["placeholder","location","value","geoposition","onOnChange"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:"Activity duration*",name:"duration",errors:n.errors},{default:Te(()=>[v("div",AI,[he(d,{modelValue:n.formValues.duration,"onUpdate:modelValue":t[3]||(t[3]=y=>n.formValues.duration=y),required:"",name:"duration",options:r.durationOptions},null,8,["modelValue","options"])])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Date*",names:["start_date","end_date"],errors:n.errors},{default:Te(()=>[v("div",CI,[he(f,{name:"start_date",placeholder:e.$t("event.start.label"),flow:["calendar","time"],value:n.formValues.start_date,onOnChange:t[4]||(t[4]=y=>n.formValues.start_date=y)},null,8,["placeholder","value"]),t[15]||(t[15]=v("span",null,"-",-1)),he(f,{name:"end_date",placeholder:e.$t("event.end.label"),flow:["calendar","time"],value:n.formValues.end_date,onOnChange:t[5]||(t[5]=y=>n.formValues.end_date=y)},null,8,["placeholder","value"])])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Is it a recurring event?*",name:"recurring_event",errors:n.errors},{default:Te(()=>[v("div",EI,[he(p,{modelValue:n.formValues.is_recurring_event_local,"onUpdate:modelValue":t[6]||(t[6]=y=>n.formValues.is_recurring_event_local=y),name:"is_recurring_event_local",value:"true",label:"Yes"},null,8,["modelValue"]),he(p,{modelValue:n.formValues.is_recurring_event_local,"onUpdate:modelValue":t[7]||(t[7]=y=>n.formValues.is_recurring_event_local=y),name:"is_recurring_event_local",value:"false",label:"No"},null,8,["modelValue"])]),n.formValues.is_recurring_event_local==="true"?(k(),I("div",OI,[t[16]||(t[16]=v("label",{class:"block text-slate-500 text-xl font-semibold mb-2"}," How frequently? ",-1)),v("div",MI,[he(p,{modelValue:n.formValues.recurring_event,"onUpdate:modelValue":t[8]||(t[8]=y=>n.formValues.recurring_event=y),name:"recurring_event",value:"daily",label:"Daily"},null,8,["modelValue"]),he(p,{modelValue:n.formValues.recurring_event,"onUpdate:modelValue":t[9]||(t[9]=y=>n.formValues.recurring_event=y),name:"recurring_event",value:"weekly",label:"Weekly"},null,8,["modelValue"]),he(p,{modelValue:n.formValues.recurring_event,"onUpdate:modelValue":t[10]||(t[10]=y=>n.formValues.recurring_event=y),name:"recurring_event",value:"monthly",label:"Monthly"},null,8,["modelValue"])]),t[17]||(t[17]=v("label",{class:"block text-slate-500 text-xl font-semibold mb-2 mt-6"}," What type of recurring activity? ",-1)),he(d,{modelValue:n.formValues.recurring_type,"onUpdate:modelValue":t[11]||(t[11]=y=>n.formValues.recurring_type=y),name:"recurring_type",options:r.recurringTypeOptions},null,8,["modelValue","options"])])):se("",!0)]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Theme*",name:"theme",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.theme,"onUpdate:modelValue":t[12]||(t[12]=y=>n.formValues.theme=y),multiple:"",required:"",name:"theme",placeholder:"Select theme",options:n.themes},null,8,["modelValue","options"])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Activity description*",name:"description",errors:n.errors},{default:Te(()=>[he(m,{modelValue:n.formValues.description,"onUpdate:modelValue":t[13]||(t[13]=y=>n.formValues.description=y),name:"description"},null,8,["modelValue"])]),_:1},8,["errors"])])}const DI=vt(SI,[["render",RI]]),PI=fn({emits:["loaded"],methods:{onChange(e){if(!e.target.files.length)return;let t=e.target.files[0],n=new FileReader;n.readAsDataURL(t),n.onload=r=>{let s=r.target.result;this.$emit("loaded",{src:s,file:t})}}}});function LI(e,t,n,r,s,a){return k(),I("div",null,[v("input",{id:"image",type:"file",accept:"image/*",onChange:t[0]||(t[0]=(...o)=>e.onChange&&e.onChange(...o))},null,32),t[1]||(t[1]=v("label",{for:"image"},"Choose a file",-1)),t[2]||(t[2]=ut(" Max size: 1 Mb "))])}const qp=vt(PI,[["render",LI]]);function II(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(s){s(n)}),(r=e.get("*"))&&r.slice().map(function(s){s(t,n)})}}}const ei=II(),NI={props:{message:{type:Object,default:null}},setup(e){const t=fe(""),n=fe(!1),r=fe(""),s=u=>{u&&(t.value=u.message,r.value=u.level.charAt(0).toUpperCase()+u.level.slice(1),n.value=!0,a())},a=()=>{setTimeout(()=>{n.value=!1},3e3)},o=me(()=>({success:r.value.toLowerCase()==="success",error:r.value.toLowerCase()==="error"}));return Ft(()=>{e.message&&s(e.message),ei.on("flash",s)}),ii(()=>{ei.off("flash",s)}),{body:t,show:n,level:r,flashClass:o}}},VI={key:0,class:"codeweek-flash-message",role:"alert"},FI={class:"level"},$I={class:"body"};function BI(e,t,n,r,s,a){return r.show?(k(),I("div",VI,[v("div",{class:Fe(["content",r.flashClass])},[v("div",FI,ce(r.level)+"!",1),v("div",$I,ce(r.body),1)],2)])):se("",!0)}const od=vt(NI,[["render",BI],["__scopeId","data-v-09461b5c"]]),HI={components:{ImageUpload:qp,Flash:od},props:{name:{type:String,default:"picture"},image:{type:String,default:""},picture:{type:String,default:""}},emits:["onChange"],setup(e,{emit:t}){const n=fe(!1),r=fe(null),s=fe(e.picture||""),a=fe(""),o=()=>{var m;(m=r.value)==null||m.click()},u=()=>{n.value=!0},d=()=>{n.value=!1},h=m=>{n.value=!1;const[y]=m.dataTransfer.files;y&&p(y)},f=m=>{const[y]=m.target.files;y&&p(y)},p=m=>{let y=new FormData;y.append("picture",m),St.post("/api/events/picture",y).then(w=>{a.value="",s.value=w.data.path,ei.emit("flash",{message:"Picture uploaded!",level:"success"}),t("onChange",w.data)}).catch(w=>{w.response.data.errors&&w.response.data.errors.picture?a.value=w.response.data.errors.picture[0]:a.value="Image is too large. Maximum is 1Mb",ei.emit("flash",{message:a.value,level:"error"})})};return{fileInput:r,pictureClone:s,error:a,onTriggerFileInput:o,onDragOver:u,onDragLeave:d,onDrop:h,onFileChange:f}}},UI=["src"],jI={key:0,class:"flex item-start gap-3 text-error-200 font-semibold mt-2.5 empty:hidden"},WI={class:"leading-5"};function qI(e,t,n,r,s,a){const o=at("Flash");return k(),I("div",null,[v("div",null,[v("div",{class:"flex flex-col justify-center items-center gap-2 border-[3px] border-dashed border-dark-blue-200 w-full rounded-2xl py-12 px-8 cursor-pointer",onClick:t[1]||(t[1]=(...u)=>r.onTriggerFileInput&&r.onTriggerFileInput(...u)),onDragover:t[2]||(t[2]=Ct((...u)=>r.onDragOver&&r.onDragOver(...u),["prevent"])),onDragleave:t[3]||(t[3]=(...u)=>r.onDragLeave&&r.onDragLeave(...u)),onDrop:t[4]||(t[4]=Ct((...u)=>r.onDrop&&r.onDrop(...u),["prevent"]))},[v("div",{class:Fe(["mb-4",[!r.pictureClone&&"hidden"]])},[v("img",{src:r.pictureClone,class:"mr-1"},null,8,UI)],2),v("div",{class:Fe([!!r.pictureClone&&"hidden"])},t[5]||(t[5]=[v("img",{class:"w-16 h-16",src:"/images/icon_image.svg"},null,-1)]),2),t[6]||(t[6]=v("span",{class:"text-xl text-slate-500"},[ut(" Drop your image here, or "),v("span",{class:"text-dark-blue font-semibold underline"},"upload")],-1)),t[7]||(t[7]=v("span",{class:"text-xs text-slate-500"}," Max size: 1 Mb, Image formats: .jpg, png ",-1)),v("input",{class:"hidden",type:"file",ref:"fileInput",onChange:t[0]||(t[0]=(...u)=>r.onFileChange&&r.onFileChange(...u))},null,544)],32),r.error?(k(),I("div",jI,[t[8]||(t[8]=v("img",{src:"/images/icon_error.svg"},null,-1)),v("div",WI,ce(r.error),1)])):se("",!0)]),t[9]||(t[9]=vp('
By submitting images through this form, you confirm that:
  • You have obtained all necessary permissions from the school, organisation, and/or parents/guardians of the children and the adults appearing in the photos.
  • You will not submit any images in which the faces of children are directly visible or identifiable. If this is the case, please ensure that the children's faces are appropriately blurred. Submissions that do not comply will not be accepted.
  • You understand and agree that these images will be shared on our website along with the description of the activity and may be use for promotional purposes.
Info: Max size: 1MB
',2)),he(o)])}const $1=vt(HI,[["render",qI]]),YI={props:{errors:Object,formValues:Object,audiences:Array,leadingTeachers:Array},components:{FieldWrapper:id,SelectField:ad,InputField:ld,RadioField:Wp,ImageField:$1},setup(e,{emit:t}){const{ageOptions:n}=Hi();return{leadingTeacherOptions:me(()=>e.leadingTeachers.map(o=>({id:o,name:o}))),ageOptions:n,onPictureChange:o=>{e.formValues.picture=o.imageName,e.formValues.pictureUrl=o.path},handleCorrectCount:o=>{const u=Number(e.formValues.participants_count||"0");Number(e.formValues[o]||"0")>u&&(e.formValues[o]=u)}}}},zI={class:"flex flex-col gap-4 w-full"},KI={class:"w-full flex flex-col gap-4 bg-dark-blue-50 border border-dark-blue-100 rounded-2xl p-4 mt-2.5"},GI={class:"grid grid-cols-1 md:grid-cols-2 gap-x-4 md:gap-x-8 gap-y-4"},JI={class:"flex items-center gap-8 min-h-[48px] h-full"},ZI={class:"flex items-center gap-8 min-h-[48px] h-full"};function XI(e,t,n,r,s,a){const o=at("SelectField"),u=at("FieldWrapper"),d=at("InputField"),h=at("RadioField"),f=at("ImageField");return k(),I("div",zI,[he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.audience_title")}*`,name:"audience",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.audience,"onUpdate:modelValue":t[0]||(t[0]=p=>n.formValues.audience=p),multiple:"",name:"audience",options:n.audiences},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:"Number of participants*",name:"participants_count",errors:n.errors},{end:Te(()=>[v("div",KI,[t[15]||(t[15]=v("div",{class:"w-full flex gap-2 bg-gray-100 rounded p-2 mb-2"},[v("img",{class:"flex-shrink-0 mt-1 w-6 h-6",src:"/images/icon_info.svg"}),v("span",{class:"text-slate-500 text-xl"}," If you do not have clear information, please provide an estimate. ")],-1)),t[16]||(t[16]=v("label",{class:"block text-slate-500 text-xl font-semibold mb-2"}," Of this number, how many are ",-1)),v("div",GI,[he(u,{label:"Males",name:"males_count",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.males_count,"onUpdate:modelValue":t[2]||(t[2]=p=>n.formValues.males_count=p),type:"number",min:0,name:"males_count",placeholder:"Enter number",onOnBlur:t[3]||(t[3]=p=>r.handleCorrectCount("males_count"))},null,8,["modelValue"])]),_:1},8,["errors"]),he(u,{label:"Females",name:"females_count",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.females_count,"onUpdate:modelValue":t[4]||(t[4]=p=>n.formValues.females_count=p),type:"number",min:0,name:"females_count",placeholder:"Enter number",onOnBlur:t[5]||(t[5]=p=>r.handleCorrectCount("females_count"))},null,8,["modelValue"])]),_:1},8,["errors"]),he(u,{label:"Other",name:"other_count",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.other_count,"onUpdate:modelValue":t[6]||(t[6]=p=>n.formValues.other_count=p),type:"number",min:0,name:"other_count",placeholder:"Enter number",onOnBlur:t[7]||(t[7]=p=>r.handleCorrectCount("other_count"))},null,8,["modelValue"])]),_:1},8,["errors"])])])]),default:Te(()=>[he(d,{modelValue:n.formValues.participants_count,"onUpdate:modelValue":t[1]||(t[1]=p=>n.formValues.participants_count=p),type:"number",min:0,required:"",name:"participants_count",placeholder:"Enter number"},null,8,["modelValue"])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Age*",name:"ages",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.ages,"onUpdate:modelValue":t[8]||(t[8]=p=>n.formValues.ages=p),multiple:"",name:"ages",options:r.ageOptions},null,8,["modelValue","options"])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Is this an extracurricular activity?*",name:"is_extracurricular_event",errors:n.errors},{default:Te(()=>[v("div",JI,[he(h,{modelValue:n.formValues.is_extracurricular_event,"onUpdate:modelValue":t[9]||(t[9]=p=>n.formValues.is_extracurricular_event=p),name:"is_extracurricular_event",value:"true",label:"Yes"},null,8,["modelValue"]),he(h,{modelValue:n.formValues.is_extracurricular_event,"onUpdate:modelValue":t[10]||(t[10]=p=>n.formValues.is_extracurricular_event=p),name:"is_extracurricular_event",value:"false",label:"No"},null,8,["modelValue"])])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Is this an activity within the standard school curriculum?",name:"is_standard_school_curriculum",errors:n.errors},{default:Te(()=>[v("div",ZI,[he(h,{modelValue:n.formValues.is_standard_school_curriculum,"onUpdate:modelValue":t[11]||(t[11]=p=>n.formValues.is_standard_school_curriculum=p),name:"is_standard_school_curriculum",value:"true",label:"Yes"},null,8,["modelValue"]),he(h,{modelValue:n.formValues.is_standard_school_curriculum,"onUpdate:modelValue":t[12]||(t[12]=p=>n.formValues.is_standard_school_curriculum=p),name:"is_standard_school_curriculum",value:"false",label:"No"},null,8,["modelValue"])])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:"Code Week 4 All code (optional)",name:"codeweek_for_all_participation_code",errors:n.errors},{tooltip:Te(()=>t[17]||(t[17]=[ut(" If you have received a Code Week 4 All code from a school colleague or a friend, paste it here. Otherwise, please leave it blank. More info about Code Week 4 All is available "),v("a",{href:"/codeweek4all",target:"_blank"}," here",-1),ut(". ")])),default:Te(()=>[he(d,{modelValue:n.formValues.codeweek_for_all_participation_code,"onUpdate:modelValue":t[13]||(t[13]=p=>n.formValues.codeweek_for_all_participation_code=p),name:"codeweek_for_all_participation_code"},null,8,["modelValue"])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("community.titles.2")} (optional)`,name:"leading_teacher_tag",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.leading_teacher_tag,"onUpdate:modelValue":t[14]||(t[14]=p=>n.formValues.leading_teacher_tag=p),name:"leading_teacher_tag",options:r.leadingTeacherOptions},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.image")} (optional)`,name:"picture",errors:n.errors},{default:Te(()=>[he(f,{name:"picture",picture:n.formValues.pictureUrl,image:n.formValues.picture,onOnChange:r.onPictureChange},null,8,["picture","image","onOnChange"])]),_:1},8,["label","errors"])])}const QI=vt(YI,[["render",XI]]),eN={props:{errors:Object,formValues:Object,languages:Object,countries:Array},components:{FieldWrapper:id,SelectField:ad,InputField:ld,RadioField:Wp,ImageField:$1},setup(e,{emit:t}){const{organizerTypeOptions:n}=Hi(),r=me(()=>Object.entries(e.languages).map(([s,a])=>({id:s,name:a})));return{organizerTypeOptions:n,languageOptions:r}}},tN={class:"flex flex-col gap-4 w-full"},nN={class:"flex items-center gap-8 min-h-[48px] h-full"},rN={class:"w-full flex gap-2.5 mt-4"},sN={class:"text-slate-400 text-xs mt-1"};function iN(e,t,n,r,s,a){const o=at("InputField"),u=at("FieldWrapper"),d=at("SelectField"),h=at("RadioField");return k(),I("div",tN,[he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.organizer.label")}*`,name:"organizer",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.organizer,"onUpdate:modelValue":t[0]||(t[0]=f=>n.formValues.organizer=f),required:"",name:"organizer",placeholder:e.$t("event.organizer.placeholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.organizertype.label")}*`,name:"organizer_type",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.organizer_type,"onUpdate:modelValue":t[1]||(t[1]=f=>n.formValues.organizer_type=f),required:"",name:"organizer_type",options:r.organizerTypeOptions},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("resources.Languages")} (optional)`,name:"language",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.language,"onUpdate:modelValue":t[2]||(t[2]=f=>n.formValues.language=f),name:"language",searchable:"",multiple:"",options:r.languageOptions},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.country")}*`,name:"country_iso",errors:n.errors},{default:Te(()=>[he(d,{modelValue:n.formValues.country_iso,"onUpdate:modelValue":t[3]||(t[3]=f=>n.formValues.country_iso=f),"id-name":"iso",searchable:"",required:"",name:"country_iso",options:n.countries},null,8,["modelValue","options"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:"Are you using any Code Week resources in this activity?",name:"is_use_resource",errors:n.errors},{default:Te(()=>[v("div",nN,[he(h,{modelValue:n.formValues.is_use_resource,"onUpdate:modelValue":t[4]||(t[4]=f=>n.formValues.is_use_resource=f),name:"is_use_resource",value:"true",label:"Yes"},null,8,["modelValue"]),he(h,{modelValue:n.formValues.is_use_resource,"onUpdate:modelValue":t[5]||(t[5]=f=>n.formValues.is_use_resource=f),name:"is_use_resource",value:"false",label:"No"},null,8,["modelValue"])])]),_:1},8,["errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.website.label")} ${["open-online","invite-online"].includes(n.formValues.activity_type)?"*":"(optional)"}`,name:"event_url",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.event_url,"onUpdate:modelValue":t[6]||(t[6]=f=>n.formValues.event_url=f),name:"event_url",placeholder:e.$t("event.website.placeholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.public.label")} (optional)`,name:"contact_person",errors:n.errors},{default:Te(()=>[he(o,{modelValue:n.formValues.contact_person,"onUpdate:modelValue":t[7]||(t[7]=f=>n.formValues.contact_person=f),type:"email",name:"contact_person",placeholder:e.$t("event.public.placeholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","errors"]),he(u,{horizontalBreakpoint:"md",label:`${e.$t("event.contact.label")}*`,name:"user_email",errors:n.errors},{end:Te(()=>[v("div",rN,[t[9]||(t[9]=v("img",{class:"flex-shrink-0 w-6 h-6",src:"/images/icon_info.svg"},null,-1)),v("div",sN,ce(e.$t("event.contact.explanation")),1)])]),default:Te(()=>[he(o,{modelValue:n.formValues.user_email,"onUpdate:modelValue":t[8]||(t[8]=f=>n.formValues.user_email=f),required:"",type:"email",name:"user_email",placeholder:e.$t("event.contact.placeholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","errors"])])}const aN=vt(eN,[["render",iN]]),lN={props:{formValues:Object,themes:Array,audiences:Array,leadingTeachers:Array,languages:Object,countries:Array},components:{},setup(e,{emit:t}){const{activityFormatOptionsMap:n,activityTypeOptionsMap:r,recurringFrequentlyMap:s,durationOptionsMap:a,recurringTypeOptionsMap:o,ageOptionsMap:u,organizerTypeOptionsMap:d}=Hi();return{stepDataList:me(()=>{var $e,He,Qe;const{title:f,activity_format:p,activity_type:m,location:y,duration:w,start_date:_,end_date:C,is_recurring_event_local:U,recurring_event:F,recurring_type:x,theme:E,description:V}=e.formValues||{},B=(p||[]).map(Ue=>n.value[Ue]),$=r.value[m],M=a.value[w],T=_?new Date(_).toISOString().slice(0,10):"",H=C?new Date(C).toISOString().slice(0,10):"",re=U==="true",Q=o.value[x],ne=(E||[]).map(Ue=>{var tt;return(tt=e.themes.find(({id:dt})=>dt===Ue))==null?void 0:tt.name}).map(Ue=>Rt(`event.theme.${Ue}`)),J=[{label:Rt("event.title.label"),value:f},{label:"Specify the format of the activity",value:B.join(", ")},{label:Rt("event.activitytype.label"),value:$},{label:Rt("event.address.label"),value:y},{label:"Activity duration",value:M},{label:"Date",value:`${T} - ${H}`},{label:"Is it a recurring event?",value:re?"Yes":"No"},{label:"How frequently?",value:re?s.value[F]:""},{label:"What type of recurring activity?",value:Q},{label:"Theme?",value:ne.join(", ")},{label:"Activity description",htmlValue:V}],{audience:P,participants_count:z,males_count:R,females_count:te,other_count:xe,ages:De,is_extracurricular_event:Be,is_standard_school_curriculum:K,codeweek_for_all_participation_code:oe,leading_teacher_tag:D,pictureUrl:ae,picture:ye}=e.formValues||{},q=(P||[]).map(Ue=>{var tt;return(tt=e.audiences.find(({id:dt})=>dt===Ue))==null?void 0:tt.name}).map(Ue=>Rt(`event.audience.${Ue}`)),Pe=[z||0,[`${R||0} Males`,`${te||0} Females`,`${xe||0} Other`].join(", ")].join(" - "),Ke=(De||[]).map(Ue=>u.value[Ue]),_e=[{label:Rt("event.audience_title"),value:q==null?void 0:q.join(", ")},{label:"Number of participants",value:Pe},{label:"Age",value:Ke==null?void 0:Ke.join(", ")},{label:"Is this an extracurricular activity?",value:Be==="true"?"Yes":"No"},{label:"Is this an activity within the standard school curriculum?",value:K==="true"?"Yes":"No"},{label:"Code Week 4 All code (optional)",value:oe},{label:Rt("community.titles.2"),value:D},{label:Rt("event.image"),imageUrl:ae,imageName:(He=($e=ye==null?void 0:ye.split("/"))==null?void 0:$e.reverse())==null?void 0:He[0]}],{organizer:Xe,organizer_type:W,language:S,country_iso:N,is_use_resource:G,event_url:ee,contact_person:pe,user_email:j}=e.formValues||{},de=d.value[W],ge=S==null?void 0:S.map(Ue=>{var tt;return(tt=e.languages)==null?void 0:tt[Ue]}).filter(Ue=>!!Ue),ke=(Qe=e.countries.find(({iso:Ue})=>Ue===N))==null?void 0:Qe.name,Ae=[{label:Rt("event.organizer.label"),value:Xe},{label:Rt("event.organizertype.label"),value:de},{label:Rt("resources.Languages"),value:ge==null?void 0:ge.join(", ")},{label:Rt("event.country"),value:ke},{label:"Is this an activity within the standard school curriculum?",value:G==="true"?"Yes":"No"},{label:Rt("event.website.label"),value:ee},{label:Rt("event.public.label"),value:pe},{label:Rt("event.contact.label"),value:j}],Ee=({value:Ue,htmlValue:tt,imageUrl:dt})=>!cr.isNil(Ue)&&!cr.isEmpty(Ue)||!cr.isEmpty(tt)||!cr.isEmpty(dt);return[{title:"Activity overview",list:J.filter(Ee)},{title:"Who is the activity for",list:_e.filter(Ee)},{title:"Organiser",list:Ae.filter(Ee)}]})}}},oN={class:"flex flex-col gap-12 w-full"},uN={class:"flex flex-col gap-6"},cN={class:"text-dark-blue text-2xl md:text-[30px] leading-[44px] font-medium font-['Montserrat'] text-center"},dN={class:"flex flex-col gap-1"},fN={class:"flex gap-10 items-center px-4 py-2 text-[16px] md:text-xl text-slate-500 bg-white"},hN={class:"flex-shrink-0 w-32 md:w-60"},pN=["innerHTML"],mN={key:1},gN=["src"],vN={key:2,class:"flex-grow w-full"};function yN(e,t,n,r,s,a){return k(),I("div",oN,[(k(!0),I(Ie,null,Ze(r.stepDataList,({title:o,list:u})=>(k(),I("div",uN,[v("h2",cN,ce(o),1),v("div",dN,[(k(!0),I(Ie,null,Ze(u,({label:d,value:h,htmlValue:f,imageUrl:p,imageName:m})=>(k(),I("div",fN,[v("div",hN,ce(d),1),f?(k(),I("div",{key:0,innerHTML:f,class:"flex-grow w-full space-y-2 [&_p]:py-0"},null,8,pN)):se("",!0),p?(k(),I("div",mN,[t[0]||(t[0]=v("div",{class:"mb-2"},"Image attached",-1)),v("img",{class:"max-h-80 mb-2",src:p},null,8,gN),v("div",null,ce(m),1)])):se("",!0),h?(k(),I("div",vN,ce(h||""),1)):se("",!0)]))),256))])]))),256))])}const _N=vt(lN,[["render",yN]]),bN={props:{modelValue:String,name:String,label:String,value:String},emits:["update:modelValue"],setup(e,{emit:t}){return{onChange:r=>{t("update:modelValue",r.target.checked)}}}},wN={class:"flex items-center gap-2 cursor-pointer"},xN=["id","name","checked"],kN=["for"],SN={key:0,class:"h-5 w-5 text-slate-600",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},TN={class:"cursor-pointer text-xl text-slate-500"};function AN(e,t,n,r,s,a){return k(),I("label",wN,[v("input",{class:"peer hidden",type:"checkbox",id:n.name,name:n.name,checked:n.modelValue,onChange:t[0]||(t[0]=(...o)=>r.onChange&&r.onChange(...o))},null,40,xN),v("div",{class:"flex-shrink-0 h-8 w-8 border-2 bg-white flex items-center justify-center cursor-pointer border-dark-blue-200 rounded-lg",for:e.id},[n.modelValue?(k(),I("svg",SN,t[1]||(t[1]=[v("path",{d:"M5 13l4 4L19 7"},null,-1)]))):se("",!0)],8,kN),v("span",TN,[ut(ce(n.label)+" ",1),Le(e.$slots,"default")])])}const CN=vt(bN,[["render",AN]]),EN={props:{token:{type:String,default:""},event:{type:Object,default:()=>({})},selectedValues:{type:Object,default:()=>({})},locale:{type:String,default:""},user:{type:Object,default:()=>({})},themes:{type:Array,default:()=>[]},audiences:{type:Array,default:()=>[]},leadingTeachers:{type:Array,default:()=>[]},languages:{type:Object,default:()=>({})},countries:{type:Array,default:()=>[]},location:{type:Object,default:()=>({})},privacyLink:{type:String,default:""}},components:{FormStep1:DI,FormStep2:QI,FormStep3:aN,AddConfirmation:_N,CheckboxField:CN},setup(e,{emit:t}){var x,E,V,B,$;console.log("event",e.event);const{stepTitles:n}=Hi(),r=fe(null),s=fe(null),a=fe(1),o=fe({}),u=fe(!1),d=fe({activity_type:"open-in-person",location:((x=e.location)==null?void 0:x.location)||"",geoposition:((V=(E=e.location)==null?void 0:E.geoposition)==null?void 0:V.split(","))||[],is_recurring_event_local:"false",recurring_event:"daily",is_extracurricular_event:"false",is_standard_school_curriculum:"false",organizer:((B=e.location)==null?void 0:B.name)||"",organizer_type:(($=e==null?void 0:e.location)==null?void 0:$.organizer_type)||"",language:e.locale?[e.locale]:[],country_iso:e.location.country_iso||"",is_use_resource:"false",privacy:!1}),h=fe(cr.clone(d.value)),f=me(()=>{const M=cr.cloneDeep(h.value),T=["title","activity_type","duration","is_recurring_event_local","start_date","end_date","theme","description"];return["open-online","invite-online"].includes(M.activity_type)||T.push("location"),T.every(H=>!cr.isEmpty(M[H]))}),p=me(()=>{const M=cr.cloneDeep(h.value),T=["audience","ages","is_extracurricular_event"];return!!M.participants_count&&T.every(H=>!cr.isEmpty(M[H]))}),m=me(()=>{const M=cr.cloneDeep(h.value),T=["organizer","organizer_type","country_iso","user_email"];return["open-online","invite-online"].includes(M.activity_type)&&T.push("event_url"),M.privacy?T.every(H=>!cr.isEmpty(M[H])):!1}),y=me(()=>a.value===1&&!f.value||a.value===2&&!p.value||a.value===3&&!m.value),w=M=>{a.value=Math.max(Math.min(M,4),1)},_=()=>{var H,re,Q,ne;const M=((H=e==null?void 0:e.event)==null?void 0:H.id)||((re=r.value)==null?void 0:re.id),T=((Q=e==null?void 0:e.event)==null?void 0:Q.slug)||((ne=r.value)==null?void 0:ne.slug);window.location.href=`/view/${M}/${T}`},C=()=>window.location.href="/events",U=()=>window.location.reload(),F=async()=>{var H,re,Q,ne,J,P,z;o.value={};const M=h.value,T={_token:e.token,_method:cr.isNil(e.event.id)?void 0:"PATCH",title:M.title,activity_format:(H=M.activity_format)==null?void 0:H.join(","),activity_type:M.activity_type,location:M.location,geoposition:((re=M.geoposition)==null?void 0:re.join(","))||[],duration:M.duration,start_date:M.start_date,end_date:M.end_date,theme:(Q=M.theme)==null?void 0:Q.join(","),description:M.description,audience:(ne=M.audience)==null?void 0:ne.join(","),participants_count:M.participants_count,males_count:M.males_count,females_count:M.females_count,other_count:M.other_count,ages:(J=M.ages)==null?void 0:J.join(","),is_extracurricular_event:M.is_extracurricular_event==="true",is_standard_school_curriculum:M.is_standard_school_curriculum==="true",codeweek_for_all_participation_code:M.codeweek_for_all_participation_code,leading_teacher_tag:M.leading_teacher_tag,picture:M.picture,organizer:M.organizer,organizer_type:M.organizer_type,language:M.language,country_iso:M.country_iso,is_use_resource:M.is_use_resource==="true",event_url:M.event_url,contact_person:M.contact_person,user_email:M.user_email,privacy:M.privacy===!0?"on":void 0};M.is_recurring_event_local==="true"&&(T.recurring_event=M.recurring_event,T.recurring_type=M.recurring_type);try{if(!cr.isNil(e.event.id))await St.post(`/events/${e.event.id}`,T);else{const{data:R}=await St.post("/events",T);r.value=R.event}w(4)}catch(R){o.value=(z=(P=R.response)==null?void 0:P.data)==null?void 0:z.errors,a.value=1}};return Wt(()=>e.event,()=>{var re,Q,ne,J;if(!e.event.id)return;const M=P=>{var z,R;return((R=(z=P==null?void 0:P.split(","))==null?void 0:z.filter(te=>!!te))==null?void 0:R.map(te=>Number(te)))||[]},T=e.event,H=T.geoposition||((re=e.location)==null?void 0:re.geoposition);h.value={...h.value,title:T.title,activity_format:T.activity_format,activity_type:T.activity_type||"open-in-person",location:T.location||((Q=e.location)==null?void 0:Q.location),geoposition:H==null?void 0:H.split(","),duration:T.duration,start_date:T.start_date,end_date:T.end_date,recurring_event:T.recurring_event||"daily",recurring_type:T.recurring_type,theme:M(e.selectedValues.themes),description:T.description,audience:M(e.selectedValues.audiences),participants_count:T.participants_count,males_count:T.males_count,females_count:T.females_count,other_count:T.other_count,ages:T.ages,is_extracurricular_event:String(!!T.is_extracurricular_event),is_standard_school_curriculum:String(!!T.is_standard_school_curriculum),codeweek_for_all_participation_code:T.codeweek_for_all_participation_code,leading_teacher_tag:T.leading_teacher_tag,picture:T.picture,pictureUrl:e.selectedValues.picture,organizer:T.organizer||((ne=e.location)==null?void 0:ne.name),organizer_type:T.organizer_type||((J=e==null?void 0:e.location)==null?void 0:J.organizer_type),language:T.languages||[e.locale],country_iso:T.country_iso||e.location.country_iso,is_use_resource:String(!!T.is_use_resource),event_url:T.event_url,contact_person:T.contact_person,user_email:T.user_email},T.recurring_event&&(h.value.is_recurring_event_local="true")},{immediate:!0}),Wt(()=>a.value,()=>{if(a.value===4){const M=document.getElementById("add-event-hero-section");M&&(M.style.display="none"),window.scrollTo({top:0})}else if(s.value){const M=s.value.getBoundingClientRect().top;window.scrollTo({top:M+window.pageYOffset-40})}}),Ft(()=>{const M=new IntersectionObserver(([H])=>{u.value=H.isIntersecting}),T=document.getElementById("page-footer");T&&M.observe(T)}),{containerRef:s,step:a,stepTitles:n,errors:o,formValues:h,handleGoToActivity:_,handleGoMapPage:C,handleReloadPage:U,handleMoveStep:w,handleSubmit:F,disableNextbutton:y,validStep1:f,validStep2:p,validStep3:m,pageFooterVisible:u}}},ON={key:0,class:"relative py-10 codeweek-container-lg flex justify-center"},MN={class:"flex gap-12"},RN=["onClick"],DN={class:"flex-1"},PN={class:"text-slate-500 font-normal text-base leading-[22px] p-0 text-center"},LN={key:0,class:"absolute top-6 left-[calc(100%+1.5rem)] -translate-x-1/2 w-[calc(100%-1rem)] md:w-[calc(100%-0.75rem)] h-[2px] bg-[#CCF0F9]"},IN={key:1,class:"relative codeweek-container-lg flex justify-center px-4 md:px-10 py-10 md:py-20"},NN={class:"flex flex-col justify-center items-center text-center gap-4 max-w-[660px]"},VN={class:"text-dark-blue text-[22px] md:text-4xl font-semibold font-[Montserrat]"},FN={key:0,class:"flex flex-col gap-4 text-[16px] text-center"},$N={class:"text-dark-blue font-semibold underline"},BN={ref:"containerRef",class:"w-full relative"},HN={class:"codeweek-container-lg relative pt-20 pb-16 md:pt-32 md:pb-20"},UN={class:"flex justify-center"},jN={class:"flex flex-col max-w-[852px] w-full"},WN={key:0,class:"text-dark-blue text-2xl md:text-4xl leading-[44px] font-medium font-['Montserrat'] mb-10 text-center"},qN=["href"],YN={class:"flex flex-wrap justify-between mt-10 gap-y-2 gap-x-4 min-h-12"},zN={key:0},KN={key:1},GN=["disabled"],JN={key:0},ZN={key:1},XN={key:1},QN={key:2};function e4(e,t,n,r,s,a){var p;const o=at("FormStep1"),u=at("FormStep2"),d=at("FormStep3"),h=at("CheckboxField"),f=at("AddConfirmation");return k(),I(Ie,null,[r.step<4?(k(),I("div",ON,[v("div",MN,[(k(!0),I(Ie,null,Ze(r.stepTitles,(m,y)=>(k(),I("div",{class:Fe(["relative flex flex-col items-center gap-2 flex-1 md:w-52",[y===0&&"cursor-pointer",y+1===2&&r.validStep1&&"cursor-pointer",y+1===3&&r.validStep2&&"cursor-pointer"]]),onClick:()=>{y+1===2&&!r.validStep1||y+1===3&&!r.validStep2||r.handleMoveStep(y+1)}},[v("div",{class:Fe(["w-12 h-12 rounded-full flex justify-center items-center text-['#20262C'] font-semibold text-2xl",[r.step===y+1?"bg-light-blue-300":"bg-light-blue-100"]])},ce(y+1),3),v("div",DN,[v("p",PN,ce(m),1)]),y