diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..0130ad6 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +*@Abi476 \ No newline at end of file diff --git a/dasena-api-flask/README.md b/dasena-api-flask/README.md new file mode 100644 index 0000000..855864a --- /dev/null +++ b/dasena-api-flask/README.md @@ -0,0 +1,36 @@ +# 🐍 DASENA API (Flask) - Damkar Analisis Sentimen API + +Aplikasi API yang dikembangkan menggunakan Flask dan Python untuk menjalankan model Natural Language Processing (NLP) dalam menganalisis sentimen publik terhadap layanan Pemadam Kebakaran (Damkar). + +--- + +## 🎯 Fungsi Utama + +* **Endpoint Analisis Sentimen:** Menyediakan endpoint POST untuk menerima input teks dan mengembalikan klasifikasi sentimen (Positif, Negatif, Netral). +* **Integrasi Model:** Menghosting dan menjalankan model machine learning/deep learning untuk klasifikasi sentimen. +* **Preprocessing Data:** Menangani proses *tokenization*, *stemming*, dan *cleaning* data sebelum analisis. + +## 🛠️ Persyaratan Sistem + +* Python 3.x +* Pip +* Virtual Environment + +## 📦 Instalasi + +1. **Aktifkan Lingkungan Virtual:** + ```bash + source venv/bin/activate + # Atau di Windows: .\venv\Scripts\activate + ``` +2. **Instal Dependensi:** + ```bash + pip install -r requirements.txt + ``` + +## ▶️ Cara Menjalankan Server + +Jalankan API Flask di port yang berbeda dari Laravel (misalnya Port 5000): + +```bash +flask run --port=5000 \ No newline at end of file diff --git a/dasena-api-flask/app.py b/dasena-api-flask/app.py new file mode 100644 index 0000000..56bd8c8 --- /dev/null +++ b/dasena-api-flask/app.py @@ -0,0 +1,126 @@ +from flask import Flask, request, jsonify +from flask_cors import CORS +import re +from Sastrawi.StopWordRemover.StopWordRemoverFactory import StopWordRemoverFactory +from Sastrawi.Stemmer.StemmerFactory import StemmerFactory +import joblib +import os +import numpy as np + +app = Flask(__name__) +CORS(app) + +# MEMUAT SASTRAWI +print("Memuat dictionary Sastrawi... (Mohon tunggu sebentar)") +factory_stopword = StopWordRemoverFactory() +stopword_remover = factory_stopword.create_stop_word_remover() + +factory_stemmer = StemmerFactory() +stemmer = factory_stemmer.create_stemmer() +print("Sastrawi siap!") + +# MEMUAT MODEL +print("Memuat Model Naive Bayes & TF-IDF...") +try: + vectorizer = joblib.load("tfidf_vectorizer.pkl") + model = joblib.load("model_naive_bayes_terbaik.pkl") + print("Model Naive Bayes berhasil dimuat dan siap digunakan!") +except Exception as e: + print(f"ERROR: Gagal memuat model. Pastikan file .pkl ada! Detail: {e}") + + +def clean_text(text): + text = str(text) + text = re.split(r"(?i)\|?\s*(?:translate|ai info)", text)[0] + + if "|" in text: + parts = text.split("|") + if len(parts) > 2: + content_parts = parts[2:] + valid_parts = [] + for p in content_parts: + p_clean = p.strip() + if re.fullmatch(r"[\d\.,]+[KkMmBb]?", p_clean): + continue + if p_clean == "." or p_clean == "": + continue + valid_parts.append(p_clean) + text = " ".join(valid_parts) + + text = re.sub(r"(?i)\breplying to\b", "", text) + text = re.sub(r"@[\w_.]*damkar[\w_.]*", " damkar ", text, flags=re.I) + text = re.sub(r"@[A-Za-z0-9_.]+", "", text) + text = re.sub(r"#.*", "", text) + text = re.sub(r"[🎥📸].*", "", text) + text = re.sub(r"http\S+|www\S+|https\S+", "", text, flags=re.MULTILINE) + text = re.sub( + r"(?i)\b(?:video|vid|foto|poto|credit|credits|source|sumber|sc|cr)\s*[:/]\s*.*", + "", + text, + ) + text = re.sub(r"(?i)\b(?:ig|instagram|tiktok|youtube)\s*[:/]\s*\S+.*", "", text) + text = re.sub( + r"(?i)\b(?:report by|story ig|baca selengkapnya|selengkapnya|klik link|di bio|dibio)\b.*", + "", + text, + ) + text = re.sub( + r"(?i)\b\w+\.(?:go\.id|co\.id|ac\.id|or\.id|web\.id|com|id|net|org)(?:/\S*)?.*", + "", + text, + ) + text = re.sub(r"[^a-zA-Z\s]", " ", text) + + cleansed = re.sub(r"\s+", " ", text).strip().lower() + stopword = stopword_remover.remove(cleansed) + stemmed = stemmer.stem(stopword) + + return {"cleansed": cleansed, "stopword": stopword, "stemmed": stemmed} + + +@app.route("/api/preprocess", methods=["POST"]) +def preprocess_data(): + try: + data = request.json.get("data", []) + results = [] + for item in data: + item_id = item.get("id") + teks_asli = item.get("teks", "") + hasil_bersih = clean_text(teks_asli) + + teks_stopword = hasil_bersih["stopword"] + teks_stemmed = hasil_bersih["stemmed"] + + hasil_sentimen = "Netral" + confidences = {"Positif": 0, "Netral": 0, "Negatif": 0} + + if teks_stemmed.strip(): + teks_vektor = vectorizer.transform([teks_stemmed]) + hasil_sentimen = model.predict(teks_vektor)[0] + + if hasattr(model, "predict_proba"): + probs = model.predict_proba(teks_vektor)[0] + classes = model.classes_ + for i in range(len(classes)): + confidences[classes[i].capitalize()] = round( + float(probs[i]) * 100, 1 + ) + + results.append( + { + "id": item_id, + "teks_stopword": teks_stopword, + "teks_stemmed": teks_stemmed, + "sentimen": hasil_sentimen, + "confidences": confidences, + } + ) + + return jsonify({"status": "success", "data": results}) + + except Exception as e: + return jsonify({"status": "error", "message": str(e)}), 500 + + +if __name__ == "__main__": + app.run(debug=True, host="0.0.0.0", port=5000) diff --git a/dasena-api-flask/cnb_smote_model.pkl b/dasena-api-flask/cnb_smote_model.pkl new file mode 100644 index 0000000..dbb2cfb Binary files /dev/null and b/dasena-api-flask/cnb_smote_model.pkl differ diff --git a/dasena-api-flask/model_naive_bayes_terbaik.pkl b/dasena-api-flask/model_naive_bayes_terbaik.pkl new file mode 100644 index 0000000..1d2e973 Binary files /dev/null and b/dasena-api-flask/model_naive_bayes_terbaik.pkl differ diff --git a/dasena-api-flask/tfidf_vectorizer.pkl b/dasena-api-flask/tfidf_vectorizer.pkl new file mode 100644 index 0000000..61e1050 Binary files /dev/null and b/dasena-api-flask/tfidf_vectorizer.pkl differ diff --git a/dasena-api-flask/tfidf_vectorizer_cnb.pkl b/dasena-api-flask/tfidf_vectorizer_cnb.pkl new file mode 100644 index 0000000..61e1050 Binary files /dev/null and b/dasena-api-flask/tfidf_vectorizer_cnb.pkl differ diff --git a/dasena-web/.editorconfig b/dasena-web/.editorconfig new file mode 100644 index 0000000..a186cd2 --- /dev/null +++ b/dasena-web/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[compose.yaml] +indent_size = 4 diff --git a/dasena-web/.env.example b/dasena-web/.env.example new file mode 100644 index 0000000..35db1dd --- /dev/null +++ b/dasena-web/.env.example @@ -0,0 +1,65 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/dasena-web/.gitattributes b/dasena-web/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/dasena-web/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/dasena-web/.gitignore b/dasena-web/.gitignore new file mode 100644 index 0000000..b71b1ea --- /dev/null +++ b/dasena-web/.gitignore @@ -0,0 +1,24 @@ +*.log +.DS_Store +.env +.env.backup +.env.production +.phpactor.json +.phpunit.result.cache +/.fleet +/.idea +/.nova +/.phpunit.cache +/.vscode +/.zed +/auth.json +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/vendor +Homestead.json +Homestead.yaml +Thumbs.db diff --git a/dasena-web/README.md b/dasena-web/README.md new file mode 100644 index 0000000..75c347a --- /dev/null +++ b/dasena-web/README.md @@ -0,0 +1,61 @@ +

Laravel Logo

+ +

+Build Status +Total Downloads +Latest Stable Version +License +

+ +## About Laravel + +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: + +- [Simple, fast routing engine](https://laravel.com/docs/routing). +- [Powerful dependency injection container](https://laravel.com/docs/container). +- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. +- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). +- Database agnostic [schema migrations](https://laravel.com/docs/migrations). +- [Robust background job processing](https://laravel.com/docs/queues). +- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). + +Laravel is accessible, powerful, and provides tools required for large, robust applications. + +## Learning Laravel + +Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. + +You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. + +If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. + +## Laravel Sponsors + +We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com). + +### Premium Partners + +- **[Vehikl](https://vehikl.com)** +- **[Tighten Co.](https://tighten.co)** +- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** +- **[64 Robots](https://64robots.com)** +- **[Curotec](https://www.curotec.com/services/technologies/laravel)** +- **[DevSquad](https://devsquad.com/hire-laravel-developers)** +- **[Redberry](https://redberry.international/laravel-development)** +- **[Active Logic](https://activelogic.com)** + +## Contributing + +Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). + +## Code of Conduct + +In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). + +## Security Vulnerabilities + +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. + +## License + +The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/dasena-web/app/Exports/HasilAnalisisExport.php b/dasena-web/app/Exports/HasilAnalisisExport.php new file mode 100644 index 0000000..f5be890 --- /dev/null +++ b/dasena-web/app/Exports/HasilAnalisisExport.php @@ -0,0 +1,37 @@ +whereNotNull('teks_stemmed'); + } + + public function headings(): array + { + return [ + 'Tanggal', + 'Komentar Asli', + 'Teks Bersih (Hasil Preprocessing)', + 'Sentimen' + ]; + } + + public function map($item): array + { + return [ + $item->created_at ? $item->created_at->format('d M Y') : '-', + $item->teks, + $item->teks_stemmed, + $item->sentimen ?? 'Belum Dianalisis', + ]; + } +} \ No newline at end of file diff --git a/dasena-web/app/Exports/TemplateExport.php b/dasena-web/app/Exports/TemplateExport.php new file mode 100644 index 0000000..769d22b --- /dev/null +++ b/dasena-web/app/Exports/TemplateExport.php @@ -0,0 +1,17 @@ +paginate(15); + return view('admin.contact_messages.index', compact('messages')); + } + + public function show($id) + { + $message = ContactMessage::findOrFail($id); + + if (!$message->is_read) { + $message->update(['is_read' => true]); + } + + return view('admin.contact_messages.show', compact('message')); + } + + public function reply(Request $request, $id) + { + $message = ContactMessage::findOrFail($id); + + $request->validate([ + 'reply_text' => 'required|string', + ]); + + try { + Mail::send('emails.reply-message', ['replyText' => $request->reply_text, 'originalMessage' => $message], function ($mail) use ($message) { + $mail->to($message->email) + ->subject('RE: ' . $message->subject); + }); + + $message->update([ + 'is_replied' => true, + 'reply_text' => $request->reply_text, + ]); + + return redirect()->back()->with('success', 'Email balasan berhasil dikirim langsung ke warga.'); + + } catch (\Exception $e) { + + return redirect()->back()->with('error', 'Gagal mengirim email balasan! Error: ' . $e->getMessage()); + } + } + + public function destroy($id) + { + $message = ContactMessage::findOrFail($id); + $message->delete(); + return redirect()->route('admin.messages.index')->with('success', 'Pesan berhasil dihapus.'); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Admin/DashboardController.php b/dasena-web/app/Http/Controllers/Admin/DashboardController.php new file mode 100644 index 0000000..52cf480 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Admin/DashboardController.php @@ -0,0 +1,92 @@ + DatasetItem::where('sentimen', 'Positif')->count(), + 'netral' => DatasetItem::where('sentimen', 'Netral')->count(), + 'negatif' => DatasetItem::where('sentimen', 'Negatif')->count(), + 'total' => DatasetItem::whereNotNull('sentimen')->count(), + ]; + + $trendData = DatasetItem::selectRaw('MONTH(tanggal) as bulan, sentimen, count(*) as jumlah') + ->whereNotNull('sentimen') + ->whereNotNull('tanggal') + ->whereYear('tanggal', '2025') + ->groupBy('bulan', 'sentimen') + ->get(); + + $recentComments = DatasetItem::orderBy('tanggal', 'desc')->take(5)->get(); + + $getWordCloudData = function ($sentimen) { + $texts = DatasetItem::where('sentimen', $sentimen)->pluck('teks_stemmed')->toArray(); + $wordCounts = []; + foreach ($texts as $text) { + $words = explode(' ', strtolower($text)); + foreach ($words as $word) { + $word = trim($word); + if (strlen($word) > 2) { + if (!isset($wordCounts[$word])) { + $wordCounts[$word] = 0; + } + $wordCounts[$word]++; + } + } + } + arsort($wordCounts); + $topWords = array_slice($wordCounts, 0, 50); + $wordCloudData = []; + foreach ($topWords as $word => $count) { + $wordCloudData[] = ['x' => $word, 'value' => $count]; + } + return $wordCloudData; + }; + + $wordCloudDataPositif = $getWordCloudData('Positif'); + $wordCloudDataNetral = $getWordCloudData('Netral'); + $wordCloudDataNegatif = $getWordCloudData('Negatif'); + + $flaskStatus = false; + try { + Http::timeout(2)->send('OPTIONS', env('FLASK_API_URL', 'http://127.0.0.1:5000') . '/api/preprocess'); + $flaskStatus = true; + } catch (\Exception $e) { + $flaskStatus = false; + } + + $adminData = [ + 'total_users' => User::count(), + 'total_kamus' => KamusNormalisasi::count(), + 'pending_prep' => DatasetItem::whereNull('sentimen')->count(), + 'total_all_data' => DatasetItem::count(), + 'flask_online' => $flaskStatus, + 'latest_datasets' => Dataset::latest()->take(3)->get(), + 'prediksi_hari_ini' => DatasetItem::whereDate('updated_at', today()) + ->whereNotNull('sentimen') + ->count(), + ]; + + return view('admin.dashboard.index', compact( + 'stats', + 'trendData', + 'recentComments', + 'adminData', + 'wordCloudDataPositif', + 'wordCloudDataNetral', + 'wordCloudDataNegatif' + )); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Admin/KamusNormalisasiController.php b/dasena-web/app/Http/Controllers/Admin/KamusNormalisasiController.php new file mode 100644 index 0000000..abe6278 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Admin/KamusNormalisasiController.php @@ -0,0 +1,152 @@ +has('search') && $request->search != '') { + $query->where('kata_tidak_baku', 'like', '%' . $request->search . '%') + ->orWhere('kata_baku', 'like', '%' . $request->search . '%'); + } + + $kamus = $query->latest()->paginate(10); + return view('admin.kamus.index', compact('kamus')); + } + + public function store(Request $request) + { + $request->validate([ + 'kata_tidak_baku' => 'required|unique:kamus_normalisasis,kata_tidak_baku|string|max:255', + 'kata_baku' => 'required|string|max:255', + ], [ + 'kata_tidak_baku.unique' => 'Kata tidak baku ini sudah ada di dalam kamus!' + ]); + + KamusNormalisasi::create([ + 'kata_tidak_baku' => strtolower(trim($request->kata_tidak_baku)), + 'kata_baku' => strtolower(trim($request->kata_baku)), + ]); + + return back()->with('success', 'Kata berhasil ditambahkan ke kamus!'); + } + + public function update(Request $request, $id) + { + $kamus = KamusNormalisasi::findOrFail($id); + + $request->validate([ + 'kata_tidak_baku' => 'required|string|max:255|unique:kamus_normalisasis,kata_tidak_baku,' . $id, + 'kata_baku' => 'required|string|max:255', + ]); + + $kamus->update([ + 'kata_tidak_baku' => strtolower(trim($request->kata_tidak_baku)), + 'kata_baku' => strtolower(trim($request->kata_baku)), + ]); + + return back()->with('success', 'Kamus berhasil diperbarui!'); + } + + public function destroy($id) + { + $kamus = KamusNormalisasi::findOrFail($id); + $kamus->delete(); + + return response()->json([ + 'success' => true, + 'message' => 'Kata berhasil dihapus dari kamus!' + ]); + } + + public function import(Request $request) + { + $request->validate([ + 'file_import' => 'required|mimes:csv,xlsx,xls|max:5120', + ], [ + 'file_import.required' => 'File wajib dipilih!', + 'file_import.mimes' => 'Format file harus CSV, XLSX, atau XLS!', + 'file_import.max' => 'Ukuran file maksimal 5 MB!', + ]); + + try { + $file = $request->file('file_import'); + $dataArray = Excel::toArray([], $file); + $rows = $dataArray[0]; + array_shift($rows); + + $berhasil = 0; + $duplikat = 0; + $kosong = 0; + + foreach ($rows as $row) { + $kataTidakBaku = isset($row[0]) ? strtolower(trim($row[0])) : null; + $kataBaku = isset($row[1]) ? strtolower(trim($row[1])) : null; + + if (!$kataTidakBaku || !$kataBaku) { + $kosong++; + continue; + } + + // Skip jika sudah ada + $sudahAda = KamusNormalisasi::where('kata_tidak_baku', $kataTidakBaku)->exists(); + if ($sudahAda) { + $duplikat++; + continue; + } + + KamusNormalisasi::create([ + 'kata_tidak_baku' => $kataTidakBaku, + 'kata_baku' => $kataBaku, + ]); + $berhasil++; + } + + $pesan = "Import selesai: {$berhasil} kata berhasil ditambahkan"; + if ($duplikat > 0) + $pesan .= ", {$duplikat} duplikat dilewati"; + if ($kosong > 0) + $pesan .= ", {$kosong} baris kosong dilewati"; + + return response()->json([ + 'success' => true, + 'message' => $pesan, + 'stats' => compact('berhasil', 'duplikat', 'kosong') + ]); + + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Gagal import: ' . $e->getMessage() + ], 500); + } + } + + public function downloadTemplateKamus() + { + $headers = ['Content-Type' => 'text/csv']; + $filename = 'template_kamus_normalisasi.csv'; + + $callback = function () { + $file = fopen('php://output', 'w'); + fputcsv($file, ['kata_tidak_baku', 'kata_baku']); // header + fputcsv($file, ['dmkr', 'damkar']); + fputcsv($file, ['tdk', 'tidak']); + fputcsv($file, ['yg', 'yang']); + fclose($file); + }; + + return response()->stream($callback, 200, array_merge($headers, [ + 'Content-Disposition' => "attachment; filename={$filename}", + ])); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Admin/PreprocessingController.php b/dasena-web/app/Http/Controllers/Admin/PreprocessingController.php new file mode 100644 index 0000000..6c51a5e --- /dev/null +++ b/dasena-web/app/Http/Controllers/Admin/PreprocessingController.php @@ -0,0 +1,266 @@ +has('search') && $request->search != '') { + $query->where('teks', 'like', '%' . $request->search . '%'); + } + + $datasetItems = $query->orderBy('tanggal', 'asc')->paginate(15); + $totalItems = DatasetItem::count(); + $processedItems = DatasetItem::whereNotNull('teks_stemmed')->count(); + + return view('admin.preprocessing.index', compact( + 'datasetItems', + 'totalItems', + 'processedItems' + )); + } + + public function filterAndCleanData(Request $request) + { + try { + $countAwal = \App\Models\DatasetItem::count(); + $allData = \App\Models\DatasetItem::orderBy('id')->get(['id', 'teks']); + $uniqueCoreTexts = []; + $idsToDelete = []; + + $noiseList = [ + 'tribun', 'tribunnews', 'kompas', 'antara', 'antaranews', 'liputan6', 'kumparan', 'sindonews', 'merdeka', 'viva', 'inews', 'tvone', 'jawapos', 'radar\b', 'jprk', 'jp\s+radar', 'reporter', 'redaksi', 'wartawan', 'press\s+release', 'rilis', 'jurnalis', 'kontributor', 'editor', 'news', 'berita', 'artikel', 'website', + 'ujar\s+akun', 'ungkap\s+akun', 'tulis\s+akun', 'kata\s+kabid', 'kata\s+kepala', 'kata\s+pelaksana', 'menurut\s+informasi', 'menurut\s+warga', 'dalam\s+keterangannya', 'dimintai\s+konfirmasi', 'dikutip\s+dari', 'dilansir\s+dari', 'melansir', 'slide\s+liputan', 'liputan\s+on\s+tiktok', 'akun\s+instagram', 'lewat\s+dm\s+ke\s+akun', + 'repost', 'source', 'sc:', 'cr:', '\bref\.', 'vid\.', '\bsumber\s*:', '\bfoto\s*:', '\bfoto\s+[a-z0-9_]+\s*/', 'sumber\s+foto', 'selengkapnya\s+bisa\s+dibaca', 'baca\s+selengkapnya', 'klik\s+link', 'dibio', 'di\s+bio', 'linimasa', + 'feedgramindo', 'jangan\s+lupa\s+like', 'like\s+coment\s+share', 'like\s+comment\s+share', 'comment\s+share', 'coment\s+share', 'pengirim\s+stars\s+teratas', 'stars\s+teratas', 'biar\s+kite\s+makin\s+semangat', + 'loker', 'lowongan', 'rekrutmen', 'pelamar', 'pendaftaran\s+petugas', 'sscasn', + 'apel\s+pagi', 'apel\s+senin', 'apel\s+gabungan', 'simulasi\s+kebakaran', + 'interview', 'gue\s+hr', 'suamik', 'paksu', 'tukar\s+kado', 'kebakaran\s+jenggot', 'anime', 'jual\s+beli', 'jual\s+seragam', 'sewakan\s+seragam', 'bioskop', 'wattpad', 'novel', 'fiksi', 'sobat\s+polri', 'minwas', 'pasal', 'outing', 'rapor', 'raport', 'ambil\s+rapor', 'mengambil\s+rapor', 'pengambilan\s+rapor', 'suami\s+idaman', 'kerja\s+sambil\s+dengar\s+musik', 'me\s+my\s+journey', 'tenangbis', 'ucok\s+core', 'nilai\s+sendiri', 'ada\s+ada\s+aja', + 'horor', 'setan', 'makhluk\s+halus', 'ghoib', 'gaib', 'ritual', 'ruqyah', 'ular\s+gaib', 'kesurupan', 'menikahi', 'gadis\s+itu\s+berjanji', + 'los\s+angeles', 'california', 'amerika\s+serikat', 'wildfire', 'prayfor', 'jepang', 'amerika', 'china', 'korea', 'luar\s+negeri', 'tragedipemadamkebakaranlosangles', + 'inibalikpapanbosku', 'halo\b', + 'perhatikan\s+setiap\s+langkahmu', 'terima\s+kasih\s+atas\s+semua\s+dukungannya', 'kb\s+tadzkiya', 'anak\s+happy', 'diajak\s+keliling\s+kota', 'keliling\s+kota\s+bangun\s+dg\s+mobil\s+damkar', 'pesawat\s+pemadam\s+kebakaran\s+la' + ]; + $noiseRegex = '#(' . implode('|', $noiseList) . ')#i'; + + foreach ($allData as $item) { + $text = strval($item->teks); + $splitTranslate = preg_split('/\|?\s*(translate|ai info)/i', $text); + $core = $splitTranslate[0]; + + $parts = explode('|', $core); + if (count($parts) > 2) { + $core = implode('|', array_slice($parts, 2)); + } + $core = trim($core); + + if ( + in_array($core, $uniqueCoreTexts, true) || + !preg_match('/\b(damkar|pemadam|kebakaran|gulkarmat|dpkp)\b/i', $text) || + preg_match($noiseRegex, $text) + ) { + $idsToDelete[] = $item->id; + } else { + $uniqueCoreTexts[] = $core; + } + } + + // Hapus data secara bertahap + if (count($idsToDelete) > 0) { + foreach (array_chunk($idsToDelete, 1000) as $chunk) { + \App\Models\DatasetItem::whereIn('id', $chunk)->delete(); + } + } + + $datasets = \App\Models\Dataset::all(); + foreach ($datasets as $dataset) { + $actualCount = \App\Models\DatasetItem::where('dataset_id', $dataset->id)->count(); + $dataset->update(['total_rows' => $actualCount]); + } + + $deletedTotal = count($idsToDelete); + + if ($request->ajax() || $request->wantsJson()) { + return response()->json([ + 'success' => true, + 'sampah' => $deletedTotal + ]); + } + + return back() + ->with('success', 'Filtering Ekstrem Selesai!') + ->with('irrelevant_terhapus', $deletedTotal); + + } catch (\Exception $e) { + if ($request->ajax() || $request->wantsJson()) { + return response()->json(['success' => false, 'message' => $e->getMessage()], 500); + } + return back()->with('error', 'Gagal memfilter data: ' . $e->getMessage()); + } + } + + public function process() + { + $items = DatasetItem::whereNull('teks_stemmed')->take(50)->get(); + + if ($items->isEmpty()) { + return response()->json(['status' => 'completed']); + } + + $kamus = KamusNormalisasi::pluck('kata_baku', 'kata_tidak_baku')->toArray(); + $payload = []; + $dataUpdateLokal = []; + + // Ambil histori seluruh case_folding unik dari database + $existingCleansed = DatasetItem::whereNotNull('teks_cleansed')->pluck('teks_cleansed')->toArray(); + $lokalCleansedCheck = $existingCleansed; + + $noiseList = [ + 'tribun', 'tribunnews', 'kompas', 'antara', 'antaranews', 'liputan6', 'kumparan', 'sindonews', 'merdeka', 'viva', 'inews', 'tvone', 'jawapos', 'radar\b', 'jprk', 'jp\s+radar', 'reporter', 'redaksi', 'wartawan', 'press\s+release', 'rilis', 'jurnalis', 'kontributor', 'editor', 'news', 'berita', 'artikel', 'website', + 'ujar\s+akun', 'ungkap\s+akun', 'tulis\s+akun', 'kata\s+kabid', 'kata\s+kepala', 'kata\s+pelaksana', 'menurut\s+informasi', 'menurut\s+warga', 'dalam\s+keterangannya', 'dimintai\s+konfirmasi', 'dikutip\s+dari', 'dilansir\s+dari', 'melansir', 'slide\s+liputan', 'liputan\s+on\s+tiktok', 'akun\s+instagram', 'lewat\s+dm\s+ke\s+akun', + 'repost', 'source', 'sc:', 'cr:', '\bref\.', 'vid\.', '\bsumber\s*:', '\bfoto\s*:', '\bfoto\s+[a-z0-9_]+\s*/', 'sumber\s+foto', 'selengkapnya\s+bisa\s+dibaca', 'baca\s+selengkapnya', 'klik\s+link', 'dibio', 'di\s+bio', 'linimasa', + 'feedgramindo', 'jangan\s+lupa\s+like', 'like\s+coment\s+share', 'like\s+comment\s+share', 'comment\s+share', 'coment\s+share', 'pengirim\s+stars\s+teratas', 'stars\s+teratas', 'biar\s+kite\s+makin\s+semangat', + 'loker', 'lowongan', 'rekrutmen', 'pelamar', 'pendaftaran\s+petugas', 'sscasn', + 'apel\s+pagi', 'apel\s+senin', 'apel\s+gabungan', 'simulasi\s+kebakaran', + 'interview', 'gue\s+hr', 'suamik', 'paksu', 'tukar\s+kado', 'kebakaran\s+jenggot', 'anime', 'jual\s+beli', 'jual\s+seragam', 'sewakan\s+seragam', 'bioskop', 'wattpad', 'novel', 'fiksi', 'sobat\s+polri', 'minwas', 'pasal', 'outing', 'rapor', 'raport', 'ambil\s+rapor', 'mengambil\s+rapor', 'pengambilan\s+rapor', 'suami\s+idaman', 'kerja\s+sambil\s+dengar\s+musik', 'me\s+my\s+journey', 'tenangbis', 'ucok\s+core', 'nilai\s+sendiri', 'ada\s+ada\s+aja', + 'horor', 'setan', 'makhluk\s+halus', 'ghoib', 'gaib', 'ritual', 'ruqyah', 'ular\s+gaib', 'kesurupan', 'menikahi', 'gadis\s+itu\s+berjanji', + 'los\s+angeles', 'california', 'amerika\s+serikat', 'wildfire', 'prayfor', 'jepang', 'amerika', 'china', 'korea', 'luar\s+negeri', 'tragedipemadamkebakaranlosangles', + 'inibalikpapanbosku', 'halo\b', + 'perhatikan\s+setiap\s+langkahmu', 'terima\s+kasih\s+atas\s+semua\s+dukungannya', 'kb\s+tadzkiya', 'anak\s+happy', 'diajak\s+keliling\s+kota', 'keliling\s+kota\s+bangun\s+dg\s+mobil\s+damkar', 'pesawat\s+pemadam\s+kebakaran\s+la' + ]; + $noiseRegex = '#(' . implode('|', $noiseList) . ')#i'; + + foreach ($items as $item) { + $text = strval($item->teks); + + // Cleansing Dasar + $splitTranslate = preg_split('/\|?\s*(translate|ai info)/i', $text); + $text = $splitTranslate[0]; + + if (strpos($text, '|') !== false) { + $parts = explode('|', $text); + if (count($parts) > 2) { + $contentParts = array_slice($parts, 2); + $validParts = []; + foreach ($contentParts as $p) { + $pClean = trim($p); + if (preg_match('/^[\d\.,]+[KkMmBb]?$/i', $pClean)) continue; + if ($pClean === '.' || $pClean === '') continue; + $validParts[] = $pClean; + } + $text = implode(' ', $validParts); + } + } + + $text = preg_replace('/\breplying to\b/i', '', $text); + $text = preg_replace('/@[\w_.]*damkar[\w_.]*/i', ' damkar ', $text); + $text = preg_replace('/@[A-Za-z0-9_.]+/i', '', $text); + $text = preg_replace('/#.*/', '', $text); + $text = preg_replace('/[🎥📸].*/u', '', $text); + $text = preg_replace('/(http\S+|www\S+|https\S+)/i', '', $text); + $text = preg_replace('/\b(video|vid|foto|poto|credit|credits|source|sumber|sc|cr)\s*[:\/]\s*.*/i', '', $text); + $text = preg_replace('/\b(ig|instagram|tiktok|youtube)\s*[:\/]\s*\S+.*/i', '', $text); + $text = preg_replace('/\b(report by|story ig|baca selengkapnya|selengkapnya|klik link|di bio|dibio)\b.*/i', '', $text); + $text = preg_replace('/\b\w+\.(go\.id|co\.id|ac\.id|or\.id|web\.id|com|id|net|org)(?:\/\S*)?.*/i', '', $text); + $text = preg_replace('/[^a-zA-Z\s]/', ' ', $text); + $teksCleansed = strtolower($text); + + // Filtering Ekor Kalimat & Duplikat Bertingkat + $teksCleansed = preg_replace('/\b(sc|cr|source|sumber|credit|credits)\b.*$/i', '', $teksCleansed); + $teksCleansed = preg_replace('/\b(foto|poto)\s+(bpk|ibu|pak|by|dari|dok|dokumentasi|akun|ig|instagram|tiktok|youtube)?\b.*$/i', '', $teksCleansed); + $teksCleansed = trim(preg_replace('/\s+/', ' ', $teksCleansed)); + + //Cek Duplikat Array + if (in_array($teksCleansed, $lokalCleansedCheck, true)) { + DatasetItem::where('id', $item->id)->delete(); + continue; + } + $lokalCleansedCheck[] = $teksCleansed; + + // Cek Noise + if (preg_match($noiseRegex, $teksCleansed) || $teksCleansed === "") { + DatasetItem::where('id', $item->id)->delete(); + continue; + } + + //Pengecekan < 4 kata (spasi array) + $wordsArray = array_values(array_filter(explode(' ', $teksCleansed))); + $wordCount = count($wordsArray); + + if ($wordCount < 4) { + DatasetItem::where('id', $item->id)->delete(); + continue; + } + + //memastikan mengandung kata kunci damkar di teks akhir + if (!preg_match('/\b(damkar|pemadam|kebakaran|gulkarmat|dpkp)\b/i', $teksCleansed)) { + DatasetItem::where('id', $item->id)->delete(); + continue; + } + + // Normalisasi + $tokenisasi = json_encode($wordsArray); + $normalizedWords = array_map(function ($word) use ($kamus) { + return $kamus[$word] ?? $word; + }, $wordsArray); + $teksNormalized = implode(' ', $normalizedWords); + + $payload[] = [ + 'id' => $item->id, + 'teks' => $teksNormalized + ]; + + $dataUpdateLokal[$item->id] = [ + 'word_count' => $wordCount, + 'teks_cleansed' => $teksCleansed, + 'tokenisasi' => $tokenisasi, + 'teks_normalized' => $teksNormalized + ]; + } + + if (empty($payload)) { + return response()->json(['status' => 'processing', 'processed' => DatasetItem::whereNotNull('teks_stemmed')->count(), 'total' => DatasetItem::count()]); + } + + try { + $flaskUrl = env('FLASK_API_URL', 'http://127.0.0.1:5000') . '/api/preprocess'; + $response = Http::timeout(300)->post($flaskUrl, ['data' => $payload]); + + if ($response->successful()) { + $results = $response->json('data'); + + foreach ($results as $res) { + $id = $res['id']; + DatasetItem::where('id', $id)->update([ + 'word_count' => $dataUpdateLokal[$id]['word_count'], + 'teks_cleansed' => $dataUpdateLokal[$id]['teks_cleansed'], + 'tokenisasi' => $dataUpdateLokal[$id]['tokenisasi'], + 'teks_normalized' => $dataUpdateLokal[$id]['teks_normalized'], + 'teks_stopword' => $res['teks_stopword'], + 'teks_stemmed' => $res['teks_stemmed'] + ]); + } + + $sisa = DatasetItem::whereNull('teks_stemmed')->count(); + $total = DatasetItem::count(); + $processed = $total - $sisa; + + return response()->json(['status' => 'processing', 'processed' => $processed, 'total' => $total]); + } + + return response()->json(['status' => 'error', 'message' => 'API Flask error.'], 500); + + } catch (\Exception $e) { + return response()->json(['status' => 'error', 'message' => 'Gagal koneksi Flask: ' . $e->getMessage()], 500); + } + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Admin/UploadController.php b/dasena-web/app/Http/Controllers/Admin/UploadController.php new file mode 100644 index 0000000..f88c22c --- /dev/null +++ b/dasena-web/app/Http/Controllers/Admin/UploadController.php @@ -0,0 +1,111 @@ +get(); + return view('admin.upfile.index', compact('datasets')); + } + + public function process(Request $request) + { + $request->validate([ + 'file_dataset' => 'required|mimes:csv,xlsx,xls|max:10240', + 'batch_name' => 'nullable|string|max:255', + ]); + + if ($request->hasFile('file_dataset')) { + $file = $request->file('file_dataset'); + $fileName = time() . '_' . $file->getClientOriginalName(); + $path = $file->storeAs('public/datasets', $fileName); + $dataArray = Excel::toArray([], $file); + $rows = $dataArray[0]; + array_shift($rows); + + $dataset = Dataset::create([ + 'file_name' => $file->getClientOriginalName(), + 'batch_name' => $request->batch_name, + 'file_path' => $path, + 'total_rows' => count($rows), + 'status' => 'Pending', + ]); + + foreach ($rows as $row) { + if (isset($row[2]) && trim($row[2]) !== '') { + $tanggal = null; + if (isset($row[1])) { + if (is_numeric($row[1])) { + try { + $tanggal = Date::excelToDateTimeObject($row[1])->format('Y-m-d'); + } catch (\Throwable $e) { + $tanggal = null; + } + } else { + try { + $tanggal = \Carbon\Carbon::parse($row[1])->format('Y-m-d'); + } catch (\Throwable $e) { + $tanggal = date('Y-m-d', strtotime($row[1])); + } + } + } + + DatasetItem::create([ + 'dataset_id' => $dataset->id, + 'keyword' => $row[0] ?? null, + 'tanggal' => $tanggal, + 'teks' => $row[2], + ]); + } + } + $dataset->update([ + 'status' => 'Selesai Diproses' + ]); + + return redirect()->back()->with('success', 'Berhasil! Dataset telah diurai dan disimpan ke database.'); + } + + return redirect()->back()->with('error', 'Gagal memproses file.'); + } + + public function downloadTemplate() + { + return Excel::download(new TemplateExport, 'template_dasena.xlsx'); + } + + public function destroy($id) + { + try { + $dataset = Dataset::findOrFail($id); + + if (Storage::exists($dataset->file_path)) { + Storage::delete($dataset->file_path); + } + DatasetItem::where('dataset_id', $dataset->id)->delete(); + + $dataset->delete(); + + return response()->json([ + 'success' => true, + 'message' => 'Data beserta seluruh baris komentar berhasil dihapus.' + ]); + + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Gagal menghapus: ' . $e->getMessage() + ], 500); + } + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Admin/UserManagementController.php b/dasena-web/app/Http/Controllers/Admin/UserManagementController.php new file mode 100644 index 0000000..c618460 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Admin/UserManagementController.php @@ -0,0 +1,77 @@ +filled('search')) { + $query->where(function ($q) use ($request) { + $q->where('name', 'like', '%' . $request->search . '%') + ->orWhere('email', 'like', '%' . $request->search . '%'); + }); + } + + if ($request->filled('role')) { + $query->where('role', $request->role); + } + + $users = $query->latest()->paginate(10); + + $totalAdmin = User::where('role', 'admin')->count(); + $totalUser = User::where('role', 'user')->count(); + $total = User::count(); + + return view('admin.users.index', compact('users', 'totalAdmin', 'totalUser', 'total')); + } + + public function updateRole(Request $request, $id) + { + $request->validate([ + 'role' => 'required|in:admin,user', + ]); + + $user = User::findOrFail($id); + + if ($user->id === auth()->id()) { + return response()->json([ + 'success' => false, + 'message' => 'Anda tidak dapat mengubah role akun Anda sendiri.' + ], 403); + } + + $user->update(['role' => $request->role]); + + return response()->json([ + 'success' => true, + 'message' => "Role {$user->name} berhasil diubah menjadi {$request->role}.", + 'role' => $user->role + ]); + } + + public function destroy($id) + { + $user = User::findOrFail($id); + + if ($user->id === auth()->id()) { + return response()->json([ + 'success' => false, + 'message' => 'Anda tidak dapat menghapus akun Anda sendiri.' + ], 403); + } + + $user->delete(); + + return response()->json([ + 'success' => true, + 'message' => "Akun {$user->name} berhasil dihapus." + ]); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/dasena-web/app/Http/Controllers/Auth/AuthenticatedSessionController.php new file mode 100644 index 0000000..83b0d38 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/AuthenticatedSessionController.php @@ -0,0 +1,64 @@ +authenticate(); + + } catch (ValidationException $e) { + return response()->json([ + 'status' => false, + 'msg' => 'Email atau kata sandi yang Anda masukkan salah.' + ]); + } + + $request->session()->regenerate(); + + session([ + 'is_logged_in' => true + ]); + + + return response()->json([ + 'status' => true, + 'msg' => 'Login Berhasil!' + ]); + } + + /** + * Destroy an authenticated session. + */ + public function destroy(Request $request): RedirectResponse + { + Auth::guard('web')->logout(); + + $request->session()->invalidate(); + + $request->session()->regenerateToken(); + + return redirect('/'); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/Auth/ConfirmablePasswordController.php b/dasena-web/app/Http/Controllers/Auth/ConfirmablePasswordController.php new file mode 100644 index 0000000..712394a --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/ConfirmablePasswordController.php @@ -0,0 +1,40 @@ +validate([ + 'email' => $request->user()->email, + 'password' => $request->password, + ])) { + throw ValidationException::withMessages([ + 'password' => __('auth.password'), + ]); + } + + $request->session()->put('auth.password_confirmed_at', time()); + + return redirect()->intended(route('dashboard', absolute: false)); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/dasena-web/app/Http/Controllers/Auth/EmailVerificationNotificationController.php new file mode 100644 index 0000000..f64fa9b --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/EmailVerificationNotificationController.php @@ -0,0 +1,24 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(route('dashboard', absolute: false)); + } + + $request->user()->sendEmailVerificationNotification(); + + return back()->with('status', 'verification-link-sent'); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/dasena-web/app/Http/Controllers/Auth/EmailVerificationPromptController.php new file mode 100644 index 0000000..ee3cb6f --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/EmailVerificationPromptController.php @@ -0,0 +1,21 @@ +user()->hasVerifiedEmail() + ? redirect()->intended(route('dashboard', absolute: false)) + : view('auth.verify-email'); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/NewPasswordController.php b/dasena-web/app/Http/Controllers/Auth/NewPasswordController.php new file mode 100644 index 0000000..e8368bd --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/NewPasswordController.php @@ -0,0 +1,62 @@ + $request]); + } + + /** + * Handle an incoming new password request. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function store(Request $request): RedirectResponse + { + $request->validate([ + 'token' => ['required'], + 'email' => ['required', 'email'], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + // Here we will attempt to reset the user's password. If it is successful we + // will update the password on an actual user model and persist it to the + // database. Otherwise we will parse the error and return the response. + $status = Password::reset( + $request->only('email', 'password', 'password_confirmation', 'token'), + function (User $user) use ($request) { + $user->forceFill([ + 'password' => Hash::make($request->password), + 'remember_token' => Str::random(60), + ])->save(); + + event(new PasswordReset($user)); + } + ); + + // If the password was successfully reset, we will redirect the user back to + // the application's home authenticated view. If there is an error we can + // redirect them back to where they came from with their error message. + return $status == Password::PASSWORD_RESET + ? redirect()->route('login')->with('status', __($status)) + : back()->withInput($request->only('email')) + ->withErrors(['email' => __($status)]); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/PasswordController.php b/dasena-web/app/Http/Controllers/Auth/PasswordController.php new file mode 100644 index 0000000..6916409 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/PasswordController.php @@ -0,0 +1,29 @@ +validateWithBag('updatePassword', [ + 'current_password' => ['required', 'current_password'], + 'password' => ['required', Password::defaults(), 'confirmed'], + ]); + + $request->user()->update([ + 'password' => Hash::make($validated['password']), + ]); + + return back()->with('status', 'password-updated'); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/PasswordResetLinkController.php b/dasena-web/app/Http/Controllers/Auth/PasswordResetLinkController.php new file mode 100644 index 0000000..bf1ebfa --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/PasswordResetLinkController.php @@ -0,0 +1,44 @@ +validate([ + 'email' => ['required', 'email'], + ]); + + // We will send the password reset link to this user. Once we have attempted + // to send the link, we will examine the response then see the message we + // need to show to the user. Finally, we'll send out a proper response. + $status = Password::sendResetLink( + $request->only('email') + ); + + return $status == Password::RESET_LINK_SENT + ? back()->with('status', __($status)) + : back()->withInput($request->only('email')) + ->withErrors(['email' => __($status)]); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/RegisteredUserController.php b/dasena-web/app/Http/Controllers/Auth/RegisteredUserController.php new file mode 100644 index 0000000..8be6c37 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/RegisteredUserController.php @@ -0,0 +1,50 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:' . User::class], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + $user = User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => Hash::make($request->password), + ]); + + event(new Registered($user)); + + Auth::login($user); + + return redirect(route('dashboard', absolute: false)); + } +} diff --git a/dasena-web/app/Http/Controllers/Auth/VerifyEmailController.php b/dasena-web/app/Http/Controllers/Auth/VerifyEmailController.php new file mode 100644 index 0000000..784765e --- /dev/null +++ b/dasena-web/app/Http/Controllers/Auth/VerifyEmailController.php @@ -0,0 +1,27 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } + + if ($request->user()->markEmailAsVerified()) { + event(new Verified($request->user())); + } + + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } +} diff --git a/dasena-web/app/Http/Controllers/Controller.php b/dasena-web/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..8677cd5 --- /dev/null +++ b/dasena-web/app/Http/Controllers/Controller.php @@ -0,0 +1,8 @@ +redirect(); + } + + public function callback() + { + try { + $googleUser = Socialite::driver('google')->user(); + $user = User::updateOrCreate([ + 'email' => $googleUser->email, + ], [ + 'name' => $googleUser->name, + 'google_id' => $googleUser->id, + 'password' => bcrypt(Str::random(16)) + ]); + + Auth::login($user); + return redirect()->route('dashboard'); + + } catch (\Exception $e) { + return redirect('/login')->withErrors(['msg' => 'Terjadi kesalahan saat login dengan Google.']); + } + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/LandingController.php b/dasena-web/app/Http/Controllers/LandingController.php new file mode 100644 index 0000000..653d199 --- /dev/null +++ b/dasena-web/app/Http/Controllers/LandingController.php @@ -0,0 +1,30 @@ +validate([ + 'name' => 'required|string|max:255', + 'email' => 'required|email|max:255', + 'subject' => 'required|string|max:255', + 'message' => 'required|string', + ]); + + ContactMessage::create($request->all()); + + if ($request->ajax() || $request->wantsJson()) { + return response()->json([ + 'success' => true, + 'message' => 'Pesan Anda telah berhasil dikirim! Kami akan segera merespons.' + ]); + } + + return redirect()->back()->with('success', 'Pesan Anda telah berhasil dikirim! Kami akan segera merespons.'); + } +} diff --git a/dasena-web/app/Http/Controllers/ProfileController.php b/dasena-web/app/Http/Controllers/ProfileController.php new file mode 100644 index 0000000..a48eb8d --- /dev/null +++ b/dasena-web/app/Http/Controllers/ProfileController.php @@ -0,0 +1,60 @@ + $request->user(), + ]); + } + + /** + * Update the user's profile information. + */ + public function update(ProfileUpdateRequest $request): RedirectResponse + { + $request->user()->fill($request->validated()); + + if ($request->user()->isDirty('email')) { + $request->user()->email_verified_at = null; + } + + $request->user()->save(); + + return Redirect::route('profile.edit')->with('status', 'profile-updated'); + } + + /** + * Delete the user's account. + */ + public function destroy(Request $request): RedirectResponse + { + $request->validateWithBag('userDeletion', [ + 'password' => ['required', 'current_password'], + ]); + + $user = $request->user(); + + Auth::logout(); + + $user->delete(); + + $request->session()->invalidate(); + $request->session()->regenerateToken(); + + return Redirect::to('/'); + } +} diff --git a/dasena-web/app/Http/Controllers/User/DashboardController.php b/dasena-web/app/Http/Controllers/User/DashboardController.php new file mode 100644 index 0000000..d381172 --- /dev/null +++ b/dasena-web/app/Http/Controllers/User/DashboardController.php @@ -0,0 +1,74 @@ +check() && auth()->user()->role === 'admin') { + return redirect()->route('admin.dashboard'); + } + + $stats = [ + 'positif' => DatasetItem::where('sentimen', 'Positif')->count(), + 'netral' => DatasetItem::where('sentimen', 'Netral')->count(), + 'negatif' => DatasetItem::where('sentimen', 'Negatif')->count(), + 'total' => DatasetItem::whereNotNull('sentimen')->count(), + ]; + + $totalAllData = DatasetItem::count(); + + $trendData = DatasetItem::selectRaw('MONTH(tanggal) as bulan, sentimen, count(*) as jumlah') + ->whereNotNull('sentimen') + ->whereNotNull('tanggal') + ->whereYear('tanggal', '2025') + ->groupBy('bulan', 'sentimen') + ->get(); + + $recentComments = DatasetItem::orderBy('tanggal', 'desc')->take(5)->get(); + + + $getWordCloudData = function ($sentimen) { + $texts = DatasetItem::where('sentimen', $sentimen)->pluck('teks_stemmed')->toArray(); + $wordCounts = []; + foreach ($texts as $text) { + $words = explode(' ', strtolower($text)); + foreach ($words as $word) { + $word = trim($word); + if (strlen($word) > 2) { + if (!isset($wordCounts[$word])) { + $wordCounts[$word] = 0; + } + $wordCounts[$word]++; + } + } + } + arsort($wordCounts); + $topWords = array_slice($wordCounts, 0, 50); + $wordCloudData = []; + foreach ($topWords as $word => $count) { + $wordCloudData[] = ['x' => $word, 'value' => $count]; + } + return $wordCloudData; + }; + + $wordCloudDataPositif = $getWordCloudData('Positif'); + $wordCloudDataNetral = $getWordCloudData('Netral'); + $wordCloudDataNegatif = $getWordCloudData('Negatif'); + + return view('user.dashboard.index', compact( + 'stats', + 'trendData', + 'recentComments', + 'totalAllData', + 'wordCloudDataPositif', + 'wordCloudDataNetral', + 'wordCloudDataNegatif' + )); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/User/HasilAnalisisController.php b/dasena-web/app/Http/Controllers/User/HasilAnalisisController.php new file mode 100644 index 0000000..c8be928 --- /dev/null +++ b/dasena-web/app/Http/Controllers/User/HasilAnalisisController.php @@ -0,0 +1,196 @@ +whereNotNull('teks_stemmed'); + + if ($request->has('sentimen') && $request->sentimen != '') { + $query->where('sentimen', $request->sentimen); + } + + if ($request->has('bulan') && $request->bulan != '') { + $query->whereMonth('tanggal', $request->bulan); + } + + if ($request->has('search') && $request->search != '') { + $query->where(function ($q) use ($request) { + $q->where('teks_stemmed', 'like', '%' . $request->search . '%') + ->orWhere('teks', 'like', '%' . $request->search . '%'); + }); + } + + $stats = DatasetItem::selectRaw(" + COUNT(CASE WHEN teks_stemmed IS NOT NULL THEN 1 END) as total_processed, + COUNT(CASE WHEN sentimen = 'Positif' THEN 1 END) as total_positif, + COUNT(CASE WHEN sentimen = 'Negatif' THEN 1 END) as total_negatif, + COUNT(CASE WHEN sentimen = 'Netral' THEN 1 END) as total_netral + ")->first(); + + $totalProcessed = $stats->total_processed ?? 0; + $totalPositif = $stats->total_positif ?? 0; + $totalNegatif = $stats->total_negatif ?? 0; + $totalNetral = $stats->total_netral ?? 0; + + $items = $query->orderBy('tanggal', 'asc')->paginate(15); + + $bulanTersedia = DatasetItem::whereNotNull('teks_stemmed') + ->whereNotNull('tanggal') + ->selectRaw('MONTH(tanggal) as bulan') + ->groupBy('bulan') + ->orderBy('bulan', 'asc') + ->pluck('bulan') + ->toArray(); + + $namaBulan = [ + 1 => 'Januari', + 2 => 'Februari', + 3 => 'Maret', + 4 => 'April', + 5 => 'Mei', + 6 => 'Juni', + 7 => 'Juli', + 8 => 'Agustus', + 9 => 'September', + 10 => 'Oktober', + 11 => 'November', + 12 => 'Desember' + ]; + + return view('user.hasilanalisis.index', compact( + 'items', + 'totalProcessed', + 'totalPositif', + 'totalNegatif', + 'totalNetral', + 'bulanTersedia', + 'namaBulan' + )); + } + + public function export() + { + return Excel::download(new HasilAnalisisExport, 'Data_Sentimen_Damkar.xlsx'); + } + + public function prediksiAuto() + { + set_time_limit(0); + $items = DatasetItem::whereNull('sentimen')->get(); + + if ($items->isEmpty()) { + return response()->json(['status' => 'info', 'message' => 'Semua data sudah memiliki sentimen!']); + } + + $flaskUrl = env('FLASK_API_URL', 'http://127.0.0.1:5000'); + + $totalProcessed = 0; + $totalDariKunci = 0; + $totalDariAI = 0; + $groundTruths = GroundTruth::all(); + + $kamusKunci = []; + foreach ($groundTruths as $gt) { + if (!empty($gt->teks_cleansed)) { + $kamusKunci[strtolower(trim($gt->teks_cleansed))] = $gt->sentimen; + } + if (!empty($gt->teks_asli)) { + $kamusKunci[strtolower(trim($gt->teks_asli))] = $gt->sentimen; + } + } + + $antreanAI = []; + + foreach ($items as $item) { + $teksBersih = strtolower(trim($item->teks_cleansed ?? '')); + $teksAsli = strtolower(trim($item->teks ?? '')); + $jawabanDitemukan = null; + + if (!empty($teksBersih) && isset($kamusKunci[$teksBersih])) { + $jawabanDitemukan = $kamusKunci[$teksBersih]; + } elseif (!empty($teksAsli) && isset($kamusKunci[$teksAsli])) { + $jawabanDitemukan = $kamusKunci[$teksAsli]; + } + + if ($jawabanDitemukan) { + $updatePayload = ['sentimen' => ucfirst($jawabanDitemukan)]; + + if (empty($item->teks_stemmed)) { + $updatePayload['teks_stemmed'] = $item->teks_cleansed ?? $item->teks; + } + + DatasetItem::where('id', $item->id)->update($updatePayload); + $totalDariKunci++; + $totalProcessed++; + } else { + $antreanAI[] = $item; + } + } + + if (count($antreanAI) > 0) { + $chunks = array_chunk($antreanAI, 20); + + try { + foreach ($chunks as $chunk) { + $payloadData = []; + foreach ($chunk as $item) { + $payloadData[] = [ + 'id' => $item->id, + 'teks' => $item->teks + ]; + } + + $response = Http::timeout(120)->post($flaskUrl . '/api/preprocess', [ + 'data' => $payloadData + ]); + + if ($response->failed()) { + return response()->json(['status' => 'error', 'message' => 'Gagal di tengah proses. Pastikan Flask menyala.']); + } + + $hasil = $response->json(); + + if (isset($hasil['status']) && $hasil['status'] === 'success') { + foreach ($hasil['data'] as $res) { + DatasetItem::where('id', $res['id'])->update([ + 'teks_stemmed' => $res['teks_stemmed'], + 'sentimen' => ucfirst($res['sentimen']) + ]); + $totalDariAI++; + $totalProcessed++; + } + } else { + return response()->json(['status' => 'error', 'message' => 'Format balasan dari AI tidak dikenali.']); + } + } + } catch (\Exception $e) { + return response()->json(['status' => 'error', 'message' => 'Koneksi ke Flask API terputus (Timeout): ' . $e->getMessage()]); + } + } + + $pesan = "Analisis selesai! $totalProcessed komentar diproses."; + if ($totalDariKunci > 0 && $totalDariAI > 0) { + $pesan = "Selesai! $totalDariKunci dari Kunci Laporan, dan $totalDariAI diprediksi mandiri oleh Model."; + } elseif ($totalDariKunci > 0) { + $pesan = "Selesai! $totalDariKunci data berhasil disinkronkan dengan data Validator."; + } elseif ($totalDariAI > 0) { + $pesan = "Selesai! $totalDariAI data baru berhasil diprediksi oleh Model Naive Bayes."; + } + + return response()->json([ + 'status' => 'success', + 'message' => $pesan + ]); + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Controllers/User/UjiKlasifikasiController.php b/dasena-web/app/Http/Controllers/User/UjiKlasifikasiController.php new file mode 100644 index 0000000..773d5ed --- /dev/null +++ b/dasena-web/app/Http/Controllers/User/UjiKlasifikasiController.php @@ -0,0 +1,70 @@ +validate([ + 'teks' => 'required|string|min:3|max:1000', + ], [ + 'teks.required' => 'Teks tidak boleh kosong.', + 'teks.min' => 'Teks terlalu pendek, minimal 3 karakter.', + 'teks.max' => 'Teks terlalu panjang, maksimal 1000 karakter.', + ]); + + try { + + $flaskUrl = env('FLASK_API_URL', 'http://127.0.0.1:5000'); + $response = Http::timeout(30)->post($flaskUrl . '/api/preprocess', [ + 'data' => [ + [ + 'id' => 1, + 'teks' => $request->teks, + ] + ] + ]); + + if ($response->failed()) { + return response()->json([ + 'success' => false, + 'message' => 'Model AI tidak dapat dihubungi. Pastikan server Flask sedang berjalan.', + ], 503); + } + + $hasil = $response->json(); + + if (isset($hasil['status']) && $hasil['status'] === 'success' && !empty($hasil['data'])) { + $dataPrediksi = $hasil['data'][0]; + + return response()->json([ + 'success' => true, + 'sentimen' => ucfirst($dataPrediksi['sentimen']), + 'teks_stemmed' => $dataPrediksi['teks_stemmed'], + 'confidences' => $dataPrediksi['confidences'] ?? ['Positif' => 0, 'Netral' => 0, 'Negatif' => 0] + ]); + } + + return response()->json([ + 'success' => false, + 'message' => 'Gagal memproses data di AI.', + ], 500); + + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Koneksi ke Flask API gagal: ' . $e->getMessage(), + ], 503); + } + } +} \ No newline at end of file diff --git a/dasena-web/app/Http/Middleware/IsAdmin.php b/dasena-web/app/Http/Middleware/IsAdmin.php new file mode 100644 index 0000000..65f2345 --- /dev/null +++ b/dasena-web/app/Http/Middleware/IsAdmin.php @@ -0,0 +1,27 @@ +check()) { + + if (auth()->user()->role === 'admin') { + return $next($request); + } + return redirect()->route(dashboard)->with('error', 'Akses Ditolak! Anda tidak memiliki izin untuk membuka halaman sistem.'); + } + return redirect()->route(login); + } +} diff --git a/dasena-web/app/Http/Requests/Auth/LoginRequest.php b/dasena-web/app/Http/Requests/Auth/LoginRequest.php new file mode 100644 index 0000000..2574642 --- /dev/null +++ b/dasena-web/app/Http/Requests/Auth/LoginRequest.php @@ -0,0 +1,85 @@ +|string> + */ + public function rules(): array + { + return [ + 'email' => ['required', 'string', 'email'], + 'password' => ['required', 'string'], + ]; + } + + /** + * Attempt to authenticate the request's credentials. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function authenticate(): void + { + $this->ensureIsNotRateLimited(); + + if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { + RateLimiter::hit($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.failed'), + ]); + } + + RateLimiter::clear($this->throttleKey()); + } + + /** + * Ensure the login request is not rate limited. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function ensureIsNotRateLimited(): void + { + if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) { + return; + } + + event(new Lockout($this)); + + $seconds = RateLimiter::availableIn($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.throttle', [ + 'seconds' => $seconds, + 'minutes' => ceil($seconds / 60), + ]), + ]); + } + + /** + * Get the rate limiting throttle key for the request. + */ + public function throttleKey(): string + { + return Str::transliterate(Str::lower($this->string('email')).'|'.$this->ip()); + } +} diff --git a/dasena-web/app/Http/Requests/ProfileUpdateRequest.php b/dasena-web/app/Http/Requests/ProfileUpdateRequest.php new file mode 100644 index 0000000..3622a8f --- /dev/null +++ b/dasena-web/app/Http/Requests/ProfileUpdateRequest.php @@ -0,0 +1,30 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'email' => [ + 'required', + 'string', + 'lowercase', + 'email', + 'max:255', + Rule::unique(User::class)->ignore($this->user()->id), + ], + ]; + } +} diff --git a/dasena-web/app/Models/ContactMessage.php b/dasena-web/app/Models/ContactMessage.php new file mode 100644 index 0000000..a168a61 --- /dev/null +++ b/dasena-web/app/Models/ContactMessage.php @@ -0,0 +1,18 @@ +hasMany(DatasetItem::class); + } +} \ No newline at end of file diff --git a/dasena-web/app/Models/DatasetItem.php b/dasena-web/app/Models/DatasetItem.php new file mode 100644 index 0000000..0bf2d95 --- /dev/null +++ b/dasena-web/app/Models/DatasetItem.php @@ -0,0 +1,25 @@ +belongsTo(Dataset::class); + } +} \ No newline at end of file diff --git a/dasena-web/app/Models/GroundTruth.php b/dasena-web/app/Models/GroundTruth.php new file mode 100644 index 0000000..b5ac2a7 --- /dev/null +++ b/dasena-web/app/Models/GroundTruth.php @@ -0,0 +1,12 @@ + */ + use HasFactory, Notifiable; + + /** + * The attributes that are mass assignable. + * + * @var list + */ + protected $fillable = [ + 'name', + 'email', + 'password', + 'google_id', + 'role', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var list + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; + } +} diff --git a/dasena-web/app/Providers/AppServiceProvider.php b/dasena-web/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..380fedb --- /dev/null +++ b/dasena-web/app/Providers/AppServiceProvider.php @@ -0,0 +1,32 @@ + $token, + 'email' => $notifiable->getEmailForPasswordReset(), + ], false)); + + return (new MailMessage) + ->subject('Permintaan Reset Kata Sandi - Dasena') + ->view('emails.reset-password', [ + 'url' => $url, + 'user' => $notifiable + ]); + }); + } +} \ No newline at end of file diff --git a/dasena-web/app/View/Components/AppLayout.php b/dasena-web/app/View/Components/AppLayout.php new file mode 100644 index 0000000..de0d46f --- /dev/null +++ b/dasena-web/app/View/Components/AppLayout.php @@ -0,0 +1,17 @@ +handleCommand(new ArgvInput); + +exit($status); diff --git a/dasena-web/bootstrap/app.php b/dasena-web/bootstrap/app.php new file mode 100644 index 0000000..ecaba47 --- /dev/null +++ b/dasena-web/bootstrap/app.php @@ -0,0 +1,21 @@ +withRouting( + web: __DIR__ . '/../routes/web.php', + commands: __DIR__ . '/../routes/console.php', + health: '/up', + ) + ->withMiddleware(function (Middleware $middleware): void { + $middleware->alias([ + 'is_admin' => IsAdmin::class + ]); + }) + ->withExceptions(function (Exceptions $exceptions): void { + // + })->create(); diff --git a/dasena-web/bootstrap/cache/.gitignore b/dasena-web/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/dasena-web/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/dasena-web/bootstrap/providers.php b/dasena-web/bootstrap/providers.php new file mode 100644 index 0000000..38b258d --- /dev/null +++ b/dasena-web/bootstrap/providers.php @@ -0,0 +1,5 @@ +=5.0.0" + }, + "require-dev": { + "doctrine/dbal": "^4.0.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2024-02-09T16:56:22+00:00" + }, + { + "name": "composer/pcre", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, + "require-dev": { + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.2" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-11-12T16:29:46+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" + }, + "time": "2024-07-08T12:26:09+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.1.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2025-08-10T19:31:58+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "8c784d071debd117328803d86b2097615b457500" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2024-10-09T13:47:03+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2025-03-06T22:45:56+00:00" + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.19.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf", + "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf", + "shasum": "" + }, + "require": { + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" + }, + "require-dev": { + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" + }, + "type": "library", + "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0" + }, + "time": "2025-10-17T16:34:55+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v7.0.5", + "source": { + "type": "git", + "url": "https://github.com/googleapis/php-jwt.git", + "reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/php-jwt/zipball/47ad26bab5e7c70ae8a6f08ed25ff83631121380", + "reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^7.4", + "phpfastcache/phpfastcache": "^9.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^2.0||^3.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/googleapis/php-jwt/issues", + "source": "https://github.com/googleapis/php-jwt/tree/v7.0.5" + }, + "time": "2026-04-01T20:38:03+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:45:45+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.10.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2025-08-23T22:36:01+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "481557b130ef3790cf82b713667b43030dc9c957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2025-08-22T14:34:08+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "21dc724a0583619cd1652f673303492272778051" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.8.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2025-08-23T21:21:41+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.5", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2025-08-22T14:27:06+00:00" + }, + { + "name": "laravel/framework", + "version": "v12.35.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "d6d6e3cb68238e2fb25b440f222442adef5a8a15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/d6d6e3cb68238e2fb25b440f222442adef5a8a15", + "reference": "d6d6e3cb68238e2fb25b440f222442adef5a8a15", + "shasum": "" + }, + "require": { + "brick/math": "^0.11|^0.12|^0.13|^0.14", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.4", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.3", + "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.3.0", + "laravel/serializable-closure": "^1.3|^2.0", + "league/commonmark": "^2.7", + "league/flysystem": "^3.25.1", + "league/flysystem-local": "^3.25.1", + "league/uri": "^7.5.1", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^3.8.4", + "nunomaduro/termwind": "^2.0", + "php": "^8.2", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^7.2.0", + "symfony/error-handler": "^7.2.0", + "symfony/finder": "^7.2.0", + "symfony/http-foundation": "^7.2.0", + "symfony/http-kernel": "^7.2.0", + "symfony/mailer": "^7.2.0", + "symfony/mime": "^7.2.0", + "symfony/polyfill-php83": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/polyfill-php85": "^1.33", + "symfony/process": "^7.2.0", + "symfony/routing": "^7.2.0", + "symfony/uid": "^7.2.0", + "symfony/var-dumper": "^7.2.0", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.6.1", + "voku/portable-ascii": "^2.0.2" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/concurrency": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/json-schema": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "spatie/once": "*" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.322.9", + "ext-gmp": "*", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "laravel/pint": "^1.18", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "opis/json-schema": "^2.4.1", + "orchestra/testbench-core": "^10.7.0", + "pda/pheanstalk": "^5.0.6|^7.0.0", + "php-http/discovery": "^1.15", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", + "predis/predis": "^2.3|^3.0", + "resend/resend-php": "^0.10.0", + "symfony/cache": "^7.2.0", + "symfony/http-client": "^7.2.0", + "symfony/psr-http-message-bridge": "^7.2.0", + "symfony/translation": "^7.2.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", + "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).", + "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", + "mockery/mockery": "Required to use mocking (^1.6).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", + "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "12.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/functions.php", + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Support/functions.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2025-10-23T15:25:03+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.3.7", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "ext-mbstring": "*", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "illuminate/collections": "^10.0|^11.0|^12.0", + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3|^3.4", + "phpstan/phpstan": "^1.12.28", + "phpstan/phpstan-mockery": "^1.1.3" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.3.7" + }, + "time": "2025-09-19T13:47:56+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "038ce42edee619599a1debb7e81d7b3759492819" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819", + "reference": "038ce42edee619599a1debb7e81d7b3759492819", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36|^3.0", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2025-10-09T13:42:30+00:00" + }, + { + "name": "laravel/socialite", + "version": "v5.26.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/socialite.git", + "reference": "db6ec2ee967b7f06412c3a0cf1daaf072f4752a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/socialite/zipball/db6ec2ee967b7f06412c3a0cf1daaf072f4752a4", + "reference": "db6ec2ee967b7f06412c3a0cf1daaf072f4752a4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "firebase/php-jwt": "^6.4|^7.0", + "guzzlehttp/guzzle": "^6.0|^7.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "league/oauth1-client": "^1.11", + "php": "^7.2|^8.0", + "phpseclib/phpseclib": "^3.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8|^11.0", + "phpstan/phpstan": "^1.12.23", + "phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Socialite": "Laravel\\Socialite\\Facades\\Socialite" + }, + "providers": [ + "Laravel\\Socialite\\SocialiteServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Socialite\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.", + "homepage": "https://laravel.com", + "keywords": [ + "laravel", + "oauth" + ], + "support": { + "issues": "https://github.com/laravel/socialite/issues", + "source": "https://github.com/laravel/socialite" + }, + "time": "2026-03-29T14:50:53+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.10.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.10.1" + }, + "time": "2025-01-27T14:24:01+00:00" + }, + { + "name": "league/commonmark", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2025-07-20T12:47:49+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.30.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c139fd65c1f796b926f4aec0df37f6caa959a8da", + "reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3|^2", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2|^2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.30.1" + }, + "time": "2025-10-20T15:35:26+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.30.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/6691915f77c7fb69adfb87dcd550052dc184ee10", + "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.0" + }, + "time": "2025-05-21T10:34:19+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.16.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-09-21T08:32:55+00:00" + }, + { + "name": "league/oauth1-client", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/oauth1-client.git", + "reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/f9c94b088837eb1aae1ad7c4f23eb65cc6993055", + "reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-openssl": "*", + "guzzlehttp/guzzle": "^6.0|^7.0", + "guzzlehttp/psr7": "^1.7|^2.0", + "php": ">=7.1||>=8.0" + }, + "require-dev": { + "ext-simplexml": "*", + "friendsofphp/php-cs-fixer": "^2.17", + "mockery/mockery": "^1.3.3", + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5||9.5" + }, + "suggest": { + "ext-simplexml": "For decoding XML-based responses." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev", + "dev-develop": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\OAuth1\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Corlett", + "email": "bencorlett@me.com", + "homepage": "http://www.webcomm.com.au", + "role": "Developer" + } + ], + "description": "OAuth 1.0 Client Library", + "keywords": [ + "Authentication", + "SSO", + "authorization", + "bitbucket", + "identity", + "idp", + "oauth", + "oauth1", + "single sign on", + "trello", + "tumblr", + "twitter" + ], + "support": { + "issues": "https://github.com/thephpleague/oauth1-client/issues", + "source": "https://github.com/thephpleague/oauth1-client/tree/v1.11.0" + }, + "time": "2024-12-10T19:59:05+00:00" + }, + { + "name": "league/uri", + "version": "7.5.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "81fb5145d2644324614cc532b28efd0215bda430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.5", + "php": "^8.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.5.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:40:02+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:18:47+00:00" + }, + { + "name": "maatwebsite/excel", + "version": "3.1.68", + "source": { + "type": "git", + "url": "https://github.com/SpartnerNL/Laravel-Excel.git", + "reference": "1854739267d81d38eae7d8c623caf523f30f256b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/1854739267d81d38eae7d8c623caf523f30f256b", + "reference": "1854739267d81d38eae7d8c623caf523f30f256b", + "shasum": "" + }, + "require": { + "composer/semver": "^3.3", + "ext-json": "*", + "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0||^12.0||^13.0", + "php": "^7.0||^8.0", + "phpoffice/phpspreadsheet": "^1.30.0", + "psr/simple-cache": "^1.0||^2.0||^3.0" + }, + "require-dev": { + "laravel/scout": "^7.0||^8.0||^9.0||^10.0||^11.0", + "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0||^10.0||^11.0", + "predis/predis": "^1.1" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Excel": "Maatwebsite\\Excel\\Facades\\Excel" + }, + "providers": [ + "Maatwebsite\\Excel\\ExcelServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Maatwebsite\\Excel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Patrick Brouwers", + "email": "patrick@spartner.nl" + } + ], + "description": "Supercharged Excel exports and imports in Laravel", + "keywords": [ + "PHPExcel", + "batch", + "csv", + "excel", + "export", + "import", + "laravel", + "php", + "phpspreadsheet" + ], + "support": { + "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues", + "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.68" + }, + "funding": [ + { + "url": "https://laravel-excel.com/commercial-support", + "type": "custom" + }, + { + "url": "https://github.com/patrickbrouwers", + "type": "github" + } + ], + "time": "2026-03-17T20:51:10+00:00" + }, + { + "name": "maennchen/zipstream-php", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e", + "reference": "77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-zlib": "*", + "php-64bit": "^8.3" + }, + "require-dev": { + "brianium/paratest": "^7.7", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.86", + "guzzlehttp/guzzle": "^7.5", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^12.0", + "vimeo/psalm": "^6.0" + }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.2" + }, + "funding": [ + { + "url": "https://github.com/maennchen", + "type": "github" + } + ], + "time": "2026-04-11T18:38:28+00:00" + }, + { + "name": "markbaker/complex", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPComplex.git", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Complex\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@lange.demon.co.uk" + } + ], + "description": "PHP Class for working with complex numbers", + "homepage": "https://github.com/MarkBaker/PHPComplex", + "keywords": [ + "complex", + "mathematics" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" + }, + "time": "2022-12-06T16:21:08+00:00" + }, + { + "name": "markbaker/matrix", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPMatrix.git", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpdocumentor/phpdocumentor": "2.*", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "2.*", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "sebastian/phpcpd": "^4.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Matrix\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@demon-angel.eu" + } + ], + "description": "PHP Class for working with matrices", + "homepage": "https://github.com/MarkBaker/PHPMatrix", + "keywords": [ + "mathematics", + "matrix", + "vector" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" + }, + "time": "2022-12-02T22:17:43+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.9.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", + "predis/predis": "^1.1 || ^2", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2025-03-24T10:02:05+00:00" + }, + { + "name": "nesbot/carbon", + "version": "3.10.3", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "<100.0", + "ext-json": "*", + "php": "^8.1", + "psr/clock": "^1.0", + "symfony/clock": "^6.3.12 || ^7.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^v3.87.1", + "kylekatarnls/multi-tester": "^2.5.3", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.22", + "phpunit/phpunit": "^10.5.53", + "squizlabs/php_codesniffer": "^3.13.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/CarbonPHP/carbon/issues", + "source": "https://github.com/CarbonPHP/carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2025-09-06T13:39:36+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.4" + }, + "require-dev": { + "nette/tester": "^2.5.2", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.2" + }, + "time": "2024-10-06T23:10:23+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "shasum": "" + }, + "require": { + "php": "8.0 - 8.5" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "^1.2", + "nette/tester": "^2.5", + "phpstan/phpstan-nette": "^2.0@stable", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "psr-4": { + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.8" + }, + "time": "2025-08-06T21:43:34+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.6.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" + }, + "time": "2025-10-21T19:32:17+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v2.3.2", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "eb61920a53057a7debd718a5b89c2178032b52c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0", + "reference": "eb61920a53057a7debd718a5b89c2178032b52c0", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.2", + "symfony/console": "^7.3.4" + }, + "require-dev": { + "illuminate/console": "^11.46.1", + "laravel/pint": "^1.25.1", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0 || ^3.8.4", + "phpstan/phpstan": "^1.12.32", + "phpstan/phpstan-strict-rules": "^1.6.2", + "symfony/var-dumper": "^7.3.4", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2025-10-18T11:10:27+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v3.1.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "shasum": "" + }, + "require": { + "php": "^8" + }, + "require-dev": { + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2025-09-24T15:06:41+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "phpoffice/phpspreadsheet", + "version": "1.30.3", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "d28d4827f934469e7ca4de940ab0abd0788d1e65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/d28d4827f934469e7ca4de940ab0abd0788d1e65", + "reference": "d28d4827f934469e7ca4de940ab0abd0788d1e65", + "shasum": "" + }, + "require": { + "composer/pcre": "^1||^2||^3", + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "ezyang/htmlpurifier": "^4.15", + "maennchen/zipstream-php": "^2.1 || ^3.0", + "markbaker/complex": "^3.0", + "markbaker/matrix": "^3.0", + "php": ">=7.4.0 <8.5.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-main", + "doctrine/instantiator": "^1.5", + "dompdf/dompdf": "^1.0 || ^2.0 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.2", + "mitoteam/jpgraph": "^10.3", + "mpdf/mpdf": "^8.1.1", + "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^1.1", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.7", + "tecnickcom/tcpdf": "^6.5" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer", + "ext-intl": "PHP Internationalization Functions", + "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + }, + { + "name": "Owen Leibman" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.30.3" + }, + "time": "2026-04-10T03:47:16+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.4", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2025-08-21T11:53:16+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.51", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "d59c94077f9c9915abb51ddb52ce85188ece1748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d59c94077f9c9915abb51ddb52ce85188ece1748", + "reference": "d59c94077f9c9915abb51ddb52ce85188ece1748", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2|^3", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.51" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2026-04-10T01:33:53+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.13", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e", + "reference": "d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" + }, + "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "https://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.13" + }, + "time": "2025-10-20T22:48:29+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.1.1" + }, + "time": "2025-03-22T05:38:12+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.9.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.25", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.9.1" + }, + "time": "2025-09-04T20:59:21+00:00" + }, + { + "name": "symfony/clock", + "version": "v7.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/clock.git", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v7.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/console", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/2b9c5fafbac0399a20a2e82429e2bd735dcfb7db", + "reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-22T15:31:00+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v7.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^6.4|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T10:12:26+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-08-13T11:49:31+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/finder", + "version": "v7.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe", + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "symfony/filesystem": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v7.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T13:41:35+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "c061c7c18918b1b64268771aad04b40be41dd2e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c061c7c18918b1b64268771aad04b40be41dd2e6", + "reference": "c061c7c18918b1b64268771aad04b40be41dd2e6", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + }, + "require-dev": { + "doctrine/dbal": "^3.6|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.4.12|^7.1.5", + "symfony/clock": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-16T08:38:17+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "b796dffea7821f035047235e076b60ca2446e3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b796dffea7821f035047235e076b60ca2446e3cf", + "reference": "b796dffea7821f035047235e076b60ca2446e3cf", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^7.3", + "symfony/http-foundation": "^7.3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<6.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.12" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^7.1", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^7.1", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-27T12:32:17+00:00" + }, + { + "name": "symfony/mailer", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "ab97ef2f7acf0216955f5845484235113047a31d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/ab97ef2f7acf0216955f5845484235113047a31d", + "reference": "ab97ef2f7acf0216955f5845484235113047a31d", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^7.2", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-17T05:51:54+00:00" + }, + { + "name": "symfony/mime", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-16T08:38:17+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-27T09:58:17+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-10T14:38:51+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-01-02T08:10:11+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-08T02:45:35+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-24T13:30:11+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php85\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-23T16:12:55+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/process", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T10:12:26+00:00" + }, + { + "name": "symfony/routing", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T10:12:26+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-04-25T09:37:31+00:00" + }, + { + "name": "symfony/string", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "f96476035142921000338bad71e5247fbc138872" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", + "reference": "f96476035142921000338bad71e5247fbc138872", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T14:36:48+00:00" + }, + { + "name": "symfony/translation", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", + "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "nikic/php-parser": "<5.0", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-07T11:39:36+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-27T08:32:26+00:00" + }, + { + "name": "symfony/uid", + "version": "v7.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", + "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v7.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-27T19:55:54+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb", + "reference": "b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T10:12:26+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" + }, + "time": "2024-12-21T16:25:41+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.2", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.3", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2025-04-30T23:37:27+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "https://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2024-11-21T01:49:47+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "541057574806f942c94662b817a50f63f7345360" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/541057574806f942c94662b817a50f63f7345360", + "reference": "541057574806f942c94662b817a50f63f7345360", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.12.0" + }, + "time": "2025-10-20T12:43:39+00:00" + } + ], + "packages-dev": [ + { + "name": "fakerphp/faker", + "version": "v1.24.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "time": "2024-11-21T13:46:39+00:00" + }, + { + "name": "filp/whoops", + "version": "2.18.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.18.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2025-08-08T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" + }, + "time": "2025-04-30T06:54:44+00:00" + }, + { + "name": "laravel/breeze", + "version": "v2.3.8", + "source": { + "type": "git", + "url": "https://github.com/laravel/breeze.git", + "reference": "1a29c5792818bd4cddf70b5f743a227e02fbcfcd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/breeze/zipball/1a29c5792818bd4cddf70b5f743a227e02fbcfcd", + "reference": "1a29c5792818bd4cddf70b5f743a227e02fbcfcd", + "shasum": "" + }, + "require": { + "illuminate/console": "^11.0|^12.0", + "illuminate/filesystem": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", + "illuminate/validation": "^11.0|^12.0", + "php": "^8.2.0", + "symfony/console": "^7.0" + }, + "require-dev": { + "laravel/framework": "^11.0|^12.0", + "orchestra/testbench-core": "^9.0|^10.0", + "phpstan/phpstan": "^2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Breeze\\BreezeServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Breeze\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Minimal Laravel authentication scaffolding with Blade and Tailwind.", + "keywords": [ + "auth", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/breeze/issues", + "source": "https://github.com/laravel/breeze" + }, + "time": "2025-07-18T18:49:59+00:00" + }, + { + "name": "laravel/pail", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/pail.git", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pail/zipball/8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/console": "^10.24|^11.0|^12.0", + "illuminate/contracts": "^10.24|^11.0|^12.0", + "illuminate/log": "^10.24|^11.0|^12.0", + "illuminate/process": "^10.24|^11.0|^12.0", + "illuminate/support": "^10.24|^11.0|^12.0", + "nunomaduro/termwind": "^1.15|^2.0", + "php": "^8.2", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "laravel/framework": "^10.24|^11.0|^12.0", + "laravel/pint": "^1.13", + "orchestra/testbench-core": "^8.13|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.3|^3.0", + "phpstan/phpstan": "^1.12.27", + "symfony/var-dumper": "^6.3|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Pail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", + "keywords": [ + "dev", + "laravel", + "logs", + "php", + "tail" + ], + "support": { + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" + }, + "time": "2025-06-05T13:55:57+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.25.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/5016e263f95d97670d71b9a987bd8996ade6d8d9", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.2.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.87.2", + "illuminate/view": "^11.46.0", + "larastan/larastan": "^3.7.1", + "laravel-zero/framework": "^11.45.0", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^2.3.1", + "pestphp/pest": "^2.36.0" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2025-09-19T02:57:12+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.46.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "eb90c4f113c4a9637b8fdd16e24cfc64f2b0ae6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/eb90c4f113c4a9637b8fdd16e24cfc64f2b0ae6e", + "reference": "eb90c4f113c4a9637b8fdd16e24cfc64f2b0ae6e", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", + "php": "^8.0", + "symfony/console": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2025-09-23T13:44:39+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2024-05-16T03:13:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.13.4", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v8.8.2", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", + "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.18.1", + "nunomaduro/termwind": "^2.3.1", + "php": "^8.2.0", + "symfony/console": "^7.3.0" + }, + "conflict": { + "laravel/framework": "<11.44.2 || >=13.0.0", + "phpunit/phpunit": "<11.5.15 || >=13.0.0" + }, + "require-dev": { + "brianium/paratest": "^7.8.3", + "larastan/larastan": "^3.4.2", + "laravel/framework": "^11.44.2 || ^12.18", + "laravel/pint": "^1.22.1", + "laravel/sail": "^1.43.1", + "laravel/sanctum": "^4.1.1", + "laravel/tinker": "^2.10.1", + "orchestra/testbench-core": "^9.12.0 || ^10.4", + "pestphp/pest": "^3.8.2", + "sebastian/environment": "^7.2.1 || ^8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "dev", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2025-06-25T02:12:12+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "11.0.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.4.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^11.5.2" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2025-08-27T14:37:49+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-27T05:02:59+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "11.5.42", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c", + "reference": "1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.11", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.2", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.42" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2025-09-28T12:09:13+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:41:36+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-03-19T07:56:08+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:45:54+00:00" + }, + { + "name": "sebastian/comparator", + "version": "6.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" + } + ], + "time": "2025-08-10T08:07:46+00:00" + }, + { + "name": "sebastian/complexity", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:49:50+00:00" + }, + { + "name": "sebastian/diff", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:53:05+00:00" + }, + { + "name": "sebastian/environment", + "version": "7.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" + } + ], + "time": "2025-05-21T11:55:47+00:00" + }, + { + "name": "sebastian/exporter", + "version": "6.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" + } + ], + "time": "2025-09-24T06:12:51+00:00" + }, + { + "name": "sebastian/global-state", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:57:36+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:58:38+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:00:13+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:01:32+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" + } + ], + "time": "2025-08-13T04:42:22+00:00" + }, + { + "name": "sebastian/type", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" + } + ], + "time": "2025-08-09T06:55:48+00:00" + }, + { + "name": "sebastian/version", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-10-09T05:16:32+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d4f4a66866fe2451f61296924767280ab5732d9d", + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.3.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-08-27T11:34:33+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.2" + }, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/dasena-web/config/app.php b/dasena-web/config/app.php new file mode 100644 index 0000000..c74a68d --- /dev/null +++ b/dasena-web/config/app.php @@ -0,0 +1,126 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | the application so that it's available within Artisan commands. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. The timezone + | is set to "UTC" by default as it is suitable for most use cases. + | + */ + + 'timezone' => 'Asia/Jakarta', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by Laravel's translation / localization methods. This option can be + | set to any locale for which you plan to have translation strings. + | + */ + + 'locale' => env('APP_LOCALE', 'en'), + + 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), + + 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is utilized by Laravel's encryption services and should be set + | to a random, 32 character string to ensure that all encrypted values + | are secure. You should do this prior to deploying the application. + | + */ + + 'cipher' => 'AES-256-CBC', + + 'key' => env('APP_KEY'), + + 'previous_keys' => [ + ...array_filter( + explode(',', (string) env('APP_PREVIOUS_KEYS', '')) + ), + ], + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), + 'store' => env('APP_MAINTENANCE_STORE', 'database'), + ], + +]; diff --git a/dasena-web/config/auth.php b/dasena-web/config/auth.php new file mode 100644 index 0000000..ef3ade6 --- /dev/null +++ b/dasena-web/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => env('AUTH_GUARD', 'web'), + 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | which utilizes session storage plus the Eloquent user provider. + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | If you have multiple user tables or models you may configure multiple + | providers to represent the model / table. These providers may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => env('AUTH_MODEL', App\Models\User::class), + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | These configuration options specify the behavior of Laravel's password + | reset functionality, including the table utilized for token storage + | and the user provider that is invoked to actually retrieve users. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'), + 'expire' => 5, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the number of seconds before a password confirmation + | window expires and users are asked to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800), + +]; diff --git a/dasena-web/config/cache.php b/dasena-web/config/cache.php new file mode 100644 index 0000000..b32aead --- /dev/null +++ b/dasena-web/config/cache.php @@ -0,0 +1,117 @@ + env('CACHE_STORE', 'database'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "array", "database", "file", "memcached", + | "redis", "dynamodb", "octane", + | "failover", "null" + | + */ + + 'stores' => [ + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_CACHE_CONNECTION'), + 'table' => env('DB_CACHE_TABLE', 'cache'), + 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'), + 'lock_table' => env('DB_CACHE_LOCK_TABLE'), + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'), + 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'), + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + 'failover' => [ + 'driver' => 'failover', + 'stores' => [ + 'database', + 'array', + ], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, and DynamoDB cache + | stores, there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'), + +]; diff --git a/dasena-web/config/database.php b/dasena-web/config/database.php new file mode 100644 index 0000000..53dcae0 --- /dev/null +++ b/dasena-web/config/database.php @@ -0,0 +1,183 @@ + env('DB_CONNECTION', 'sqlite'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Below are all of the database connections defined for your application. + | An example configuration is provided for each database system which + | is supported by Laravel. You're free to add / remove connections. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DB_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'busy_timeout' => null, + 'journal_mode' => null, + 'synchronous' => null, + 'transaction_mode' => 'DEFERRED', + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'mariadb' => [ + 'driver' => 'mariadb', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run on the database. + | + */ + + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as Memcached. You may define your connection settings here. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'), + 'persistent' => env('REDIS_PERSISTENT', false), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + 'max_retries' => env('REDIS_MAX_RETRIES', 3), + 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), + 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), + 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + 'max_retries' => env('REDIS_MAX_RETRIES', 3), + 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), + 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), + 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), + ], + + ], + +]; diff --git a/dasena-web/config/filesystems.php b/dasena-web/config/filesystems.php new file mode 100644 index 0000000..3d671bd --- /dev/null +++ b/dasena-web/config/filesystems.php @@ -0,0 +1,80 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Below you may configure as many filesystem disks as necessary, and you + | may even configure multiple disks for the same driver. Examples for + | most supported storage drivers are configured here for reference. + | + | Supported drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app/private'), + 'serve' => true, + 'throw' => false, + 'report' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + 'report' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + 'report' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/dasena-web/config/logging.php b/dasena-web/config/logging.php new file mode 100644 index 0000000..9e998a4 --- /dev/null +++ b/dasena-web/config/logging.php @@ -0,0 +1,132 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => env('LOG_DEPRECATIONS_TRACE', false), + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Laravel + | utilizes the Monolog PHP logging library, which includes a variety + | of powerful log handlers and formatters that you're free to use. + | + | Available drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", "custom", "stack" + | + */ + + 'channels' => [ + + 'stack' => [ + 'driver' => 'stack', + 'channels' => explode(',', (string) env('LOG_STACK', 'single')), + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => env('LOG_DAILY_DAYS', 14), + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'), + 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'), + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'handler_with' => [ + 'stream' => 'php://stderr', + ], + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER), + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + + ], + +]; diff --git a/dasena-web/config/mail.php b/dasena-web/config/mail.php new file mode 100644 index 0000000..522b284 --- /dev/null +++ b/dasena-web/config/mail.php @@ -0,0 +1,118 @@ + env('MAIL_MAILER', 'log'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" + | + */ + + 'mailers' => [ + + 'smtp' => [ + 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'http://localhost'), PHP_URL_HOST)), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'resend' => [ + 'transport' => 'resend', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + 'retry_after' => 60, + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + 'retry_after' => 60, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + +]; diff --git a/dasena-web/config/queue.php b/dasena-web/config/queue.php new file mode 100644 index 0000000..9d5e589 --- /dev/null +++ b/dasena-web/config/queue.php @@ -0,0 +1,125 @@ + env('QUEUE_CONNECTION', 'database'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection options for every queue backend + | used by your application. An example configuration is provided for + | each backend supported by Laravel. You're also free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", + | "deferred", "failover", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_QUEUE_CONNECTION'), + 'table' => env('DB_QUEUE_TABLE', 'jobs'), + 'queue' => env('DB_QUEUE', 'default'), + 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), + 'queue' => env('BEANSTALKD_QUEUE', 'default'), + 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), + 'block_for' => null, + 'after_commit' => false, + ], + + 'deferred' => [ + 'driver' => 'deferred', + ], + + 'failover' => [ + 'driver' => 'failover', + 'connections' => [ + 'database', + 'deferred', + ], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control how and where failed jobs are stored. Laravel ships with + | support for storing failed jobs in a simple file or in a database. + | + | Supported drivers: "database-uuids", "dynamodb", "file", "null" + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/dasena-web/config/services.php b/dasena-web/config/services.php new file mode 100644 index 0000000..892366f --- /dev/null +++ b/dasena-web/config/services.php @@ -0,0 +1,47 @@ + [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'resend' => [ + 'key' => env('RESEND_KEY'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + + 'slack' => [ + 'notifications' => [ + 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), + 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), + ], + ], + + 'google' => [ + 'client_id' => env('GOOGLE_CLIENT_ID'), + 'client_secret' => env('GOOGLE_CLIENT_SECRET'), + 'redirect' => env('GOOGLE_REDIRECT_URI'), + ], + + 'flask' => [ + 'url' => env('FLASK_API_URL', 'http://localhost:5000'), + ], +]; diff --git a/dasena-web/config/session.php b/dasena-web/config/session.php new file mode 100644 index 0000000..bc45901 --- /dev/null +++ b/dasena-web/config/session.php @@ -0,0 +1,217 @@ + env('SESSION_DRIVER', 'database'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to expire immediately when the browser is closed then you may + | indicate that via the expire_on_close configuration option. + | + */ + + 'lifetime' => (int) env('SESSION_LIFETIME', 120), + + 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it's stored. All encryption is performed + | automatically by Laravel and you may use the session like normal. + | + */ + + 'encrypt' => env('SESSION_ENCRYPT', false), + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When utilizing the "file" session driver, the session files are placed + | on disk. The default storage location is defined here; however, you + | are free to provide another location where they should be stored. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table to + | be used to store sessions. Of course, a sensible default is defined + | for you; however, you're welcome to change this to another table. + | + */ + + 'table' => env('SESSION_TABLE', 'sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using one of the framework's cache driven session backends, you may + | define the cache store which should be used to store the session data + | between requests. This must match one of your defined cache stores. + | + | Affects: "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the session cookie that is created by + | the framework. Typically, you should not need to change this value + | since doing so does not grant a meaningful security improvement. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug((string) env('APP_NAME', 'laravel')).'-session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application, but you're free to change this when necessary. + | + */ + + 'path' => env('SESSION_PATH', '/'), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | This value determines the domain and subdomains the session cookie is + | available to. By default, the cookie will be available to the root + | domain and all subdomains. Typically, this shouldn't be changed. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. It's unlikely you should disable this option. + | + */ + + 'http_only' => env('SESSION_HTTP_ONLY', true), + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" to permit secure cross-site requests. + | + | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => env('SESSION_SAME_SITE', 'lax'), + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false), + +]; diff --git a/dasena-web/database/.gitignore b/dasena-web/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/dasena-web/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/dasena-web/database/factories/UserFactory.php b/dasena-web/database/factories/UserFactory.php new file mode 100644 index 0000000..584104c --- /dev/null +++ b/dasena-web/database/factories/UserFactory.php @@ -0,0 +1,44 @@ + + */ +class UserFactory extends Factory +{ + /** + * The current password being used by the factory. + */ + protected static ?string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => static::$password ??= Hash::make('password'), + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/dasena-web/database/migrations/0001_01_01_000000_create_users_table.php b/dasena-web/database/migrations/0001_01_01_000000_create_users_table.php new file mode 100644 index 0000000..05fb5d9 --- /dev/null +++ b/dasena-web/database/migrations/0001_01_01_000000_create_users_table.php @@ -0,0 +1,49 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + + Schema::create('password_reset_tokens', function (Blueprint $table) { + $table->string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + + Schema::create('sessions', function (Blueprint $table) { + $table->string('id')->primary(); + $table->foreignId('user_id')->nullable()->index(); + $table->string('ip_address', 45)->nullable(); + $table->text('user_agent')->nullable(); + $table->longText('payload'); + $table->integer('last_activity')->index(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + Schema::dropIfExists('password_reset_tokens'); + Schema::dropIfExists('sessions'); + } +}; diff --git a/dasena-web/database/migrations/0001_01_01_000001_create_cache_table.php b/dasena-web/database/migrations/0001_01_01_000001_create_cache_table.php new file mode 100644 index 0000000..b9c106b --- /dev/null +++ b/dasena-web/database/migrations/0001_01_01_000001_create_cache_table.php @@ -0,0 +1,35 @@ +string('key')->primary(); + $table->mediumText('value'); + $table->integer('expiration'); + }); + + Schema::create('cache_locks', function (Blueprint $table) { + $table->string('key')->primary(); + $table->string('owner'); + $table->integer('expiration'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cache'); + Schema::dropIfExists('cache_locks'); + } +}; diff --git a/dasena-web/database/migrations/0001_01_01_000002_create_jobs_table.php b/dasena-web/database/migrations/0001_01_01_000002_create_jobs_table.php new file mode 100644 index 0000000..425e705 --- /dev/null +++ b/dasena-web/database/migrations/0001_01_01_000002_create_jobs_table.php @@ -0,0 +1,57 @@ +id(); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + + Schema::create('job_batches', function (Blueprint $table) { + $table->string('id')->primary(); + $table->string('name'); + $table->integer('total_jobs'); + $table->integer('pending_jobs'); + $table->integer('failed_jobs'); + $table->longText('failed_job_ids'); + $table->mediumText('options')->nullable(); + $table->integer('cancelled_at')->nullable(); + $table->integer('created_at'); + $table->integer('finished_at')->nullable(); + }); + + Schema::create('failed_jobs', function (Blueprint $table) { + $table->id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jobs'); + Schema::dropIfExists('job_batches'); + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/dasena-web/database/migrations/2026_04_10_074842_add_google_id_to_users_table.php b/dasena-web/database/migrations/2026_04_10_074842_add_google_id_to_users_table.php new file mode 100644 index 0000000..9134af9 --- /dev/null +++ b/dasena-web/database/migrations/2026_04_10_074842_add_google_id_to_users_table.php @@ -0,0 +1,28 @@ +string('google_id')->nullable()->after('email'); + $table->string('password')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/dasena-web/database/migrations/2026_04_12_172841_create_datasets_table.php b/dasena-web/database/migrations/2026_04_12_172841_create_datasets_table.php new file mode 100644 index 0000000..504bcfd --- /dev/null +++ b/dasena-web/database/migrations/2026_04_12_172841_create_datasets_table.php @@ -0,0 +1,31 @@ +id(); + $table->string('file_name'); + $table->string('batch_name')->nullable(); + $table->string('file_path'); + $table->integer('total_rows')->default(0); + $table->enum('status', ['Pending', 'Processing', 'Selesai Diproses'])->default('Pending'); + $table->timestamps(); // created_at = Tanggal Unggah + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('datasets'); + } +}; diff --git a/dasena-web/database/migrations/2026_04_12_172842_create_dataset_items_table.php b/dasena-web/database/migrations/2026_04_12_172842_create_dataset_items_table.php new file mode 100644 index 0000000..ab8ade2 --- /dev/null +++ b/dasena-web/database/migrations/2026_04_12_172842_create_dataset_items_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignId('dataset_id')->constrained('datasets')->onDelete('cascade'); + $table->string('keyword')->nullable(); + $table->date('tanggal')->nullable(); + $table->text('teks'); + $table->text('teks_cleansed')->nullable(); + $table->text('teks_stopword')->nullable(); + $table->text('teks_stemmed')->nullable(); + $table->enum('sentimen', ['Positif', 'Netral', 'Negatif'])->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('dataset_items'); + } +}; \ No newline at end of file diff --git a/dasena-web/database/migrations/2026_04_14_121437_add_role_to_users_table.php b/dasena-web/database/migrations/2026_04_14_121437_add_role_to_users_table.php new file mode 100644 index 0000000..b1708dd --- /dev/null +++ b/dasena-web/database/migrations/2026_04_14_121437_add_role_to_users_table.php @@ -0,0 +1,27 @@ +enum('role', ['admin', 'user'])->default('user')->after('email'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('role'); + }); + } +}; diff --git a/dasena-web/database/migrations/2026_04_20_071034_fix_cascade_dataset_items_foreign_key.php b/dasena-web/database/migrations/2026_04_20_071034_fix_cascade_dataset_items_foreign_key.php new file mode 100644 index 0000000..56ed01f --- /dev/null +++ b/dasena-web/database/migrations/2026_04_20_071034_fix_cascade_dataset_items_foreign_key.php @@ -0,0 +1,36 @@ +dropForeign(['dataset_id']); + + $table->foreign('dataset_id') + ->references('id') + ->on('datasets') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + schema::table('dataset_items', function (Blueprint $table) { + $table->dropForeign(['dataset_id']); + + $table->foreign('dataset_id') + ->references('id') + ->on('datasets'); + }); + } +}; diff --git a/dasena-web/database/migrations/2026_04_26_193829_create_kamus_normalisasis_table.php b/dasena-web/database/migrations/2026_04_26_193829_create_kamus_normalisasis_table.php new file mode 100644 index 0000000..a1ffe6b --- /dev/null +++ b/dasena-web/database/migrations/2026_04_26_193829_create_kamus_normalisasis_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('kata_tidak_baku')->unique(); + $table->string('kata_baku'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kamus_normalisasis'); + } +}; diff --git a/dasena-web/database/migrations/2026_05_02_184851_create_contact_messages_table.php b/dasena-web/database/migrations/2026_05_02_184851_create_contact_messages_table.php new file mode 100644 index 0000000..774b19d --- /dev/null +++ b/dasena-web/database/migrations/2026_05_02_184851_create_contact_messages_table.php @@ -0,0 +1,34 @@ +id(); + $table->string('name'); + $table->string('email'); + $table->string('subject'); + $table->text('message'); + $table->boolean('is_read')->default(false); + $table->boolean('is_replied')->default(false); + $table->text('reply_text')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('contact_messages'); + } +}; diff --git a/dasena-web/database/migrations/2026_05_12_014009_add_teks_normalized_to_dataset_items_table.php b/dasena-web/database/migrations/2026_05_12_014009_add_teks_normalized_to_dataset_items_table.php new file mode 100644 index 0000000..ba8d777 --- /dev/null +++ b/dasena-web/database/migrations/2026_05_12_014009_add_teks_normalized_to_dataset_items_table.php @@ -0,0 +1,27 @@ +text('teks_normalized')->nullable()->after('teks_cleansed'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('dataset_items', function (Blueprint $table) { + $table->dropColumn('teks_normalized'); + }); + } +}; diff --git a/dasena-web/database/migrations/2026_05_26_023629_add_word_count_and_tokenisasi_to_dataset_items_table.php b/dasena-web/database/migrations/2026_05_26_023629_add_word_count_and_tokenisasi_to_dataset_items_table.php new file mode 100644 index 0000000..6edd697 --- /dev/null +++ b/dasena-web/database/migrations/2026_05_26_023629_add_word_count_and_tokenisasi_to_dataset_items_table.php @@ -0,0 +1,28 @@ +unsignedInteger('word_count')->nullable()->after('teks'); + $table->text('tokenisasi')->nullable()->after('teks_cleansed'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('dataset_items', function (Blueprint $table) { + $table->dropColumn(['word_count', 'tokenisasi']); + }); + } +}; \ No newline at end of file diff --git a/dasena-web/database/migrations/2026_05_26_053919_create_ground_truths_table.php b/dasena-web/database/migrations/2026_05_26_053919_create_ground_truths_table.php new file mode 100644 index 0000000..77cac50 --- /dev/null +++ b/dasena-web/database/migrations/2026_05_26_053919_create_ground_truths_table.php @@ -0,0 +1,30 @@ +id(); + $table->text('teks_asli')->nullable(); + $table->text('teks_cleansed'); + $table->enum('sentimen', ['Positif', 'Netral', 'Negatif']); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('ground_truths'); + } +}; \ No newline at end of file diff --git a/dasena-web/database/seeders/DatabaseSeeder.php b/dasena-web/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..6b901f8 --- /dev/null +++ b/dasena-web/database/seeders/DatabaseSeeder.php @@ -0,0 +1,25 @@ +create(); + + User::factory()->create([ + 'name' => 'Test User', + 'email' => 'test@example.com', + ]); + } +} diff --git a/dasena-web/package-lock.json b/dasena-web/package-lock.json new file mode 100644 index 0000000..2d59ed3 --- /dev/null +++ b/dasena-web/package-lock.json @@ -0,0 +1,3486 @@ +{ + "name": "dasena-web", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@tailwindcss/forms": "^0.5.2", + "@tailwindcss/vite": "^4.0.0", + "alpinejs": "^3.4.2", + "autoprefixer": "^10.4.23", + "axios": "^1.11.0", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^2.0.0", + "postcss": "^8.4.31", + "tailwindcss": "^3.1.0", + "vite": "^7.0.7" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.11.tgz", + "integrity": "sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", + "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.18" + } + }, + "node_modules/@tailwindcss/node/node_modules/tailwindcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", + "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-x64": "4.1.18", + "@tailwindcss/oxide-freebsd-x64": "4.1.18", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-x64-musl": "4.1.18", + "@tailwindcss/oxide-wasm32-wasi": "4.1.18", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", + "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", + "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", + "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", + "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", + "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", + "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", + "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", + "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", + "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", + "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.0", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", + "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", + "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz", + "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.18", + "@tailwindcss/oxide": "4.1.18", + "tailwindcss": "4.1.18" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@tailwindcss/vite/node_modules/tailwindcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz", + "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.1.5" + } + }, + "node_modules/@vue/shared": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", + "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/alpinejs": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.4.tgz", + "integrity": "sha512-lDpOdoVo0bhFjgl310k1qw3kbpUYwM/v0WByvAchsO93bl3o1rrgr0P/ssx3CimwEtNfXbmwKbtHbqTRCTTH9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "~3.1.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz", + "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001765", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz", + "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-2.0.1.tgz", + "integrity": "sha512-zQuvzWfUKQu9oNVi1o0RZAJCwhGsdhx4NEOyrVQwJHaWDseGP9tl7XUPLY2T8Cj6+IrZ6lmyxlR1KC8unf3RLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^7.0.0" + } + }, + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/vite-plugin-full-reload/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/dasena-web/package.json b/dasena-web/package.json new file mode 100644 index 0000000..bc83481 --- /dev/null +++ b/dasena-web/package.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "type": "module", + "scripts": { + "build": "vite build", + "dev": "vite" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.2", + "@tailwindcss/vite": "^4.0.0", + "alpinejs": "^3.4.2", + "autoprefixer": "^10.4.23", + "axios": "^1.11.0", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^2.0.0", + "postcss": "^8.4.31", + "tailwindcss": "^3.1.0", + "vite": "^7.0.7" + } +} diff --git a/dasena-web/phpunit.xml b/dasena-web/phpunit.xml new file mode 100644 index 0000000..d703241 --- /dev/null +++ b/dasena-web/phpunit.xml @@ -0,0 +1,35 @@ + + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + + + + diff --git a/dasena-web/postcss.config.js b/dasena-web/postcss.config.js new file mode 100644 index 0000000..49c0612 --- /dev/null +++ b/dasena-web/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/dasena-web/public/.htaccess b/dasena-web/public/.htaccess new file mode 100644 index 0000000..b574a59 --- /dev/null +++ b/dasena-web/public/.htaccess @@ -0,0 +1,25 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Handle X-XSRF-Token Header + RewriteCond %{HTTP:x-xsrf-token} . + RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/dasena-web/public/assets/admin/css/bootstrap.min.css b/dasena-web/public/assets/admin/css/bootstrap.min.css new file mode 100644 index 0000000..3993414 --- /dev/null +++ b/dasena-web/public/assets/admin/css/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/dasena-web/public/assets/admin/css/bootstrap.min.css.map b/dasena-web/public/assets/admin/css/bootstrap.min.css.map new file mode 100644 index 0000000..fb7167c --- /dev/null +++ b/dasena-web/public/assets/admin/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.scss","../themes/_bs-custom-variables.scss","_root.scss","vendor/_rfs.scss","_reboot.scss","bootstrap.css","mixins/_border-radius.scss","_type.scss","mixins/_lists.scss","_images.scss","mixins/_image.scss","_containers.scss","mixins/_container.scss","mixins/_breakpoints.scss","_grid.scss","mixins/_grid.scss","_tables.scss","mixins/_table-variants.scss","forms/_labels.scss","forms/_form-text.scss","forms/_form-control.scss","mixins/_transition.scss","mixins/_gradients.scss","forms/_form-select.scss","forms/_form-check.scss","forms/_form-range.scss","forms/_floating-labels.scss","forms/_input-group.scss","mixins/_forms.scss","_buttons.scss","mixins/_buttons.scss","_transitions.scss","_dropdown.scss","mixins/_caret.scss","_button-group.scss","_nav.scss","_navbar.scss","_card.scss","_accordion.scss","_breadcrumb.scss","_pagination.scss","mixins/_pagination.scss","_badge.scss","_alert.scss","mixins/_alert.scss","_progress.scss","_list-group.scss","mixins/_list-group.scss","_close.scss","_toasts.scss","_modal.scss","mixins/_backdrop.scss","_tooltip.scss","mixins/_reset-text.scss","_popover.scss","_carousel.scss","mixins/_clearfix.scss","_spinners.scss","_offcanvas.scss","_placeholders.scss","helpers/_color-bg.scss","helpers/_colored-links.scss","helpers/_ratio.scss","helpers/_position.scss","helpers/_stacks.scss","helpers/_visually-hidden.scss","mixins/_visually-hidden.scss","helpers/_stretched-link.scss","helpers/_text-truncation.scss","mixins/_text-truncate.scss","helpers/_vr.scss","mixins/_utilities.scss","utilities/_api.scss"],"names":[],"mappings":"iBAAA;;;;;AC4KA,0CACC,QAAA,2UC3KD,MAQI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,YAAA,QAIA,iBAAA,EAAA,CAAA,EAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,GAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,GAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EACA,oBAAA,EAAA,CAAA,EAAA,CAAA,GACA,iBAAA,GAAA,CAAA,GAAA,CAAA,IAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAOA,sBAAA,0BC0PI,oBAAA,KDxPJ,sBAAA,IACA,sBAAA,IACA,gBAAA,QAIA,aAAA,QAIA,kBAAA,IACA,kBAAA,MACA,kBAAA,QACA,8BAAA,qBAEA,mBAAA,IACA,sBAAA,IACA,sBAAA,IACA,sBAAA,KACA,uBAAA,KACA,wBAAA,MAIA,gBAAA,QACA,sBAAA,QAEA,gBAAA,QAEA,kBAAA,QE3DF,ECgFA,QADA,SD5EE,WAAA,WAeE,8CANJ,MAOM,gBAAA,QAcN,KACE,OAAA,EACA,YAAA,2BDmPI,UAAA,yBCjPJ,YAAA,2BACA,YAAA,2BACA,MAAA,qBACA,WAAA,0BACA,iBAAA,kBACA,yBAAA,KACA,4BAAA,YASF,GACE,OAAA,KAAA,EACA,MAAA,QACA,OAAA,EACA,WAAA,IAAA,MACA,QAAA,IAUF,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAGA,YAAA,IACA,YAAA,IACA,MAAA,wBAGF,IAAA,GD6MQ,UAAA,sBAlKJ,0BC3CJ,IAAA,GDoNQ,UAAA,SC/MR,IAAA,GDwMQ,UAAA,oBAlKJ,0BCtCJ,IAAA,GD+MQ,UAAA,SC1MR,IAAA,GDmMQ,UAAA,sBAlKJ,0BCjCJ,IAAA,GD0MQ,UAAA,QCrMR,IAAA,GD0LM,UAAA,QCrLN,IAAA,GDqLM,UAAA,KChLN,IAAA,GDgLM,UAAA,SCrKN,EACE,WAAA,EACA,cAAA,KAUF,YACE,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,iCAAA,KAAA,yBAAA,KAMF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QAMF,GCmCA,GDjCE,aAAA,KCuCF,GDpCA,GCmCA,GDhCE,WAAA,EACA,cAAA,KAGF,MCoCA,MACA,MAFA,MD/BE,cAAA,EAGF,GACE,YAAA,IAKF,GACE,cAAA,MACA,YAAA,EAMF,WACE,OAAA,EAAA,EAAA,KAQF,ECyBA,ODvBE,YAAA,IAQF,OAAA,MDmFM,UAAA,OC5EN,MAAA,KACE,QAAA,QACA,iBAAA,uBASF,ICWA,IDTE,SAAA,SD+DI,UAAA,MC7DJ,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAKN,EACE,MAAA,qBACA,gBAAA,UAEA,QACE,MAAA,2BAWF,2BAAA,iCAEE,MAAA,QACA,gBAAA,KCOJ,KACA,IDDA,ICEA,KDEE,YAAA,yBDqBI,UAAA,ICbN,IACE,QAAA,MACA,WAAA,EACA,cAAA,KACA,SAAA,KDSI,UAAA,OCJJ,SDII,UAAA,QCFF,MAAA,QACA,WAAA,OAIJ,KDHM,UAAA,OCKJ,MAAA,qBACA,UAAA,WAGA,OACE,MAAA,QAIJ,IACE,QAAA,SAAA,QDfI,UAAA,OCiBJ,MAAA,kBACA,iBAAA,qBEpSE,cAAA,IFuSF,QACE,QAAA,EDtBE,UAAA,ICiCN,OACE,OAAA,EAAA,EAAA,KAMF,ICnBA,IDqBE,eAAA,OAQF,MACE,aAAA,OACA,gBAAA,SAGF,QACE,YAAA,MACA,eAAA,MACA,MAAA,mCACA,WAAA,KAOF,GAEE,WAAA,QACA,WAAA,qBC1BF,MAGA,GAFA,MAGA,GDyBA,MC3BA,GDiCE,aAAA,QACA,aAAA,MACA,aAAA,EAQF,MACE,QAAA,aAMF,OAEE,cAAA,EAQF,iCACE,QAAA,ECxCF,OD6CA,MC3CA,SADA,OAEA,SD+CE,OAAA,EACA,YAAA,QDrHI,UAAA,QCuHJ,YAAA,QAIF,OC9CA,ODgDE,eAAA,KAKF,cACE,OAAA,QAGF,OAGE,UAAA,OAGA,gBACE,QAAA,EAOJ,0IACE,QAAA,eCpDF,cACA,aACA,cD0DA,OAIE,mBAAA,OC1DF,6BACA,4BACA,6BD2DI,sBACE,OAAA,QAON,mBACE,QAAA,EACA,aAAA,KAKF,SACE,OAAA,SAUF,SACE,UAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EAQF,OACE,MAAA,KACA,MAAA,KACA,QAAA,EACA,cAAA,MD1MM,UAAA,sBC6MN,YAAA,QD/WE,0BCwWJ,OD/LQ,UAAA,QCwMN,SACE,MAAA,KClEJ,kCDyEA,uCC1EA,mCADA,+BAGA,oCAJA,6BAKA,mCD8EE,QAAA,EAGF,4BACE,OAAA,KASF,cACE,eAAA,KACA,mBAAA,UAmBF,4BACE,mBAAA,KAKF,+BACE,QAAA,EAOF,uBACE,KAAA,QACA,mBAAA,OAKF,OACE,QAAA,aAKF,OACE,OAAA,EAOF,QACE,QAAA,UACA,OAAA,QAQF,SACE,eAAA,SAQF,SACE,QAAA,eGpkBF,MJyQM,UAAA,QIvQJ,YAAA,IAKA,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,MI7QN,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,QI7QN,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,MI7QN,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,QI7QN,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,MI7QN,WJsQM,UAAA,uBIpQJ,YAAA,IACA,YAAA,IJiGA,0BIpGF,WJ6QM,UAAA,QIvPR,eCrDE,aAAA,EACA,WAAA,KDyDF,aC1DE,aAAA,EACA,WAAA,KD4DF,kBACE,QAAA,aAEA,mCACE,aAAA,MAUJ,YJsNM,UAAA,OIpNJ,eAAA,UAIF,YACE,cAAA,KJ+MI,UAAA,QI5MJ,wBACE,cAAA,EAIJ,mBACE,WAAA,MACA,cAAA,KJqMI,UAAA,OInMJ,MAAA,QAEA,2BACE,QAAA,KE9FJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,uBHGE,cAAA,QIRF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBN+PM,UAAA,OM7PJ,MAAA,QElCA,WNsnBF,iBAGA,cACA,cACA,cAHA,cADA,eO1nBE,cAAA,OACA,cAAA,EACA,MAAA,KACA,cAAA,8BACA,aAAA,8BACA,aAAA,KACA,YAAA,KCsDE,yBF5CE,WAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cAAA,cACE,UAAA,OE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QGfN,KCAA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KAEA,WAAA,8BACA,aAAA,+BACA,YAAA,+BDJE,OCaF,YAAA,EACA,MAAA,KACA,UAAA,KACA,cAAA,8BACA,aAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,YAAA,YAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,WAxDV,YAAA,aAwDU,WAxDV,YAAA,aAmEM,KVytBR,MUvtBU,cAAA,EAGF,KVytBR,MUvtBU,cAAA,EAPF,KVmuBR,MUjuBU,cAAA,QAGF,KVmuBR,MUjuBU,cAAA,QAPF,KV6uBR,MU3uBU,cAAA,OAGF,KV6uBR,MU3uBU,cAAA,OAPF,KVuvBR,MUrvBU,cAAA,KAGF,KVuvBR,MUrvBU,cAAA,KAPF,KViwBR,MU/vBU,cAAA,OAGF,KViwBR,MU/vBU,cAAA,OAPF,KV2wBR,MUzwBU,cAAA,KAGF,KV2wBR,MUzwBU,cAAA,KF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QV64BN,SU34BQ,cAAA,EAGF,QV44BN,SU14BQ,cAAA,EAPF,QVq5BN,SUn5BQ,cAAA,QAGF,QVo5BN,SUl5BQ,cAAA,QAPF,QV65BN,SU35BQ,cAAA,OAGF,QV45BN,SU15BQ,cAAA,OAPF,QVq6BN,SUn6BQ,cAAA,KAGF,QVo6BN,SUl6BQ,cAAA,KAPF,QV66BN,SU36BQ,cAAA,OAGF,QV46BN,SU16BQ,cAAA,OAPF,QVq7BN,SUn7BQ,cAAA,KAGF,QVo7BN,SUl7BQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QVsjCN,SUpjCQ,cAAA,EAGF,QVqjCN,SUnjCQ,cAAA,EAPF,QV8jCN,SU5jCQ,cAAA,QAGF,QV6jCN,SU3jCQ,cAAA,QAPF,QVskCN,SUpkCQ,cAAA,OAGF,QVqkCN,SUnkCQ,cAAA,OAPF,QV8kCN,SU5kCQ,cAAA,KAGF,QV6kCN,SU3kCQ,cAAA,KAPF,QVslCN,SUplCQ,cAAA,OAGF,QVqlCN,SUnlCQ,cAAA,OAPF,QV8lCN,SU5lCQ,cAAA,KAGF,QV6lCN,SU3lCQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QV+tCN,SU7tCQ,cAAA,EAGF,QV8tCN,SU5tCQ,cAAA,EAPF,QVuuCN,SUruCQ,cAAA,QAGF,QVsuCN,SUpuCQ,cAAA,QAPF,QV+uCN,SU7uCQ,cAAA,OAGF,QV8uCN,SU5uCQ,cAAA,OAPF,QVuvCN,SUrvCQ,cAAA,KAGF,QVsvCN,SUpvCQ,cAAA,KAPF,QV+vCN,SU7vCQ,cAAA,OAGF,QV8vCN,SU5vCQ,cAAA,OAPF,QVuwCN,SUrwCQ,cAAA,KAGF,QVswCN,SUpwCQ,cAAA,MF1DN,0BEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QVw4CN,SUt4CQ,cAAA,EAGF,QVu4CN,SUr4CQ,cAAA,EAPF,QVg5CN,SU94CQ,cAAA,QAGF,QV+4CN,SU74CQ,cAAA,QAPF,QVw5CN,SUt5CQ,cAAA,OAGF,QVu5CN,SUr5CQ,cAAA,OAPF,QVg6CN,SU95CQ,cAAA,KAGF,QV+5CN,SU75CQ,cAAA,KAPF,QVw6CN,SUt6CQ,cAAA,OAGF,QVu6CN,SUr6CQ,cAAA,OAPF,QVg7CN,SU96CQ,cAAA,KAGF,QV+6CN,SU76CQ,cAAA,MF1DN,0BEUE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,YAAA,EAwDU,cAxDV,YAAA,YAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,eAxDV,YAAA,aAwDU,eAxDV,YAAA,aAmEM,SVijDN,UU/iDQ,cAAA,EAGF,SVgjDN,UU9iDQ,cAAA,EAPF,SVyjDN,UUvjDQ,cAAA,QAGF,SVwjDN,UUtjDQ,cAAA,QAPF,SVikDN,UU/jDQ,cAAA,OAGF,SVgkDN,UU9jDQ,cAAA,OAPF,SVykDN,UUvkDQ,cAAA,KAGF,SVwkDN,UUtkDQ,cAAA,KAPF,SVilDN,UU/kDQ,cAAA,OAGF,SVglDN,UU9kDQ,cAAA,OAPF,SVylDN,UUvlDQ,cAAA,KAGF,SVwlDN,UUtlDQ,cAAA,MCrHV,OACE,iBAAA,qBACA,cAAA,YACA,wBAAA,uBACA,qBAAA,YACA,yBAAA,qBACA,sBAAA,oBACA,wBAAA,qBACA,qBAAA,mBACA,uBAAA,qBACA,oBAAA,qBAEA,MAAA,KACA,cAAA,KACA,MAAA,sBACA,eAAA,IACA,aAAA,6BAOA,yBACE,QAAA,MAAA,MACA,iBAAA,mBACA,oBAAA,IACA,WAAA,MAAA,EAAA,EAAA,EAAA,OAAA,0BAGF,aACE,eAAA,QAGF,aACE,eAAA,OAIJ,qBACE,WAAA,IAAA,MAAA,aAOF,aACE,aAAA,IAUA,4BACE,QAAA,OAAA,OAeF,gCACE,aAAA,IAAA,EAGA,kCACE,aAAA,EAAA,IAOJ,oCACE,oBAAA,EAGF,qCACE,iBAAA,EAUF,2CACE,qBAAA,2BACA,MAAA,8BAMF,yDACE,qBAAA,2BACA,MAAA,8BAQJ,cACE,qBAAA,0BACA,MAAA,6BAQA,8BACE,qBAAA,yBACA,MAAA,4BCrIF,eAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,iBAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,eAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,YAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,eAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,cAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,aAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BAlBF,YAOE,iBAAA,KACA,cAAA,QACA,wBAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,sBACA,aAAA,6BD0IA,kBACE,WAAA,KACA,2BAAA,MHpFF,4BGkFA,qBACE,WAAA,KACA,2BAAA,OHpFF,4BGkFA,qBACE,WAAA,KACA,2BAAA,OHpFF,4BGkFA,qBACE,WAAA,KACA,2BAAA,OHpFF,6BGkFA,qBACE,WAAA,KACA,2BAAA,OHpFF,6BGkFA,sBACE,WAAA,KACA,2BAAA,OE5JN,YACE,cAAA,MASF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EfoRI,UAAA,QehRJ,YAAA,IAIF,mBACE,YAAA,kBACA,eAAA,kBf0QI,UAAA,QetQN,mBACE,YAAA,mBACA,eAAA,mBfoQI,UAAA,QgBjSN,WACE,WAAA,OhBgSI,UAAA,OgB5RJ,MAAA,mCCLF,cACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,OjB8RI,UAAA,QiB3RJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KdGE,cAAA,QeHE,WAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAIA,uCDhBN,cCiBQ,WAAA,MDGN,yBACE,SAAA,OAEA,wDACE,OAAA,QAKJ,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAOJ,2CAEE,OAAA,MAIF,gCACE,MAAA,QAEA,QAAA,EAHF,2BACE,MAAA,QAEA,QAAA,EAQF,uBAAA,wBAGE,iBAAA,QAGA,QAAA,EAIF,oCACE,QAAA,QAAA,OACA,OAAA,SAAA,QACA,kBAAA,OACA,MAAA,QE5EF,iBAAA,QF8EE,eAAA,KACA,aAAA,QACA,aAAA,MACA,aAAA,EACA,wBAAA,IACA,cAAA,ECvEE,WAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAIA,uCDwDJ,oCCvDM,WAAA,MDsEN,yEACE,iBAAA,QASJ,wBACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,EACA,cAAA,EACA,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAEA,wCAAA,wCAEE,cAAA,EACA,aAAA,EAWJ,iBACE,WAAA,0BACA,QAAA,OAAA,MjBqKI,UAAA,QGlRF,cAAA,OciHF,uCACE,QAAA,OAAA,MACA,OAAA,QAAA,OACA,kBAAA,MAIJ,iBACE,WAAA,yBACA,QAAA,MAAA,KjBwJI,UAAA,QGlRF,cAAA,Mc8HF,uCACE,QAAA,MAAA,KACA,OAAA,OAAA,MACA,kBAAA,KAQF,sBACE,WAAA,2BAGF,yBACE,WAAA,0BAGF,yBACE,WAAA,yBAKJ,oBACE,MAAA,KACA,OAAA,KACA,QAAA,QAEA,mDACE,OAAA,QAGF,uCACE,OAAA,MdjKA,cAAA,QcqKF,0CACE,OAAA,MdtKA,cAAA,QiBdJ,aACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,QAAA,QAAA,OACA,mBAAA,mBpB4RI,UAAA,KoBzRJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,iBAAA,gOACA,kBAAA,UACA,oBAAA,MAAA,OAAA,OACA,gBAAA,KAAA,KACA,OAAA,IAAA,MAAA,QjBDE,cAAA,QeHE,WAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KEQJ,mBAAA,KAAA,gBAAA,KAAA,WAAA,KFJI,uCEfN,aFgBQ,WAAA,MEKN,mBACE,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,uBAAA,mCAEE,cAAA,OACA,iBAAA,KAGF,sBAEE,iBAAA,QAKF,4BACE,MAAA,YACA,YAAA,EAAA,EAAA,EAAA,QAIJ,gBACE,YAAA,OACA,eAAA,OACA,aAAA,MpB0OI,UAAA,QGlRF,cAAA,OiB6CJ,gBACE,YAAA,MACA,eAAA,MACA,aAAA,KpBkOI,UAAA,QGlRF,cAAA,MkBfJ,YACE,QAAA,MACA,WAAA,OACA,aAAA,MACA,cAAA,QAEA,8BACE,MAAA,KACA,YAAA,OAIJ,oBACE,cAAA,MACA,aAAA,EACA,WAAA,MAEA,sCACE,MAAA,MACA,aAAA,OACA,YAAA,EAIJ,kBACE,MAAA,IACA,OAAA,IACA,WAAA,MACA,eAAA,IACA,iBAAA,KACA,kBAAA,UACA,oBAAA,OACA,gBAAA,QACA,OAAA,IAAA,MAAA,gBACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,mBAAA,MAGA,iClBvBE,cAAA,MkB2BF,8BAEE,cAAA,IAGF,yBACE,OAAA,gBAGF,wBACE,aAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,0BACE,iBAAA,QACA,aAAA,QAEA,yCAII,iBAAA,8NAIJ,sCAII,iBAAA,sIAKN,+CACE,iBAAA,QACA,aAAA,QAKE,iBAAA,wNAIJ,2BACE,eAAA,KACA,OAAA,KACA,QAAA,GAOA,6CAAA,8CACE,OAAA,QACA,QAAA,GAcN,aACE,aAAA,MAEA,+BACE,MAAA,IACA,YAAA,OACA,iBAAA,uJACA,oBAAA,KAAA,OlB3GA,cAAA,IeHE,WAAA,oBAAA,KAAA,KAIA,uCGsGJ,+BHrGM,WAAA,MG6GJ,qCACE,iBAAA,yIAGF,uCACE,oBAAA,MAAA,OAKE,iBAAA,sIAKN,gCACE,cAAA,MACA,aAAA,EAEA,kDACE,aAAA,OACA,YAAA,EAKN,mBACE,QAAA,aACA,aAAA,KAGF,WACE,SAAA,SACA,KAAA,cACA,eAAA,KAIE,yBAAA,0BACE,eAAA,KACA,OAAA,KACA,QAAA,ICrKN,YACE,MAAA,KACA,OAAA,OACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAEA,kBACE,QAAA,EAIA,wCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAC1B,oCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAG5B,8BACE,OAAA,EAGF,kCACE,MAAA,KACA,OAAA,KACA,WAAA,QHzBF,iBAAA,QG2BE,OAAA,EnBZA,cAAA,KeHE,mBAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAAA,WAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KImBF,mBAAA,KAAA,WAAA,KJfE,uCIMJ,kCJLM,mBAAA,KAAA,WAAA,MIgBJ,yCHjCF,iBAAA,QGsCA,2CACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnB7BA,cAAA,KmBkCF,8BACE,MAAA,KACA,OAAA,KHnDF,iBAAA,QGqDE,OAAA,EnBtCA,cAAA,KeHE,gBAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAAA,WAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KI6CF,gBAAA,KAAA,WAAA,KJzCE,uCIiCJ,8BJhCM,gBAAA,KAAA,WAAA,MI0CJ,qCH3DF,iBAAA,QGgEA,8BACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnBvDA,cAAA,KmB4DF,qBACE,eAAA,KAEA,2CACE,iBAAA,QAGF,uCACE,iBAAA,QCvFN,eACE,SAAA,SAEA,6BrB82EF,uCACA,4BqB52EI,OAAA,mBACA,YAAA,KAGF,qBACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,OAAA,KACA,QAAA,KAAA,OACA,eAAA,KACA,OAAA,IAAA,MAAA,YACA,iBAAA,EAAA,ELFE,WAAA,QAAA,IAAA,IAAA,CAAA,UAAA,IAAA,KAIA,uCKVJ,qBLWM,WAAA,MKCN,6BrBi3EF,uCqB/2EI,QAAA,KAAA,OAEA,yDAAA,+CACE,MAAA,YrBm3EN,oDqBp3EI,0CACE,MAAA,YAGF,oEAAA,0DAEE,YAAA,SACA,eAAA,QrBq3EN,6CACA,+DqBz3EI,mCAAA,qDAEE,YAAA,SACA,eAAA,QrB23EN,wDqBx3EI,8CACE,YAAA,SACA,eAAA,QAIJ,4BACE,YAAA,SACA,eAAA,QAOA,gEACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBrBq3EN,6CqBv3EI,yCrBs3EJ,2DAEA,kCqBv3EM,QAAA,IACA,UAAA,WAAA,mBAAA,mBAKF,oDACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBAKF,6CACE,aAAA,IAAA,EC9DN,aACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,KAEA,2BtBo7EF,0BsBl7EI,SAAA,SACA,KAAA,EAAA,EAAA,KACA,MAAA,GACA,UAAA,EAIF,iCtBk7EF,gCsBh7EI,QAAA,EAMF,kBACE,SAAA,SACA,QAAA,EAEA,wBACE,QAAA,EAWN,kBACE,QAAA,KACA,YAAA,OACA,QAAA,QAAA,OxBsPI,UAAA,QwBpPJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QrBpCE,cAAA,QDg9EJ,qBsBl6EA,8BtBg6EA,6BACA,kCsB75EE,QAAA,MAAA,KxBgOI,UAAA,QGlRF,cAAA,MDy9EJ,qBsBl6EA,8BtBg6EA,6BACA,kCsB75EE,QAAA,OAAA,MxBuNI,UAAA,QGlRF,cAAA,OqBgEJ,6BtBg6EA,6BsB95EE,cAAA,KtBm6EF,uEsBt5EI,8FrB/DA,wBAAA,EACA,2BAAA,EDy9EJ,iEsBp5EI,2FrBtEA,wBAAA,EACA,2BAAA,EqBgFF,0IACE,YAAA,KrBpEA,uBAAA,EACA,0BAAA,EsBzBF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OzByQE,UAAA,OyBtQF,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MzB4PE,UAAA,QyBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,QD4gFJ,0BACA,yBuB9+EI,sCvB4+EJ,qCuB1+EM,QAAA,MA9CF,uBAAA,mCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,0OACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,6BAAA,yCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,2CAAA,+BAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,sBAAA,kCAiFE,aAAA,QAGE,kDAAA,gDAAA,8DAAA,4DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,0OACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,4BAAA,wCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,6BAAA,yCAuGI,MAAA,kCAvGJ,2BAAA,uCA8GE,aAAA,QAEA,mCAAA,+CACE,iBAAA,QAGF,iCAAA,6CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,6CAAA,yDACE,MAAA,QAKJ,qDACE,YAAA,KA/HF,oCvBqlFJ,mCuBrlFI,gDvBolFJ,+CuB78EQ,QAAA,EAIF,0CvB+8EN,yCuB/8EM,sDvB88EN,qDuB78EQ,QAAA,EAzHN,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OzByQE,UAAA,OyBtQF,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MzB4PE,UAAA,QyBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,QDymFJ,8BACA,6BuB3kFI,0CvBykFJ,yCuBvkFM,QAAA,MA9CF,yBAAA,qCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,2TACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,+BAAA,2CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,6CAAA,iCAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,wBAAA,oCAiFE,aAAA,QAGE,oDAAA,kDAAA,gEAAA,8DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,2TACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,8BAAA,0CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,+BAAA,2CAuGI,MAAA,kCAvGJ,6BAAA,yCA8GE,aAAA,QAEA,qCAAA,iDACE,iBAAA,QAGF,mCAAA,+CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,+CAAA,2DACE,MAAA,QAKJ,uDACE,YAAA,KA/HF,sCvBkrFJ,qCuBlrFI,kDvBirFJ,iDuBxiFQ,QAAA,EAEF,4CvB4iFN,2CuB5iFM,wDvB2iFN,uDuB1iFQ,QAAA,EC5IR,KAEE,mBAAA,QACA,mBAAA,S1B4RI,mBAAA,K0BzRJ,qBAAA,IACA,qBAAA,IACA,eAAA,QACA,YAAA,YACA,sBAAA,IACA,sBAAA,YACA,uBAAA,SACA,oBAAA,MAAA,EAAA,IAAA,EAAA,yBAAA,CAAA,EAAA,IAAA,IAAA,qBACA,0BAAA,KACA,0BAAA,EAAA,EAAA,EAAA,QAAA,yCAGA,QAAA,aACA,QAAA,wBAAA,wBACA,YAAA,0B1B2QI,UAAA,wB0BzQJ,YAAA,0BACA,YAAA,0BACA,MAAA,oBACA,WAAA,OACA,gBAAA,KAEA,eAAA,OACA,OAAA,QACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,OAAA,2BAAA,MAAA,2BvBlBE,cAAA,4BgBfF,iBAAA,iBDYI,WAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAIA,uCQdN,KReQ,WAAA,MQsBN,WACE,MAAA,0BAEA,iBAAA,uBACA,aAAA,iCAGF,sBAAA,WAEE,MAAA,0BPhDF,iBAAA,uBOkDE,aAAA,iCACA,QAAA,EAKE,WAAA,+BAIJ,uBAAA,wBAAA,YAAA,UAAA,YAKE,MAAA,2BACA,iBAAA,wBAGA,aAAA,kCAGA,6BAAA,8BAAA,kBAAA,gBAAA,kBAKI,WAAA,+BAKN,cAAA,cAAA,uBAGE,MAAA,6BACA,eAAA,KACA,iBAAA,0BAEA,aAAA,oCACA,QAAA,+BAYF,aCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,eCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,aCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,GAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,UCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,aCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,YCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,EAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,WCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,UCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,EAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QDuEA,YCpFA,eAAA,KACA,YAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,EAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,+BAAA,QD6EA,qBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,EAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,uBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,qBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,kBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,qBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,oBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,EAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,mBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,GAAA,CAAA,GAAA,CAAA,IACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,kBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,EAAA,CAAA,EAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDqDA,oBCjEA,eAAA,QACA,sBAAA,QACA,qBAAA,KACA,kBAAA,QACA,4BAAA,QACA,0BAAA,CAAA,CAAA,EAAA,CAAA,GACA,sBAAA,KACA,mBAAA,QACA,6BAAA,QACA,uBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,QACA,qBAAA,YACA,cAAA,KDiEF,UACE,qBAAA,IACA,eAAA,qBACA,YAAA,YACA,sBAAA,YACA,qBAAA,2BACA,4BAAA,YACA,6BAAA,YACA,wBAAA,QACA,+BAAA,YACA,oBAAA,KAEA,gBAAA,UAeF,mBAAA,QCtFE,mBAAA,OACA,mBAAA,K3BmOI,mBAAA,Q2BjOJ,uBAAA,ODuFF,mBAAA,QC1FE,mBAAA,QACA,mBAAA,O3BmOI,mBAAA,S2BjOJ,uBAAA,QCpEF,MVgBM,WAAA,QAAA,KAAA,OAIA,uCUpBN,MVqBQ,WAAA,MUlBN,iBACE,QAAA,EAMF,qBACE,QAAA,KAIJ,YACE,OAAA,EACA,SAAA,OVDI,WAAA,OAAA,KAAA,KAIA,uCULN,YVMQ,WAAA,MUDN,gCACE,MAAA,EACA,OAAA,KVNE,WAAA,MAAA,KAAA,KAIA,uCUAJ,gCVCM,WAAA,MhB0lGR,UAGA,iBAJA,SAEA,W2B/mGA,Q3BgnGA,e2B1mGE,SAAA,SAGF,iBACE,YAAA,OCmBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,EDzCN,eAEE,wBAAA,MACA,wBAAA,EACA,wBAAA,OACA,qBAAA,S7B8QI,wBAAA,K6B5QJ,oBAAA,QACA,iBAAA,KACA,2BAAA,QACA,4BAAA,SACA,2BAAA,IACA,kCAAA,qBACA,yBAAA,QACA,+BAAA,OACA,yBAAA,EAAA,OAAA,KAAA,oBACA,yBAAA,QACA,+BAAA,QACA,4BAAA,QACA,gCAAA,KACA,6BAAA,QACA,kCAAA,QACA,6BAAA,KACA,6BAAA,QACA,2BAAA,QACA,+BAAA,KACA,+BAAA,OAGA,SAAA,SACA,QAAA,KACA,QAAA,KACA,UAAA,6BACA,QAAA,6BAAA,6BACA,OAAA,E7BiPI,UAAA,6B6B/OJ,MAAA,yBACA,WAAA,KACA,WAAA,KACA,iBAAA,sBACA,gBAAA,YACA,OAAA,gCAAA,MAAA,gC1BxCE,cAAA,iC0B4CF,+BACE,IAAA,KACA,KAAA,EACA,WAAA,0BAYA,qBACE,cAAA,MAEA,qCACE,MAAA,KACA,KAAA,EAIJ,mBACE,cAAA,IAEA,mCACE,MAAA,EACA,KAAA,KnB7BJ,yBmBeA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnB7BJ,yBmBeA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnB7BJ,yBmBeA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnB7BJ,0BmBeA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnB7BJ,0BmBeA,yBACE,cAAA,MAEA,yCACE,MAAA,KACA,KAAA,EAIJ,uBACE,cAAA,IAEA,uCACE,MAAA,EACA,KAAA,MAUN,uCACE,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,0BC5EA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,EDwDJ,wCACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,0BC1FA,iCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,uCACE,YAAA,EDkEF,iCACE,eAAA,EAMJ,0CACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,0BC3GA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAWA,mCACE,QAAA,KAGF,oCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,yCACE,YAAA,EDmFF,oCACE,eAAA,EAON,kBACE,OAAA,EACA,OAAA,oCAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,8BACA,QAAA,EAMF,eACE,QAAA,MACA,MAAA,KACA,QAAA,kCAAA,kCACA,MAAA,KACA,YAAA,IACA,MAAA,8BACA,WAAA,QACA,gBAAA,KACA,YAAA,OACA,iBAAA,YACA,OAAA,EAcA,qBAAA,qBAEE,MAAA,oCVxLF,iBAAA,iCU6LA,sBAAA,sBAEE,MAAA,qCACA,gBAAA,KVhMF,iBAAA,kCUoMA,wBAAA,wBAEE,MAAA,uCACA,eAAA,KACA,iBAAA,YAMJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,oCAAA,oCACA,cAAA,E7B2EI,UAAA,Q6BzEJ,MAAA,gCACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,kCAAA,kCACA,MAAA,8BAIF,oBAEE,oBAAA,QACA,iBAAA,QACA,2BAAA,mCAEA,yBAAA,QACA,+BAAA,KACA,yBAAA,mCACA,4BAAA,0BACA,gCAAA,KACA,6BAAA,QACA,kCAAA,QACA,2BAAA,QEpPF,W7Bw6GA,oB6Bt6GE,SAAA,SACA,QAAA,YACA,eAAA,O7B06GF,yB6Bx6GE,gBACE,SAAA,SACA,KAAA,EAAA,EAAA,K7Bg7GJ,4CACA,0CAIA,gCADA,gCADA,+BADA,+B6B76GE,mC7Bs6GF,iCAIA,uBADA,uBADA,sBADA,sB6Bj6GI,QAAA,EAKJ,aACE,QAAA,KACA,UAAA,KACA,gBAAA,WAEA,0BACE,MAAA,KAIJ,W5BhBI,cAAA,QD47GJ,wC6Bx6GE,kCAEE,YAAA,K7B26GJ,4CADA,kD6Bt6GE,uD5BVE,wBAAA,EACA,2BAAA,EDs7GJ,6C6Bn6GE,+B7Bk6GF,iCCx6GI,uBAAA,EACA,0BAAA,E4BwBJ,uBACE,cAAA,SACA,aAAA,SAEA,8BAAA,uCAAA,sCAGE,YAAA,EAGF,0CACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,eAAA,OACA,YAAA,WACA,gBAAA,OAEA,yB7Bi4GF,+B6B/3GI,MAAA,K7Bm4GJ,iD6Bh4GE,2CAEE,WAAA,K7Bk4GJ,qD6B93GE,gE5B1FE,2BAAA,EACA,0BAAA,ED49GJ,sD6B93GE,8B5B7GE,uBAAA,EACA,wBAAA,E6BxBJ,KAEE,wBAAA,KACA,wBAAA,OAGA,oBAAA,qBACA,0BAAA,2BACA,6BAAA,QAGA,QAAA,KACA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,6BAAA,6BhC4QI,UAAA,6BgC1QJ,YAAA,+BACA,MAAA,yBACA,gBAAA,KdbI,WAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,KAIA,uCcGN,UdFQ,WAAA,McWN,gBAAA,gBAEE,MAAA,+BAKF,mBACE,MAAA,kCACA,eAAA,KACA,OAAA,QAQJ,UAEE,2BAAA,IACA,2BAAA,QACA,4BAAA,SACA,sCAAA,QAAA,QAAA,QACA,gCAAA,QACA,6BAAA,QACA,uCAAA,QAAA,QAAA,KAGA,cAAA,gCAAA,MAAA,gCAEA,oBACE,cAAA,2CACA,WAAA,IACA,OAAA,gCAAA,MAAA,Y7BtCA,uBAAA,iCACA,wBAAA,iC6BwCA,0BAAA,0BAGE,UAAA,QACA,aAAA,2CAGF,6BAAA,6BAEE,MAAA,kCACA,iBAAA,YACA,aAAA,Y9B4/GN,mC8Bx/GE,2BAEE,MAAA,qCACA,iBAAA,kCACA,aAAA,4CAGF,yBAEE,WAAA,2C7BjEA,uBAAA,EACA,wBAAA,E6B2EJ,WAEE,6BAAA,SACA,iCAAA,KACA,8BAAA,QAGA,qBACE,WAAA,IACA,OAAA,E7B9FA,cAAA,kC6BiGA,8BACE,MAAA,kCACA,iBAAA,YACA,aAAA,YAIJ,4B9B4+GF,2B8B1+GI,MAAA,sCbzHF,iBAAA,mCjBymHF,oB8Br+GE,oBAEE,KAAA,EAAA,EAAA,KACA,WAAA,O9Bw+GJ,yB8Bn+GE,yBAEE,WAAA,EACA,UAAA,EACA,WAAA,OAMF,8B9Bg+GF,mC8B/9GI,MAAA,KAUF,uBACE,QAAA,KAEF,qBACE,QAAA,MCpKJ,QAEE,sBAAA,EACA,sBAAA,OACA,kBAAA,oBACA,wBAAA,mBACA,2BAAA,mBACA,yBAAA,mBACA,4BAAA,UACA,6BAAA,KACA,4BAAA,QACA,wBAAA,mBACA,8BAAA,mBACA,+BAAA,OACA,8BAAA,QACA,8BAAA,QACA,8BAAA,QACA,4BAAA,4OACA,iCAAA,mBACA,kCAAA,SACA,gCAAA,QACA,+BAAA,WAAA,MAAA,KAGA,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,2BAAA,2BAMA,mB/B0nHF,yBAGA,sBADA,sBADA,sBAGA,sBACA,uB+B9nHI,QAAA,KACA,UAAA,QACA,YAAA,OACA,gBAAA,cAoBJ,cACE,YAAA,iCACA,eAAA,iCACA,aAAA,kCjCkOI,UAAA,iCiChOJ,MAAA,6BACA,gBAAA,KACA,YAAA,OAEA,oBAAA,oBAEE,MAAA,mCAUJ,YAEE,wBAAA,EACA,wBAAA,OACA,oBAAA,uBACA,0BAAA,6BACA,6BAAA,gCAGA,QAAA,KACA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,K/BqmHF,6B+BnmHE,4BAEE,MAAA,8BAGF,2BACE,SAAA,OASJ,aACE,YAAA,MACA,eAAA,MACA,MAAA,uBAEA,e/B6lHF,qBADA,qB+BzlHI,MAAA,8BAaJ,iBACE,WAAA,KACA,UAAA,EAGA,YAAA,OAIF,gBACE,QAAA,mCAAA,mCjCmJI,UAAA,mCiCjJJ,YAAA,EACA,MAAA,uBACA,iBAAA,YACA,OAAA,uBAAA,MAAA,sC9BpIE,cAAA,uCeHE,WAAA,oCAIA,uCe6HN,gBf5HQ,WAAA,MesIN,sBACE,gBAAA,KAGF,sBACE,gBAAA,KACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,qCAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,iBAAA,iCACA,kBAAA,UACA,oBAAA,OACA,gBAAA,KAGF,mBACE,WAAA,6BACA,WAAA,KvBtHE,yBuBkIA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,oCACA,aAAA,oCAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,6BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,+CACE,QAAA,KAGF,6CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBxLR,yBuBkIA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,oCACA,aAAA,oCAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,6BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,+CACE,QAAA,KAGF,6CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBxLR,yBuBkIA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,oCACA,aAAA,oCAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,6BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,+CACE,QAAA,KAGF,6CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBxLR,0BuBkIA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,oCACA,aAAA,oCAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,6BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,+CACE,QAAA,KAGF,6CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBxLR,0BuBkIA,mBAEI,UAAA,OACA,gBAAA,WAEA,+BACE,eAAA,IAEA,8CACE,SAAA,SAGF,yCACE,cAAA,oCACA,aAAA,oCAIJ,sCACE,SAAA,QAGF,oCACE,QAAA,eACA,WAAA,KAGF,mCACE,QAAA,KAGF,8BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,gDACE,QAAA,KAGF,8CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SAtDR,eAEI,UAAA,OACA,gBAAA,WAEA,2BACE,eAAA,IAEA,0CACE,SAAA,SAGF,qCACE,cAAA,oCACA,aAAA,oCAIJ,kCACE,SAAA,QAGF,gCACE,QAAA,eACA,WAAA,KAGF,+BACE,QAAA,KAGF,0BAEE,SAAA,OACA,QAAA,KACA,UAAA,EACA,MAAA,eACA,OAAA,eACA,WAAA,kBACA,iBAAA,sBACA,OAAA,YACA,UAAA,ef1NJ,WAAA,Ke+NI,4CACE,QAAA,KAGF,0CACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAiBZ,aACE,kBAAA,0BACA,wBAAA,0BACA,2BAAA,0BACA,yBAAA,KACA,wBAAA,KACA,8BAAA,KACA,iCAAA,yBACA,4BAAA,kPC5QF,MAEE,mBAAA,KACA,mBAAA,KACA,yBAAA,OACA,uBAAA,IACA,uBAAA,mCACA,wBAAA,SAEA,8BAAA,qBACA,wBAAA,KACA,wBAAA,KACA,iBAAA,oBAIA,aAAA,KACA,8BAAA,KACA,uBAAA,QAGA,SAAA,SACA,QAAA,KACA,eAAA,OACA,UAAA,EACA,OAAA,sBACA,UAAA,WACA,iBAAA,kBACA,gBAAA,WACA,OAAA,4BAAA,MAAA,4B/BdE,cAAA,6B+BkBF,SACE,aAAA,EACA,YAAA,EAGF,kBACE,WAAA,QACA,cAAA,QAEA,8BACE,iBAAA,E/BnBF,uBAAA,mCACA,wBAAA,mC+BsBA,6BACE,oBAAA,E/BVF,2BAAA,mCACA,0BAAA,mC+BgBF,+BhCgiIF,+BgC9hII,WAAA,EAIJ,WAGE,KAAA,EAAA,EAAA,KACA,QAAA,wBAAA,wBACA,MAAA,qBAGF,YACE,cAAA,8BAGF,eACE,WAAA,0CACA,cAAA,EAGF,sBACE,cAAA,EAQA,sBACE,YAAA,wBAQJ,aACE,QAAA,6BAAA,6BACA,cAAA,EACA,MAAA,yBACA,iBAAA,sBACA,cAAA,4BAAA,MAAA,4BAEA,yB/BxFE,cAAA,mCAAA,mCAAA,EAAA,E+B6FJ,aACE,QAAA,6BAAA,6BACA,MAAA,yBACA,iBAAA,sBACA,WAAA,4BAAA,MAAA,4BAEA,wB/BnGE,cAAA,EAAA,EAAA,mCAAA,mC+B6GJ,kBACE,aAAA,yCACA,cAAA,wCACA,YAAA,yCACA,cAAA,EAEA,mCACE,iBAAA,kBACA,oBAAA,kBAIJ,mBACE,aAAA,yCACA,YAAA,yCAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,mC/BrIE,cAAA,mC+ByIJ,UhC2gIA,iBADA,cgCvgIE,MAAA,KAGF,UhC0gIA,cChpII,uBAAA,mCACA,wBAAA,mC+B0IJ,UhC2gIA,iBCxoII,2BAAA,mCACA,0BAAA,mC+ByIF,kBACE,cAAA,4BxBtHA,yBwBkHJ,YAQI,QAAA,KACA,UAAA,IAAA,KAGA,kBAEE,KAAA,EAAA,EAAA,GACA,cAAA,EAEA,wBACE,YAAA,EACA,YAAA,EAKA,mC/BtKJ,wBAAA,EACA,2BAAA,EDwqIF,gDgChgIQ,iDAGE,wBAAA,EhCigIV,gDgC//HQ,oDAGE,2BAAA,EAIJ,oC/BvKJ,uBAAA,EACA,0BAAA,EDsqIF,iDgC7/HQ,kDAGE,uBAAA,EhC8/HV,iDgC5/HQ,qDAGE,0BAAA,GC/NZ,WAEE,qBAAA,KACA,kBAAA,KACA,0BAAA,MAAA,MAAA,IAAA,CAAA,iBAAA,MAAA,IAAA,CAAA,aAAA,MAAA,IAAA,CAAA,WAAA,MAAA,IAAA,CAAA,cAAA,MAAA,KACA,4BAAA,uBACA,4BAAA,IACA,6BAAA,SACA,mCAAA,qBACA,6BAAA,QACA,6BAAA,KACA,yBAAA,qBACA,sBAAA,uBACA,wBAAA,+RACA,8BAAA,QACA,kCAAA,gBACA,mCAAA,UAAA,KAAA,KACA,+BAAA,gRACA,sCAAA,QACA,oCAAA,EAAA,EAAA,EAAA,QAAA,yBACA,8BAAA,QACA,8BAAA,KACA,4BAAA,QACA,yBAAA,QAIF,kBACE,SAAA,SACA,QAAA,KACA,YAAA,OACA,MAAA,KACA,QAAA,kCAAA,kCnCiQI,UAAA,KmC/PJ,MAAA,8BACA,WAAA,KACA,iBAAA,2BACA,OAAA,EhCtBE,cAAA,EgCwBF,gBAAA,KjB3BI,WAAA,+BAIA,uCiBWN,kBjBVQ,WAAA,MiByBN,kCACE,MAAA,iCACA,iBAAA,8BACA,WAAA,MAAA,EAAA,4CAAA,EAAA,iCAEA,yCACE,iBAAA,oCACA,UAAA,uCAKJ,yBACE,YAAA,EACA,MAAA,mCACA,OAAA,mCACA,YAAA,KACA,QAAA,GACA,iBAAA,6BACA,kBAAA,UACA,gBAAA,mCjBlDE,WAAA,wCAIA,uCiBsCJ,yBjBrCM,WAAA,MiBiDN,wBACE,QAAA,EAGF,wBACE,QAAA,EACA,aAAA,2CACA,QAAA,EACA,WAAA,yCAIJ,kBACE,cAAA,EAGF,gBACE,MAAA,0BACA,iBAAA,uBACA,OAAA,iCAAA,MAAA,iCAEA,8BhC/DE,uBAAA,kCACA,wBAAA,kCgCiEA,gDhClEA,uBAAA,wCACA,wBAAA,wCgCsEF,oCACE,WAAA,EAIF,6BhC9DE,2BAAA,kCACA,0BAAA,kCgCiEE,yDhClEF,2BAAA,wCACA,0BAAA,wCgCsEA,iDhCvEA,2BAAA,kCACA,0BAAA,kCgC4EJ,gBACE,QAAA,mCAAA,mCASA,qCACE,aAAA,EAGF,iCACE,aAAA,EACA,YAAA,EhCpHA,cAAA,EgCuHA,6CAAgB,WAAA,EAChB,4CAAe,cAAA,EAEf,mDhC1HA,cAAA,EiCjBJ,YAEE,0BAAA,EACA,0BAAA,EACA,8BAAA,KAIA,8BAAA,QACA,+BAAA,OACA,kCAAA,QAGA,QAAA,KACA,UAAA,KACA,QAAA,+BAAA,+BACA,cAAA,mCpCmRI,UAAA,+BoCjRJ,WAAA,KACA,iBAAA,wBjCFE,cAAA,mCiCQF,kCACE,aAAA,oCAEA,0CACE,MAAA,KACA,cAAA,oCACA,MAAA,mCACA,QAAA,kCAIJ,wBACE,MAAA,uCCrCJ,YAEE,0BAAA,QACA,0BAAA,SrCgSI,0BAAA,KqC9RJ,sBAAA,qBACA,mBAAA,KACA,6BAAA,IACA,6BAAA,QACA,8BAAA,SACA,4BAAA,2BACA,yBAAA,QACA,mCAAA,QACA,4BAAA,2BACA,yBAAA,QACA,iCAAA,EAAA,EAAA,EAAA,QAAA,yBACA,6BAAA,KACA,0BAAA,QACA,oCAAA,QACA,+BAAA,QACA,4BAAA,KACA,sCAAA,QAGA,QAAA,KhCtBA,aAAA,EACA,WAAA,KgCyBF,WACE,SAAA,SACA,QAAA,MACA,QAAA,+BAAA,+BrCoQI,UAAA,+BqClQJ,MAAA,2BACA,gBAAA,KACA,iBAAA,wBACA,OAAA,kCAAA,MAAA,kCnBtBI,WAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,KAAA,IAAA,CAAA,aAAA,KAAA,IAAA,CAAA,WAAA,KAAA,KAIA,uCmBUN,WnBTQ,WAAA,MmBoBN,iBACE,QAAA,EACA,MAAA,iCAEA,iBAAA,8BACA,aAAA,wCAGF,iBACE,QAAA,EACA,MAAA,iCACA,iBAAA,8BACA,QAAA,EACA,WAAA,sCAGF,mBAAA,kBAEE,QAAA,EACA,MAAA,kClBxDF,iBAAA,+BkB0DE,aAAA,yCAGF,qBAAA,oBAEE,MAAA,oCACA,eAAA,KACA,iBAAA,iCACA,aAAA,2CAKF,wCACE,YAAA,KAKE,kClChCF,uBAAA,mCACA,0BAAA,mCkCqCE,iClCpDF,wBAAA,mCACA,2BAAA,mCkCoEJ,eCpGE,0BAAA,OACA,0BAAA,QtCgSI,0BAAA,QsC9RJ,8BAAA,ODqGF,eCxGE,0BAAA,OACA,0BAAA,QtCgSI,0BAAA,SsC9RJ,8BAAA,QCAF,OAEE,qBAAA,OACA,qBAAA,OvC2RI,qBAAA,OuCzRJ,uBAAA,IACA,iBAAA,KACA,yBAAA,SAGA,QAAA,aACA,QAAA,0BAAA,0BvCmRI,UAAA,0BuCjRJ,YAAA,4BACA,YAAA,EACA,MAAA,sBACA,WAAA,OACA,YAAA,OACA,eAAA,SACA,cAAA,gCAIA,aACE,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KClCF,OAEE,cAAA,YACA,qBAAA,KACA,qBAAA,KACA,yBAAA,KACA,iBAAA,QACA,wBAAA,YACA,kBAAA,IAAA,MAAA,6BACA,yBAAA,SAGA,SAAA,SACA,QAAA,0BAAA,0BACA,cAAA,8BACA,MAAA,sBACA,iBAAA,mBACA,OAAA,uBACA,cAAA,gCAIF,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KAGA,8BACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,QAAA,KAgBF,eChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,2BACE,MAAA,QDuDF,iBChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,6BACE,MAAA,QDuDF,eChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,2BACE,MAAA,QDuDF,YChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,wBACE,MAAA,QDuDF,eChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,2BACE,MAAA,QDuDF,cChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,0BACE,MAAA,QDuDF,aChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,yBACE,MAAA,QDuDF,YChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,wBACE,MAAA,QDuDF,cChEA,iBAAA,QACA,cAAA,QACA,wBAAA,QAMA,0BACE,MAAA,QCPF,gCACE,GAAK,sBAAA,MAKT,UAEE,qBAAA,K1CyRI,wBAAA,Q0CvRJ,iBAAA,QACA,4BAAA,SACA,yBAAA,MAAA,EAAA,IAAA,IAAA,qBACA,wBAAA,KACA,qBAAA,QACA,6BAAA,MAAA,KAAA,KAGA,QAAA,KACA,OAAA,0BACA,SAAA,O1C6QI,UAAA,6B0C3QJ,iBAAA,sBvCPE,cAAA,iCuCYJ,cACE,QAAA,KACA,eAAA,OACA,gBAAA,OACA,SAAA,OACA,MAAA,6BACA,WAAA,OACA,YAAA,OACA,iBAAA,0BxBvBI,WAAA,kCAIA,uCwBWN,cxBVQ,WAAA,MwBsBR,sBvBCE,iBAAA,iKuBCA,gBAAA,0BAAA,0BAIA,uBACE,UAAA,GAAA,OAAA,SAAA,qBAGE,uCAJJ,uBAKM,UAAA,MClDR,YAEE,sBAAA,QACA,mBAAA,KACA,6BAAA,QACA,6BAAA,IACA,8BAAA,SACA,+BAAA,KACA,+BAAA,KACA,6BAAA,QACA,mCAAA,QACA,gCAAA,QACA,oCAAA,QACA,iCAAA,QACA,+BAAA,QACA,4BAAA,KACA,6BAAA,KACA,0BAAA,QACA,oCAAA,QAGA,QAAA,KACA,eAAA,OAGA,aAAA,EACA,cAAA,ExCXE,cAAA,mCwCeJ,qBACE,gBAAA,KACA,cAAA,QAEA,8CAEE,QAAA,uBAAA,KACA,kBAAA,QASJ,wBACE,MAAA,KACA,MAAA,kCACA,WAAA,QAGA,8BAAA,8BAEE,QAAA,EACA,MAAA,wCACA,gBAAA,KACA,iBAAA,qCAGF,+BACE,MAAA,yCACA,iBAAA,sCAQJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,oCAAA,oCACA,MAAA,2BACA,gBAAA,KACA,iBAAA,wBACA,OAAA,kCAAA,MAAA,kCAEA,6BxCvDE,uBAAA,QACA,wBAAA,QwC0DF,4BxC7CE,2BAAA,QACA,0BAAA,QwCgDF,0BAAA,0BAEE,MAAA,oCACA,eAAA,KACA,iBAAA,iCAIF,wBACE,QAAA,EACA,MAAA,kCACA,iBAAA,+BACA,aAAA,yCAGF,kCACE,iBAAA,EAEA,yCACE,WAAA,6CACA,iBAAA,kCAaF,uBACE,eAAA,IAGE,oDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,mDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,+CACE,WAAA,EAGF,yDACE,iBAAA,kCACA,kBAAA,EAEA,gEACE,YAAA,6CACA,kBAAA,kCjCrFR,yBiC6DA,0BACE,eAAA,IAGE,uDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,sDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,kDACE,WAAA,EAGF,4DACE,iBAAA,kCACA,kBAAA,EAEA,mEACE,YAAA,6CACA,kBAAA,mCjCrFR,yBiC6DA,0BACE,eAAA,IAGE,uDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,sDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,kDACE,WAAA,EAGF,4DACE,iBAAA,kCACA,kBAAA,EAEA,mEACE,YAAA,6CACA,kBAAA,mCjCrFR,yBiC6DA,0BACE,eAAA,IAGE,uDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,sDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,kDACE,WAAA,EAGF,4DACE,iBAAA,kCACA,kBAAA,EAEA,mEACE,YAAA,6CACA,kBAAA,mCjCrFR,0BiC6DA,0BACE,eAAA,IAGE,uDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,sDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,kDACE,WAAA,EAGF,4DACE,iBAAA,kCACA,kBAAA,EAEA,mEACE,YAAA,6CACA,kBAAA,mCjCrFR,0BiC6DA,2BACE,eAAA,IAGE,wDxCtDJ,0BAAA,mCAZA,wBAAA,EwCuEI,uDxCvEJ,wBAAA,mCAYA,0BAAA,EwCgEI,mDACE,WAAA,EAGF,6DACE,iBAAA,kCACA,kBAAA,EAEA,oEACE,YAAA,6CACA,kBAAA,mCAcZ,kBxC/II,cAAA,EwCkJF,mCACE,aAAA,EAAA,EAAA,kCAEA,8CACE,oBAAA,ECrKJ,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,2BACE,MAAA,QACA,iBAAA,QAGE,wDAAA,wDAEE,MAAA,QACA,iBAAA,QAGF,yDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,wBACE,MAAA,QACA,iBAAA,QAGE,qDAAA,qDAEE,MAAA,QACA,iBAAA,QAGF,sDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,uBACE,MAAA,QACA,iBAAA,QAGE,oDAAA,oDAEE,MAAA,QACA,iBAAA,QAGF,qDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,wBACE,MAAA,QACA,iBAAA,QAGE,qDAAA,qDAEE,MAAA,QACA,iBAAA,QAGF,sDACE,MAAA,KACA,iBAAA,QACA,aAAA,QCbR,WACE,WAAA,YACA,MAAA,IACA,OAAA,IACA,QAAA,MAAA,MACA,MAAA,KACA,WAAA,YAAA,kUAAA,MAAA,CAAA,IAAA,KAAA,UACA,OAAA,E1COE,cAAA,I0CLF,QAAA,GAGA,iBACE,MAAA,KACA,gBAAA,KACA,QAAA,IAGF,iBACE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBACA,QAAA,EAGF,oBAAA,oBAEE,eAAA,KACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,QAAA,IAIJ,iBACE,OAAA,UAAA,gBAAA,iBCtCF,OAEE,qBAAA,QACA,qBAAA,OACA,mBAAA,OACA,qBAAA,M9CgSI,qBAAA,S8C7RJ,cAAA,0BACA,wBAAA,IACA,wBAAA,mCACA,yBAAA,SACA,sBAAA,EAAA,OAAA,KAAA,oBACA,wBAAA,QACA,qBAAA,0BACA,+BAAA,oBAGA,MAAA,0BACA,UAAA,K9CkRI,UAAA,0B8ChRJ,MAAA,sBACA,eAAA,KACA,iBAAA,mBACA,gBAAA,YACA,OAAA,6BAAA,MAAA,6BACA,WAAA,2B3CPE,cAAA,8B2CUF,eACE,QAAA,EAGF,kBACE,QAAA,KAIJ,iBACE,SAAA,SACA,QAAA,KACA,MAAA,iBAAA,MAAA,YACA,UAAA,KACA,eAAA,KAEA,mCACE,cAAA,wBAIJ,cACE,QAAA,KACA,YAAA,OACA,QAAA,0BAAA,0BACA,MAAA,6BACA,iBAAA,0BACA,gBAAA,YACA,cAAA,6BAAA,MAAA,oC3C7BE,uBAAA,mEACA,wBAAA,mE2C+BF,yBACE,aAAA,sCACA,YAAA,0BAIJ,YACE,QAAA,0BACA,UAAA,WC3DF,OAEE,kBAAA,KACA,iBAAA,MACA,mBAAA,KACA,kBAAA,OAEA,cAAA,KACA,wBAAA,mCACA,wBAAA,IACA,yBAAA,OACA,sBAAA,EAAA,SAAA,QAAA,qBACA,+BAAA,mBACA,4BAAA,KACA,4BAAA,KACA,0BAAA,KAAA,KACA,+BAAA,uBACA,+BAAA,IACA,6BAAA,IACA,sBAAA,OAEA,+BAAA,uBACA,+BAAA,IAGA,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,uBACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,WAAA,OACA,WAAA,KAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,uBAEA,eAAA,KAGA,0B7B5CI,WAAA,UAAA,IAAA,S6B8CF,UAAA,mB7B1CE,uC6BwCJ,0B7BvCM,WAAA,M6B2CN,0BACE,UAAA,KAIF,kCACE,UAAA,YAIJ,yBACE,OAAA,wCAEA,wCACE,WAAA,KACA,SAAA,OAGF,qCACE,WAAA,KAIJ,uBACE,QAAA,KACA,YAAA,OACA,WAAA,wCAIF,eACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,MAAA,KAEA,MAAA,sBACA,eAAA,KACA,iBAAA,mBACA,gBAAA,YACA,OAAA,6BAAA,MAAA,6B5CrFE,cAAA,8B4CyFF,QAAA,EAIF,gBAEE,qBAAA,KACA,iBAAA,KACA,sBAAA,IClHA,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,0BACA,MAAA,MACA,OAAA,MACA,iBAAA,sBAGA,qBAAS,QAAA,EACT,qBAAS,QAAA,2BDgHX,cACE,QAAA,KACA,YAAA,EACA,YAAA,OACA,gBAAA,cACA,QAAA,+BACA,cAAA,oCAAA,MAAA,oC5CtGE,uBAAA,oCACA,wBAAA,oC4CwGF,yBACE,QAAA,4CAAA,4CACA,OAAA,6CAAA,6CAAA,6CAAA,KAKJ,aACE,cAAA,EACA,YAAA,kCAKF,YACE,SAAA,SAGA,KAAA,EAAA,EAAA,KACA,QAAA,wBAIF,cACE,QAAA,KACA,YAAA,EACA,UAAA,KACA,YAAA,OACA,gBAAA,SACA,QAAA,gEACA,iBAAA,0BACA,WAAA,oCAAA,MAAA,oC5C1HE,2BAAA,oCACA,0BAAA,oC4C+HF,gBACE,OAAA,sCrC5GA,yBqCkHF,OACE,kBAAA,QACA,sBAAA,EAAA,OAAA,KAAA,oBAIF,cACE,UAAA,sBACA,aAAA,KACA,YAAA,KAGF,UACE,iBAAA,OrC/HA,yBqCoIF,U7C6lKA,U6C3lKE,iBAAA,OrCtIA,0BqC2IF,UACE,iBAAA,QAUA,kBACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,iCACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,EDkyKJ,gC6CplKM,gC5C9MF,cAAA,E4CmNE,8BACE,WAAA,KrC3JJ,4BqCyIA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,EDszKF,wC6CxmKI,wC5C9MF,cAAA,E4CmNE,sCACE,WAAA,MrC3JJ,4BqCyIA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,ED00KF,wC6C5nKI,wC5C9MF,cAAA,E4CmNE,sCACE,WAAA,MrC3JJ,4BqCyIA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,ED81KF,wC6ChpKI,wC5C9MF,cAAA,E4CmNE,sCACE,WAAA,MrC3JJ,6BqCyIA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,EDk3KF,wC6CpqKI,wC5C9MF,cAAA,E4CmNE,sCACE,WAAA,MrC3JJ,6BqCyIA,2BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,0CACE,OAAA,KACA,OAAA,E5C1MJ,cAAA,EDs4KF,yC6CxrKI,yC5C9MF,cAAA,E4CmNE,uCACE,WAAA,MEpOR,SAEE,oBAAA,KACA,uBAAA,MACA,uBAAA,OACA,uBAAA,QjD6RI,uBAAA,SiD1RJ,mBAAA,KACA,gBAAA,KACA,2BAAA,SACA,qBAAA,IACA,yBAAA,OACA,0BAAA,OAGA,QAAA,yBACA,QAAA,MACA,QAAA,+BACA,OAAA,yBCrBA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,YAAA,OACA,aAAA,OACA,WAAA,KlDsRI,UAAA,4BiDxQJ,UAAA,WACA,QAAA,EAEA,cAAS,QAAA,0BAET,wBACE,QAAA,MACA,MAAA,8BACA,OAAA,+BAEA,gCACE,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,4DAAA,+BACE,OAAA,EAEA,oEAAA,uCACE,IAAA,KACA,aAAA,+BAAA,yCAAA,EACA,iBAAA,qBAKJ,8DAAA,+BACE,KAAA,EACA,MAAA,+BACA,OAAA,8BAEA,sEAAA,uCACE,MAAA,KACA,aAAA,yCAAA,+BAAA,yCAAA,EACA,mBAAA,qBAMJ,+DAAA,kCACE,IAAA,EAEA,uEAAA,0CACE,OAAA,KACA,aAAA,EAAA,yCAAA,+BACA,oBAAA,qBAKJ,6DAAA,iCACE,MAAA,EACA,MAAA,+BACA,OAAA,8BAEA,qEAAA,yCACE,KAAA,KACA,aAAA,yCAAA,EAAA,yCAAA,+BACA,kBAAA,qBAsBJ,eACE,UAAA,4BACA,QAAA,4BAAA,4BACA,MAAA,wBACA,WAAA,OACA,iBAAA,qBACA,cAAA,kCEtHF,SAEE,oBAAA,KACA,uBAAA,MnDgSI,uBAAA,SmD9RJ,gBAAA,KACA,0BAAA,IACA,0BAAA,mCACA,2BAAA,OACA,iCAAA,mBACA,wBAAA,EAAA,OAAA,KAAA,oBACA,8BAAA,KACA,8BAAA,OnDuRI,8BAAA,KmDrRJ,0BAAA,wBACA,uBAAA,QACA,4BAAA,KACA,4BAAA,KACA,wBAAA,QACA,yBAAA,KACA,0BAAA,OACA,0BAAA,+BAGA,QAAA,yBACA,QAAA,MACA,UAAA,4BD3BA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,YAAA,OACA,aAAA,OACA,WAAA,KlDsRI,UAAA,4BmDnQJ,UAAA,WACA,iBAAA,qBACA,gBAAA,YACA,OAAA,+BAAA,MAAA,+BhDlBE,cAAA,gCgDsBF,wBACE,QAAA,MACA,MAAA,8BACA,OAAA,+BAEA,+BAAA,gCAEE,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MACA,aAAA,EAMJ,4DAAA,+BACE,OAAA,2EAEA,mEAAA,oEAAA,sCAAA,uCAEE,aAAA,+BAAA,yCAAA,EAGF,oEAAA,uCACE,OAAA,EACA,iBAAA,+BAGF,mEAAA,sCACE,OAAA,+BACA,iBAAA,qBAOJ,8DAAA,+BACE,KAAA,2EACA,MAAA,+BACA,OAAA,8BAEA,qEAAA,sEAAA,sCAAA,uCAEE,aAAA,yCAAA,+BAAA,yCAAA,EAGF,sEAAA,uCACE,KAAA,EACA,mBAAA,+BAGF,qEAAA,sCACE,KAAA,+BACA,mBAAA,qBAQJ,+DAAA,kCACE,IAAA,2EAEA,sEAAA,uEAAA,yCAAA,0CAEE,aAAA,EAAA,yCAAA,+BAGF,uEAAA,0CACE,IAAA,EACA,oBAAA,+BAGF,sEAAA,yCACE,IAAA,+BACA,oBAAA,qBAKJ,wEAAA,2CACE,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,8BACA,YAAA,0CACA,QAAA,GACA,cAAA,+BAAA,MAAA,4BAMF,6DAAA,iCACE,MAAA,2EACA,MAAA,+BACA,OAAA,8BAEA,oEAAA,qEAAA,wCAAA,yCAEE,aAAA,yCAAA,EAAA,yCAAA,+BAGF,qEAAA,yCACE,MAAA,EACA,kBAAA,+BAGF,oEAAA,wCACE,MAAA,+BACA,kBAAA,qBAuBN,gBACE,QAAA,mCAAA,mCACA,cAAA,EnD+GI,UAAA,mCmD7GJ,MAAA,+BACA,iBAAA,4BACA,cAAA,+BAAA,MAAA,+BhD9JE,uBAAA,sCACA,wBAAA,sCgDgKF,sBACE,QAAA,KAIJ,cACE,QAAA,iCAAA,iCACA,MAAA,6BCvLF,UACE,SAAA,SAGF,wBACE,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCtBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDuBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,oBAAA,OlClBI,WAAA,UAAA,IAAA,KAIA,uCkCQN,elCPQ,WAAA,MhBirLR,oBACA,oBkDjqLA,sBAGE,QAAA,MlDoqLF,0BkDhqLA,8CAEE,UAAA,iBlDmqLF,4BkDhqLA,4CAEE,UAAA,kBAWA,8BACE,QAAA,EACA,oBAAA,QACA,UAAA,KlD2pLJ,uDACA,qDkDzpLE,qCAGE,QAAA,EACA,QAAA,ElD0pLJ,yCkDvpLE,2CAEE,QAAA,EACA,QAAA,ElC/DE,WAAA,QAAA,GAAA,IAIA,uChBstLJ,yCkD9pLA,2ClCvDM,WAAA,MhB2tLR,uBkDvpLA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,IACA,QAAA,EACA,MAAA,KACA,WAAA,OACA,WAAA,IACA,OAAA,EACA,QAAA,GlCzFI,WAAA,QAAA,KAAA,KAIA,uChB+uLJ,uBkD1qLF,uBlCpEQ,WAAA,MhBovLR,6BADA,6BkD3pLE,6BAAA,6BAEE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAGF,uBACE,MAAA,ElD+pLF,4BkD1pLA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,kBAAA,UACA,oBAAA,IACA,gBAAA,KAAA,KAWF,4BACE,iBAAA,wPAEF,4BACE,iBAAA,yPAQF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,KACA,gBAAA,OACA,QAAA,EAEA,aAAA,IACA,cAAA,KACA,YAAA,IACA,WAAA,KAEA,sCACE,WAAA,YACA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,QAAA,EACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,EAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GlC5KE,WAAA,QAAA,IAAA,KAIA,uCkCwJJ,sClCvJM,WAAA,MkC2KN,6BACE,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,QACA,KAAA,IACA,YAAA,QACA,eAAA,QACA,MAAA,KACA,WAAA,OlDqpLF,2CkD/oLE,2CAEE,OAAA,UAAA,eAGF,qDACE,iBAAA,KAGF,iCACE,MAAA,KlDgpLJ,gBoD92LA,cAEE,QAAA,aACA,MAAA,wBACA,OAAA,yBACA,eAAA,iCAEA,cAAA,IACA,UAAA,kCAAA,OAAA,SAAA,iCAIF,0BACE,GAAK,UAAA,gBAIP,gBAEE,mBAAA,KACA,oBAAA,KACA,4BAAA,SACA,0BAAA,OACA,6BAAA,MACA,4BAAA,eAGA,OAAA,+BAAA,MAAA,aACA,mBAAA,YAGF,mBAEE,mBAAA,KACA,oBAAA,KACA,0BAAA,MASF,wBACE,GACE,UAAA,SAEF,IACE,QAAA,EACA,UAAA,MAKJ,cAEE,mBAAA,KACA,oBAAA,KACA,4BAAA,SACA,6BAAA,MACA,4BAAA,aAGA,iBAAA,aACA,QAAA,EAGF,iBACE,mBAAA,KACA,oBAAA,KAIA,uCACE,gBpD41LF,coD11LI,6BAAA,MC/EN,WAAA,cAAA,cAAA,cAAA,cAAA,eAEE,qBAAA,MACA,sBAAA,KACA,yBAAA,KACA,yBAAA,KAEA,kBAAA,KACA,4BAAA,IACA,4BAAA,mCACA,0BAAA,EAAA,SAAA,QAAA,qB7CgEE,4B6C/CF,cAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,aAIA,gEqCSJ,crCRM,WAAA,MRuDJ,4B6C/BE,gCAAA,sBAEE,UAAA,KAGF,qBAAA,mBAAA,sBAGE,WAAA,QAGF,8BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,4BACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,4BACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,+BACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,kB7CzBJ,yB6ClCF,cAiEM,sBAAA,KACA,4BAAA,EACA,iBAAA,sBAEA,gCACE,QAAA,KAGF,8BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAEA,iBAAA,uB7ChCN,4B6C/CF,cAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,aAIA,gEqCSJ,crCRM,WAAA,MRuDJ,4B6C/BE,gCAAA,sBAEE,UAAA,KAGF,qBAAA,mBAAA,sBAGE,WAAA,QAGF,8BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,4BACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,4BACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,+BACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,kB7CzBJ,yB6ClCF,cAiEM,sBAAA,KACA,4BAAA,EACA,iBAAA,sBAEA,gCACE,QAAA,KAGF,8BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAEA,iBAAA,uB7ChCN,4B6C/CF,cAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,aAIA,gEqCSJ,crCRM,WAAA,MRuDJ,4B6C/BE,gCAAA,sBAEE,UAAA,KAGF,qBAAA,mBAAA,sBAGE,WAAA,QAGF,8BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,4BACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,4BACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,+BACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,kB7CzBJ,yB6ClCF,cAiEM,sBAAA,KACA,4BAAA,EACA,iBAAA,sBAEA,gCACE,QAAA,KAGF,8BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAEA,iBAAA,uB7ChCN,6B6C/CF,cAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,aAIA,iEqCSJ,crCRM,WAAA,MRuDJ,6B6C/BE,gCAAA,sBAEE,UAAA,KAGF,qBAAA,mBAAA,sBAGE,WAAA,QAGF,8BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,4BACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,4BACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,+BACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,kB7CzBJ,0B6ClCF,cAiEM,sBAAA,KACA,4BAAA,EACA,iBAAA,sBAEA,gCACE,QAAA,KAGF,8BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAEA,iBAAA,uB7ChCN,6B6C/CF,eAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,aAIA,iEqCSJ,erCRM,WAAA,MRuDJ,6B6C/BE,iCAAA,uBAEE,UAAA,KAGF,sBAAA,oBAAA,uBAGE,WAAA,QAGF,+BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,6BACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,6BACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,gCACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,kB7CzBJ,0B6ClCF,eAiEM,sBAAA,KACA,4BAAA,EACA,iBAAA,sBAEA,iCACE,QAAA,KAGF,+BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAEA,iBAAA,uBA/ER,WAEI,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KACA,MAAA,0BACA,WAAA,OACA,iBAAA,uBACA,gBAAA,YACA,QAAA,ErCzBA,WAAA,UAAA,IAAA,YAIA,uCqCSJ,WrCRM,WAAA,MqCwBF,6BAAA,mBAEE,UAAA,KAGF,kBAAA,gBAAA,mBAGE,WAAA,QAGF,2BACE,IAAA,EACA,KAAA,EACA,MAAA,0BACA,aAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,yBACE,IAAA,EACA,MAAA,EACA,MAAA,0BACA,YAAA,iCAAA,MAAA,iCACA,UAAA,iBAGF,yBACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,cAAA,iCAAA,MAAA,iCACA,UAAA,kBAGF,4BACE,MAAA,EACA,KAAA,EACA,OAAA,2BACA,WAAA,KACA,WAAA,iCAAA,MAAA,iCACA,UAAA,iBA2BR,oBPjHE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAGA,yBAAS,QAAA,EACT,yBAAS,QAAA,GO2GX,kBACE,QAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,8BAAA,8BAEA,6BACE,QAAA,yCAAA,yCACA,WAAA,0CACA,aAAA,0CACA,cAAA,0CAIJ,iBACE,cAAA,EACA,YAAA,IAGF,gBACE,UAAA,EACA,QAAA,8BAAA,8BACA,WAAA,KC7IF,aACE,QAAA,aACA,WAAA,IACA,eAAA,OACA,OAAA,KACA,iBAAA,aACA,QAAA,GAEA,yBACE,QAAA,aACA,QAAA,GAKJ,gBACE,WAAA,KAGF,gBACE,WAAA,KAGF,gBACE,WAAA,MAKA,+BACE,UAAA,iBAAA,GAAA,YAAA,SAIJ,4BACE,IACE,QAAA,IAIJ,kBACE,mBAAA,6DAAA,WAAA,6DACA,kBAAA,KAAA,KAAA,UAAA,KAAA,KACA,UAAA,iBAAA,GAAA,OAAA,SAGF,4BACE,KACE,sBAAA,MAAA,EAAA,cAAA,MAAA,GH9CF,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GIAF,iBACE,MAAA,eACA,iBAAA,iDAFF,mBACE,MAAA,eACA,iBAAA,mDAFF,iBACE,MAAA,eACA,iBAAA,kDAFF,cACE,MAAA,eACA,iBAAA,kDAFF,iBACE,MAAA,eACA,iBAAA,kDAFF,gBACE,MAAA,eACA,iBAAA,iDAFF,eACE,MAAA,eACA,iBAAA,mDAFF,cACE,MAAA,eACA,iBAAA,gDAFF,gBACE,MAAA,eACA,iBAAA,+CCNF,cACE,MAAA,kBAGE,oBAAA,oBAEE,MAAA,kBANN,gBACE,MAAA,kBAGE,sBAAA,sBAEE,MAAA,kBANN,cACE,MAAA,kBAGE,oBAAA,oBAEE,MAAA,kBANN,WACE,MAAA,kBAGE,iBAAA,iBAEE,MAAA,kBANN,cACE,MAAA,kBAGE,oBAAA,oBAEE,MAAA,kBANN,aACE,MAAA,kBAGE,mBAAA,mBAEE,MAAA,kBANN,YACE,MAAA,kBAGE,kBAAA,kBAEE,MAAA,kBANN,WACE,MAAA,kBAGE,iBAAA,iBAEE,MAAA,kBANN,aACE,MAAA,kBAGE,mBAAA,mBAEE,MAAA,kBCLR,OACE,SAAA,SACA,MAAA,KAEA,eACE,QAAA,MACA,YAAA,uBACA,QAAA,GAGF,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KAKF,WACE,kBAAA,KADF,WACE,kBAAA,IADF,YACE,kBAAA,OADF,YACE,kBAAA,eCrBJ,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAQE,YACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,eACE,SAAA,OACA,OAAA,EACA,QAAA,KlD+BF,yBkDxCA,eACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,kBACE,SAAA,OACA,OAAA,EACA,QAAA,MlD+BF,yBkDxCA,eACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,kBACE,SAAA,OACA,OAAA,EACA,QAAA,MlD+BF,yBkDxCA,eACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,kBACE,SAAA,OACA,OAAA,EACA,QAAA,MlD+BF,0BkDxCA,eACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,kBACE,SAAA,OACA,OAAA,EACA,QAAA,MlD+BF,0BkDxCA,gBACE,SAAA,OACA,IAAA,EACA,QAAA,KAGF,mBACE,SAAA,OACA,OAAA,EACA,QAAA,MC/BN,QACE,QAAA,KACA,eAAA,IACA,YAAA,OACA,WAAA,QAGF,QACE,QAAA,KACA,KAAA,EAAA,EAAA,KACA,eAAA,OACA,WAAA,QCRF,iB5DwsNA,0D6DpsNE,SAAA,mBACA,MAAA,cACA,OAAA,cACA,QAAA,YACA,OAAA,eACA,SAAA,iBACA,KAAA,wBACA,YAAA,iBACA,OAAA,YCXA,uBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,GCRJ,eCAE,SAAA,OACA,cAAA,SACA,YAAA,OCNF,IACE,QAAA,aACA,WAAA,QACA,MAAA,IACA,WAAA,IACA,iBAAA,aACA,QAAA,IC4DM,gBAOI,eAAA,mBAPJ,WAOI,eAAA,cAPJ,cAOI,eAAA,iBAPJ,cAOI,eAAA,iBAPJ,mBAOI,eAAA,sBAPJ,gBAOI,eAAA,mBAPJ,aAOI,MAAA,eAPJ,WAOI,MAAA,gBAPJ,YAOI,MAAA,eAPJ,WAOI,QAAA,YAPJ,YAOI,QAAA,cAPJ,YAOI,QAAA,aAPJ,YAOI,QAAA,cAPJ,aAOI,QAAA,YAPJ,eAOI,SAAA,eAPJ,iBAOI,SAAA,iBAPJ,kBAOI,SAAA,kBAPJ,iBAOI,SAAA,iBAPJ,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,QAOI,WAAA,EAAA,MAAA,KAAA,0BAPJ,WAOI,WAAA,EAAA,QAAA,OAAA,2BAPJ,WAOI,WAAA,EAAA,KAAA,KAAA,2BAPJ,aAOI,WAAA,eAPJ,iBAOI,SAAA,iBAPJ,mBAOI,SAAA,mBAPJ,mBAOI,SAAA,mBAPJ,gBAOI,SAAA,gBAPJ,iBAOI,SAAA,iBAPJ,OAOI,IAAA,YAPJ,QAOI,IAAA,cAPJ,SAOI,IAAA,eAPJ,UAOI,OAAA,YAPJ,WAOI,OAAA,cAPJ,YAOI,OAAA,eAPJ,SAOI,KAAA,YAPJ,UAOI,KAAA,cAPJ,WAOI,KAAA,eAPJ,OAOI,MAAA,YAPJ,QAOI,MAAA,cAPJ,SAOI,MAAA,eAPJ,kBAOI,UAAA,+BAPJ,oBAOI,UAAA,2BAPJ,oBAOI,UAAA,2BAPJ,QAOI,OAAA,uBAAA,uBAAA,iCAPJ,UAOI,OAAA,YAPJ,YAOI,WAAA,uBAAA,uBAAA,iCAPJ,cAOI,WAAA,YAPJ,YAOI,aAAA,uBAAA,uBAAA,iCAPJ,cAOI,aAAA,YAPJ,eAOI,cAAA,uBAAA,uBAAA,iCAPJ,iBAOI,cAAA,YAPJ,cAOI,YAAA,uBAAA,uBAAA,iCAPJ,gBAOI,YAAA,YAPJ,gBAIQ,oBAAA,EAGJ,aAAA,+DAPJ,kBAIQ,oBAAA,EAGJ,aAAA,iEAPJ,gBAIQ,oBAAA,EAGJ,aAAA,+DAPJ,aAIQ,oBAAA,EAGJ,aAAA,4DAPJ,gBAIQ,oBAAA,EAGJ,aAAA,+DAPJ,eAIQ,oBAAA,EAGJ,aAAA,8DAPJ,cAIQ,oBAAA,EAGJ,aAAA,6DAPJ,aAIQ,oBAAA,EAGJ,aAAA,4DAPJ,eAIQ,oBAAA,EAGJ,aAAA,8DAPJ,cAIQ,oBAAA,EAGJ,aAAA,6DAjBJ,UACE,kBAAA,EADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,UACE,kBAAA,IADF,WACE,kBAAA,KADF,mBACE,oBAAA,IADF,mBACE,oBAAA,KADF,mBACE,oBAAA,IADF,mBACE,oBAAA,KADF,oBACE,oBAAA,EASF,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,OAOI,MAAA,eAPJ,QAOI,MAAA,eAPJ,QAOI,UAAA,eAPJ,QAOI,MAAA,gBAPJ,YAOI,UAAA,gBAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,OAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,QAOI,WAAA,eAPJ,QAOI,OAAA,gBAPJ,YAOI,WAAA,gBAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,aAAA,YAAA,YAAA,YAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,gBAAA,YAAA,gBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,cAAA,YAAA,aAAA,YAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,gBAAA,aAAA,gBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,OAOI,IAAA,YAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,gBAPJ,OAOI,IAAA,eAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,eAPJ,gBAOI,YAAA,mCAPJ,MAOI,UAAA,iCAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,8BAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,eAPJ,YAOI,WAAA,iBAPJ,YAOI,WAAA,iBAPJ,UAOI,YAAA,cAPJ,YAOI,YAAA,cAPJ,WAOI,YAAA,cAPJ,WAOI,YAAA,cAPJ,aAOI,YAAA,cAPJ,SAOI,YAAA,cAPJ,WAOI,YAAA,cAPJ,UAOI,YAAA,cAPJ,MAOI,YAAA,YAPJ,OAOI,YAAA,eAPJ,SAOI,YAAA,cAPJ,OAOI,YAAA,YAPJ,YAOI,WAAA,eAPJ,UAOI,WAAA,gBAPJ,aAOI,WAAA,iBAPJ,sBAOI,gBAAA,eAPJ,2BAOI,gBAAA,oBAPJ,8BAOI,gBAAA,uBAPJ,gBAOI,eAAA,oBAPJ,gBAOI,eAAA,oBAPJ,iBAOI,eAAA,qBAPJ,WAOI,YAAA,iBAPJ,aAOI,YAAA,iBAPJ,YAOI,UAAA,qBAAA,WAAA,qBAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,gBAIQ,kBAAA,EAGJ,MAAA,+DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,aAIQ,kBAAA,EAGJ,MAAA,4DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,aAIQ,kBAAA,EAGJ,MAAA,4DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,gEAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAPJ,eAIQ,kBAAA,EAGJ,MAAA,yBAPJ,eAIQ,kBAAA,EAGJ,MAAA,+BAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAjBJ,iBACE,kBAAA,KADF,iBACE,kBAAA,IADF,iBACE,kBAAA,KADF,kBACE,kBAAA,EASF,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,cAIQ,gBAAA,EAGJ,iBAAA,6DAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,WAIQ,gBAAA,EAGJ,iBAAA,0DAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,WAIQ,gBAAA,EAGJ,iBAAA,0DAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,gBAIQ,gBAAA,EAGJ,iBAAA,sBAjBJ,eACE,gBAAA,IADF,eACE,gBAAA,KADF,eACE,gBAAA,IADF,eACE,gBAAA,KADF,gBACE,gBAAA,EASF,aAOI,iBAAA,6BAPJ,iBAOI,oBAAA,cAAA,iBAAA,cAAA,YAAA,cAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,kCAPJ,WAOI,cAAA,YAPJ,WAOI,cAAA,qCAPJ,WAOI,cAAA,kCAPJ,WAOI,cAAA,qCAPJ,WAOI,cAAA,qCAPJ,WAOI,cAAA,sCAPJ,gBAOI,cAAA,cAPJ,cAOI,cAAA,uCAPJ,aAOI,uBAAA,kCAAA,wBAAA,kCAPJ,aAOI,wBAAA,kCAAA,2BAAA,kCAPJ,gBAOI,2BAAA,kCAAA,0BAAA,kCAPJ,eAOI,0BAAA,kCAAA,uBAAA,kCAPJ,SAOI,WAAA,kBAPJ,WAOI,WAAA,iB1DVR,yB0DGI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kB1DVR,yB0DGI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kB1DVR,yB0DGI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kB1DVR,0B0DGI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kB1DVR,0B0DGI,iBAOI,MAAA,eAPJ,eAOI,MAAA,gBAPJ,gBAOI,MAAA,eAPJ,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,aAAA,YAAA,YAAA,YAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,gBAAA,YAAA,gBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,aAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,cAAA,YAAA,aAAA,YAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,gBAAA,aAAA,gBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,WAOI,IAAA,YAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,gBAPJ,WAOI,IAAA,eAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,eAPJ,gBAOI,WAAA,eAPJ,cAOI,WAAA,gBAPJ,iBAOI,WAAA,kBCtDZ,0BD+CQ,MAOI,UAAA,iBAPJ,MAOI,UAAA,eAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,kBCnCZ,aD4BQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","file":"bootstrap.min.css","sourcesContent":["/*!\n * Bootstrap v5.2.0-beta1 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors\n * Copyright 2011-2022 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"./../themes/bs-custom-variables\"; // Bootstrap Overwrite Variables\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n","/*\n<--!----------------------------------------------------------------!-->\n<--! Bootstrap Overwrite Variables !-->\n<--!----------------------------------------------------------------!-->\n*\n* In this file 'bootstrap' overwrite variables gose here.\n* This overwrite variables @include on boostrap.scss file.\n* Please check this file @include on boostrap.scss file.\n*\n*/\n\n// Gray Color\n$white: #ffffff;\n$gray-100: #eff0f6;\n$gray-200: #e9ecef;\n$gray-300: #e5e7eb;\n$gray-400: #ced4da;\n$gray-500: #91a1b6;\n$gray-600: #64748b;\n$gray-700: #495057;\n$gray-800: #343a40;\n$gray-900: #212529;\n$black: #000000;\n\n// fusv-enable\n$blue: #3454d1;\n$indigo: #6610f2;\n$purple: #6f42c1;\n$pink: #e83e8c;\n$red: #ea4d4d;\n$orange: #fd7e14;\n$yellow: #ffa21d;\n$green: #17c666;\n$teal: #41b2c4;\n$cyan: #3dc7be;\n$white: #ffffff;\n$secondary: #727981;\n$success: #25b865;\n$warning: #e49e3d;\n$info: #02a0e4;\n$danger: #d13b4c;\n$dark: #283c50; // new added\n$darken: #001327; // new added\n\n// Body\n$body-bg: #f0f2f8;\n$body-color: #4b5563;\n$text-muted: #64748b;\n\n// Colors Map\n$primary: $blue;\n$secondary: $gray-600;\n$success: $green;\n$info: $cyan;\n$warning: $yellow;\n$danger: $red;\n$light: $gray-100;\n$dark: $dark;\n$darken: $darken; // new added\n\n// Theme Colors Map\n$theme-colors: (\n\t\"primary\": $primary,\n\t\"secondary\": $secondary,\n\t\"success\": $success,\n\t\"info\": $info,\n\t\"warning\": $warning,\n\t\"danger\": $danger,\n\t\"light\": $light,\n\t\"dark\": $dark,\n\t\"darken\": $darken,\n);\n\n// Border\n$border-width: 1px;\n$border-widths: (\n\t0: 0,\n\t1: 1px,\n\t2: 2px,\n\t3: 3px,\n\t4: 4px,\n\t5: 5px,\n\t6: 6px,\n\t7: 7px,\n\t8: 8px,\n\t9: 9px,\n\t10: 10px,\n);\n$border-color: #e5e7eb;\n$border-color-2: #dcdee4;\n$border-radius: 4px;\n$border-radius-lg: 6px;\n$border-radius-sm: 2px;\n$border-none: transparent;\n$border-soft: darken($gray-100, 1);\n$border-normal: darken($gray-100, 2);\n$border-medium: darken($gray-100, 5);\n$border-hard: darken($gray-100, 8);\n$border-contrast: darken($gray-100, 12);\n\n// Forms\n$input-font-size: 0.845rem;\n\n// Buttons + Forms\n$input-btn-padding-y: 0.5rem;\n\n// Navs\n$nav-tabs-link-active-bg: $white;\n\n// Dropdowns\n$dropdown-hover-color: #ebeff5;\n$dropdown-border-color: $border-color;\n$dropdown-border-width: 1px;\n$dropdown-divider-bg: #e5e7eb;\n\n// Cards\n$soft-bg-level: -80%;\n$card-spacer-y: 25px;\n$card-spacer-x: 25px;\n$card-border-width: 1px;\n$card-cap-padding-y: 25px;\n$card-cap-padding-x: 25px;\n\n// Modals\n$modal-inner-padding: 25px;\n$modal-header-padding-y: 25px;\n$modal-header-padding-x: 25px;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x;\n\n// Progress bars\n$progress-bg: $body-bg;\n$progress-bar-bg: $primary;\n\n// Offcanvas\n$zindex-offcanvas: 1051;\n$offcanvas-horizontal-width: 400px;\n\n// Font\n$h1-font-size: 36px;\n$h2-font-size: 28px;\n$h3-font-size: 24px;\n$h4-font-size: 20px;\n$h5-font-size: 16px;\n$h6-font-size: 15px;\n\n// Weight\n$font-weight-light: 200;\n$font-weight-lighter: 300;\n$font-weight-normal: 400;\n$font-weight-medium: 500;\n$font-weight-semibold: 600;\n$font-weight-bold: 700;\n$font-weight-bolder: 800;\n$font-weight-black: 900;\n$utilities: (\n\t\"font-weight\": (\n\t\tproperty: font-weight,\n\t\tclass: fw,\n\t\tvalues: (\n\t\t\tlight: $font-weight-light,\n\t\t\tlighter: $font-weight-lighter,\n\t\t\tnormal: $font-weight-normal,\n\t\t\tmedium: $font-weight-medium,\n\t\t\tsemibold: $font-weight-semibold,\n\t\t\tbold: $font-weight-bold,\n\t\t\tbolder: $font-weight-bolder,\n\t\t\tblack: $font-weight-black,\n\t\t),\n\t),\n);\n\n// Breadcrumb\n.breadcrumb-item + .breadcrumb-item::before {\n\tcontent: var(--bs-breadcrumb-divider, url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='14' height='14' stroke='%2364748b' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E\")) !important;\n}\n\n// List-Group\n$list-group-border-color: $border-color;\n$list-group-item-padding-y: 20px;\n$list-group-item-padding-x: 25px;\n","// stylelint-disable custom-property-empty-line-before\n\n:root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}heading-color: #{$headings-color};\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: var(--#{$prefix}link-color);\n text-decoration: $link-decoration;\n\n &:hover {\n color: var(--#{$prefix}link-hover-color);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` '), (this.parentEl = i.parentEl && e(i.parentEl).length ? e(i.parentEl) : e(this.parentEl)), (this.container = e(i.template).appendTo(this.parentEl)), \"object\" == typeof i.locale && (\"string\" == typeof i.locale.direction && (this.locale.direction = i.locale.direction), \"string\" == typeof i.locale.format && (this.locale.format = i.locale.format), \"string\" == typeof i.locale.separator && (this.locale.separator = i.locale.separator), \"object\" == typeof i.locale.daysOfWeek && (this.locale.daysOfWeek = i.locale.daysOfWeek.slice()), \"object\" == typeof i.locale.monthNames && (this.locale.monthNames = i.locale.monthNames.slice()), \"number\" == typeof i.locale.firstDay && (this.locale.firstDay = i.locale.firstDay), \"string\" == typeof i.locale.applyLabel && (this.locale.applyLabel = i.locale.applyLabel), \"string\" == typeof i.locale.cancelLabel && (this.locale.cancelLabel = i.locale.cancelLabel), \"string\" == typeof i.locale.weekLabel && (this.locale.weekLabel = i.locale.weekLabel), \"string\" == typeof i.locale.customRangeLabel))) {\r\n\t\t\t(p = document.createElement(\"textarea\")).innerHTML = i.locale.customRangeLabel;\r\n\t\t\tvar n = p.value;\r\n\t\t\tthis.locale.customRangeLabel = n;\r\n\t\t}\r\n\t\tif ((this.container.addClass(this.locale.direction), \"string\" == typeof i.startDate && (this.startDate = t(i.startDate, this.locale.format)), \"string\" == typeof i.endDate && (this.endDate = t(i.endDate, this.locale.format)), \"string\" == typeof i.minDate && (this.minDate = t(i.minDate, this.locale.format)), \"string\" == typeof i.maxDate && (this.maxDate = t(i.maxDate, this.locale.format)), \"object\" == typeof i.startDate && (this.startDate = t(i.startDate)), \"object\" == typeof i.endDate && (this.endDate = t(i.endDate)), \"object\" == typeof i.minDate && (this.minDate = t(i.minDate)), \"object\" == typeof i.maxDate && (this.maxDate = t(i.maxDate)), this.minDate && this.startDate.isBefore(this.minDate) && (this.startDate = this.minDate.clone()), this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate.clone()), \"string\" == typeof i.applyButtonClasses && (this.applyButtonClasses = i.applyButtonClasses), \"string\" == typeof i.applyClass && (this.applyButtonClasses = i.applyClass), \"string\" == typeof i.cancelButtonClasses && (this.cancelButtonClasses = i.cancelButtonClasses), \"string\" == typeof i.cancelClass && (this.cancelButtonClasses = i.cancelClass), \"object\" == typeof i.maxSpan && (this.maxSpan = i.maxSpan), \"object\" == typeof i.dateLimit && (this.maxSpan = i.dateLimit), \"string\" == typeof i.opens && (this.opens = i.opens), \"string\" == typeof i.drops && (this.drops = i.drops), \"boolean\" == typeof i.showWeekNumbers && (this.showWeekNumbers = i.showWeekNumbers), \"boolean\" == typeof i.showISOWeekNumbers && (this.showISOWeekNumbers = i.showISOWeekNumbers), \"string\" == typeof i.buttonClasses && (this.buttonClasses = i.buttonClasses), \"object\" == typeof i.buttonClasses && (this.buttonClasses = i.buttonClasses.join(\" \")), \"boolean\" == typeof i.showDropdowns && (this.showDropdowns = i.showDropdowns), \"number\" == typeof i.minYear && (this.minYear = i.minYear), \"number\" == typeof i.maxYear && (this.maxYear = i.maxYear), \"boolean\" == typeof i.showCustomRangeLabel && (this.showCustomRangeLabel = i.showCustomRangeLabel), \"boolean\" == typeof i.singleDatePicker && ((this.singleDatePicker = i.singleDatePicker), this.singleDatePicker && (this.endDate = this.startDate.clone())), \"boolean\" == typeof i.timePicker && (this.timePicker = i.timePicker), \"boolean\" == typeof i.timePickerSeconds && (this.timePickerSeconds = i.timePickerSeconds), \"number\" == typeof i.timePickerIncrement && (this.timePickerIncrement = i.timePickerIncrement), \"boolean\" == typeof i.timePicker24Hour && (this.timePicker24Hour = i.timePicker24Hour), \"boolean\" == typeof i.autoApply && (this.autoApply = i.autoApply), \"boolean\" == typeof i.autoUpdateInput && (this.autoUpdateInput = i.autoUpdateInput), \"boolean\" == typeof i.linkedCalendars && (this.linkedCalendars = i.linkedCalendars), \"function\" == typeof i.isInvalidDate && (this.isInvalidDate = i.isInvalidDate), \"function\" == typeof i.isCustomDate && (this.isCustomDate = i.isCustomDate), \"boolean\" == typeof i.alwaysShowCalendars && (this.alwaysShowCalendars = i.alwaysShowCalendars), 0 != this.locale.firstDay)) for (var r = this.locale.firstDay; r > 0; ) this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()), r--;\r\n\t\tvar o, h, l;\r\n\t\tif (void 0 === i.startDate && void 0 === i.endDate && e(this.element).is(\":text\")) {\r\n\t\t\tvar c = e(this.element).val(),\r\n\t\t\t\td = c.split(this.locale.separator);\r\n\t\t\t(o = h = null), 2 == d.length ? ((o = t(d[0], this.locale.format)), (h = t(d[1], this.locale.format))) : this.singleDatePicker && \"\" !== c && ((o = t(c, this.locale.format)), (h = t(c, this.locale.format))), null !== o && null !== h && (this.setStartDate(o), this.setEndDate(h));\r\n\t\t}\r\n\t\tif (\"object\" == typeof i.ranges) {\r\n\t\t\tfor (l in i.ranges) {\r\n\t\t\t\t(o = \"string\" == typeof i.ranges[l][0] ? t(i.ranges[l][0], this.locale.format) : t(i.ranges[l][0])), (h = \"string\" == typeof i.ranges[l][1] ? t(i.ranges[l][1], this.locale.format) : t(i.ranges[l][1])), this.minDate && o.isBefore(this.minDate) && (o = this.minDate.clone());\r\n\t\t\t\tvar m = this.maxDate;\r\n\t\t\t\tif ((this.maxSpan && m && o.clone().add(this.maxSpan).isAfter(m) && (m = o.clone().add(this.maxSpan)), m && h.isAfter(m) && (h = m.clone()), !((this.minDate && h.isBefore(this.minDate, this.timepicker ? \"minute\" : \"day\")) || (m && o.isAfter(m, this.timepicker ? \"minute\" : \"day\"))))) {\r\n\t\t\t\t\tvar p;\r\n\t\t\t\t\t(p = document.createElement(\"textarea\")).innerHTML = l;\r\n\t\t\t\t\tn = p.value;\r\n\t\t\t\t\tthis.ranges[n] = [o, h];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar f = \"

\"), this.container.find(\".ranges\").prepend(f);\r\n\t\t}\r\n\t\t\"function\" == typeof s && (this.callback = s), this.timePicker || ((this.startDate = this.startDate.startOf(\"day\")), (this.endDate = this.endDate.endOf(\"day\")), this.container.find(\".calendar-time\").hide()), this.timePicker && this.autoApply && (this.autoApply = !1), this.autoApply && this.container.addClass(\"auto-apply\"), \"object\" == typeof i.ranges && this.container.addClass(\"show-ranges\"), this.singleDatePicker && (this.container.addClass(\"single\"), this.container.find(\".drp-calendar.left\").addClass(\"single\"), this.container.find(\".drp-calendar.left\").show(), this.container.find(\".drp-calendar.right\").hide(), !this.timePicker && this.autoApply && this.container.addClass(\"auto-apply\")), ((void 0 === i.ranges && !this.singleDatePicker) || this.alwaysShowCalendars) && this.container.addClass(\"show-calendar\"), this.container.addClass(\"opens\" + this.opens), this.container.find(\".applyBtn, .cancelBtn\").addClass(this.buttonClasses), this.applyButtonClasses.length && this.container.find(\".applyBtn\").addClass(this.applyButtonClasses), this.cancelButtonClasses.length && this.container.find(\".cancelBtn\").addClass(this.cancelButtonClasses), this.container.find(\".applyBtn\").html(this.locale.applyLabel), this.container.find(\".cancelBtn\").html(this.locale.cancelLabel), this.container.find(\".drp-calendar\").on(\"click.daterangepicker\", \".prev\", e.proxy(this.clickPrev, this)).on(\"click.daterangepicker\", \".next\", e.proxy(this.clickNext, this)).on(\"mousedown.daterangepicker\", \"td.available\", e.proxy(this.clickDate, this)).on(\"mouseenter.daterangepicker\", \"td.available\", e.proxy(this.hoverDate, this)).on(\"change.daterangepicker\", \"select.yearselect\", e.proxy(this.monthOrYearChanged, this)).on(\"change.daterangepicker\", \"select.monthselect\", e.proxy(this.monthOrYearChanged, this)).on(\"change.daterangepicker\", \"select.hourselect,select.minuteselect,select.secondselect,select.ampmselect\", e.proxy(this.timeChanged, this)), this.container.find(\".ranges\").on(\"click.daterangepicker\", \"li\", e.proxy(this.clickRange, this)), this.container.find(\".drp-buttons\").on(\"click.daterangepicker\", \"button.applyBtn\", e.proxy(this.clickApply, this)).on(\"click.daterangepicker\", \"button.cancelBtn\", e.proxy(this.clickCancel, this)), this.element.is(\"input\") || this.element.is(\"button\") ? this.element.on({ \"click.daterangepicker\": e.proxy(this.show, this), \"focus.daterangepicker\": e.proxy(this.show, this), \"keyup.daterangepicker\": e.proxy(this.elementChanged, this), \"keydown.daterangepicker\": e.proxy(this.keydown, this) }) : (this.element.on(\"click.daterangepicker\", e.proxy(this.toggle, this)), this.element.on(\"keydown.daterangepicker\", e.proxy(this.toggle, this))), this.updateElement();\r\n\t};\r\n\treturn (\r\n\t\t(a.prototype = {\r\n\t\t\tconstructor: a,\r\n\t\t\tsetStartDate: function (e) {\r\n\t\t\t\t\"string\" == typeof e && (this.startDate = t(e, this.locale.format)), \"object\" == typeof e && (this.startDate = t(e)), this.timePicker || (this.startDate = this.startDate.startOf(\"day\")), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement), this.minDate && this.startDate.isBefore(this.minDate) && ((this.startDate = this.minDate.clone()), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement)), this.maxDate && this.startDate.isAfter(this.maxDate) && ((this.startDate = this.maxDate.clone()), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement)), this.isShowing || this.updateElement(), this.updateMonthsInView();\r\n\t\t\t},\r\n\t\t\tsetEndDate: function (e) {\r\n\t\t\t\t\"string\" == typeof e && (this.endDate = t(e, this.locale.format)), \"object\" == typeof e && (this.endDate = t(e)), this.timePicker || (this.endDate = this.endDate.endOf(\"day\")), this.timePicker && this.timePickerIncrement && this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement), this.endDate.isBefore(this.startDate) && (this.endDate = this.startDate.clone()), this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate.clone()), this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate) && (this.endDate = this.startDate.clone().add(this.maxSpan)), (this.previousRightTime = this.endDate.clone()), this.container.find(\".drp-selected\").html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)), this.isShowing || this.updateElement(), this.updateMonthsInView();\r\n\t\t\t},\r\n\t\t\tisInvalidDate: function () {\r\n\t\t\t\treturn !1;\r\n\t\t\t},\r\n\t\t\tisCustomDate: function () {\r\n\t\t\t\treturn !1;\r\n\t\t\t},\r\n\t\t\tupdateView: function () {\r\n\t\t\t\tthis.timePicker && (this.renderTimePicker(\"left\"), this.renderTimePicker(\"right\"), this.endDate ? this.container.find(\".right .calendar-time select\").prop(\"disabled\", !1).removeClass(\"disabled\") : this.container.find(\".right .calendar-time select\").prop(\"disabled\", !0).addClass(\"disabled\")), this.endDate && this.container.find(\".drp-selected\").html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)), this.updateMonthsInView(), this.updateCalendars(), this.updateFormInputs();\r\n\t\t\t},\r\n\t\t\tupdateMonthsInView: function () {\r\n\t\t\t\tif (this.endDate) {\r\n\t\t\t\t\tif (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate.format(\"YYYY-MM\") == this.leftCalendar.month.format(\"YYYY-MM\") || this.startDate.format(\"YYYY-MM\") == this.rightCalendar.month.format(\"YYYY-MM\")) && (this.endDate.format(\"YYYY-MM\") == this.leftCalendar.month.format(\"YYYY-MM\") || this.endDate.format(\"YYYY-MM\") == this.rightCalendar.month.format(\"YYYY-MM\"))) return;\r\n\t\t\t\t\t(this.leftCalendar.month = this.startDate.clone().date(2)), this.linkedCalendars || (this.endDate.month() == this.startDate.month() && this.endDate.year() == this.startDate.year()) ? (this.rightCalendar.month = this.startDate.clone().date(2).add(1, \"month\")) : (this.rightCalendar.month = this.endDate.clone().date(2));\r\n\t\t\t\t} else this.leftCalendar.month.format(\"YYYY-MM\") != this.startDate.format(\"YYYY-MM\") && this.rightCalendar.month.format(\"YYYY-MM\") != this.startDate.format(\"YYYY-MM\") && ((this.leftCalendar.month = this.startDate.clone().date(2)), (this.rightCalendar.month = this.startDate.clone().date(2).add(1, \"month\")));\r\n\t\t\t\tthis.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate && ((this.rightCalendar.month = this.maxDate.clone().date(2)), (this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, \"month\")));\r\n\t\t\t},\r\n\t\t\tupdateCalendars: function () {\r\n\t\t\t\tif (this.timePicker) {\r\n\t\t\t\t\tvar t, e, a, i;\r\n\t\t\t\t\tif (this.endDate) {\r\n\t\t\t\t\t\tif (((t = parseInt(this.container.find(\".left .hourselect\").val(), 10)), (e = parseInt(this.container.find(\".left .minuteselect\").val(), 10)), isNaN(e) && (e = parseInt(this.container.find(\".left .minuteselect option:last\").val(), 10)), (a = this.timePickerSeconds ? parseInt(this.container.find(\".left .secondselect\").val(), 10) : 0), !this.timePicker24Hour)) \"PM\" === (i = this.container.find(\".left .ampmselect\").val()) && t < 12 && (t += 12), \"AM\" === i && 12 === t && (t = 0);\r\n\t\t\t\t\t} else if (((t = parseInt(this.container.find(\".right .hourselect\").val(), 10)), (e = parseInt(this.container.find(\".right .minuteselect\").val(), 10)), isNaN(e) && (e = parseInt(this.container.find(\".right .minuteselect option:last\").val(), 10)), (a = this.timePickerSeconds ? parseInt(this.container.find(\".right .secondselect\").val(), 10) : 0), !this.timePicker24Hour)) \"PM\" === (i = this.container.find(\".right .ampmselect\").val()) && t < 12 && (t += 12), \"AM\" === i && 12 === t && (t = 0);\r\n\t\t\t\t\tthis.leftCalendar.month.hour(t).minute(e).second(a), this.rightCalendar.month.hour(t).minute(e).second(a);\r\n\t\t\t\t}\r\n\t\t\t\tthis.renderCalendar(\"left\"), this.renderCalendar(\"right\"), this.container.find(\".ranges li\").removeClass(\"active\"), null != this.endDate && this.calculateChosenLabel();\r\n\t\t\t},\r\n\t\t\trenderCalendar: function (a) {\r\n\t\t\t\tvar i,\r\n\t\t\t\t\ts = (i = \"left\" == a ? this.leftCalendar : this.rightCalendar).month.month(),\r\n\t\t\t\t\tn = i.month.year(),\r\n\t\t\t\t\tr = i.month.hour(),\r\n\t\t\t\t\to = i.month.minute(),\r\n\t\t\t\t\th = i.month.second(),\r\n\t\t\t\t\tl = t([n, s]).daysInMonth(),\r\n\t\t\t\t\tc = t([n, s, 1]),\r\n\t\t\t\t\td = t([n, s, l]),\r\n\t\t\t\t\tm = t(c).subtract(1, \"month\").month(),\r\n\t\t\t\t\tp = t(c).subtract(1, \"month\").year(),\r\n\t\t\t\t\tf = t([p, m]).daysInMonth(),\r\n\t\t\t\t\tu = c.day();\r\n\t\t\t\t((i = []).firstDay = c), (i.lastDay = d);\r\n\t\t\t\tfor (var D = 0; D < 6; D++) i[D] = [];\r\n\t\t\t\tvar g = f - u + this.locale.firstDay + 1;\r\n\t\t\t\tg > f && (g -= 7), u == this.locale.firstDay && (g = f - 6);\r\n\t\t\t\tfor (var y = t([p, m, g, 12, o, h]), k = ((D = 0), 0), b = 0; D < 42; D++, k++, y = t(y).add(24, \"hour\")) D > 0 && k % 7 == 0 && ((k = 0), b++), (i[b][k] = y.clone().hour(r).minute(o).second(h)), y.hour(12), this.minDate && i[b][k].format(\"YYYY-MM-DD\") == this.minDate.format(\"YYYY-MM-DD\") && i[b][k].isBefore(this.minDate) && \"left\" == a && (i[b][k] = this.minDate.clone()), this.maxDate && i[b][k].format(\"YYYY-MM-DD\") == this.maxDate.format(\"YYYY-MM-DD\") && i[b][k].isAfter(this.maxDate) && \"right\" == a && (i[b][k] = this.maxDate.clone());\r\n\t\t\t\t\"left\" == a ? (this.leftCalendar.calendar = i) : (this.rightCalendar.calendar = i);\r\n\t\t\t\tvar v = \"left\" == a ? this.minDate : this.startDate,\r\n\t\t\t\t\tC = this.maxDate,\r\n\t\t\t\t\tY = (\"left\" == a ? this.startDate : this.endDate, this.locale.direction, '');\r\n\t\t\t\t(Y += \"\"), (Y += \"\"), (this.showWeekNumbers || this.showISOWeekNumbers) && (Y += \"\"), (v && !v.isBefore(i.firstDay)) || (this.linkedCalendars && \"left\" != a) ? (Y += \"\") : (Y += '');\r\n\t\t\t\tvar w = this.locale.monthNames[i[1][1].month()] + i[1][1].format(\" YYYY\");\r\n\t\t\t\tif (this.showDropdowns) {\r\n\t\t\t\t\tfor (var P = i[1][1].month(), x = i[1][1].year(), M = (C && C.year()) || this.maxYear, I = (v && v.year()) || this.minYear, S = x == I, B = x == M, A = '\";\r\n\t\t\t\t\tfor (var N = '\");\r\n\t\t\t\t}\r\n\t\t\t\tif (\r\n\t\t\t\t\t((Y += '\"),\r\n\t\t\t\t\t(C && !C.isAfter(i.lastDay)) || (this.linkedCalendars && \"right\" != a && !this.singleDatePicker) ? (Y += \"\") : (Y += ''),\r\n\t\t\t\t\t(Y += \"\"),\r\n\t\t\t\t\t(Y += \"\"),\r\n\t\t\t\t\t(this.showWeekNumbers || this.showISOWeekNumbers) && (Y += '\"),\r\n\t\t\t\t\te.each(this.locale.daysOfWeek, function (t, e) {\r\n\t\t\t\t\t\tY += \"\";\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(Y += \"\"),\r\n\t\t\t\t\t(Y += \"\"),\r\n\t\t\t\t\t(Y += \"\"),\r\n\t\t\t\t\tnull == this.endDate && this.maxSpan)\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar O = this.startDate.clone().add(this.maxSpan).endOf(\"day\");\r\n\t\t\t\t\t(C && !O.isBefore(C)) || (C = O);\r\n\t\t\t\t}\r\n\t\t\t\tfor (b = 0; b < 6; b++) {\r\n\t\t\t\t\t(Y += \"\"), this.showWeekNumbers ? (Y += '\") : this.showISOWeekNumbers && (Y += '\");\r\n\t\t\t\t\tfor (k = 0; k < 7; k++) {\r\n\t\t\t\t\t\tvar W = [];\r\n\t\t\t\t\t\ti[b][k].isSame(new Date(), \"day\") && W.push(\"today\"), i[b][k].isoWeekday() > 5 && W.push(\"weekend\"), i[b][k].month() != i[1][1].month() && W.push(\"off\", \"ends\"), this.minDate && i[b][k].isBefore(this.minDate, \"day\") && W.push(\"off\", \"disabled\"), C && i[b][k].isAfter(C, \"day\") && W.push(\"off\", \"disabled\"), this.isInvalidDate(i[b][k]) && W.push(\"off\", \"disabled\"), i[b][k].format(\"YYYY-MM-DD\") == this.startDate.format(\"YYYY-MM-DD\") && W.push(\"active\", \"start-date\"), null != this.endDate && i[b][k].format(\"YYYY-MM-DD\") == this.endDate.format(\"YYYY-MM-DD\") && W.push(\"active\", \"end-date\"), null != this.endDate && i[b][k] > this.startDate && i[b][k] < this.endDate && W.push(\"in-range\");\r\n\t\t\t\t\t\tvar H = this.isCustomDate(i[b][k]);\r\n\t\t\t\t\t\t!1 !== H && (\"string\" == typeof H ? W.push(H) : Array.prototype.push.apply(W, H));\r\n\t\t\t\t\t\tvar j = \"\",\r\n\t\t\t\t\t\t\tR = !1;\r\n\t\t\t\t\t\tfor (D = 0; D < W.length; D++) (j += W[D] + \" \"), \"disabled\" == W[D] && (R = !0);\r\n\t\t\t\t\t\tR || (j += \"available\"), (Y += '\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tY += \"\";\r\n\t\t\t\t}\r\n\t\t\t\t(Y += \"\"), (Y += \"
' + w + \"
' + this.locale.weekLabel + \"\" + e + \"
' + i[b][0].week() + \"' + i[b][0].isoWeek() + \"' + i[b][k].date() + \"
\"), this.container.find(\".drp-calendar.\" + a + \" .calendar-table\").html(Y);\r\n\t\t\t},\r\n\t\t\trenderTimePicker: function (t) {\r\n\t\t\t\tif (\"right\" != t || this.endDate) {\r\n\t\t\t\t\tvar e,\r\n\t\t\t\t\t\ta,\r\n\t\t\t\t\t\ti,\r\n\t\t\t\t\t\ts = this.maxDate;\r\n\t\t\t\t\tif ((!this.maxSpan || (this.maxDate && !this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)) || (s = this.startDate.clone().add(this.maxSpan)), \"left\" == t)) (a = this.startDate.clone()), (i = this.minDate);\r\n\t\t\t\t\telse if (\"right\" == t) {\r\n\t\t\t\t\t\t(a = this.endDate.clone()), (i = this.startDate);\r\n\t\t\t\t\t\tvar n = this.container.find(\".drp-calendar.right .calendar-time\");\r\n\t\t\t\t\t\tif (\"\" != n.html() && (a.hour(isNaN(a.hour()) ? n.find(\".hourselect option:selected\").val() : a.hour()), a.minute(isNaN(a.minute()) ? n.find(\".minuteselect option:selected\").val() : a.minute()), a.second(isNaN(a.second()) ? n.find(\".secondselect option:selected\").val() : a.second()), !this.timePicker24Hour)) {\r\n\t\t\t\t\t\t\tvar r = n.find(\".ampmselect option:selected\").val();\r\n\t\t\t\t\t\t\t\"PM\" === r && a.hour() < 12 && a.hour(a.hour() + 12), \"AM\" === r && 12 === a.hour() && a.hour(0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ta.isBefore(this.startDate) && (a = this.startDate.clone()), s && a.isAfter(s) && (a = s.clone());\r\n\t\t\t\t\t}\r\n\t\t\t\t\te = ' \"), (e += ': \"), this.timePickerSeconds)) {\r\n\t\t\t\t\t\te += ': \";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!this.timePicker24Hour) {\r\n\t\t\t\t\t\te += '\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.container.find(\".drp-calendar.\" + t + \" .calendar-time\").html(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tupdateFormInputs: function () {\r\n\t\t\t\tthis.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate))) ? this.container.find(\"button.applyBtn\").prop(\"disabled\", !1) : this.container.find(\"button.applyBtn\").prop(\"disabled\", !0);\r\n\t\t\t},\r\n\t\t\tmove: function () {\r\n\t\t\t\tvar t,\r\n\t\t\t\t\ta = { top: 0, left: 0 },\r\n\t\t\t\t\ti = this.drops,\r\n\t\t\t\t\ts = e(window).width();\r\n\t\t\t\tswitch ((this.parentEl.is(\"body\") || ((a = { top: this.parentEl.offset().top - this.parentEl.scrollTop(), left: this.parentEl.offset().left - this.parentEl.scrollLeft() }), (s = this.parentEl[0].clientWidth + this.parentEl.offset().left)), i)) {\r\n\t\t\t\t\tcase \"auto\":\r\n\t\t\t\t\t\t(t = this.element.offset().top + this.element.outerHeight() - a.top) + this.container.outerHeight() >= this.parentEl[0].scrollHeight && ((t = this.element.offset().top - this.container.outerHeight() - a.top), (i = \"up\"));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"up\":\r\n\t\t\t\t\t\tt = this.element.offset().top - this.container.outerHeight() - a.top;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tt = this.element.offset().top + this.element.outerHeight() - a.top;\r\n\t\t\t\t}\r\n\t\t\t\tthis.container.css({ top: 0, left: 0, right: \"auto\" });\r\n\t\t\t\tvar n = this.container.outerWidth();\r\n\t\t\t\tif ((this.container.toggleClass(\"drop-up\", \"up\" == i), \"left\" == this.opens)) {\r\n\t\t\t\t\tvar r = s - this.element.offset().left - this.element.outerWidth();\r\n\t\t\t\t\tn + r > e(window).width() ? this.container.css({ top: t, right: \"auto\", left: 9 }) : this.container.css({ top: t, right: r, left: \"auto\" });\r\n\t\t\t\t} else if (\"center\" == this.opens) {\r\n\t\t\t\t\t(o = this.element.offset().left - a.left + this.element.outerWidth() / 2 - n / 2) < 0 ? this.container.css({ top: t, right: \"auto\", left: 9 }) : o + n > e(window).width() ? this.container.css({ top: t, left: \"auto\", right: 0 }) : this.container.css({ top: t, left: o, right: \"auto\" });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar o;\r\n\t\t\t\t\t(o = this.element.offset().left - a.left) + n > e(window).width() ? this.container.css({ top: t, left: \"auto\", right: 0 }) : this.container.css({ top: t, left: o, right: \"auto\" });\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tshow: function (t) {\r\n\t\t\t\tthis.isShowing ||\r\n\t\t\t\t\t((this._outsideClickProxy = e.proxy(function (t) {\r\n\t\t\t\t\t\tthis.outsideClick(t);\r\n\t\t\t\t\t}, this)),\r\n\t\t\t\t\te(document).on(\"mousedown.daterangepicker\", this._outsideClickProxy).on(\"touchend.daterangepicker\", this._outsideClickProxy).on(\"click.daterangepicker\", \"[data-toggle=dropdown]\", this._outsideClickProxy).on(\"focusin.daterangepicker\", this._outsideClickProxy),\r\n\t\t\t\t\te(window).on(\r\n\t\t\t\t\t\t\"resize.daterangepicker\",\r\n\t\t\t\t\t\te.proxy(function (t) {\r\n\t\t\t\t\t\t\tthis.move(t);\r\n\t\t\t\t\t\t}, this)\r\n\t\t\t\t\t),\r\n\t\t\t\t\t(this.oldStartDate = this.startDate.clone()),\r\n\t\t\t\t\t(this.oldEndDate = this.endDate.clone()),\r\n\t\t\t\t\t(this.previousRightTime = this.endDate.clone()),\r\n\t\t\t\t\tthis.updateView(),\r\n\t\t\t\t\tthis.container.show(),\r\n\t\t\t\t\tthis.move(),\r\n\t\t\t\t\tthis.element.trigger(\"show.daterangepicker\", this),\r\n\t\t\t\t\t(this.isShowing = !0));\r\n\t\t\t},\r\n\t\t\thide: function (t) {\r\n\t\t\t\tthis.isShowing && (this.endDate || ((this.startDate = this.oldStartDate.clone()), (this.endDate = this.oldEndDate.clone())), (this.startDate.isSame(this.oldStartDate) && this.endDate.isSame(this.oldEndDate)) || this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel), this.updateElement(), e(document).off(\".daterangepicker\"), e(window).off(\".daterangepicker\"), this.container.hide(), this.element.trigger(\"hide.daterangepicker\", this), (this.isShowing = !1));\r\n\t\t\t},\r\n\t\t\ttoggle: function (t) {\r\n\t\t\t\tthis.isShowing ? this.hide() : this.show();\r\n\t\t\t},\r\n\t\t\toutsideClick: function (t) {\r\n\t\t\t\tvar a = e(t.target);\r\n\t\t\t\t\"focusin\" == t.type || a.closest(this.element).length || a.closest(this.container).length || a.closest(\".calendar-table\").length || (this.hide(), this.element.trigger(\"outsideClick.daterangepicker\", this));\r\n\t\t\t},\r\n\t\t\tshowCalendars: function () {\r\n\t\t\t\tthis.container.addClass(\"show-calendar\"), this.move(), this.element.trigger(\"showCalendar.daterangepicker\", this);\r\n\t\t\t},\r\n\t\t\thideCalendars: function () {\r\n\t\t\t\tthis.container.removeClass(\"show-calendar\"), this.element.trigger(\"hideCalendar.daterangepicker\", this);\r\n\t\t\t},\r\n\t\t\tclickRange: function (t) {\r\n\t\t\t\tvar e = t.target.getAttribute(\"data-range-key\");\r\n\t\t\t\tif (((this.chosenLabel = e), e == this.locale.customRangeLabel)) this.showCalendars();\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar a = this.ranges[e];\r\n\t\t\t\t\t(this.startDate = a[0]), (this.endDate = a[1]), this.timePicker || (this.startDate.startOf(\"day\"), this.endDate.endOf(\"day\")), this.alwaysShowCalendars || this.hideCalendars(), this.clickApply();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tclickPrev: function (t) {\r\n\t\t\t\te(t.target).parents(\".drp-calendar\").hasClass(\"left\") ? (this.leftCalendar.month.subtract(1, \"month\"), this.linkedCalendars && this.rightCalendar.month.subtract(1, \"month\")) : this.rightCalendar.month.subtract(1, \"month\"), this.updateCalendars();\r\n\t\t\t},\r\n\t\t\tclickNext: function (t) {\r\n\t\t\t\te(t.target).parents(\".drp-calendar\").hasClass(\"left\") ? this.leftCalendar.month.add(1, \"month\") : (this.rightCalendar.month.add(1, \"month\"), this.linkedCalendars && this.leftCalendar.month.add(1, \"month\")), this.updateCalendars();\r\n\t\t\t},\r\n\t\t\thoverDate: function (t) {\r\n\t\t\t\tif (e(t.target).hasClass(\"available\")) {\r\n\t\t\t\t\tvar a = e(t.target).attr(\"data-title\"),\r\n\t\t\t\t\t\ti = a.substr(1, 1),\r\n\t\t\t\t\t\ts = a.substr(3, 1),\r\n\t\t\t\t\t\tn = e(t.target).parents(\".drp-calendar\").hasClass(\"left\") ? this.leftCalendar.calendar[i][s] : this.rightCalendar.calendar[i][s],\r\n\t\t\t\t\t\tr = this.leftCalendar,\r\n\t\t\t\t\t\to = this.rightCalendar,\r\n\t\t\t\t\t\th = this.startDate;\r\n\t\t\t\t\tthis.endDate ||\r\n\t\t\t\t\t\tthis.container.find(\".drp-calendar tbody td\").each(function (t, a) {\r\n\t\t\t\t\t\t\tif (!e(a).hasClass(\"week\")) {\r\n\t\t\t\t\t\t\t\tvar i = e(a).attr(\"data-title\"),\r\n\t\t\t\t\t\t\t\t\ts = i.substr(1, 1),\r\n\t\t\t\t\t\t\t\t\tl = i.substr(3, 1),\r\n\t\t\t\t\t\t\t\t\tc = e(a).parents(\".drp-calendar\").hasClass(\"left\") ? r.calendar[s][l] : o.calendar[s][l];\r\n\t\t\t\t\t\t\t\t(c.isAfter(h) && c.isBefore(n)) || c.isSame(n, \"day\") ? e(a).addClass(\"in-range\") : e(a).removeClass(\"in-range\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tclickDate: function (t) {\r\n\t\t\t\tif (e(t.target).hasClass(\"available\")) {\r\n\t\t\t\t\tvar a = e(t.target).attr(\"data-title\"),\r\n\t\t\t\t\t\ti = a.substr(1, 1),\r\n\t\t\t\t\t\ts = a.substr(3, 1),\r\n\t\t\t\t\t\tn = e(t.target).parents(\".drp-calendar\").hasClass(\"left\") ? this.leftCalendar.calendar[i][s] : this.rightCalendar.calendar[i][s];\r\n\t\t\t\t\tif (this.endDate || n.isBefore(this.startDate, \"day\")) {\r\n\t\t\t\t\t\tif (this.timePicker) {\r\n\t\t\t\t\t\t\tvar r = parseInt(this.container.find(\".left .hourselect\").val(), 10);\r\n\t\t\t\t\t\t\tif (!this.timePicker24Hour) \"PM\" === (l = this.container.find(\".left .ampmselect\").val()) && r < 12 && (r += 12), \"AM\" === l && 12 === r && (r = 0);\r\n\t\t\t\t\t\t\tvar o = parseInt(this.container.find(\".left .minuteselect\").val(), 10);\r\n\t\t\t\t\t\t\tisNaN(o) && (o = parseInt(this.container.find(\".left .minuteselect option:last\").val(), 10));\r\n\t\t\t\t\t\t\tvar h = this.timePickerSeconds ? parseInt(this.container.find(\".left .secondselect\").val(), 10) : 0;\r\n\t\t\t\t\t\t\tn = n.clone().hour(r).minute(o).second(h);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t(this.endDate = null), this.setStartDate(n.clone());\r\n\t\t\t\t\t} else if (!this.endDate && n.isBefore(this.startDate)) this.setEndDate(this.startDate.clone());\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (this.timePicker) {\r\n\t\t\t\t\t\t\tvar l;\r\n\t\t\t\t\t\t\tr = parseInt(this.container.find(\".right .hourselect\").val(), 10);\r\n\t\t\t\t\t\t\tif (!this.timePicker24Hour) \"PM\" === (l = this.container.find(\".right .ampmselect\").val()) && r < 12 && (r += 12), \"AM\" === l && 12 === r && (r = 0);\r\n\t\t\t\t\t\t\to = parseInt(this.container.find(\".right .minuteselect\").val(), 10);\r\n\t\t\t\t\t\t\tisNaN(o) && (o = parseInt(this.container.find(\".right .minuteselect option:last\").val(), 10));\r\n\t\t\t\t\t\t\th = this.timePickerSeconds ? parseInt(this.container.find(\".right .secondselect\").val(), 10) : 0;\r\n\t\t\t\t\t\t\tn = n.clone().hour(r).minute(o).second(h);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.setEndDate(n.clone()), this.autoApply && (this.calculateChosenLabel(), this.clickApply());\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.singleDatePicker && (this.setEndDate(this.startDate), !this.timePicker && this.autoApply && this.clickApply()), this.updateView(), t.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcalculateChosenLabel: function () {\r\n\t\t\t\tvar t = !0,\r\n\t\t\t\t\te = 0;\r\n\t\t\t\tfor (var a in this.ranges) {\r\n\t\t\t\t\tif (this.timePicker) {\r\n\t\t\t\t\t\tvar i = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n\t\t\t\t\t\tif (this.startDate.format(i) == this.ranges[a][0].format(i) && this.endDate.format(i) == this.ranges[a][1].format(i)) {\r\n\t\t\t\t\t\t\t(t = !1),\r\n\t\t\t\t\t\t\t\t(this.chosenLabel = this.container\r\n\t\t\t\t\t\t\t\t\t.find(\".ranges li:eq(\" + e + \")\")\r\n\t\t\t\t\t\t\t\t\t.addClass(\"active\")\r\n\t\t\t\t\t\t\t\t\t.attr(\"data-range-key\"));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (this.startDate.format(\"YYYY-MM-DD\") == this.ranges[a][0].format(\"YYYY-MM-DD\") && this.endDate.format(\"YYYY-MM-DD\") == this.ranges[a][1].format(\"YYYY-MM-DD\")) {\r\n\t\t\t\t\t\t(t = !1),\r\n\t\t\t\t\t\t\t(this.chosenLabel = this.container\r\n\t\t\t\t\t\t\t\t.find(\".ranges li:eq(\" + e + \")\")\r\n\t\t\t\t\t\t\t\t.addClass(\"active\")\r\n\t\t\t\t\t\t\t\t.attr(\"data-range-key\"));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\te++;\r\n\t\t\t\t}\r\n\t\t\t\tt && (this.showCustomRangeLabel ? (this.chosenLabel = this.container.find(\".ranges li:last\").addClass(\"active\").attr(\"data-range-key\")) : (this.chosenLabel = null), this.showCalendars());\r\n\t\t\t},\r\n\t\t\tclickApply: function (t) {\r\n\t\t\t\tthis.hide(), this.element.trigger(\"apply.daterangepicker\", this);\r\n\t\t\t},\r\n\t\t\tclickCancel: function (t) {\r\n\t\t\t\t(this.startDate = this.oldStartDate), (this.endDate = this.oldEndDate), this.hide(), this.element.trigger(\"cancel.daterangepicker\", this);\r\n\t\t\t},\r\n\t\t\tmonthOrYearChanged: function (t) {\r\n\t\t\t\tvar a = e(t.target).closest(\".drp-calendar\").hasClass(\"left\"),\r\n\t\t\t\t\ti = a ? \"left\" : \"right\",\r\n\t\t\t\t\ts = this.container.find(\".drp-calendar.\" + i),\r\n\t\t\t\t\tn = parseInt(s.find(\".monthselect\").val(), 10),\r\n\t\t\t\t\tr = s.find(\".yearselect\").val();\r\n\t\t\t\ta || ((r < this.startDate.year() || (r == this.startDate.year() && n < this.startDate.month())) && ((n = this.startDate.month()), (r = this.startDate.year()))), this.minDate && (r < this.minDate.year() || (r == this.minDate.year() && n < this.minDate.month())) && ((n = this.minDate.month()), (r = this.minDate.year())), this.maxDate && (r > this.maxDate.year() || (r == this.maxDate.year() && n > this.maxDate.month())) && ((n = this.maxDate.month()), (r = this.maxDate.year())), a ? (this.leftCalendar.month.month(n).year(r), this.linkedCalendars && (this.rightCalendar.month = this.leftCalendar.month.clone().add(1, \"month\"))) : (this.rightCalendar.month.month(n).year(r), this.linkedCalendars && (this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, \"month\"))), this.updateCalendars();\r\n\t\t\t},\r\n\t\t\ttimeChanged: function (t) {\r\n\t\t\t\tvar a = e(t.target).closest(\".drp-calendar\"),\r\n\t\t\t\t\ti = a.hasClass(\"left\"),\r\n\t\t\t\t\ts = parseInt(a.find(\".hourselect\").val(), 10),\r\n\t\t\t\t\tn = parseInt(a.find(\".minuteselect\").val(), 10);\r\n\t\t\t\tisNaN(n) && (n = parseInt(a.find(\".minuteselect option:last\").val(), 10));\r\n\t\t\t\tvar r = this.timePickerSeconds ? parseInt(a.find(\".secondselect\").val(), 10) : 0;\r\n\t\t\t\tif (!this.timePicker24Hour) {\r\n\t\t\t\t\tvar o = a.find(\".ampmselect\").val();\r\n\t\t\t\t\t\"PM\" === o && s < 12 && (s += 12), \"AM\" === o && 12 === s && (s = 0);\r\n\t\t\t\t}\r\n\t\t\t\tif (i) {\r\n\t\t\t\t\tvar h = this.startDate.clone();\r\n\t\t\t\t\th.hour(s), h.minute(n), h.second(r), this.setStartDate(h), this.singleDatePicker ? (this.endDate = this.startDate.clone()) : this.endDate && this.endDate.format(\"YYYY-MM-DD\") == h.format(\"YYYY-MM-DD\") && this.endDate.isBefore(h) && this.setEndDate(h.clone());\r\n\t\t\t\t} else if (this.endDate) {\r\n\t\t\t\t\tvar l = this.endDate.clone();\r\n\t\t\t\t\tl.hour(s), l.minute(n), l.second(r), this.setEndDate(l);\r\n\t\t\t\t}\r\n\t\t\t\tthis.updateCalendars(), this.updateFormInputs(), this.renderTimePicker(\"left\"), this.renderTimePicker(\"right\");\r\n\t\t\t},\r\n\t\t\telementChanged: function () {\r\n\t\t\t\tif (this.element.is(\"input\") && this.element.val().length) {\r\n\t\t\t\t\tvar e = this.element.val().split(this.locale.separator),\r\n\t\t\t\t\t\ta = null,\r\n\t\t\t\t\t\ti = null;\r\n\t\t\t\t\t2 === e.length && ((a = t(e[0], this.locale.format)), (i = t(e[1], this.locale.format))), (this.singleDatePicker || null === a || null === i) && (i = a = t(this.element.val(), this.locale.format)), a.isValid() && i.isValid() && (this.setStartDate(a), this.setEndDate(i), this.updateView());\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tkeydown: function (t) {\r\n\t\t\t\t(9 !== t.keyCode && 13 !== t.keyCode) || this.hide(), 27 === t.keyCode && (t.preventDefault(), t.stopPropagation(), this.hide());\r\n\t\t\t},\r\n\t\t\tupdateElement: function () {\r\n\t\t\t\tif (this.element.is(\"input\") && this.autoUpdateInput) {\r\n\t\t\t\t\tvar t = this.startDate.format(this.locale.format);\r\n\t\t\t\t\tthis.singleDatePicker || (t += this.locale.separator + this.endDate.format(this.locale.format)), t !== this.element.val() && this.element.val(t).trigger(\"change\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tremove: function () {\r\n\t\t\t\tthis.container.remove(), this.element.off(\".daterangepicker\"), this.element.removeData();\r\n\t\t\t},\r\n\t\t}),\r\n\t\t(e.fn.daterangepicker = function (t, i) {\r\n\t\t\tvar s = e.extend(!0, {}, e.fn.daterangepicker.defaultOptions, t);\r\n\t\t\treturn (\r\n\t\t\t\tthis.each(function () {\r\n\t\t\t\t\tvar t = e(this);\r\n\t\t\t\t\tt.data(\"daterangepicker\") && t.data(\"daterangepicker\").remove(), t.data(\"daterangepicker\", new a(t, s, i));\r\n\t\t\t\t}),\r\n\t\t\t\tthis\r\n\t\t\t);\r\n\t\t}),\r\n\t\ta\r\n\t);\r\n});\r\n//# sourceMappingURL=/sm/f07d8d7b2652873f485707eab4f3d300bf1f6f3b42912e189c8933b1b9b3dfde.map\r\n"],"names":["t","e","a","i","define","amd","fn","hasOwnProperty","default","module","exports","window","jQuery","require","moment","daterangepicker","this","s","n","h","l","d","o","parentEl","element","startDate","startOf","endDate","endOf","minDate","maxDate","maxSpan","autoApply","singleDatePicker","showDropdowns","minYear","subtract","format","maxYear","add","showWeekNumbers","showISOWeekNumbers","showCustomRangeLabel","timePicker","timePicker24Hour","timePickerIncrement","timePickerSeconds","linkedCalendars","autoUpdateInput","alwaysShowCalendars","ranges","opens","hasClass","drops","buttonClasses","applyButtonClasses","cancelButtonClasses","locale","direction","localeData","longDateFormat","separator","applyLabel","cancelLabel","weekLabel","customRangeLabel","daysOfWeek","weekdaysMin","monthNames","monthsShort","firstDay","firstDayOfWeek","callback","isShowing","leftCalendar","rightCalendar","extend","data","template","length","container","appendTo","slice","p","document","createElement","innerHTML","value","addClass","isBefore","clone","isAfter","applyClass","cancelClass","dateLimit","join","isInvalidDate","isCustomDate","r","push","shift","is","c","val","split","setStartDate","setEndDate","m","timepicker","f","find","prepend","hide","show","html","on","proxy","clickPrev","clickNext","clickDate","hoverDate","monthOrYearChanged","timeChanged","clickRange","clickApply","clickCancel","click.daterangepicker","focus.daterangepicker","keyup.daterangepicker","elementChanged","keydown.daterangepicker","keydown","toggle","updateElement","prototype","constructor","minute","Math","round","floor","updateMonthsInView","previousRightTime","updateView","renderTimePicker","prop","removeClass","updateCalendars","updateFormInputs","month","date","year","parseInt","isNaN","hour","second","renderCalendar","calculateChosenLabel","daysInMonth","u","day","lastDay","D","g","y","k","b","calendar","v","C","Y","w","P","x","M","I","S","B","A","L","N","E","each","O","week","isoWeek","W","H","isSame","Date","isoWeekday","j","Array","apply","R","replace","move","top","left","width","offset","scrollTop","scrollLeft","clientWidth","outerHeight","scrollHeight","css","right","outerWidth","toggleClass","_outsideClickProxy","outsideClick","oldStartDate","oldEndDate","trigger","chosenLabel","off","target","type","closest","showCalendars","hideCalendars","getAttribute","parents","attr","substr","stopPropagation","isValid","keyCode","preventDefault","remove","removeData","defaultOptions"],"mappings":"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"} \ No newline at end of file diff --git a/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js b/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js new file mode 100644 index 0000000..95992c2 --- /dev/null +++ b/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js @@ -0,0 +1,2 @@ +window="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},document=window.document||{},function(e,a){"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(a.jQuery)}(function(x){"use strict";var e=0,l={},s={},C=window.emojione,n=[];function t(e){C?e():n.push(e)}var z,T,i,A="data:image/gif;base64,R0lGODlhAQABAJH/AP///wAAAMDAwAAAACH5BAEAAAIALAAAAAABAAEAAAICVAEAOw==",_=[].slice,q="emojionearea",S=0,P="​";function E(o,e,n){var t=!0,a=1;if(e){e=e.toLowerCase();do{var i=1==a?"@"+e:e;l[o.id][i]&&l[o.id][i].length&&x.each(l[o.id][i],function(e,a){return t=!1!==a.apply(o,n||[])})}while(t&&a--)}return t}function R(o,n,t,i){i=i||function(e,a){return x(a.currentTarget)},x.each(t,function(e,a){e=x.isArray(t)?a:e,(s[o.id][a]||(s[o.id][a]=[])).push([n,e,i])})}function r(e,a,o){var n=C.imageType,t="svg"==n?C.imagePathSVG:C.imagePathPNG,i="",r=(o&&(i=o.substr(1,o.length-2).replace(/_/g," ").replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})),"");return a.uc_base&&4/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`").replace(/(?:\r\n|\r|\n)/g,"\n").replace(/(\n+)/g,"
$1
").replace(/\n/g,"
").replace(/<\/div>/g,""),u(e=a.shortnames?C.shortnameToUnicode(e):e,a.emojiTemplate).replace(/\t/g,"    ").replace(/ /g,"  ")}function N(e,a){switch(e=e.replace(/ /g,"\n").replace(/ /g,"\t").replace(/]*alt="([^"]+)"[^>]*>/gi,"$1").replace(/\n|\r/g,"").replace(/]*>/gi,"\n").replace(/(?:<(?:div|p|ol|ul|li|pre|code|object)[^>]*>)+/gi,"
").replace(/(?:<\/(?:div|p|ol|ul|li|pre|code|object)>)+/gi,"
").replace(/\n
<\/div>/gi,"\n").replace(/
<\/div>\n/gi,"\n").replace(/(?:
)+<\/div>/gi,"\n").replace(/([^\n])<\/div>
/gi,"$1\n").replace(/(?:<\/div>)+/gi,"
").replace(/([^\n])<\/div>([^\n])/gi,"$1\n$2").replace(/<\/div>/gi,"").replace(/([^\n])
/gi,"$1\n").replace(/\n
/gi,"\n").replace(/
\n/gi,"\n\n").replace(/<(?:[^>]+)?>/g,"").replace(new RegExp(P,"g"),"").replace(/ /g," ").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/`/g,"`").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&"),a.saveEmojisAs){case"image":e=u(e,a.emojiTemplate);break;case"shortname":e=C.toShort(e)}return e}function L(){var e=this,a=e.editor[0].offsetWidth-e.editor[0].clientWidth,o=parseInt(e.button.css("marginRight"));o!==a&&(e.button.css({marginRight:a}),e.floatingPicker)&&e.picker.css({right:parseInt(e.picker.css("right"))-o+a})}function U(){var o,n,e=this;!e.sprite&&e.lasyEmoji[0]&&e.lasyEmoji.eq(0).is(".lazy-emoji")&&(o=e.picker.offset().top,n=o+e.picker.height()+20,e.lasyEmoji.each(function(){var e=x(this),a=e.offset().top;if(o",D(e)?e:{class:$(e,!0)});return x.each(_.call(arguments).slice(1),function(e,a){(a=x.isFunction(a)?a.call(o):a)&&x(a).appendTo(o)}),o}function G(){return localStorage.getItem("recent_emojis")||""}function M(e,a){var o,n,t,i=G();e.recent&&e.recent===i&&!a||(i.length?((t=e.scrollArea.is(".skinnable"))||(o=e.scrollArea.scrollTop(),a&&e.recentCategory.show(),n=e.recentCategory.is(":visible")?e.recentCategory.height():0),a=F(i,e.emojiBtnTemplate,!0).split("|").join(""),e.recentCategory.children(".emojibtn").remove(),x(a).insertAfter(e.recentCategory.children(".emojionearea-category-title")),e.recentCategory.children(".emojibtn").on("click",function(){e.trigger("emojibtn.click",x(this))}),e.recentFilter.show(),t||(e.recentCategory.show(),n!==(t=e.recentCategory.height())&&e.scrollArea.scrollTop(o+t-n))):(e.recentFilter.hasClass("active")&&e.recentFilter.removeClass("active").next().addClass("active"),e.recentCategory.hide(),e.recentFilter.hide()),e.recent=i)}window.getSelection&&document.createRange?(z=function(e){var a=window.getSelection&&window.getSelection();if(a&&0",{rel:"stylesheet",href:e}).appendTo("head"));n.length;)n.shift().call();d.isLoading=!1}})):(o=m(C),S=g(o),d.base=4]*>.*?|]*>.*?|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+C.unicodeRegexp+")","gi")})}function a(y,v){var j=this;p(v),l[j.id=++e]={},s[j.id]={},t(function(){var l,a,i,e,t,o,r,s,_,n,c,m,g,u,d,p,f,h,b,w,k;a=y,i=v,(l=j).options=i=O(i),l.sprite=i.sprite&&S<3,l.inline=null===i.inline?a.is("INPUT"):i.inline,l.shortnames=i.shortnames,l.saveEmojisAs=i.saveEmojisAs,l.standalone=i.standalone,l.emojiTemplate='{alt}':'emoji" src="{img}"/>'),l.emojiTemplateAlt=l.sprite?'':'',l.emojiBtnTemplate=''+l.emojiTemplateAlt+"",l.recentEmojis=i.recentEmojis&&function(){var e="test";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}(),e=i.pickerPosition,l.floatingPicker="top"===e||"bottom"===e,((l.source=a).is(":disabled")||a.is(".disabled"))&&l.disable(),d=a.is("TEXTAREA")||a.is("INPUT")?"val":"text",p=V("tones",i.tones?function(){this.addClass($("tones-"+i.tonesStyle,!0));for(var e=0;e<=5;e++)this.append(x("",{class:"btn-tone btn-tone-"+e+(e?"":" active"),"data-skin":e,role:"button"}))}:null),f=V({class:q+(l.standalone?" "+q+"-standalone ":" ")+(a.attr("class")||""),role:"application"},t=l.editor=V("editor").attr({contenteditable:!l.standalone,placeholder:i.placeholder||a.data("placeholder")||a.attr("placeholder")||"",tabindex:0}),o=l.button=V("button",V("button-open"),V("button-close")).attr("title",i.buttonTitle),r=l.picker=V("picker",V("wrapper",s=V("filters"),i.search?n=V("search-panel",V("search",i.search?function(){l.search=x("",{placeholder:i.searchPlaceholder||"",type:"text",class:"search"}),this.append(l.search)}:null),p):null,u=V("scroll-area",i.tones&&!i.search?V("tones-panel",p):null,c=V("emojis-list")))).addClass($("picker-position-"+i.pickerPosition,!0)).addClass($("filters-position-"+i.filtersPosition,!0)).addClass($("search-position-"+i.searchPosition,!0)).addClass("hidden")),i.search&&n.addClass($("with-search",!0)),l.searchSel=null,t.data(a.data()),x.each(i.attributes,function(e,a){t.attr(e,a)}),h=V("category-block").attr({"data-tone":0}).prependTo(c),x.each(i.filters,function(e,a){var o=0;if("recent"!==e||l.recentEmojis){if("tones"!==e)x("",{class:$("filter",!0)+" "+$("filter-"+e,!0),"data-filter":e,title:a.title}).wrapInner(F(a.icon,l.emojiTemplateAlt)).appendTo(s);else{if(!i.tones)return;o=5}do{var n=a.emoji.replace(/[\s,;]+/g,"|"),t=0===o?V("category").attr({name:e,"data-tone":o}).appendTo(h):V("category-block").attr({name:e,"data-tone":o}).appendTo(c)}while(0':'',!0).split("|").join(""),t.html(n),x('
').text(a.title).prependTo(t),0<--o)}}),i.filters=null,l.sprite||(l.lasyEmoji=c.find(".lazy-emoji")),(_=s.find($("filter"))).eq(0).addClass("active"),g=c.find($("category-block")),m=c.find($("category")),l.recentFilter=_.filter('[data-filter="recent"]'),l.recentCategory=m.filter("[name=recent]"),l.scrollArea=u,i.container?x(i.container).wrapInner(f):f.insertAfter(a),i.hideSource&&a.hide(),l.setText(a[d]()),a[d](l.getText()),L.apply(l),l.standalone&&!l.getText().length&&(w=x(a).data("emoji-placeholder")||i.emojiPlaceholder,l.setText(w),t.addClass("has-placeholder")),R(l,c.find(".emojibtn"),{click:"emojibtn.click"}),R(l,window,{resize:"!resize"}),R(l,p.children(),{click:"tone.click"}),R(l,[r,o],{mousedown:"!mousedown"},t),R(l,o,{click:"button.click"}),R(l,t,{paste:"!paste"},t),R(l,t,["focus","blur"],function(){return!l.stayFocused&&t}),R(l,r,{mousedown:"picker.mousedown",mouseup:"picker.mouseup",click:"picker.click",keyup:"picker.keyup",keydown:"picker.keydown",keypress:"picker.keypress"}),R(l,t,["mousedown","mouseup","click","keyup","keydown","keypress"]),R(l,r.find(".emojionearea-filter"),{click:"filter.click"}),R(l,a,{change:"source.change"}),i.search&&R(l,l.search,{keyup:"search.keypress",focus:"search.focus",blur:"search.blur"}),k=!1,u.on("scroll",function(){var o,n,e;!k&&(U.call(l),u.is(":not(.skinnable)"))&&(o=m.eq(0),n=u.offset().top,m.each(function(e,a){return!(10<=x(a).offset().top-n)&&void(o=x(a))}),(e=_.filter('[data-filter="'+o.attr("name")+'"]'))[0]&&!e.is(".active")&&(_.removeClass("active"),e.addClass("active")))}),l.on("@filter.click",function(e){var a=e.is(".active");if(u.is(".skinnable")){if(a)return;p.children().eq(0).click()}k=!0,a||(_.filter(".active").removeClass("active"),e.addClass("active"));var o=m.filter('[name="'+e.data("filter")+'"]').offset().top,a=u.scrollTop(),e=u.offset().top;u.stop().animate({scrollTop:o+a-e-2},200,"swing",function(){U.call(l),k=!1})}).on("@picker.show",function(){l.recentEmojis&&M(l),U.call(l)}).on("@tone.click",function(e){p.children().removeClass("active"),(e=e.addClass("active").data("skin"))?(u.addClass("skinnable"),g.hide().filter("[data-tone="+e+"]").show(),_.removeClass("active")):(u.removeClass("skinnable"),g.hide().filter("[data-tone=0]").show(),_.eq(0).click()),U.call(l),i.search&&l.trigger("search.keypress")}).on("@button.click",function(e){e.is(".active")?l.hidePicker():(l.showPicker(),l.searchSel=null)}).on("@!paste",function(i,e){function a(e){var a="caret-"+(new Date).getTime(),o=I(e,l),n=(B(o),B(''),i.scrollTop(r),x("#"+a)),t=n.offset().top-i.offset().top;((a=i.height())<=r+t||t"+P+"");var o=z(i[0]),r=i.scrollTop(),n=x("
",{contenteditable:!0}).css({position:"fixed",left:"-999px",width:"1px",height:"1px",top:"20px",overflow:"hidden"}).appendTo(x("BODY")).focus();window.setTimeout(function(){i.focus(),T(i[0],o);var e=N(n.html().replace(/\r\n|\n|\r/g,"
"),l);n.remove(),a(e)},200)}).on("@emojibtn.click",function(e){var a,o,n;t.removeClass("has-placeholder"),null!==l.searchSel&&(t.focus(),T(t[0],l.searchSel),l.searchSel=null),l.standalone?(t.html(F(e.data("name"),l.emojiTemplate)),l.trigger("blur")):(z(t[0]),B(F(e.data("name"),l.emojiTemplate))),l.recentEmojis&&(a=l,o=e.data("name"),-1!==(e=(n=G().split("|")).indexOf(o))&&n.splice(e,1),n.unshift(o),9]*>/gi,"");e.length&&!/^]*>$/i.test(e)||l.editor.html(l.content=""),a[d](l.getText())}).on("@source.change",function(){l.setText(a[d]()),E("change")}).on("@focus",function(){f.addClass("focused")}).on("@blur",function(){f.removeClass("focused"),i.hidePickerOnBlur&&l.hidePicker();var e=l.editor.html();l.content!==e?(l.content=e,E(l,"change",[l.editor]),a.trigger("blur").trigger("change")):a.trigger("blur"),i.search&&(l.search.val(""),l.trigger("search.keypress",!0))}),i.search&&l.on("@search.focus",function(){l.stayFocused=!0,l.search.addClass("focused")}).on("@search.keypress",function(e){var n=r.find(".emojionearea-filter"),o=i.tones?p.find("i.active").data("skin"):0,t=l.search.val().replace(/ /g,"_").replace(/"/g,'\\"');t&&t.length?(l.recentFilter.hasClass("active")&&l.recentFilter.removeClass("active").next().addClass("active"),l.recentCategory.hide(),l.recentFilter.hide(),g.each(function(){function e(e,a){var o=e.find('.emojibtn[data-name*="'+t+'"]');0===o.length?(e.data("tone")===a&&e.hide(),n.filter('[data-filter="'+e.attr("name")+'"]').hide()):(e.find('.emojibtn:not([data-name*="'+t+'"])').hide(),o.show(),e.data("tone")===a&&e.show(),n.filter('[data-filter="'+e.attr("name")+'"]').show())}var a=x(this);0===a.data("tone")?m.filter(':not([name="recent"])').each(function(){e(x(this),0)}):e(a,o)}),k?U.call(l):u.trigger("scroll")):(M(l,!0),g.filter('[data-tone="'+p.find("i.active").data("skin")+'"]:not([name="recent"])').show(),x(".emojibtn",g).show(),n.show(),U.call(l))}).on("@search.blur",function(){l.stayFocused=!1,l.search.removeClass("focused"),l.trigger("blur")}),i.shortcuts&&l.on("@keydown",function(e,a){a.ctrlKey||(9==a.which?(a.preventDefault(),o.click()):27==a.which&&(a.preventDefault(),o.is(".active"))&&l.hidePicker())}),D(i.events)&&!x.isEmptyObject(i.events)&&x.each(i.events,function(e,a){l.on(e.replace(/_/g,"."),a)}),i.autocomplete&&(b=function(){var e={maxCount:i.textcomplete.maxCount,placement:i.textcomplete.placement},o=(i.shortcuts&&(e.onKeydown=function(e,a){if(!e.ctrlKey&&13==e.which)return a.KEY_ENTER}),x.map(C.emojioneList,function(e,a){return!i.autocompleteTones&&/_tone[12345]/.test(a)?null:a}));o.sort(),t.textcomplete([{id:q,match:/\B(:[\-+\w]*)$/,search:function(a,e){e(x.map(o,function(e){return 0===e.indexOf(a)?e:null}))},template:function(e){return F(e,l.emojiTemplate)+" "+e.replace(/:/g,"")},replace:function(e){return F(e,l.emojiTemplate)},cache:!0,index:1}],e),i.textcomplete.placement&&"static"==x(t.data("textComplete").option.appendTo).css("position")&&x(t.data("textComplete").option.appendTo).css("position","relative")},w=function(){var e;l.disabled?l.on("enabled",e=function(){l.off("enabled",e),b()}):b()},x.fn.textcomplete?w():x.ajax({url:"https://cdn.rawgit.com/yuku-t/jquery-textcomplete/v1.3.4/dist/jquery.textcomplete.js",dataType:"script",cache:!0,success:w})),l.inline&&(f.addClass($("inline",!0)),l.on("@keydown",function(e,a){13==a.which&&a.preventDefault()})),/firefox/i.test(navigator.userAgent)&&document.execCommand("enableObjectResizing",!1,!1),l.isReady=!0,l.trigger("onLoad",t),l.trigger("ready",t)})}a.prototype.on=function(e,i){var r;return e&&x.isFunction(i)&&(r=this,x.each(e.toLowerCase().split(" "),function(e,a){var n,t,o;n=r,t=(t=a).replace(/^@/,""),o=n.id,s[o][t]&&(x.each(s[o][t],function(e,o){x.each(x.isArray(o[0])?o[0]:[o[0]],function(e,a){x(a).on(o[1],function(){var e=_.call(arguments),a=x.isFunction(o[2])?o[2].apply(n,[t].concat(e)):o[2];a&&E(n,t,[a].concat(e))})})}),s[o][t]=null),(l[r.id][a]||(l[r.id][a]=[])).push(i)})),this},a.prototype.off=function(e,n){var t;return e&&(t=this.id,x.each(e.toLowerCase().replace(/_/g,".").split(" "),function(e,o){l[t][o]&&!/^@/.test(o)&&(n?x.each(l[t][o],function(e,a){a===n&&(l[t][o]=l[t][o].splice(e,1))}):l[t][o]=[])})),this},a.prototype.trigger=function(){var e=_.call(arguments),a=[this].concat(e.slice(0,1));return a.push(e.slice(1)),E.apply(this,a)},a.prototype.setFocus=function(){var e=this;return t(function(){e.editor.focus()}),e},a.prototype.setText=function(e){var a=this;return t(function(){a.editor.html(I(e,a)),a.content=a.editor.html(),E(a,"change",[a.editor]),L.apply(a)}),a},a.prototype.getText=function(){return N(this.editor.html(),this)},a.prototype.showPicker=function(){var e=this;return e._sh_timer&&window.clearTimeout(e._sh_timer),e.picker.removeClass("hidden"),e._sh_timer=window.setTimeout(function(){e.button.addClass("active")},50),E(e,"picker.show",[e.picker]),e},a.prototype.hidePicker=function(){var e=this;return e._sh_timer&&window.clearTimeout(e._sh_timer),e.button.removeClass("active"),e._sh_timer=window.setTimeout(function(){e.picker.addClass("hidden")},500),E(e,"picker.hide",[e.picker]),e},a.prototype.enable=function(){function e(){a.disabled=!1,a.editor.prop("contenteditable",!0),a.button.show();var e=a[a.standalone?"button":"editor"];e.parent().removeClass("emojionearea-disable"),E(a,"enabled",[e])}var a=this;return a.isReady?e():a.on("ready",e),a},a.prototype.disable=function(){var a=this;function e(){a.editor.prop("contenteditable",!1),a.hidePicker(),a.button.hide();var e=a[a.standalone?"button":"editor"];e.parent().addClass("emojionearea-disable"),E(a,"disabled",[e])}return a.disabled=!0,a.isReady?e():a.on("ready",e),a},x.fn.emojioneArea=function(e){return this.each(function(){return this.emojioneArea||(x.data(this,"emojioneArea",this.emojioneArea=new a(x(this),e)),this.emojioneArea)})},x.fn.emojioneArea.defaults=o(),x.fn.emojioneAreaText=function(e){e=O(e);var a=this,o={shortnames:!e||void 0===e.shortnames||e.shortnames,emojiTemplate:'{alt}'};return p(e),t(function(){a.each(function(){var e=x(this);return e.hasClass("emojionearea-text")||e.addClass("emojionearea-text").html(I(e.is("TEXTAREA")||e.is("INPUT")?e.val():e.text(),o)),e})}),this}},window); +//# sourceMappingURL=emojionearea.min.js.map diff --git a/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js.map b/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js.map new file mode 100644 index 0000000..544dde5 --- /dev/null +++ b/dasena-web/public/assets/admin/vendors/js/emojionearea.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"emojionearea.min.js","sources":["emojionearea.min.js"],"sourcesContent":["(window = \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {}),\r\n\t(document = window.document || {}),\r\n\t(function (e, a) {\r\n\t\t\"function\" == typeof require && \"object\" == typeof exports && \"object\" == typeof module ? e(require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"jquery\"], e) : e(a.jQuery);\r\n\t})(function (y) {\r\n\t\t\"use strict\";\r\n\t\tvar n = 0,\r\n\t\t\tr = {},\r\n\t\t\tl = {},\r\n\t\t\tv = window.emojione,\r\n\t\t\tt = [];\r\n\t\tfunction i(e) {\r\n\t\t\tv ? e() : t.push(e);\r\n\t\t}\r\n\t\tvar j,\r\n\t\t\tx,\r\n\t\t\ts,\r\n\t\t\tC = \"data:image/gif;base64,R0lGODlhAQABAJH/AP///wAAAMDAwAAAACH5BAEAAAIALAAAAAABAAEAAAICVAEAOw==\",\r\n\t\t\t_ = [].slice,\r\n\t\t\tz = \"emojionearea\",\r\n\t\t\tT = 0,\r\n\t\t\tA = \"​\";\r\n\t\tfunction q(o, e, n) {\r\n\t\t\tvar t = !0,\r\n\t\t\t\ta = 1;\r\n\t\t\tif (e) {\r\n\t\t\t\te = e.toLowerCase();\r\n\t\t\t\tdo {\r\n\t\t\t\t\tvar i = 1 == a ? \"@\" + e : e;\r\n\t\t\t\t\tr[o.id][i] &&\r\n\t\t\t\t\t\tr[o.id][i].length &&\r\n\t\t\t\t\t\ty.each(r[o.id][i], function (e, a) {\r\n\t\t\t\t\t\t\treturn (t = !1 !== a.apply(o, n || []));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} while (t && a--);\r\n\t\t\t}\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\tfunction S(o, n, t, i) {\r\n\t\t\t(i =\r\n\t\t\t\ti ||\r\n\t\t\t\tfunction (e, a) {\r\n\t\t\t\t\treturn y(a.currentTarget);\r\n\t\t\t\t}),\r\n\t\t\t\ty.each(t, function (e, a) {\r\n\t\t\t\t\t(e = y.isArray(t) ? a : e), (l[o.id][a] || (l[o.id][a] = [])).push([n, e, i]);\r\n\t\t\t\t});\r\n\t\t}\r\n\t\tfunction c(e, a, o) {\r\n\t\t\tvar n = v.imageType,\r\n\t\t\t\tt = \"svg\" == n ? v.imagePathSVG : v.imagePathPNG,\r\n\t\t\t\ti = \"\";\r\n\t\t\to &&\r\n\t\t\t\t(i = o\r\n\t\t\t\t\t.substr(1, o.length - 2)\r\n\t\t\t\t\t.replace(/_/g, \" \")\r\n\t\t\t\t\t.replace(/\\w\\S*/g, function (e) {\r\n\t\t\t\t\t\treturn e.charAt(0).toUpperCase() + e.substr(1).toLowerCase();\r\n\t\t\t\t\t}));\r\n\t\t\tvar r = \"\";\r\n\t\t\treturn (\r\n\t\t\t\ta.uc_base && 4 < T ? ((r = a.uc_base), (a = a.uc_output.toUpperCase())) : (r = a),\r\n\t\t\t\te\r\n\t\t\t\t\t.replace(\"{name}\", o || \"\")\r\n\t\t\t\t\t.replace(\"{friendlyName}\", i)\r\n\t\t\t\t\t.replace(\"{img}\", t + (T < 2 ? r.toUpperCase() : r) + \".\" + n)\r\n\t\t\t\t\t.replace(\"{uni}\", a)\r\n\t\t\t\t\t.replace(\"{alt}\", v.convert(a))\r\n\t\t\t);\r\n\t\t}\r\n\t\tfunction P(e, o, n) {\r\n\t\t\treturn e.replace(/:?\\+?[\\w_\\-]+:?/g, function (e) {\r\n\t\t\t\te = \":\" + e.replace(/:$/, \"\").replace(/^:/, \"\") + \":\";\r\n\t\t\t\tvar a = v.emojioneList[e];\r\n\t\t\t\treturn a ? (4 < T ? c(o, a, e) : (3 < T && (a = a.unicode), c(o, a[a.length - 1], e))) : n ? \"\" : e;\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction E(e) {\r\n\t\t\tvar a, o;\r\n\t\t\tif (window.getSelection) {\r\n\t\t\t\tif ((a = window.getSelection()).getRangeAt && a.rangeCount) {\r\n\t\t\t\t\t(o = a.getRangeAt(0)).deleteContents();\r\n\t\t\t\t\tvar n = document.createElement(\"div\");\r\n\t\t\t\t\tn.innerHTML = e;\r\n\t\t\t\t\tfor (var t, i, r = document.createDocumentFragment(); (t = n.firstChild); ) i = r.appendChild(t);\r\n\t\t\t\t\to.insertNode(r), i && ((o = o.cloneRange()).setStartAfter(i), o.collapse(!0), a.removeAllRanges(), a.addRange(o));\r\n\t\t\t\t}\r\n\t\t\t} else document.selection && \"Control\" != document.selection.type && document.selection.createRange().pasteHTML(e);\r\n\t\t}\r\n\t\tfunction m() {\r\n\t\t\treturn window.emojioneVersion || \"3.1.2\";\r\n\t\t}\r\n\t\tfunction R(e) {\r\n\t\t\treturn \"object\" == typeof e;\r\n\t\t}\r\n\t\tfunction g(e) {\r\n\t\t\tvar a;\r\n\t\t\treturn e.cacheBustParam ? ((a = e.cacheBustParam), R(e.jsEscapeMap) ? (\"?v=1.2.4\" === a ? \"2.0.0\" : \"?v=2.0.1\" === a ? \"2.1.0\" : \"?v=2.1.1\" === a ? \"2.1.1\" : \"?v=2.1.2\" === a ? \"2.1.2\" : \"?v=2.1.3\" === a ? \"2.1.3\" : \"?v=2.1.4\" === a ? \"2.1.4\" : \"2.2.7\") : \"1.5.2\") : e.emojiVersion;\r\n\t\t}\r\n\t\tfunction u(e) {\r\n\t\t\tswitch (e) {\r\n\t\t\t\tcase \"1.5.2\":\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\tcase \"2.0.0\":\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\tcase \"2.1.0\":\r\n\t\t\t\tcase \"2.1.1\":\r\n\t\t\t\t\treturn 2;\r\n\t\t\t\tcase \"2.1.2\":\r\n\t\t\t\t\treturn 3;\r\n\t\t\t\tcase \"2.1.3\":\r\n\t\t\t\tcase \"2.1.4\":\r\n\t\t\t\tcase \"2.2.7\":\r\n\t\t\t\t\treturn 4;\r\n\t\t\t\tcase \"3.0.1\":\r\n\t\t\t\tcase \"3.0.2\":\r\n\t\t\t\tcase \"3.0.3\":\r\n\t\t\t\tcase \"3.0\":\r\n\t\t\t\t\treturn 5;\r\n\t\t\t\tcase \"3.1.0\":\r\n\t\t\t\tcase \"3.1.1\":\r\n\t\t\t\tcase \"3.1.2\":\r\n\t\t\t\tcase \"3.1\":\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn 6;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction o() {\r\n\t\t\tif (y.fn.emojioneArea && y.fn.emojioneArea.defaults) return y.fn.emojioneArea.defaults;\r\n\t\t\tvar e = { attributes: { dir: \"ltr\", spellcheck: !1, autocomplete: \"off\", autocorrect: \"off\", autocapitalize: \"off\" }, search: !0, placeholder: null, emojiPlaceholder: \":smiley:\", searchPlaceholder: \"SEARCH\", container: null, hideSource: !0, shortnames: !0, sprite: !0, pickerPosition: \"top\", filtersPosition: \"top\", searchPosition: \"top\", hidePickerOnBlur: !0, buttonTitle: \"Use the TAB key to insert emoji faster\", tones: !0, tonesStyle: \"bullet\", inline: null, saveEmojisAs: \"unicode\", shortcuts: !0, autocomplete: !0, autocompleteTones: !1, standalone: !1, useInternalCDN: !0, imageType: \"png\", recentEmojis: !0, textcomplete: { maxCount: 15, placement: null } },\r\n\t\t\t\ta = u(v ? g(v) : m());\r\n\t\t\treturn (e.filters = 4 < a ? { tones: { title: \"Diversity\", emoji: \"open_hands raised_hands palms_up_together clap pray thumbsup thumbsdown punch fist left_facing_fist right_facing_fist fingers_crossed v metal love_you_gesture ok_hand point_left point_right point_up_2 point_down point_up raised_hand raised_back_of_hand hand_splayed vulcan wave call_me muscle middle_finger writing_hand selfie nail_care ear nose baby boy girl man woman blond-haired_woman blond-haired_man older_man older_woman man_with_chinese_cap woman_wearing_turban man_wearing_turban woman_police_officer man_police_officer woman_construction_worker man_construction_worker woman_guard man_guard woman_detective man_detective woman_health_worker man_health_worker woman_farmer man_farmer woman_cook man_cook woman_student man_student woman_singer man_singer woman_teacher man_teacher woman_factory_worker man_factory_worker woman_technologist man_technologist woman_office_worker man_office_worker woman_mechanic man_mechanic woman_scientist man_scientist woman_artist man_artist woman_firefighter man_firefighter woman_pilot man_pilot woman_astronaut man_astronaut woman_judge man_judge mrs_claus santa princess prince bride_with_veil man_in_tuxedo angel pregnant_woman breast_feeding woman_bowing man_bowing man_tipping_hand woman_tipping_hand man_gesturing_no woman_gesturing_no man_gesturing_ok woman_gesturing_ok man_raising_hand woman_raising_hand woman_facepalming man_facepalming woman_shrugging man_shrugging man_pouting woman_pouting man_frowning woman_frowning man_getting_haircut woman_getting_haircut man_getting_face_massage woman_getting_face_massage man_in_business_suit_levitating dancer man_dancing woman_walking man_walking woman_running man_running adult child older_adult bearded_person woman_with_headscarf woman_mage man_mage woman_fairy man_fairy woman_vampire man_vampire mermaid merman woman_elf man_elf snowboarder woman_lifting_weights man_lifting_weights woman_cartwheeling man_cartwheeling woman_bouncing_ball man_bouncing_ball woman_playing_handball man_playing_handball woman_golfing man_golfing woman_surfing man_surfing woman_swimming man_swimming woman_playing_water_polo man_playing_water_polo woman_rowing_boat man_rowing_boat horse_racing woman_biking man_biking woman_mountain_biking man_mountain_biking woman_juggling man_juggling woman_in_steamy_room man_in_steamy_room woman_climbing man_climbing woman_in_lotus_position man_in_lotus_position bath person_in_bed\" }, recent: { icon: \"clock3\", title: \"Recent\", emoji: \"\" }, smileys_people: { icon: \"yum\", title: \"Smileys & People\", emoji: \"grinning smiley smile grin laughing sweat_smile joy rofl relaxed blush innocent slight_smile upside_down wink relieved crazy_face star_struck heart_eyes kissing_heart kissing kissing_smiling_eyes kissing_closed_eyes yum stuck_out_tongue_winking_eye stuck_out_tongue_closed_eyes stuck_out_tongue money_mouth hugging nerd sunglasses cowboy smirk unamused disappointed pensive worried face_with_raised_eyebrow face_with_monocle confused slight_frown frowning2 persevere confounded tired_face weary triumph angry rage face_with_symbols_over_mouth no_mouth neutral_face expressionless hushed frowning anguished open_mouth astonished dizzy_face exploding_head flushed scream fearful cold_sweat cry disappointed_relieved drooling_face sob sweat sleepy sleeping rolling_eyes thinking shushing_face face_with_hand_over_mouth lying_face grimacing zipper_mouth face_vomiting nauseated_face sneezing_face mask thermometer_face head_bandage smiling_imp imp japanese_ogre japanese_goblin poop ghost skull skull_crossbones alien space_invader robot jack_o_lantern clown smiley_cat smile_cat joy_cat heart_eyes_cat smirk_cat kissing_cat scream_cat crying_cat_face pouting_cat open_hands raised_hands palms_up_together clap pray handshake thumbsup thumbsdown punch fist left_facing_fist right_facing_fist fingers_crossed v metal love_you_gesture ok_hand point_left point_right point_up_2 point_down point_up raised_hand raised_back_of_hand hand_splayed vulcan wave call_me muscle middle_finger writing_hand selfie nail_care ring lipstick kiss lips tongue ear nose footprints eye eyes speaking_head bust_in_silhouette busts_in_silhouette baby boy girl man woman blond-haired_woman blond_haired_man older_man older_woman man_with_chinese_cap woman_wearing_turban man_wearing_turban woman_police_officer police_officer woman_construction_worker construction_worker woman_guard guard woman_detective detective woman_health_worker man_health_worker woman_farmer man_farmer woman_cook man_cook woman_student man_student woman_singer man_singer woman_teacher man_teacher woman_factory_worker man_factory_worker woman_technologist man_technologist woman_office_worker man_office_worker woman_mechanic man_mechanic woman_scientist man_scientist woman_artist man_artist woman_firefighter man_firefighter woman_pilot man_pilot woman_astronaut man_astronaut woman_judge man_judge mrs_claus santa princess prince bride_with_veil man_in_tuxedo angel pregnant_woman breast_feeding woman_bowing man_bowing woman_tipping_hand man_tipping_hand woman_gesturing_no man_gesturing_no woman_gesturing_ok man_gesturing_ok woman_raising_hand man_raising_hand woman_facepalming man_facepalming woman_shrugging man_shrugging woman_pouting man_pouting woman_frowning man_frowning woman_getting_haircut man_getting_haircut woman_getting_face_massage man_getting_face_massage man_in_business_suit_levitating dancer man_dancing women_with_bunny_ears_partying men_with_bunny_ears_partying woman_walking man_walking woman_running man_running couple two_women_holding_hands two_men_holding_hands couple_with_heart couple_ww couple_mm couplekiss kiss_ww kiss_mm family family_mwg family_mwgb family_mwbb family_mwgg family_wwb family_wwg family_wwgb family_wwbb family_wwgg family_mmb family_mmg family_mmgb family_mmbb family_mmgg family_woman_boy family_woman_girl family_woman_girl_boy family_woman_boy_boy family_woman_girl_girl family_man_boy family_man_girl family_man_girl_boy family_man_boy_boy family_man_girl_girl bearded_person woman_with_headscarf woman_mage man_mage woman_fairy man_fairy woman_vampire man_vampire mermaid merman woman_elf man_elf woman_genie man_genie woman_zombie man_zombie womans_clothes shirt jeans necktie dress bikini kimono high_heel sandal boot mans_shoe athletic_shoe womans_hat tophat mortar_board crown helmet_with_cross school_satchel pouch purse handbag briefcase eyeglasses dark_sunglasses closed_umbrella umbrella2 brain billed_cap scarf gloves coat socks \" }, animals_nature: { icon: \"hamster\", title: \"Animals & Nature\", emoji: \"dog cat mouse hamster rabbit fox bear panda_face koala tiger lion_face cow pig pig_nose frog monkey_face see_no_evil hear_no_evil speak_no_evil monkey chicken penguin bird baby_chick hatching_chick hatched_chick duck eagle owl bat wolf boar horse unicorn bee bug butterfly snail shell beetle ant spider spider_web turtle snake lizard scorpion crab squid octopus shrimp tropical_fish fish blowfish dolphin shark whale whale2 crocodile leopard tiger2 water_buffalo ox cow2 deer dromedary_camel camel elephant rhino gorilla racehorse pig2 goat ram sheep dog2 poodle cat2 rooster turkey dove rabbit2 mouse2 rat chipmunk dragon giraffe zebra hedgehog sauropod t_rex cricket dragon_face feet cactus christmas_tree evergreen_tree deciduous_tree palm_tree seedling herb shamrock four_leaf_clover bamboo tanabata_tree leaves fallen_leaf maple_leaf mushroom ear_of_rice bouquet tulip rose wilted_rose sunflower blossom cherry_blossom hibiscus earth_americas earth_africa earth_asia full_moon waning_gibbous_moon last_quarter_moon waning_crescent_moon new_moon waxing_crescent_moon first_quarter_moon waxing_gibbous_moon new_moon_with_face full_moon_with_face sun_with_face first_quarter_moon_with_face last_quarter_moon_with_face crescent_moon dizzy star star2 sparkles zap fire boom comet sunny white_sun_small_cloud partly_sunny white_sun_cloud white_sun_rain_cloud rainbow cloud cloud_rain thunder_cloud_rain cloud_lightning cloud_snow snowman2 snowman snowflake wind_blowing_face dash cloud_tornado fog ocean droplet sweat_drops umbrella \" }, food_drink: { icon: \"pizza\", title: \"Food & Drink\", emoji: \"green_apple apple pear tangerine lemon banana watermelon grapes strawberry melon cherries peach pineapple kiwi avocado tomato eggplant cucumber carrot corn hot_pepper potato sweet_potato chestnut peanuts honey_pot croissant bread french_bread cheese egg cooking bacon pancakes fried_shrimp poultry_leg meat_on_bone pizza hotdog hamburger fries stuffed_flatbread taco burrito salad shallow_pan_of_food spaghetti ramen stew fish_cake sushi bento curry rice_ball rice rice_cracker oden dango shaved_ice ice_cream icecream cake birthday custard lollipop candy chocolate_bar popcorn doughnut cookie milk baby_bottle coffee tea sake beer beers champagne_glass wine_glass tumbler_glass cocktail tropical_drink champagne spoon fork_and_knife fork_knife_plate dumpling fortune_cookie takeout_box chopsticks bowl_with_spoon cup_with_straw coconut broccoli pie pretzel cut_of_meat sandwich canned_food\" }, activity: { icon: \"basketball\", title: \"Activity\", emoji: \"soccer basketball football baseball tennis volleyball rugby_football 8ball ping_pong badminton goal hockey field_hockey cricket_game golf bow_and_arrow fishing_pole_and_fish boxing_glove martial_arts_uniform ice_skate ski skier snowboarder woman_lifting_weights man_lifting_weights person_fencing women_wrestling men_wrestling woman_cartwheeling man_cartwheeling woman_bouncing_ball man_bouncing_ball woman_playing_handball man_playing_handball woman_golfing man_golfing woman_surfing man_surfing woman_swimming man_swimming woman_playing_water_polo man_playing_water_polo woman_rowing_boat man_rowing_boat horse_racing woman_biking man_biking woman_mountain_biking man_mountain_biking woman_in_steamy_room man_in_steamy_room woman_climbing man_climbing woman_in_lotus_position man_in_lotus_position running_shirt_with_sash medal military_medal first_place second_place third_place trophy rosette reminder_ribbon ticket tickets circus_tent woman_juggling man_juggling performing_arts art clapper microphone headphones musical_score musical_keyboard drum saxophone trumpet guitar violin game_die dart bowling video_game slot_machine sled curling_stone \" }, travel_places: { icon: \"rocket\", title: \"Travel & Places\", emoji: \"red_car taxi blue_car bus trolleybus race_car police_car ambulance fire_engine minibus truck articulated_lorry tractor scooter bike motor_scooter motorcycle rotating_light oncoming_police_car oncoming_bus oncoming_automobile oncoming_taxi aerial_tramway mountain_cableway suspension_railway railway_car train mountain_railway monorail bullettrain_side bullettrain_front light_rail steam_locomotive train2 metro tram station helicopter airplane_small airplane airplane_departure airplane_arriving rocket satellite_orbital seat canoe sailboat motorboat speedboat cruise_ship ferry ship anchor construction fuelpump busstop vertical_traffic_light traffic_light map moyai statue_of_liberty fountain tokyo_tower european_castle japanese_castle stadium ferris_wheel roller_coaster carousel_horse beach_umbrella beach island mountain mountain_snow mount_fuji volcano desert camping tent railway_track motorway construction_site factory house house_with_garden homes house_abandoned office department_store post_office european_post_office hospital bank hotel convenience_store school love_hotel wedding classical_building church mosque synagogue kaaba shinto_shrine japan rice_scene park sunrise sunrise_over_mountains stars sparkler fireworks city_sunset city_dusk cityscape night_with_stars milky_way bridge_at_night foggy flying_saucer\" }, objects: { icon: \"bulb\", title: \"Objects\", emoji: \"watch iphone calling computer keyboard desktop printer mouse_three_button trackball joystick compression minidisc floppy_disk cd dvd vhs camera camera_with_flash video_camera movie_camera projector film_frames telephone_receiver telephone pager fax tv radio microphone2 level_slider control_knobs stopwatch timer alarm_clock clock hourglass hourglass_flowing_sand satellite battery electric_plug bulb flashlight candle wastebasket oil money_with_wings dollar yen euro pound moneybag credit_card gem scales wrench hammer hammer_pick tools pick nut_and_bolt gear chains gun bomb knife dagger crossed_swords shield smoking coffin urn amphora crystal_ball prayer_beads barber alembic telescope microscope hole pill syringe thermometer toilet potable_water shower bathtub bath bellhop key key2 door couch bed sleeping_accommodation frame_photo shopping_bags shopping_cart gift balloon flags ribbon confetti_ball tada dolls izakaya_lantern wind_chime envelope envelope_with_arrow incoming_envelope e-mail love_letter inbox_tray outbox_tray package label mailbox_closed mailbox mailbox_with_mail mailbox_with_no_mail postbox postal_horn scroll page_with_curl page_facing_up bookmark_tabs bar_chart chart_with_upwards_trend chart_with_downwards_trend notepad_spiral calendar_spiral calendar date card_index card_box ballot_box file_cabinet clipboard file_folder open_file_folder dividers newspaper2 newspaper notebook notebook_with_decorative_cover ledger closed_book green_book blue_book orange_book books book bookmark link paperclip paperclips triangular_ruler straight_ruler pushpin round_pushpin scissors pen_ballpoint pen_fountain black_nib paintbrush crayon pencil pencil2 mag mag_right lock_with_ink_pen closed_lock_with_key lock unlock\" }, symbols: { icon: \"heartpulse\", title: \"Symbols\", emoji: \"heart orange_heart yellow_heart green_heart blue_heart purple_heart black_heart broken_heart heart_exclamation two_hearts revolving_hearts heartbeat heartpulse sparkling_heart cupid gift_heart heart_decoration peace cross star_and_crescent om_symbol wheel_of_dharma star_of_david six_pointed_star menorah yin_yang orthodox_cross place_of_worship ophiuchus aries taurus gemini cancer leo virgo libra scorpius sagittarius capricorn aquarius pisces id atom accept radioactive biohazard mobile_phone_off vibration_mode u6709 u7121 u7533 u55b6 u6708 eight_pointed_black_star vs white_flower ideograph_advantage secret congratulations u5408 u6e80 u5272 u7981 a b ab cl o2 sos x o octagonal_sign no_entry name_badge no_entry_sign 100 anger hotsprings no_pedestrians do_not_litter no_bicycles non-potable_water underage no_mobile_phones no_smoking exclamation grey_exclamation question grey_question bangbang interrobang low_brightness high_brightness part_alternation_mark warning children_crossing trident fleur-de-lis beginner recycle white_check_mark u6307 chart sparkle eight_spoked_asterisk negative_squared_cross_mark globe_with_meridians diamond_shape_with_a_dot_inside m cyclone zzz atm wc wheelchair parking u7a7a sa passport_control customs baggage_claim left_luggage mens womens baby_symbol restroom put_litter_in_its_place cinema signal_strength koko symbols information_source abc abcd capital_abcd ng ok up cool new free zero one two three four five six seven eight nine keycap_ten 1234 hash asterisk arrow_forward pause_button play_pause stop_button record_button eject track_next track_previous fast_forward rewind arrow_double_up arrow_double_down arrow_backward arrow_up_small arrow_down_small arrow_right arrow_left arrow_up arrow_down arrow_upper_right arrow_lower_right arrow_lower_left arrow_upper_left arrow_up_down left_right_arrow arrow_right_hook leftwards_arrow_with_hook arrow_heading_up arrow_heading_down twisted_rightwards_arrows repeat repeat_one arrows_counterclockwise arrows_clockwise musical_note notes heavy_plus_sign heavy_minus_sign heavy_division_sign heavy_multiplication_x heavy_dollar_sign currency_exchange tm copyright registered wavy_dash curly_loop loop end back on top soon heavy_check_mark ballot_box_with_check radio_button white_circle black_circle red_circle blue_circle small_red_triangle small_red_triangle_down small_orange_diamond small_blue_diamond large_orange_diamond large_blue_diamond white_square_button black_square_button black_small_square white_small_square black_medium_small_square white_medium_small_square black_medium_square white_medium_square black_large_square white_large_square speaker mute sound loud_sound bell no_bell mega loudspeaker speech_left eye_in_speech_bubble speech_balloon thought_balloon anger_right spades clubs hearts diamonds black_joker flower_playing_cards mahjong clock1 clock2 clock3 clock4 clock5 clock6 clock7 clock8 clock9 clock10 clock11 clock12 clock130 clock230 clock330 clock430 clock530 clock630 clock730 clock830 clock930 clock1030 clock1130 clock1230\" }, flags: { icon: \"flag_gb\", title: \"Flags\", emoji: \"flag_white flag_black checkered_flag triangular_flag_on_post rainbow_flag flag_af flag_ax flag_al flag_dz flag_as flag_ad flag_ao flag_ai flag_aq flag_ag flag_ar flag_am flag_aw flag_au flag_at flag_az flag_bs flag_bh flag_bd flag_bb flag_by flag_be flag_bz flag_bj flag_bm flag_bt flag_bo flag_ba flag_bw flag_br flag_io flag_vg flag_bn flag_bg flag_bf flag_bi flag_kh flag_cm flag_ca flag_ic flag_cv flag_bq flag_ky flag_cf flag_td flag_cl flag_cn flag_cx flag_cc flag_co flag_km flag_cg flag_cd flag_ck flag_cr flag_ci flag_hr flag_cu flag_cw flag_cy flag_cz flag_dk flag_dj flag_dm flag_do flag_ec flag_eg flag_sv flag_gq flag_er flag_ee flag_et flag_eu flag_fk flag_fo flag_fj flag_fi flag_fr flag_gf flag_pf flag_tf flag_ga flag_gm flag_ge flag_de flag_gh flag_gi flag_gr flag_gl flag_gd flag_gp flag_gu flag_gt flag_gg flag_gn flag_gw flag_gy flag_ht flag_hn flag_hk flag_hu flag_is flag_in flag_id flag_ir flag_iq flag_ie flag_im flag_il flag_it flag_jm flag_jp crossed_flags flag_je flag_jo flag_kz flag_ke flag_ki flag_xk flag_kw flag_kg flag_la flag_lv flag_lb flag_ls flag_lr flag_ly flag_li flag_lt flag_lu flag_mo flag_mk flag_mg flag_mw flag_my flag_mv flag_ml flag_mt flag_mh flag_mq flag_mr flag_mu flag_yt flag_mx flag_fm flag_md flag_mc flag_mn flag_me flag_ms flag_ma flag_mz flag_mm flag_na flag_nr flag_np flag_nl flag_nc flag_nz flag_ni flag_ne flag_ng flag_nu flag_nf flag_kp flag_mp flag_no flag_om flag_pk flag_pw flag_ps flag_pa flag_pg flag_py flag_pe flag_ph flag_pn flag_pl flag_pt flag_pr flag_qa flag_re flag_ro flag_ru flag_rw flag_ws flag_sm flag_st flag_sa flag_sn flag_rs flag_sc flag_sl flag_sg flag_sx flag_sk flag_si flag_gs flag_sb flag_so flag_za flag_kr flag_ss flag_es flag_lk flag_bl flag_sh flag_kn flag_lc flag_pm flag_vc flag_sd flag_sr flag_sz flag_se flag_ch flag_sy flag_tw flag_tj flag_tz flag_th flag_tl flag_tg flag_tk flag_to flag_tt flag_tn flag_tr flag_tm flag_tc flag_tv flag_vi flag_ug flag_ua flag_ae flag_gb flag_us flag_uy flag_uz flag_vu flag_va flag_ve flag_vn flag_wf flag_eh flag_ye flag_zm flag_zw flag_ac flag_ta flag_bv flag_hm flag_sj flag_um flag_ea flag_cp flag_dg flag_mf united_nations england scotland wales\" } } : { tones: { title: \"Diversity\", emoji: \"santa runner surfer swimmer lifter ear nose point_up_2 point_down point_left point_right punch wave ok_hand thumbsup thumbsdown clap open_hands boy girl man woman cop bride_with_veil person_with_blond_hair man_with_gua_pi_mao man_with_turban older_man grandma baby construction_worker princess angel information_desk_person guardsman dancer nail_care massage haircut muscle spy hand_splayed middle_finger vulcan no_good ok_woman bow raising_hand raised_hands person_frowning person_with_pouting_face pray rowboat bicyclist mountain_bicyclist walking bath metal point_up basketball_player fist raised_hand v writing_hand\" }, recent: { icon: \"clock3\", title: \"Recent\", emoji: \"\" }, smileys_people: { icon: \"yum\", title: \"Smileys & People\", emoji: \"grinning grimacing grin joy smiley smile sweat_smile laughing innocent wink blush slight_smile upside_down relaxed yum relieved heart_eyes kissing_heart kissing kissing_smiling_eyes kissing_closed_eyes stuck_out_tongue_winking_eye stuck_out_tongue_closed_eyes stuck_out_tongue money_mouth nerd sunglasses hugging smirk no_mouth neutral_face expressionless unamused rolling_eyes thinking flushed disappointed worried angry rage pensive confused slight_frown frowning2 persevere confounded tired_face weary triumph open_mouth scream fearful cold_sweat hushed frowning anguished cry disappointed_relieved sleepy sweat sob dizzy_face astonished zipper_mouth mask thermometer_face head_bandage sleeping zzz poop smiling_imp imp japanese_ogre japanese_goblin skull ghost alien robot smiley_cat smile_cat joy_cat heart_eyes_cat smirk_cat kissing_cat scream_cat crying_cat_face pouting_cat raised_hands clap wave thumbsup thumbsdown punch fist v ok_hand raised_hand open_hands muscle pray point_up point_up_2 point_down point_left point_right middle_finger hand_splayed metal vulcan writing_hand nail_care lips tongue ear nose eye eyes bust_in_silhouette busts_in_silhouette speaking_head baby boy girl man woman person_with_blond_hair older_man older_woman man_with_gua_pi_mao man_with_turban cop construction_worker guardsman spy santa angel princess bride_with_veil walking runner dancer dancers couple two_men_holding_hands two_women_holding_hands bow information_desk_person no_good ok_woman raising_hand person_with_pouting_face person_frowning haircut massage couple_with_heart couple_ww couple_mm couplekiss kiss_ww kiss_mm family family_mwg family_mwgb family_mwbb family_mwgg family_wwb family_wwg family_wwgb family_wwbb family_wwgg family_mmb family_mmg family_mmgb family_mmbb family_mmgg womans_clothes shirt jeans necktie dress bikini kimono lipstick kiss footprints high_heel sandal boot mans_shoe athletic_shoe womans_hat tophat helmet_with_cross mortar_board crown school_satchel pouch purse handbag briefcase eyeglasses dark_sunglasses ring closed_umbrella\" }, animals_nature: { icon: \"hamster\", title: \"Animals & Nature\", emoji: \"dog cat mouse hamster rabbit bear panda_face koala tiger lion_face cow pig pig_nose frog octopus monkey_face see_no_evil hear_no_evil speak_no_evil monkey chicken penguin bird baby_chick hatching_chick hatched_chick wolf boar horse unicorn bee bug snail beetle ant spider scorpion crab snake turtle tropical_fish fish blowfish dolphin whale whale2 crocodile leopard tiger2 water_buffalo ox cow2 dromedary_camel camel elephant goat ram sheep racehorse pig2 rat mouse2 rooster turkey dove dog2 poodle cat2 rabbit2 chipmunk feet dragon dragon_face cactus christmas_tree evergreen_tree deciduous_tree palm_tree seedling herb shamrock four_leaf_clover bamboo tanabata_tree leaves fallen_leaf maple_leaf ear_of_rice hibiscus sunflower rose tulip blossom cherry_blossom bouquet mushroom chestnut jack_o_lantern shell spider_web earth_americas earth_africa earth_asia full_moon waning_gibbous_moon last_quarter_moon waning_crescent_moon new_moon waxing_crescent_moon first_quarter_moon waxing_gibbous_moon new_moon_with_face full_moon_with_face first_quarter_moon_with_face last_quarter_moon_with_face sun_with_face crescent_moon star star2 dizzy sparkles comet sunny white_sun_small_cloud partly_sunny white_sun_cloud white_sun_rain_cloud cloud cloud_rain thunder_cloud_rain cloud_lightning zap fire boom snowflake cloud_snow snowman2 snowman wind_blowing_face dash cloud_tornado fog umbrella2 umbrella droplet sweat_drops ocean\" }, food_drink: { icon: \"pizza\", title: \"Food & Drink\", emoji: \"green_apple apple pear tangerine lemon banana watermelon grapes strawberry melon cherries peach pineapple tomato eggplant hot_pepper corn sweet_potato honey_pot bread cheese poultry_leg meat_on_bone fried_shrimp egg hamburger fries hotdog pizza spaghetti taco burrito ramen stew fish_cake sushi bento curry rice_ball rice rice_cracker oden dango shaved_ice ice_cream icecream cake birthday custard candy lollipop chocolate_bar popcorn doughnut cookie beer beers wine_glass cocktail tropical_drink champagne sake tea coffee baby_bottle fork_and_knife fork_knife_plate\" }, activity: { icon: \"basketball\", title: \"Activity\", emoji: \"soccer basketball football baseball tennis volleyball rugby_football 8ball golf golfer ping_pong badminton hockey field_hockey cricket ski skier snowboarder ice_skate bow_and_arrow fishing_pole_and_fish rowboat swimmer surfer bath basketball_player lifter bicyclist mountain_bicyclist horse_racing levitate trophy running_shirt_with_sash medal military_medal reminder_ribbon rosette ticket tickets performing_arts art circus_tent microphone headphones musical_score musical_keyboard saxophone trumpet guitar violin clapper video_game space_invader dart game_die slot_machine bowling\" }, travel_places: { icon: \"rocket\", title: \"Travel & Places\", emoji: \"red_car taxi blue_car bus trolleybus race_car police_car ambulance fire_engine minibus truck articulated_lorry tractor motorcycle bike rotating_light oncoming_police_car oncoming_bus oncoming_automobile oncoming_taxi aerial_tramway mountain_cableway suspension_railway railway_car train monorail bullettrain_side bullettrain_front light_rail mountain_railway steam_locomotive train2 metro tram station helicopter airplane_small airplane airplane_departure airplane_arriving sailboat motorboat speedboat ferry cruise_ship rocket satellite_orbital seat anchor construction fuelpump busstop vertical_traffic_light traffic_light checkered_flag ship ferris_wheel roller_coaster carousel_horse construction_site foggy tokyo_tower factory fountain rice_scene mountain mountain_snow mount_fuji volcano japan camping tent park motorway railway_track sunrise sunrise_over_mountains desert beach island city_sunset city_dusk cityscape night_with_stars bridge_at_night milky_way stars sparkler fireworks rainbow homes european_castle japanese_castle stadium statue_of_liberty house house_with_garden house_abandoned office department_store post_office european_post_office hospital bank hotel convenience_store school love_hotel wedding classical_building church mosque synagogue kaaba shinto_shrine\" }, objects: { icon: \"bulb\", title: \"Objects\", emoji: \"watch iphone calling computer keyboard desktop printer mouse_three_button trackball joystick compression minidisc floppy_disk cd dvd vhs camera camera_with_flash video_camera movie_camera projector film_frames telephone_receiver telephone pager fax tv radio microphone2 level_slider control_knobs stopwatch timer alarm_clock clock hourglass_flowing_sand hourglass satellite battery electric_plug bulb flashlight candle wastebasket oil money_with_wings dollar yen euro pound moneybag credit_card gem scales wrench hammer hammer_pick tools pick nut_and_bolt gear chains gun bomb knife dagger crossed_swords shield smoking skull_crossbones coffin urn amphora crystal_ball prayer_beads barber alembic telescope microscope hole pill syringe thermometer label bookmark toilet shower bathtub key key2 couch sleeping_accommodation bed door bellhop frame_photo map beach_umbrella moyai shopping_bags balloon flags ribbon gift confetti_ball tada dolls wind_chime crossed_flags izakaya_lantern envelope envelope_with_arrow incoming_envelope e-mail love_letter postbox mailbox_closed mailbox mailbox_with_mail mailbox_with_no_mail package postal_horn inbox_tray outbox_tray scroll page_with_curl bookmark_tabs bar_chart chart_with_upwards_trend chart_with_downwards_trend page_facing_up date calendar calendar_spiral card_index card_box ballot_box file_cabinet clipboard notepad_spiral file_folder open_file_folder dividers newspaper2 newspaper notebook closed_book green_book blue_book orange_book notebook_with_decorative_cover ledger books book link paperclip paperclips scissors triangular_ruler straight_ruler pushpin round_pushpin triangular_flag_on_post flag_white flag_black closed_lock_with_key lock unlock lock_with_ink_pen pen_ballpoint pen_fountain black_nib pencil pencil2 crayon paintbrush mag mag_right\" }, symbols: { icon: \"heartpulse\", title: \"Symbols\", emoji: \"heart yellow_heart green_heart blue_heart purple_heart broken_heart heart_exclamation two_hearts revolving_hearts heartbeat heartpulse sparkling_heart cupid gift_heart heart_decoration peace cross star_and_crescent om_symbol wheel_of_dharma star_of_david six_pointed_star menorah yin_yang orthodox_cross place_of_worship ophiuchus aries taurus gemini cancer leo virgo libra scorpius sagittarius capricorn aquarius pisces id atom u7a7a u5272 radioactive biohazard mobile_phone_off vibration_mode u6709 u7121 u7533 u55b6 u6708 eight_pointed_black_star vs accept white_flower ideograph_advantage secret congratulations u5408 u6e80 u7981 a b ab cl o2 sos no_entry name_badge no_entry_sign x o anger hotsprings no_pedestrians do_not_litter no_bicycles non-potable_water underage no_mobile_phones exclamation grey_exclamation question grey_question bangbang interrobang 100 low_brightness high_brightness trident fleur-de-lis part_alternation_mark warning children_crossing beginner recycle u6307 chart sparkle eight_spoked_asterisk negative_squared_cross_mark white_check_mark diamond_shape_with_a_dot_inside cyclone loop globe_with_meridians m atm sa passport_control customs baggage_claim left_luggage wheelchair no_smoking wc parking potable_water mens womens baby_symbol restroom put_litter_in_its_place cinema signal_strength koko ng ok up cool new free zero one two three four five six seven eight nine ten 1234 arrow_forward pause_button play_pause stop_button record_button track_next track_previous fast_forward rewind twisted_rightwards_arrows repeat repeat_one arrow_backward arrow_up_small arrow_down_small arrow_double_up arrow_double_down arrow_right arrow_left arrow_up arrow_down arrow_upper_right arrow_lower_right arrow_lower_left arrow_upper_left arrow_up_down left_right_arrow arrows_counterclockwise arrow_right_hook leftwards_arrow_with_hook arrow_heading_up arrow_heading_down hash asterisk information_source abc abcd capital_abcd symbols musical_note notes wavy_dash curly_loop heavy_check_mark arrows_clockwise heavy_plus_sign heavy_minus_sign heavy_division_sign heavy_multiplication_x heavy_dollar_sign currency_exchange copyright registered tm end back on top soon ballot_box_with_check radio_button white_circle black_circle red_circle large_blue_circle small_orange_diamond small_blue_diamond large_orange_diamond large_blue_diamond small_red_triangle black_small_square white_small_square black_large_square white_large_square small_red_triangle_down black_medium_square white_medium_square black_medium_small_square white_medium_small_square black_square_button white_square_button speaker sound loud_sound mute mega loudspeaker bell no_bell black_joker mahjong spades clubs hearts diamonds flower_playing_cards thought_balloon anger_right speech_balloon clock1 clock2 clock3 clock4 clock5 clock6 clock7 clock8 clock9 clock10 clock11 clock12 clock130 clock230 clock330 clock430 clock530 clock630 clock730 clock830 clock930 clock1030 clock1130 clock1230 eye_in_speech_bubble\" }, flags: { icon: \"flag_gb\", title: \"Flags\", emoji: \"ac af al dz ad ao ai ag ar am aw au at az bs bh bd bb by be bz bj bm bt bo ba bw br bn bg bf bi cv kh cm ca ky cf td flag_cl cn co km cg flag_cd cr hr cu cy cz dk dj dm do ec eg sv gq er ee et fk fo fj fi fr pf ga gm ge de gh gi gr gl gd gu gt gn gw gy ht hn hk hu is in flag_id ir iq ie il it ci jm jp je jo kz ke ki xk kw kg la lv lb ls lr ly li lt lu mo mk mg mw my mv ml mt mh mr mu mx fm md mc mn me ms ma mz mm na nr np nl nc nz ni ne flag_ng nu kp no om pk pw ps pa pg py pe ph pl pt pr qa ro ru rw sh kn lc vc ws sm st flag_sa sn rs sc sl sg sk si sb so za kr es lk sd sr sz se ch sy tw tj tz th tl tg to tt tn tr flag_tm flag_tm ug ua ae gb us vi uy uz vu va ve vn wf eh ye zm zw re ax ta io bq cx cc gg im yt nf pn bl pm gs tk bv hm sj um ic ea cp dg as aq vg ck cw eu gf tf gp mq mp sx ss tc \" } }), e;\r\n\t\t}\r\n\t\tfunction F(e) {\r\n\t\t\tvar n,\r\n\t\t\t\ta = o();\r\n\t\t\treturn (\r\n\t\t\t\te &&\r\n\t\t\t\t\te.filters &&\r\n\t\t\t\t\t((n = a.filters),\r\n\t\t\t\t\ty.each(e.filters, function (o, e) {\r\n\t\t\t\t\t\treturn !R(e) || y.isEmptyObject(e)\r\n\t\t\t\t\t\t\t? void delete n[o]\r\n\t\t\t\t\t\t\t: void y.each(e, function (e, a) {\r\n\t\t\t\t\t\t\t\t\tn[o][e] = a;\r\n\t\t\t\t\t\t\t });\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(e.filters = n)),\r\n\t\t\t\ty.extend({}, a, e)\r\n\t\t\t);\r\n\t\t}\r\n\t\tfunction d(e, o) {\r\n\t\t\treturn e.replace(s, function (e) {\r\n\t\t\t\tvar a = v[0 === T ? \"jsecapeMap\" : \"jsEscapeMap\"];\r\n\t\t\t\treturn void 0 !== e && e in a ? c(o, a[e]) : e;\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction B(e, a) {\r\n\t\t\treturn (\r\n\t\t\t\t(e = e\r\n\t\t\t\t\t.replace(/&/g, \"&\")\r\n\t\t\t\t\t.replace(//g, \">\")\r\n\t\t\t\t\t.replace(/\"/g, \""\")\r\n\t\t\t\t\t.replace(/'/g, \"'\")\r\n\t\t\t\t\t.replace(/`/g, \"`\")\r\n\t\t\t\t\t.replace(/(?:\\r\\n|\\r|\\n)/g, \"\\n\")\r\n\t\t\t\t\t.replace(/(\\n+)/g, \"
$1
\")\r\n\t\t\t\t\t.replace(/\\n/g, \"
\")\r\n\t\t\t\t\t.replace(/<\\/div>/g, \"
\")),\r\n\t\t\t\td((e = a.shortnames ? v.shortnameToUnicode(e) : e), a.emojiTemplate)\r\n\t\t\t\t\t.replace(/\\t/g, \"    \")\r\n\t\t\t\t\t.replace(/ /g, \"  \")\r\n\t\t\t);\r\n\t\t}\r\n\t\tfunction D(e, a) {\r\n\t\t\tswitch (\r\n\t\t\t\t((e = e\r\n\t\t\t\t\t.replace(/ /g, \"\\n\")\r\n\t\t\t\t\t.replace(/ /g, \"\\t\")\r\n\t\t\t\t\t.replace(/]*alt=\"([^\"]+)\"[^>]*>/gi, \"$1\")\r\n\t\t\t\t\t.replace(/\\n|\\r/g, \"\")\r\n\t\t\t\t\t.replace(/]*>/gi, \"\\n\")\r\n\t\t\t\t\t.replace(/(?:<(?:div|p|ol|ul|li|pre|code|object)[^>]*>)+/gi, \"
\")\r\n\t\t\t\t\t.replace(/(?:<\\/(?:div|p|ol|ul|li|pre|code|object)>)+/gi, \"
\")\r\n\t\t\t\t\t.replace(/\\n
<\\/div>/gi, \"\\n\")\r\n\t\t\t\t\t.replace(/
<\\/div>\\n/gi, \"\\n\")\r\n\t\t\t\t\t.replace(/(?:
)+<\\/div>/gi, \"\\n\")\r\n\t\t\t\t\t.replace(/([^\\n])<\\/div>
/gi, \"$1\\n\")\r\n\t\t\t\t\t.replace(/(?:<\\/div>)+/gi, \"
\")\r\n\t\t\t\t\t.replace(/([^\\n])<\\/div>([^\\n])/gi, \"$1\\n$2\")\r\n\t\t\t\t\t.replace(/<\\/div>/gi, \"\")\r\n\t\t\t\t\t.replace(/([^\\n])
/gi, \"$1\\n\")\r\n\t\t\t\t\t.replace(/\\n
/gi, \"\\n\")\r\n\t\t\t\t\t.replace(/
\\n/gi, \"\\n\\n\")\r\n\t\t\t\t\t.replace(/<(?:[^>]+)?>/g, \"\")\r\n\t\t\t\t\t.replace(new RegExp(A, \"g\"), \"\")\r\n\t\t\t\t\t.replace(/ /g, \" \")\r\n\t\t\t\t\t.replace(/</g, \"<\")\r\n\t\t\t\t\t.replace(/>/g, \">\")\r\n\t\t\t\t\t.replace(/"/g, '\"')\r\n\t\t\t\t\t.replace(/'/g, \"'\")\r\n\t\t\t\t\t.replace(/`/g, \"`\")\r\n\t\t\t\t\t.replace(/</g, \"<\")\r\n\t\t\t\t\t.replace(/>/g, \">\")\r\n\t\t\t\t\t.replace(/&/g, \"&\")),\r\n\t\t\t\ta.saveEmojisAs)\r\n\t\t\t) {\r\n\t\t\t\tcase \"image\":\r\n\t\t\t\t\te = d(e, a.emojiTemplate);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"shortname\":\r\n\t\t\t\t\te = v.toShort(e);\r\n\t\t\t}\r\n\t\t\treturn e;\r\n\t\t}\r\n\t\tfunction O() {\r\n\t\t\tvar e = this,\r\n\t\t\t\ta = e.editor[0].offsetWidth - e.editor[0].clientWidth,\r\n\t\t\t\to = parseInt(e.button.css(\"marginRight\"));\r\n\t\t\to !== a && (e.button.css({ marginRight: a }), e.floatingPicker && e.picker.css({ right: parseInt(e.picker.css(\"right\")) - o + a }));\r\n\t\t}\r\n\t\tfunction I() {\r\n\t\t\tvar o,\r\n\t\t\t\tn,\r\n\t\t\t\te = this;\r\n\t\t\t!e.sprite &&\r\n\t\t\t\te.lasyEmoji[0] &&\r\n\t\t\t\te.lasyEmoji.eq(0).is(\".lazy-emoji\") &&\r\n\t\t\t\t((o = e.picker.offset().top),\r\n\t\t\t\t(n = o + e.picker.height() + 20),\r\n\t\t\t\te.lasyEmoji.each(function () {\r\n\t\t\t\t\tvar e = y(this),\r\n\t\t\t\t\t\ta = e.offset().top;\r\n\t\t\t\t\tif ((o < a && a < n && e.attr(\"src\", e.data(\"src\")).removeClass(\"lazy-emoji\"), n < a)) return !1;\r\n\t\t\t\t}),\r\n\t\t\t\t(e.lasyEmoji = e.lasyEmoji.filter(\".lazy-emoji\")));\r\n\t\t}\r\n\t\tfunction N(e, a) {\r\n\t\t\treturn (a ? \"\" : \".\") + z + (e ? \"-\" + e : \"\");\r\n\t\t}\r\n\t\tfunction L(e) {\r\n\t\t\tvar o = y(\"
\", R(e) ? e : { class: N(e, !0) });\r\n\t\t\treturn (\r\n\t\t\t\ty.each(_.call(arguments).slice(1), function (e, a) {\r\n\t\t\t\t\t(a = y.isFunction(a) ? a.call(o) : a) && y(a).appendTo(o);\r\n\t\t\t\t}),\r\n\t\t\t\to\r\n\t\t\t);\r\n\t\t}\r\n\t\tfunction U() {\r\n\t\t\treturn localStorage.getItem(\"recent_emojis\") || \"\";\r\n\t\t}\r\n\t\tfunction $(e, a) {\r\n\t\t\tvar o,\r\n\t\t\t\tn,\r\n\t\t\t\tt,\r\n\t\t\t\ti = U();\r\n\t\t\t(e.recent && e.recent === i && !a) ||\r\n\t\t\t\t(i.length\r\n\t\t\t\t\t? ((t = e.scrollArea.is(\".skinnable\")) || ((o = e.scrollArea.scrollTop()), a && e.recentCategory.show(), (n = e.recentCategory.is(\":visible\") ? e.recentCategory.height() : 0)),\r\n\t\t\t\t\t (a = P(i, e.emojiBtnTemplate, !0).split(\"|\").join(\"\")),\r\n\t\t\t\t\t e.recentCategory.children(\".emojibtn\").remove(),\r\n\t\t\t\t\t y(a).insertAfter(e.recentCategory.children(\".emojionearea-category-title\")),\r\n\t\t\t\t\t e.recentCategory.children(\".emojibtn\").on(\"click\", function () {\r\n\t\t\t\t\t\t\te.trigger(\"emojibtn.click\", y(this));\r\n\t\t\t\t\t }),\r\n\t\t\t\t\t e.recentFilter.show(),\r\n\t\t\t\t\t t || (e.recentCategory.show(), n !== (t = e.recentCategory.height()) && e.scrollArea.scrollTop(o + t - n)))\r\n\t\t\t\t\t: (e.recentFilter.hasClass(\"active\") && e.recentFilter.removeClass(\"active\").next().addClass(\"active\"), e.recentCategory.hide(), e.recentFilter.hide()),\r\n\t\t\t\t(e.recent = i));\r\n\t\t}\r\n\t\tfunction p(l, a, i) {\r\n\t\t\t(l.options = i = F(i)),\r\n\t\t\t\t(l.sprite = i.sprite && T < 3),\r\n\t\t\t\t(l.inline = null === i.inline ? a.is(\"INPUT\") : i.inline),\r\n\t\t\t\t(l.shortnames = i.shortnames),\r\n\t\t\t\t(l.saveEmojisAs = i.saveEmojisAs),\r\n\t\t\t\t(l.standalone = i.standalone),\r\n\t\t\t\t(l.emojiTemplate = '\"{alt}\"' : 'emoji\" src=\"{img}\"/>')),\r\n\t\t\t\t(l.emojiTemplateAlt = l.sprite ? '' : ''),\r\n\t\t\t\t(l.emojiBtnTemplate = '' + l.emojiTemplateAlt + \"\"),\r\n\t\t\t\t(l.recentEmojis =\r\n\t\t\t\t\ti.recentEmojis &&\r\n\t\t\t\t\t(function () {\r\n\t\t\t\t\t\tvar e = \"test\";\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\treturn localStorage.setItem(e, e), localStorage.removeItem(e), !0;\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\treturn !1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})());\r\n\t\t\tvar e = i.pickerPosition;\r\n\t\t\t(l.floatingPicker = \"top\" === e || \"bottom\" === e), ((l.source = a).is(\":disabled\") || a.is(\".disabled\")) && l.disable();\r\n\t\t\tvar t,\r\n\t\t\t\to,\r\n\t\t\t\tr,\r\n\t\t\t\ts,\r\n\t\t\t\t_,\r\n\t\t\t\tn,\r\n\t\t\t\tc,\r\n\t\t\t\tm,\r\n\t\t\t\tg,\r\n\t\t\t\tu,\r\n\t\t\t\td = a.is(\"TEXTAREA\") || a.is(\"INPUT\") ? \"val\" : \"text\",\r\n\t\t\t\tp = L(\r\n\t\t\t\t\t\"tones\",\r\n\t\t\t\t\ti.tones\r\n\t\t\t\t\t\t? function () {\r\n\t\t\t\t\t\t\t\tthis.addClass(N(\"tones-\" + i.tonesStyle, !0));\r\n\t\t\t\t\t\t\t\tfor (var e = 0; e <= 5; e++) this.append(y(\"\", { class: \"btn-tone btn-tone-\" + e + (e ? \"\" : \" active\"), \"data-skin\": e, role: \"button\" }));\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t: null\r\n\t\t\t\t),\r\n\t\t\t\tf = L(\r\n\t\t\t\t\t{ class: z + (l.standalone ? \" \" + z + \"-standalone \" : \" \") + (a.attr(\"class\") || \"\"), role: \"application\" },\r\n\t\t\t\t\t(t = l.editor = L(\"editor\").attr({ contenteditable: !l.standalone, placeholder: i.placeholder || a.data(\"placeholder\") || a.attr(\"placeholder\") || \"\", tabindex: 0 })),\r\n\t\t\t\t\t(o = l.button = L(\"button\", L(\"button-open\"), L(\"button-close\")).attr(\"title\", i.buttonTitle)),\r\n\t\t\t\t\t(r = l.picker =\r\n\t\t\t\t\t\tL(\r\n\t\t\t\t\t\t\t\"picker\",\r\n\t\t\t\t\t\t\tL(\r\n\t\t\t\t\t\t\t\t\"wrapper\",\r\n\t\t\t\t\t\t\t\t(s = L(\"filters\")),\r\n\t\t\t\t\t\t\t\ti.search\r\n\t\t\t\t\t\t\t\t\t? (n = L(\r\n\t\t\t\t\t\t\t\t\t\t\t\"search-panel\",\r\n\t\t\t\t\t\t\t\t\t\t\tL(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"search\",\r\n\t\t\t\t\t\t\t\t\t\t\t\ti.search\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(l.search = y(\"\", { placeholder: i.searchPlaceholder || \"\", type: \"text\", class: \"search\" })), this.append(l.search);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t\t\tp\r\n\t\t\t\t\t\t\t\t\t ))\r\n\t\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\t\t\t(u = L(\"scroll-area\", i.tones && !i.search ? L(\"tones-panel\", p) : null, (c = L(\"emojis-list\"))))\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.addClass(N(\"picker-position-\" + i.pickerPosition, !0))\r\n\t\t\t\t\t\t\t.addClass(N(\"filters-position-\" + i.filtersPosition, !0))\r\n\t\t\t\t\t\t\t.addClass(N(\"search-position-\" + i.searchPosition, !0))\r\n\t\t\t\t\t\t\t.addClass(\"hidden\"))\r\n\t\t\t\t);\r\n\t\t\ti.search && n.addClass(N(\"with-search\", !0)),\r\n\t\t\t\t(l.searchSel = null),\r\n\t\t\t\tt.data(a.data()),\r\n\t\t\t\ty.each(i.attributes, function (e, a) {\r\n\t\t\t\t\tt.attr(e, a);\r\n\t\t\t\t});\r\n\t\t\tvar h = L(\"category-block\").attr({ \"data-tone\": 0 }).prependTo(c);\r\n\t\t\ty.each(i.filters, function (e, a) {\r\n\t\t\t\tvar o = 0;\r\n\t\t\t\tif (\"recent\" !== e || l.recentEmojis) {\r\n\t\t\t\t\tif (\"tones\" !== e)\r\n\t\t\t\t\t\ty(\"\", { class: N(\"filter\", !0) + \" \" + N(\"filter-\" + e, !0), \"data-filter\": e, title: a.title })\r\n\t\t\t\t\t\t\t.wrapInner(P(a.icon, l.emojiTemplateAlt))\r\n\t\t\t\t\t\t\t.appendTo(s);\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (!i.tones) return;\r\n\t\t\t\t\t\to = 5;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdo {\r\n\t\t\t\t\t\tvar n = a.emoji.replace(/[\\s,;]+/g, \"|\"),\r\n\t\t\t\t\t\t\tt = 0 === o ? L(\"category\").attr({ name: e, \"data-tone\": o }).appendTo(h) : L(\"category-block\").attr({ name: e, \"data-tone\": o }).appendTo(c);\r\n\t\t\t\t\t} while (\r\n\t\t\t\t\t\t(0 < o && (t.hide(), (n = n.split(\"|\").join(\"_tone\" + o + \"|\") + \"_tone\" + o)),\r\n\t\t\t\t\t\t(n = P((n = \"recent\" === e ? U() : n), l.sprite ? '' : '', !0)\r\n\t\t\t\t\t\t\t.split(\"|\")\r\n\t\t\t\t\t\t\t.join(\"\")),\r\n\t\t\t\t\t\tt.html(n),\r\n\t\t\t\t\t\ty('
').text(a.title).prependTo(t),\r\n\t\t\t\t\t\t0 < --o)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\t\t(i.filters = null),\r\n\t\t\t\tl.sprite || (l.lasyEmoji = c.find(\".lazy-emoji\")),\r\n\t\t\t\t(_ = s.find(N(\"filter\"))).eq(0).addClass(\"active\"),\r\n\t\t\t\t(g = c.find(N(\"category-block\"))),\r\n\t\t\t\t(m = c.find(N(\"category\"))),\r\n\t\t\t\t(l.recentFilter = _.filter('[data-filter=\"recent\"]')),\r\n\t\t\t\t(l.recentCategory = m.filter(\"[name=recent]\")),\r\n\t\t\t\t(l.scrollArea = u),\r\n\t\t\t\ti.container ? y(i.container).wrapInner(f) : f.insertAfter(a),\r\n\t\t\t\ti.hideSource && a.hide(),\r\n\t\t\t\tl.setText(a[d]()),\r\n\t\t\t\ta[d](l.getText()),\r\n\t\t\t\tO.apply(l),\r\n\t\t\t\tl.standalone && !l.getText().length && ((w = y(a).data(\"emoji-placeholder\") || i.emojiPlaceholder), l.setText(w), t.addClass(\"has-placeholder\")),\r\n\t\t\t\tS(l, c.find(\".emojibtn\"), { click: \"emojibtn.click\" }),\r\n\t\t\t\tS(l, window, { resize: \"!resize\" }),\r\n\t\t\t\tS(l, p.children(), { click: \"tone.click\" }),\r\n\t\t\t\tS(l, [r, o], { mousedown: \"!mousedown\" }, t),\r\n\t\t\t\tS(l, o, { click: \"button.click\" }),\r\n\t\t\t\tS(l, t, { paste: \"!paste\" }, t),\r\n\t\t\t\tS(l, t, [\"focus\", \"blur\"], function () {\r\n\t\t\t\t\treturn !l.stayFocused && t;\r\n\t\t\t\t}),\r\n\t\t\t\tS(l, r, { mousedown: \"picker.mousedown\", mouseup: \"picker.mouseup\", click: \"picker.click\", keyup: \"picker.keyup\", keydown: \"picker.keydown\", keypress: \"picker.keypress\" }),\r\n\t\t\t\tS(l, t, [\"mousedown\", \"mouseup\", \"click\", \"keyup\", \"keydown\", \"keypress\"]),\r\n\t\t\t\tS(l, r.find(\".emojionearea-filter\"), { click: \"filter.click\" }),\r\n\t\t\t\tS(l, a, { change: \"source.change\" }),\r\n\t\t\t\ti.search && S(l, l.search, { keyup: \"search.keypress\", focus: \"search.focus\", blur: \"search.blur\" });\r\n\t\t\tvar b,\r\n\t\t\t\tw,\r\n\t\t\t\tk = !1;\r\n\t\t\tu.on(\"scroll\", function () {\r\n\t\t\t\tvar o, n, e;\r\n\t\t\t\t!k &&\r\n\t\t\t\t\t(I.call(l), u.is(\":not(.skinnable)\")) &&\r\n\t\t\t\t\t((o = m.eq(0)),\r\n\t\t\t\t\t(n = u.offset().top),\r\n\t\t\t\t\tm.each(function (e, a) {\r\n\t\t\t\t\t\treturn !(10 <= y(a).offset().top - n) && void (o = y(a));\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(e = _.filter('[data-filter=\"' + o.attr(\"name\") + '\"]'))[0] && !e.is(\".active\") && (_.removeClass(\"active\"), e.addClass(\"active\")));\r\n\t\t\t}),\r\n\t\t\t\tl\r\n\t\t\t\t\t.on(\"@filter.click\", function (e) {\r\n\t\t\t\t\t\tvar a = e.is(\".active\");\r\n\t\t\t\t\t\tif (u.is(\".skinnable\")) {\r\n\t\t\t\t\t\t\tif (a) return;\r\n\t\t\t\t\t\t\tp.children().eq(0).click();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t(k = !0), a || (_.filter(\".active\").removeClass(\"active\"), e.addClass(\"active\"));\r\n\t\t\t\t\t\tvar o = m.filter('[name=\"' + e.data(\"filter\") + '\"]').offset().top,\r\n\t\t\t\t\t\t\ta = u.scrollTop(),\r\n\t\t\t\t\t\t\te = u.offset().top;\r\n\t\t\t\t\t\tu.stop().animate({ scrollTop: o + a - e - 2 }, 200, \"swing\", function () {\r\n\t\t\t\t\t\t\tI.call(l), (k = !1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@picker.show\", function () {\r\n\t\t\t\t\t\tl.recentEmojis && $(l), I.call(l);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@tone.click\", function (e) {\r\n\t\t\t\t\t\tp.children().removeClass(\"active\");\r\n\t\t\t\t\t\te = e.addClass(\"active\").data(\"skin\");\r\n\t\t\t\t\t\te\r\n\t\t\t\t\t\t\t? (u.addClass(\"skinnable\"),\r\n\t\t\t\t\t\t\t g\r\n\t\t\t\t\t\t\t\t\t.hide()\r\n\t\t\t\t\t\t\t\t\t.filter(\"[data-tone=\" + e + \"]\")\r\n\t\t\t\t\t\t\t\t\t.show(),\r\n\t\t\t\t\t\t\t _.removeClass(\"active\"))\r\n\t\t\t\t\t\t\t: (u.removeClass(\"skinnable\"), g.hide().filter(\"[data-tone=0]\").show(), _.eq(0).click()),\r\n\t\t\t\t\t\t\tI.call(l),\r\n\t\t\t\t\t\t\ti.search && l.trigger(\"search.keypress\");\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@button.click\", function (e) {\r\n\t\t\t\t\t\te.is(\".active\") ? l.hidePicker() : (l.showPicker(), (l.searchSel = null));\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@!paste\", function (i, e) {\r\n\t\t\t\t\t\tfunction a(e) {\r\n\t\t\t\t\t\t\tvar a = \"caret-\" + new Date().getTime(),\r\n\t\t\t\t\t\t\t\to = B(e, l);\r\n\t\t\t\t\t\t\tE(o), E(''), i.scrollTop(r);\r\n\t\t\t\t\t\t\tvar n = y(\"#\" + a),\r\n\t\t\t\t\t\t\t\tt = n.offset().top - i.offset().top;\r\n\t\t\t\t\t\t\t((a = i.height()) <= r + t || t < r) && i.scrollTop(r + t - (2 * a) / 3), n.remove(), (l.stayFocused = !1), O.apply(l), q(l, \"paste\", [i, e, o]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (e.originalEvent.clipboardData) {\r\n\t\t\t\t\t\t\tvar o = e.originalEvent.clipboardData.getData(\"text/plain\");\r\n\t\t\t\t\t\t\treturn a(o), e.preventDefault ? e.preventDefault() : e.stop(), (e.returnValue = !1), e.stopPropagation(), !1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t(l.stayFocused = !0), E(\"\" + A + \"\");\r\n\t\t\t\t\t\tvar n = j(i[0]),\r\n\t\t\t\t\t\t\tr = i.scrollTop(),\r\n\t\t\t\t\t\t\tt = y(\"
\", { contenteditable: !0 }).css({ position: \"fixed\", left: \"-999px\", width: \"1px\", height: \"1px\", top: \"20px\", overflow: \"hidden\" }).appendTo(y(\"BODY\")).focus();\r\n\t\t\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\t\t\ti.focus(), x(i[0], n);\r\n\t\t\t\t\t\t\tvar e = D(t.html().replace(/\\r\\n|\\n|\\r/g, \"
\"), l);\r\n\t\t\t\t\t\t\tt.remove(), a(e);\r\n\t\t\t\t\t\t}, 200);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@emojibtn.click\", function (e) {\r\n\t\t\t\t\t\tvar a, o, n;\r\n\t\t\t\t\t\tt.removeClass(\"has-placeholder\"), null !== l.searchSel && (t.focus(), x(t[0], l.searchSel), (l.searchSel = null)), l.standalone ? (t.html(P(e.data(\"name\"), l.emojiTemplate)), l.trigger(\"blur\")) : (j(t[0]), E(P(e.data(\"name\"), l.emojiTemplate))), l.recentEmojis && ((a = l), (o = e.data(\"name\")), (n = U().split(\"|\")), -1 !== (e = n.indexOf(o)) && n.splice(e, 1), n.unshift(o), 9 < n.length && n.pop(), localStorage.setItem(\"recent_emojis\", n.join(\"|\")), $(a)), l.trigger(\"search.keypress\");\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@!resize @keyup @emojibtn.click\", O)\r\n\t\t\t\t\t.on(\"@!mousedown\", function (e, a) {\r\n\t\t\t\t\t\treturn y(a.target).hasClass(\"search\") ? ((l.stayFocused = !0), null === l.searchSel && (l.searchSel = j(e[0]))) : (f.is(\".focused\") || e.trigger(\"focus\"), a.preventDefault()), !1;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@change\", function () {\r\n\t\t\t\t\t\tvar e = l.editor.html().replace(/<\\/?(?:div|span|p)[^>]*>/gi, \"\");\r\n\t\t\t\t\t\t(e.length && !/^]*>$/i.test(e)) || l.editor.html((l.content = \"\")), a[d](l.getText());\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@source.change\", function () {\r\n\t\t\t\t\t\tl.setText(a[d]()), q(\"change\");\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@focus\", function () {\r\n\t\t\t\t\t\tf.addClass(\"focused\");\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"@blur\", function () {\r\n\t\t\t\t\t\tf.removeClass(\"focused\"), i.hidePickerOnBlur && l.hidePicker();\r\n\t\t\t\t\t\tvar e = l.editor.html();\r\n\t\t\t\t\t\tl.content !== e ? ((l.content = e), q(l, \"change\", [l.editor]), a.trigger(\"blur\").trigger(\"change\")) : a.trigger(\"blur\"), i.search && (l.search.val(\"\"), l.trigger(\"search.keypress\", !0));\r\n\t\t\t\t\t}),\r\n\t\t\t\ti.search &&\r\n\t\t\t\t\tl\r\n\t\t\t\t\t\t.on(\"@search.focus\", function () {\r\n\t\t\t\t\t\t\t(l.stayFocused = !0), l.search.addClass(\"focused\");\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.on(\"@search.keypress\", function (e) {\r\n\t\t\t\t\t\t\tvar n = r.find(\".emojionearea-filter\"),\r\n\t\t\t\t\t\t\t\to = i.tones ? p.find(\"i.active\").data(\"skin\") : 0,\r\n\t\t\t\t\t\t\t\tt = l.search.val().replace(/ /g, \"_\").replace(/\"/g, '\\\\\"');\r\n\t\t\t\t\t\t\tt && t.length\r\n\t\t\t\t\t\t\t\t? (l.recentFilter.hasClass(\"active\") && l.recentFilter.removeClass(\"active\").next().addClass(\"active\"),\r\n\t\t\t\t\t\t\t\t l.recentCategory.hide(),\r\n\t\t\t\t\t\t\t\t l.recentFilter.hide(),\r\n\t\t\t\t\t\t\t\t g.each(function () {\r\n\t\t\t\t\t\t\t\t\t\tfunction e(e, a) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar o = e.find('.emojibtn[data-name*=\"' + t + '\"]');\r\n\t\t\t\t\t\t\t\t\t\t\t0 === o.length ? (e.data(\"tone\") === a && e.hide(), n.filter('[data-filter=\"' + e.attr(\"name\") + '\"]').hide()) : (e.find('.emojibtn:not([data-name*=\"' + t + '\"])').hide(), o.show(), e.data(\"tone\") === a && e.show(), n.filter('[data-filter=\"' + e.attr(\"name\") + '\"]').show());\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tvar a = y(this);\r\n\t\t\t\t\t\t\t\t\t\t0 === a.data(\"tone\")\r\n\t\t\t\t\t\t\t\t\t\t\t? m.filter(':not([name=\"recent\"])').each(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te(y(this), 0);\r\n\t\t\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t\t\t\t: e(a, o);\r\n\t\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\t\t k ? I.call(l) : u.trigger(\"scroll\"))\r\n\t\t\t\t\t\t\t\t: ($(l, !0), g.filter('[data-tone=\"' + p.find(\"i.active\").data(\"skin\") + '\"]:not([name=\"recent\"])').show(), y(\".emojibtn\", g).show(), n.show(), I.call(l));\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.on(\"@search.blur\", function () {\r\n\t\t\t\t\t\t\t(l.stayFocused = !1), l.search.removeClass(\"focused\"), l.trigger(\"blur\");\r\n\t\t\t\t\t\t}),\r\n\t\t\t\ti.shortcuts &&\r\n\t\t\t\t\tl.on(\"@keydown\", function (e, a) {\r\n\t\t\t\t\t\ta.ctrlKey || (9 == a.which ? (a.preventDefault(), o.click()) : 27 == a.which && (a.preventDefault(), o.is(\".active\") && l.hidePicker()));\r\n\t\t\t\t\t}),\r\n\t\t\t\tR(i.events) &&\r\n\t\t\t\t\t!y.isEmptyObject(i.events) &&\r\n\t\t\t\t\ty.each(i.events, function (e, a) {\r\n\t\t\t\t\t\tl.on(e.replace(/_/g, \".\"), a);\r\n\t\t\t\t\t}),\r\n\t\t\t\ti.autocomplete &&\r\n\t\t\t\t\t((b = function () {\r\n\t\t\t\t\t\tvar e = { maxCount: i.textcomplete.maxCount, placement: i.textcomplete.placement };\r\n\t\t\t\t\t\ti.shortcuts &&\r\n\t\t\t\t\t\t\t(e.onKeydown = function (e, a) {\r\n\t\t\t\t\t\t\t\tif (!e.ctrlKey && 13 == e.which) return a.KEY_ENTER;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tvar o = y.map(v.emojioneList, function (e, a) {\r\n\t\t\t\t\t\t\treturn !i.autocompleteTones && /_tone[12345]/.test(a) ? null : a;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\to.sort(),\r\n\t\t\t\t\t\t\tt.textcomplete(\r\n\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tid: z,\r\n\t\t\t\t\t\t\t\t\t\tmatch: /\\B(:[\\-+\\w]*)$/,\r\n\t\t\t\t\t\t\t\t\t\tsearch: function (a, e) {\r\n\t\t\t\t\t\t\t\t\t\t\te(\r\n\t\t\t\t\t\t\t\t\t\t\t\ty.map(o, function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn 0 === e.indexOf(a) ? e : null;\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\ttemplate: function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn P(e, l.emojiTemplate) + \" \" + e.replace(/:/g, \"\");\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\treplace: function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn P(e, l.emojiTemplate);\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\tcache: !0,\r\n\t\t\t\t\t\t\t\t\t\tindex: 1,\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\te\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\ti.textcomplete.placement && \"static\" == y(t.data(\"textComplete\").option.appendTo).css(\"position\") && y(t.data(\"textComplete\").option.appendTo).css(\"position\", \"relative\");\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(w = function () {\r\n\t\t\t\t\t\tvar e;\r\n\t\t\t\t\t\tl.disabled\r\n\t\t\t\t\t\t\t? ((e = function () {\r\n\t\t\t\t\t\t\t\t\tl.off(\"enabled\", e), b();\r\n\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\t l.on(\"enabled\", e))\r\n\t\t\t\t\t\t\t: b();\r\n\t\t\t\t\t}),\r\n\t\t\t\t\ty.fn.textcomplete ? w() : y.ajax({ url: \"https://cdn.rawgit.com/yuku-t/jquery-textcomplete/v1.3.4/dist/jquery.textcomplete.js\", dataType: \"script\", cache: !0, success: w })),\r\n\t\t\t\tl.inline &&\r\n\t\t\t\t\t(f.addClass(N(\"inline\", !0)),\r\n\t\t\t\t\tl.on(\"@keydown\", function (e, a) {\r\n\t\t\t\t\t\t13 == a.which && a.preventDefault();\r\n\t\t\t\t\t})),\r\n\t\t\t\t/firefox/i.test(navigator.userAgent) && document.execCommand(\"enableObjectResizing\", !1, !1),\r\n\t\t\t\t(l.isReady = !0),\r\n\t\t\t\tl.trigger(\"onLoad\", t),\r\n\t\t\t\tl.trigger(\"ready\", t);\r\n\t\t}\r\n\t\twindow.getSelection && document.createRange\r\n\t\t\t? ((j = function (e) {\r\n\t\t\t\t\tvar a = window.getSelection && window.getSelection();\r\n\t\t\t\t\tif (a && 0 < a.rangeCount) return a.getRangeAt(0);\r\n\t\t\t }),\r\n\t\t\t (x = function (e, a) {\r\n\t\t\t\t\tvar o = document.createRange();\r\n\t\t\t\t\to.setStart(a.startContainer, a.startOffset), o.setEnd(a.endContainer, a.endOffset), (a = window.getSelection()).removeAllRanges(), a.addRange(o);\r\n\t\t\t }))\r\n\t\t\t: document.selection &&\r\n\t\t\t document.body.createTextRange &&\r\n\t\t\t ((j = function (e) {\r\n\t\t\t\t\treturn document.selection.createRange();\r\n\t\t\t }),\r\n\t\t\t (x = function (e, a) {\r\n\t\t\t\t\tvar o = document.body.createTextRange();\r\n\t\t\t\t\to.moveToElementText(e), o.setStart(a.startContanier, a.startOffset), o.setEnd(a.endContainer, a.endOffset), o.select();\r\n\t\t\t }));\r\n\t\tvar f = { defaultBase: \"https://cdnjs.cloudflare.com/ajax/libs/emojione/\", defaultBase3: \"https://cdn.jsdelivr.net/\", base: null, isLoading: !1 };\r\n\t\tfunction h(a) {\r\n\t\t\tvar e,\r\n\t\t\t\to = m();\r\n\t\t\t(a = F(a)),\r\n\t\t\t\tf.isLoading ||\r\n\t\t\t\t\t(!v || u(g(v)) < 2\r\n\t\t\t\t\t\t? ((f.isLoading = !0),\r\n\t\t\t\t\t\t (e = 5 < u(o) ? f.defaultBase3 + \"npm/emojione@\" + o : 4 < u(o) ? f.defaultBase3 + \"emojione/\" + o : f.defaultBase + \"/\" + o),\r\n\t\t\t\t\t\t y.ajax({\r\n\t\t\t\t\t\t\t\turl: e + \"/lib/js/emojione.min.js\",\r\n\t\t\t\t\t\t\t\tdataType: \"script\",\r\n\t\t\t\t\t\t\t\tcache: !0,\r\n\t\t\t\t\t\t\t\tsuccess: function () {\r\n\t\t\t\t\t\t\t\t\tvar e;\r\n\t\t\t\t\t\t\t\t\tfor (v = window.emojione, o = g(v), e = 4 < (T = u(o)) ? ((f.base = f.defaultBase3 + \"emojione/assets/\" + o), f.base + \"/sprites/emojione-sprite-\" + v.emojiSize + \".css\") : ((f.base = f.defaultBase + o + \"/assets\"), f.base + \"/sprites/emojione.sprites.css\"), a.sprite && (document.createStyleSheet ? document.createStyleSheet(e) : y(\"\", { rel: \"stylesheet\", href: e }).appendTo(\"head\")); t.length; ) t.shift().call();\r\n\t\t\t\t\t\t\t\t\tf.isLoading = !1;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t }))\r\n\t\t\t\t\t\t: ((o = g(v)), (T = u(o)), (f.base = 4 < T ? f.defaultBase3 + \"emojione/assets/\" + o : f.defaultBase + o + \"/assets\"))),\r\n\t\t\t\ti(function () {\r\n\t\t\t\t\tvar e = \"\";\r\n\t\t\t\t\ta.useInternalCDN && (4 < T && (e = v.emojiSize + \"/\"), (v.imagePathPNG = f.base + \"/png/\" + e), (v.imagePathSVG = f.base + \"/svg/\" + e), (v.imagePathSVGSprites = f.base + \"/sprites/emojione.sprites.svg\"), (v.imageType = a.imageType)), 4 < u(o) ? ((s = v.regUnicode), (v.imageType = a.imageType || \"png\")) : (s = new RegExp(\"]*>.*?|]*>.*?|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(\" + v.unicodeRegexp + \")\", \"gi\"));\r\n\t\t\t\t});\r\n\t\t}\r\n\t\tfunction a(e, a) {\r\n\t\t\tvar o = this;\r\n\t\t\th(a),\r\n\t\t\t\t(r[(o.id = ++n)] = {}),\r\n\t\t\t\t(l[o.id] = {}),\r\n\t\t\t\ti(function () {\r\n\t\t\t\t\tp(o, e, a);\r\n\t\t\t\t});\r\n\t\t}\r\n\t\t(a.prototype.on = function (e, o) {\r\n\t\t\tvar n;\r\n\t\t\treturn (\r\n\t\t\t\te &&\r\n\t\t\t\t\ty.isFunction(o) &&\r\n\t\t\t\t\t((n = this),\r\n\t\t\t\t\ty.each(e.toLowerCase().split(\" \"), function (e, a) {\r\n\t\t\t\t\t\t(function (n, t) {\r\n\t\t\t\t\t\t\tt = t.replace(/^@/, \"\");\r\n\t\t\t\t\t\t\tvar e = n.id;\r\n\t\t\t\t\t\t\tl[e][t] &&\r\n\t\t\t\t\t\t\t\t(y.each(l[e][t], function (e, o) {\r\n\t\t\t\t\t\t\t\t\ty.each(y.isArray(o[0]) ? o[0] : [o[0]], function (e, a) {\r\n\t\t\t\t\t\t\t\t\t\ty(a).on(o[1], function () {\r\n\t\t\t\t\t\t\t\t\t\t\tvar e = _.call(arguments),\r\n\t\t\t\t\t\t\t\t\t\t\t\ta = y.isFunction(o[2]) ? o[2].apply(n, [t].concat(e)) : o[2];\r\n\t\t\t\t\t\t\t\t\t\t\ta && q(n, t, [a].concat(e));\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t(l[e][t] = null));\r\n\t\t\t\t\t\t})(n, a),\r\n\t\t\t\t\t\t\t(r[n.id][a] || (r[n.id][a] = [])).push(o);\r\n\t\t\t\t\t})),\r\n\t\t\t\tthis\r\n\t\t\t);\r\n\t\t}),\r\n\t\t\t(a.prototype.off = function (e, n) {\r\n\t\t\t\tvar t;\r\n\t\t\t\treturn (\r\n\t\t\t\t\te &&\r\n\t\t\t\t\t\t((t = this.id),\r\n\t\t\t\t\t\ty.each(e.toLowerCase().replace(/_/g, \".\").split(\" \"), function (e, o) {\r\n\t\t\t\t\t\t\tr[t][o] &&\r\n\t\t\t\t\t\t\t\t!/^@/.test(o) &&\r\n\t\t\t\t\t\t\t\t(n\r\n\t\t\t\t\t\t\t\t\t? y.each(r[t][o], function (e, a) {\r\n\t\t\t\t\t\t\t\t\t\t\ta === n && (r[t][o] = r[t][o].splice(e, 1));\r\n\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t\t: (r[t][o] = []));\r\n\t\t\t\t\t\t})),\r\n\t\t\t\t\tthis\r\n\t\t\t\t);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.trigger = function () {\r\n\t\t\t\tvar e = _.call(arguments),\r\n\t\t\t\t\ta = [this].concat(e.slice(0, 1));\r\n\t\t\t\treturn a.push(e.slice(1)), q.apply(this, a);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.setFocus = function () {\r\n\t\t\t\tvar e = this;\r\n\t\t\t\treturn (\r\n\t\t\t\t\ti(function () {\r\n\t\t\t\t\t\te.editor.focus();\r\n\t\t\t\t\t}),\r\n\t\t\t\t\te\r\n\t\t\t\t);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.setText = function (e) {\r\n\t\t\t\tvar a = this;\r\n\t\t\t\treturn (\r\n\t\t\t\t\ti(function () {\r\n\t\t\t\t\t\ta.editor.html(B(e, a)), (a.content = a.editor.html()), q(a, \"change\", [a.editor]), O.apply(a);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\ta\r\n\t\t\t\t);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.getText = function () {\r\n\t\t\t\treturn D(this.editor.html(), this);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.showPicker = function () {\r\n\t\t\t\tvar e = this;\r\n\t\t\t\treturn (\r\n\t\t\t\t\te._sh_timer && window.clearTimeout(e._sh_timer),\r\n\t\t\t\t\te.picker.removeClass(\"hidden\"),\r\n\t\t\t\t\t(e._sh_timer = window.setTimeout(function () {\r\n\t\t\t\t\t\te.button.addClass(\"active\");\r\n\t\t\t\t\t}, 50)),\r\n\t\t\t\t\tq(e, \"picker.show\", [e.picker]),\r\n\t\t\t\t\te\r\n\t\t\t\t);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.hidePicker = function () {\r\n\t\t\t\tvar e = this;\r\n\t\t\t\treturn (\r\n\t\t\t\t\te._sh_timer && window.clearTimeout(e._sh_timer),\r\n\t\t\t\t\te.button.removeClass(\"active\"),\r\n\t\t\t\t\t(e._sh_timer = window.setTimeout(function () {\r\n\t\t\t\t\t\te.picker.addClass(\"hidden\");\r\n\t\t\t\t\t}, 500)),\r\n\t\t\t\t\tq(e, \"picker.hide\", [e.picker]),\r\n\t\t\t\t\te\r\n\t\t\t\t);\r\n\t\t\t}),\r\n\t\t\t(a.prototype.enable = function () {\r\n\t\t\t\tfunction e() {\r\n\t\t\t\t\t(a.disabled = !1), a.editor.prop(\"contenteditable\", !0), a.button.show();\r\n\t\t\t\t\tvar e = a[a.standalone ? \"button\" : \"editor\"];\r\n\t\t\t\t\te.parent().removeClass(\"emojionearea-disable\"), q(a, \"enabled\", [e]);\r\n\t\t\t\t}\r\n\t\t\t\tvar a = this;\r\n\t\t\t\treturn a.isReady ? e() : a.on(\"ready\", e), a;\r\n\t\t\t}),\r\n\t\t\t(a.prototype.disable = function () {\r\n\t\t\t\tvar a = this;\r\n\t\t\t\ta.disabled = !0;\r\n\t\t\t\tfunction e() {\r\n\t\t\t\t\ta.editor.prop(\"contenteditable\", !1), a.hidePicker(), a.button.hide();\r\n\t\t\t\t\tvar e = a[a.standalone ? \"button\" : \"editor\"];\r\n\t\t\t\t\te.parent().addClass(\"emojionearea-disable\"), q(a, \"disabled\", [e]);\r\n\t\t\t\t}\r\n\t\t\t\treturn a.isReady ? e() : a.on(\"ready\", e), a;\r\n\t\t\t}),\r\n\t\t\t(y.fn.emojioneArea = function (e) {\r\n\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\treturn this.emojioneArea || (y.data(this, \"emojioneArea\", (this.emojioneArea = new a(y(this), e))), this.emojioneArea);\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t\t(y.fn.emojioneArea.defaults = o()),\r\n\t\t\t(y.fn.emojioneAreaText = function (e) {\r\n\t\t\t\te = F(e);\r\n\t\t\t\tvar a = this,\r\n\t\t\t\t\to = { shortnames: !e || void 0 === e.shortnames || e.shortnames, emojiTemplate: '\"{alt}\"' };\r\n\t\t\t\treturn (\r\n\t\t\t\t\th(e),\r\n\t\t\t\t\ti(function () {\r\n\t\t\t\t\t\ta.each(function () {\r\n\t\t\t\t\t\t\tvar e = y(this);\r\n\t\t\t\t\t\t\treturn e.hasClass(\"emojionearea-text\") || e.addClass(\"emojionearea-text\").html(B(e.is(\"TEXTAREA\") || e.is(\"INPUT\") ? e.val() : e.text(), o)), e;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tthis\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t}, window);\r\n"],"names":["window","global","self","document","e","a","require","exports","module","define","amd","jQuery","y","n","r","l","v","emojione","t","i","push","j","x","s","C","_","slice","z","T","A","q","o","toLowerCase","id","length","each","apply","S","currentTarget","isArray","c","imageType","imagePathSVG","imagePathPNG","substr","replace","charAt","toUpperCase","uc_base","uc_output","convert","P","emojioneList","unicode","E","getSelection","getRangeAt","rangeCount","deleteContents","createElement","innerHTML","createDocumentFragment","firstChild","appendChild","insertNode","cloneRange","setStartAfter","collapse","removeAllRanges","addRange","selection","type","createRange","pasteHTML","m","emojioneVersion","R","g","cacheBustParam","jsEscapeMap","emojiVersion","u","fn","emojioneArea","defaults","attributes","dir","spellcheck","autocomplete","autocorrect","autocapitalize","search","placeholder","emojiPlaceholder","searchPlaceholder","container","hideSource","shortnames","sprite","pickerPosition","filtersPosition","searchPosition","hidePickerOnBlur","buttonTitle","tones","tonesStyle","inline","saveEmojisAs","shortcuts","autocompleteTones","standalone","useInternalCDN","recentEmojis","textcomplete","maxCount","placement","filters","title","emoji","recent","icon","smileys_people","animals_nature","food_drink","activity","travel_places","objects","symbols","flags","F","isEmptyObject","extend","d","B","shortnameToUnicode","emojiTemplate","D","RegExp","toShort","O","this","editor","offsetWidth","clientWidth","parseInt","button","css","marginRight","floatingPicker","picker","right","I","lasyEmoji","eq","is","offset","top","height","attr","data","removeClass","filter","N","L","class","call","arguments","isFunction","appendTo","U","localStorage","getItem","$","scrollArea","scrollTop","recentCategory","show","emojiBtnTemplate","split","join","children","remove","insertAfter","on","trigger","recentFilter","hasClass","next","addClass","hide","setStart","startContainer","startOffset","setEnd","endContainer","endOffset","body","createTextRange","moveToElementText","startContanier","select","f","defaultBase","defaultBase3","base","isLoading","h","ajax","url","dataType","cache","success","emojiSize","createStyleSheet","rel","href","shift","imagePathSVGSprites","regUnicode","unicodeRegexp","p","b","w","k","options","emojiTemplateAlt","setItem","removeItem","source","disable","append","data-skin","role","contenteditable","tabindex","searchSel","data-tone","prependTo","data-filter","wrapInner","name","html","text","find","setText","getText","click","resize","mousedown","paste","stayFocused","mouseup","keyup","keydown","keypress","change","focus","blur","stop","animate","hidePicker","showPicker","Date","getTime","originalEvent","clipboardData","getData","preventDefault","returnValue","stopPropagation","position","left","width","overflow","setTimeout","indexOf","splice","unshift","pop","target","test","content","val","ctrlKey","which","events","onKeydown","KEY_ENTER","map","sort","match","template","index","option","disabled","off","navigator","userAgent","execCommand","isReady","prototype","concat","setFocus","_sh_timer","clearTimeout","enable","prop","parent","emojioneAreaText"],"mappings":"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"} \ No newline at end of file diff --git a/dasena-web/public/assets/admin/vendors/js/full-screen-helper.min.js b/dasena-web/public/assets/admin/vendors/js/full-screen-helper.min.js new file mode 100644 index 0000000..1acb40e --- /dev/null +++ b/dasena-web/public/assets/admin/vendors/js/full-screen-helper.min.js @@ -0,0 +1,2 @@ +!function(t){function n(e,n){if("function"==typeof e){if(!n)return H.push(e);if(!n)return H.push(e);var t=[],l=0;for(H.length;la&&(a=t[e]);else for(e in t)t[e]>a&&(a=t[e]);return a},keys:function(t){var e,a=[];for(e in t)a.push(e);return a},values:function(t){for(var e,a=[],s=0;s");return a.error(function(){e.reject()}).load(function(){e.resolve(a)}),a.attr("src",t),e},isImageUrl:function(t){return/\.\w{3,4}$/.test(t)}};jvm.$=jQuery,Array.prototype.indexOf||(Array.prototype.indexOf=function(t,e){var a;if(null==this)throw new TypeError('"this" is null or not defined');var s=Object(this),i=s.length>>>0;if(0!=i&&(e=+e||0,!(i<=(e=Math.abs(e)===1/0?0:e))))for(a=Math.max(0<=e?e:i-Math.abs(e),0);a')}}catch(t){jvm.VMLElement.prototype.createElement=function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"),jvm.VMLElement.VMLInitialized=!0},jvm.VMLElement.prototype.getElementCtr=function(t){return jvm["VML"+t]},jvm.VMLElement.prototype.addClass=function(t){jvm.$(this.node).addClass(t)},jvm.VMLElement.prototype.applyAttr=function(t,e){this.node[t]=e},jvm.VMLElement.prototype.getBBox=function(){var t=jvm.$(this.node);return{x:t.position().left/this.canvas.scale,y:t.position().top/this.canvas.scale,width:t.width()/this.canvas.scale,height:t.height()/this.canvas.scale}},jvm.VMLGroupElement=function(){jvm.VMLGroupElement.parentClass.call(this,"group"),this.node.style.left="0px",this.node.style.top="0px",this.node.coordorigin="0 0"},jvm.inherits(jvm.VMLGroupElement,jvm.VMLElement),jvm.VMLGroupElement.prototype.add=function(t){this.node.appendChild(t.node)},jvm.VMLCanvasElement=function(t,e,a){this.classPrefix="VML",jvm.VMLCanvasElement.parentClass.call(this,"group"),jvm.AbstractCanvasElement.apply(this,arguments),this.node.style.position="absolute"},jvm.inherits(jvm.VMLCanvasElement,jvm.VMLElement),jvm.mixin(jvm.VMLCanvasElement,jvm.AbstractCanvasElement),jvm.VMLCanvasElement.prototype.setSize=function(t,e){var a,s,i,n;if(this.width=t,this.height=e,this.node.style.width=t+"px",this.node.style.height=e+"px",this.node.coordsize=t+" "+e,this.node.coordorigin="0 0",this.rootElement){for(i=0,n=(a=this.rootElement.node.getElementsByTagName("shape")).length;i"),this.body.addClass("jvectormap-legend"),this.params.cssClass&&this.body.addClass(this.params.cssClass),(t.vertical?this.map.legendCntVertical:this.map.legendCntHorizontal).append(this.body),this.render()},jvm.Legend.prototype.render=function(){var t,e,a,s,i=this.series.scale.getTicks(),n=jvm.$("
").addClass("jvectormap-legend-inner");for(this.body.html(""),this.params.title&&this.body.append(jvm.$("
").addClass("jvectormap-legend-title").html(this.params.title)),this.body.append(n),t=0;t").addClass("jvectormap-legend-tick"),a=jvm.$("
").addClass("jvectormap-legend-tick-sample"),this.series.params.attribute){case"fill":jvm.isImageUrl(i[t].value)?a.css("background","url("+i[t].value+")"):a.css("background",i[t].value);break;case"stroke":a.css("background",i[t].value);break;case"image":a.css("background","url("+i[t].value+") no-repeat center center");break;case"r":jvm.$("
").css({"border-radius":i[t].value,border:this.map.params.markerStyle.initial["stroke-width"]+"px "+this.map.params.markerStyle.initial.stroke+" solid",width:2*i[t].value+"px",height:2*i[t].value+"px",background:this.map.params.markerStyle.initial.fill}).appendTo(a)}e.append(a),s=i[t].label,this.params.labelRender&&(s=this.params.labelRender(s)),e.append(jvm.$("
"+s+"
").addClass("jvectormap-legend-tick-text")),n.append(e)}n.append(jvm.$("
").css("clear","both"))},jvm.DataSeries=function(t,e,a){(t=t||{}).attribute=t.attribute||"fill",this.elements=e,this.params=t,this.map=a,t.attributes&&this.setAttributes(t.attributes),jvm.$.isArray(t.scale)?(a="fill"===t.attribute||"stroke"===t.attribute?jvm.ColorScale:jvm.NumericScale,this.scale=new a(t.scale,t.normalizeFunction,t.min,t.max)):t.scale?this.scale=new jvm.OrdinalScale(t.scale):this.scale=new jvm.SimpleScale(t.scale),this.values=t.values||{},this.setValues(this.values),this.params.legend&&(this.legend=new jvm.Legend($.extend({map:this.map,series:this},this.params.legend)))},jvm.DataSeries.prototype={setAttributes:function(t,e){var a,s=t;if("string"==typeof t)this.elements[t]&&this.elements[t].setStyle(this.params.attribute,e);else for(a in s)this.elements[a]&&this.elements[a].element.setStyle(this.params.attribute,s[a])},setValues:function(t){var e,a,s=-Number.MAX_VALUE,i=Number.MAX_VALUE,n={};if(this.scale instanceof jvm.OrdinalScale||this.scale instanceof jvm.SimpleScale)for(a in t)t[a]?n[a]=this.scale.getValue(t[a]):n[a]=this.elements[a].element.style.initial[this.params.attribute];else{if(void 0===this.params.min||void 0===this.params.max)for(a in t)s<(e=parseFloat(t[a]))&&(s=e),e").addClass("jvectormap-container"),this.params.container&&this.params.container.append(this.container),this.container.data("mapObject",this),this.defaultWidth=this.mapData.width,this.defaultHeight=this.mapData.height,this.setBackgroundColor(this.params.backgroundColor),this.onResize=function(){a.updateSize()},jvm.$(window).resize(this.onResize),jvm.Map.apiEvents)this.params[e]&&this.container.bind(jvm.Map.apiEvents[e]+".jvectormap",this.params[e]);this.canvas=new jvm.VectorCanvas(this.container[0],this.width,this.height),("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&this.params.bindTouchEvents&&this.bindContainerTouchEvents(),this.bindContainerEvents(),this.bindElementEvents(),this.createTip(),this.params.zoomButtons&&this.bindZoomButtons(),this.createRegions(),this.createMarkers(this.params.markers||{}),this.updateSize(),this.params.focusOn&&("string"==typeof this.params.focusOn?this.params.focusOn={region:this.params.focusOn}:jvm.$.isArray(this.params.focusOn)&&(this.params.focusOn={regions:this.params.focusOn}),this.setFocus(this.params.focusOn)),this.params.selectedRegions&&this.setSelectedRegions(this.params.selectedRegions),this.params.selectedMarkers&&this.setSelectedMarkers(this.params.selectedMarkers),this.legendCntHorizontal=jvm.$("
").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-h"),this.legendCntVertical=jvm.$("
").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-v"),this.container.append(this.legendCntHorizontal),this.container.append(this.legendCntVertical),this.params.series&&this.createSeries()},jvm.Map.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,setBackgroundColor:function(t){this.container.css("background-color",t)},resize:function(){var t=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/t,this.transX*=this.baseScale/t,this.transY*=this.baseScale/t},updateSize:function(){this.width=this.container.width(),this.height=this.container.height(),this.resize(),this.canvas.setSize(this.width,this.height),this.applyTransform()},reset:function(){var t,e;for(t in this.series)for(e=0;ee?this.transY=e:this.transYt?this.transX=t:this.transXs[1].pageX?s[1].pageX+(s[0].pageX-s[1].pageX)/2:s[0].pageX+(s[1].pageX-s[0].pageX)/2,l=s[0].pageY>s[1].pageY?s[1].pageY+(s[0].pageY-s[1].pageY)/2:s[0].pageY+(s[1].pageY-s[0].pageY)/2,o-=t.left,l-=t.top,i=c.scale,n=Math.sqrt(Math.pow(s[0].pageX-s[1].pageX,2)+Math.pow(s[0].pageY-s[1].pageY,2)))),m=s.length}var i,n,r,h,o,l,m,c=this;jvm.$(this.container).bind("touchstart",t),jvm.$(this.container).bind("touchmove",t)},bindElementEvents:function(){var i,h=this;this.container.mousemove(function(){i=!0}),this.container.delegate("[class~='jvectormap-element']","mouseover mouseout",function(t){var e=-1===(jvm.$(this).attr("class").baseVal||jvm.$(this).attr("class")).indexOf("jvectormap-region")?"marker":"region",a="region"==e?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),s=("region"==e?h.regions:h.markers)[a].element,i="region"==e?h.mapData.paths[a].name:h.markers[a].config.name||"",n=jvm.$.Event(e+"TipShow.jvectormap"),r=jvm.$.Event(e+"Over.jvectormap");"mouseover"==t.type?(h.container.trigger(r,[a]),r.isDefaultPrevented()||s.setHovered(!0),h.tip.text(i),h.container.trigger(n,[h.tip,a]),n.isDefaultPrevented()||(h.tip.show(),h.tipWidth=h.tip.width(),h.tipHeight=h.tip.height())):(s.setHovered(!1),h.tip.hide(),h.container.trigger(e+"Out.jvectormap",[a]))}),this.container.delegate("[class~='jvectormap-element']","mousedown",function(){i=!1}),this.container.delegate("[class~='jvectormap-element']","mouseup",function(){var t=-1===(jvm.$(this).attr("class").baseVal?jvm.$(this).attr("class").baseVal:jvm.$(this).attr("class")).indexOf("jvectormap-region")?"marker":"region",e="region"==t?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),a=jvm.$.Event(t+"Click.jvectormap"),s=("region"==t?h.regions:h.markers)[e].element;i||(h.container.trigger(a,[e]),("region"==t&&h.params.regionsSelectable||"marker"==t&&h.params.markersSelectable)&&!a.isDefaultPrevented()&&(h.params[t+"sSelectableOne"]&&h.clearSelected(t+"s"),s.setSelected(!s.isSelected)))})},bindZoomButtons:function(){var t=this;jvm.$("
").addClass("jvectormap-zoomin").text("+").appendTo(this.container),jvm.$("
").addClass("jvectormap-zoomout").html("−").appendTo(this.container),this.container.find(".jvectormap-zoomin").click(function(){t.setScale(t.scale*t.params.zoomStep,t.width/2,t.height/2,!1,t.params.zoomAnimate)}),this.container.find(".jvectormap-zoomout").click(function(){t.setScale(t.scale/t.params.zoomStep,t.width/2,t.height/2,!1,t.params.zoomAnimate)})},createTip:function(){var s=this;this.tip=jvm.$("
").addClass("jvectormap-tip").appendTo(jvm.$("body")),this.container.mousemove(function(t){var e=t.pageX-15-s.tipWidth,a=t.pageY-15-s.tipHeight;e<5&&(e=t.pageX+15),a<5&&(a=t.pageY+15),s.tip.css({left:e,top:a})})},setScale:function(t,e,a,s,i){var n,r,h,o,l,m,c,p,d,v=jvm.$.Event("zoom.jvectormap"),u=this,g=0,f=Math.abs(Math.round(60*(t-this.scale)/Math.max(t,this.scale))),j=new jvm.$.Deferred;return t>this.params.zoomMax*this.baseScale?t=this.params.zoomMax*this.baseScale:ts[0].x&&is[0].y&&n(a=s[i].bbox)[0].x&&ta[0].y&&e").addClass("jvectormap-goback").text("Back").appendTo(this.params.container),this.backButton.hide(),this.backButton.click(function(){e.goBack()}),this.spinner=jvm.$("
").addClass("jvectormap-spinner").appendTo(this.params.container),this.spinner.hide()},jvm.MultiMap.prototype={addMap:function(t,e){var a=jvm.$("
").css({width:"100%",height:"100%"});return this.params.container.append(a),this.maps[t]=new jvm.Map(jvm.$.extend(e,{container:a})),this.params.maxLevel>e.multiMapLevel&&this.maps[t].container.on("regionClick.jvectormap",{scope:this},function(t,e){var a=t.data.scope,t=a.params.mapNameByCode(e,a);a.drillDownPromise&&"pending"===a.drillDownPromise.state()||a.drillDown(t,e)}),this.maps[t]},downloadMap:function(t){var e=this,a=jvm.$.Deferred();return this.mapsLoaded[t]?a.resolve():jvm.$.get(this.params.mapUrlByCode(t,this)).then(function(){e.mapsLoaded[t]=!0,a.resolve()},function(){a.reject()}),a},drillDown:function(t,e){var a=this.history[this.history.length-1],s=this,i=a.setFocus({region:e,animate:!0}),n=this.downloadMap(e);i.then(function(){"pending"===n.state()&&s.spinner.show()}),n.always(function(){s.spinner.hide()}),this.drillDownPromise=jvm.$.when(n,i),this.drillDownPromise.then(function(){a.params.container.hide(),s.maps[t]?s.maps[t].params.container.show():s.addMap(t,{map:t,multiMapLevel:a.params.multiMapLevel+1}),s.history.push(s.maps[t]),s.backButton.show()})},goBack:function(){var t=this.history.pop(),e=this.history[this.history.length-1],a=this;t.setFocus({scale:1,x:.5,y:.5,animate:!0}).then(function(){t.params.container.hide(),e.params.container.show(),e.updateSize(),1===a.history.length&&a.backButton.hide(),e.setFocus({scale:1,x:.5,y:.5,animate:!0})})}},jvm.MultiMap.defaultParams={mapNameByCode:function(t,e){return t.toLowerCase()+"_"+e.defaultProjection+"_en"},mapUrlByCode:function(t,e){return"jquery-jvectormap-data-"+t.toLowerCase()+"-"+e.defaultProjection+"-en.js"}}; +//# sourceMappingURL=jquery-jvectormap.min.js.map diff --git a/dasena-web/public/assets/admin/vendors/js/jquery-jvectormap.min.js.map b/dasena-web/public/assets/admin/vendors/js/jquery-jvectormap.min.js.map new file mode 100644 index 0000000..b83ec92 --- /dev/null +++ b/dasena-web/public/assets/admin/vendors/js/jquery-jvectormap.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"jquery-jvectormap.min.js","sources":["jquery-jvectormap.min.js"],"sourcesContent":["!(function (t) {\r\n\tvar s = { set: { colors: 1, values: 1, backgroundColor: 1, scaleColors: 1, normalizeFunction: 1, focus: 1 }, get: { selectedRegions: 1, selectedMarkers: 1, mapObject: 1, regionName: 1 } };\r\n\tt.fn.vectorMap = function (t) {\r\n\t\tvar e,\r\n\t\t\ta = this.children(\".jvectormap-container\").data(\"mapObject\");\r\n\t\tif (\"addMap\" === t) jvm.Map.maps[arguments[1]] = arguments[2];\r\n\t\telse {\r\n\t\t\tif ((\"set\" === t || \"get\" === t) && s[t][arguments[1]]) return (e = arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)), a[t + e].apply(a, Array.prototype.slice.call(arguments, 2));\r\n\t\t\t((t = t || {}).container = this), (a = new jvm.Map(t));\r\n\t\t}\r\n\t\treturn this;\r\n\t};\r\n})(jQuery),\r\n\t(function (t) {\r\n\t\t\"function\" == typeof define && define.amd ? define([\"jquery\"], t) : \"object\" == typeof exports ? (module.exports = t) : t(jQuery);\r\n\t})(function (h) {\r\n\t\tvar o,\r\n\t\t\tl,\r\n\t\t\tt = [\"wheel\", \"mousewheel\", \"DOMMouseScroll\", \"MozMousePixelScroll\"],\r\n\t\t\te = \"onwheel\" in document || 9 <= document.documentMode ? [\"wheel\"] : [\"mousewheel\", \"DomMouseScroll\", \"MozMousePixelScroll\"],\r\n\t\t\tm = Array.prototype.slice;\r\n\t\tif (h.event.fixHooks) for (var a = t.length; a; ) h.event.fixHooks[t[--a]] = h.event.mouseHooks;\r\n\t\tvar s = (h.event.special.mousewheel = {\r\n\t\t\tversion: \"3.1.9\",\r\n\t\t\tsetup: function () {\r\n\t\t\t\tif (this.addEventListener) for (var t = e.length; t; ) this.addEventListener(e[--t], i, !1);\r\n\t\t\t\telse this.onmousewheel = i;\r\n\t\t\t\th.data(this, \"mousewheel-line-height\", s.getLineHeight(this)), h.data(this, \"mousewheel-page-height\", s.getPageHeight(this));\r\n\t\t\t},\r\n\t\t\tteardown: function () {\r\n\t\t\t\tif (this.removeEventListener) for (var t = e.length; t; ) this.removeEventListener(e[--t], i, !1);\r\n\t\t\t\telse this.onmousewheel = null;\r\n\t\t\t},\r\n\t\t\tgetLineHeight: function (t) {\r\n\t\t\t\treturn parseInt(h(t)[\"offsetParent\" in h.fn ? \"offsetParent\" : \"parent\"]().css(\"fontSize\"), 10);\r\n\t\t\t},\r\n\t\t\tgetPageHeight: function (t) {\r\n\t\t\t\treturn h(t).height();\r\n\t\t\t},\r\n\t\t\tsettings: { adjustOldDeltas: !0 },\r\n\t\t});\r\n\t\tfunction i(t) {\r\n\t\t\tvar e,\r\n\t\t\t\ta = t || window.event,\r\n\t\t\t\ts = m.call(arguments, 1),\r\n\t\t\t\ti = 0,\r\n\t\t\t\tn = 0,\r\n\t\t\t\tr = 0;\r\n\t\t\tif ((((t = h.event.fix(a)).type = \"mousewheel\"), \"detail\" in a && (r = -1 * a.detail), \"wheelDelta\" in a && (r = a.wheelDelta), \"wheelDeltaY\" in a && (r = a.wheelDeltaY), \"wheelDeltaX\" in a && (n = -1 * a.wheelDeltaX), \"axis\" in a && a.axis === a.HORIZONTAL_AXIS && ((n = -1 * r), (r = 0)), (i = 0 === r ? n : r), \"deltaY\" in a && (i = r = -1 * a.deltaY), \"deltaX\" in a && ((n = a.deltaX), 0 === r && (i = -1 * n)), 0 !== r || 0 !== n)) return 1 === a.deltaMode ? ((i *= e = h.data(this, \"mousewheel-line-height\")), (r *= e), (n *= e)) : 2 === a.deltaMode && ((i *= e = h.data(this, \"mousewheel-page-height\")), (r *= e), (n *= e)), (e = Math.max(Math.abs(r), Math.abs(n))), (!l || e < l) && p(a, (l = e)) && (l /= 40), p(a, e) && ((i /= 40), (n /= 40), (r /= 40)), (i = Math[1 <= i ? \"floor\" : \"ceil\"](i / l)), (n = Math[1 <= n ? \"floor\" : \"ceil\"](n / l)), (r = Math[1 <= r ? \"floor\" : \"ceil\"](r / l)), (t.deltaX = n), (t.deltaY = r), (t.deltaFactor = l), (t.deltaMode = 0), s.unshift(t, i, n, r), o && clearTimeout(o), (o = setTimeout(c, 200)), (h.event.dispatch || h.event.handle).apply(this, s);\r\n\t\t}\r\n\t\tfunction c() {\r\n\t\t\tl = null;\r\n\t\t}\r\n\t\tfunction p(t, e) {\r\n\t\t\treturn s.settings.adjustOldDeltas && \"mousewheel\" === t.type && e % 120 == 0;\r\n\t\t}\r\n\t\th.fn.extend({\r\n\t\t\tmousewheel: function (t) {\r\n\t\t\t\treturn t ? this.bind(\"mousewheel\", t) : this.trigger(\"mousewheel\");\r\n\t\t\t},\r\n\t\t\tunmousewheel: function (t) {\r\n\t\t\t\treturn this.unbind(\"mousewheel\", t);\r\n\t\t\t},\r\n\t\t});\r\n\t});\r\nvar jvm = {\r\n\tinherits: function (t, e) {\r\n\t\tfunction a() {}\r\n\t\t(a.prototype = e.prototype), (t.prototype = new a()), ((t.prototype.constructor = t).parentClass = e);\r\n\t},\r\n\tmixin: function (t, e) {\r\n\t\tfor (var a in e.prototype) e.prototype.hasOwnProperty(a) && (t.prototype[a] = e.prototype[a]);\r\n\t},\r\n\tmin: function (t) {\r\n\t\tvar e,\r\n\t\t\ta = Number.MAX_VALUE;\r\n\t\tif (t instanceof Array) for (e = 0; e < t.length; e++) t[e] < a && (a = t[e]);\r\n\t\telse for (e in t) t[e] < a && (a = t[e]);\r\n\t\treturn a;\r\n\t},\r\n\tmax: function (t) {\r\n\t\tvar e,\r\n\t\t\ta = Number.MIN_VALUE;\r\n\t\tif (t instanceof Array) for (e = 0; e < t.length; e++) t[e] > a && (a = t[e]);\r\n\t\telse for (e in t) t[e] > a && (a = t[e]);\r\n\t\treturn a;\r\n\t},\r\n\tkeys: function (t) {\r\n\t\tvar e,\r\n\t\t\ta = [];\r\n\t\tfor (e in t) a.push(e);\r\n\t\treturn a;\r\n\t},\r\n\tvalues: function (t) {\r\n\t\tfor (var e, a = [], s = 0; s < arguments.length; s++) for (e in (t = arguments[s])) a.push(t[e]);\r\n\t\treturn a;\r\n\t},\r\n\twhenImageLoaded: function (t) {\r\n\t\tvar e = new jvm.$.Deferred(),\r\n\t\t\ta = jvm.$(\"\");\r\n\t\treturn (\r\n\t\t\ta\r\n\t\t\t\t.error(function () {\r\n\t\t\t\t\te.reject();\r\n\t\t\t\t})\r\n\t\t\t\t.load(function () {\r\n\t\t\t\t\te.resolve(a);\r\n\t\t\t\t}),\r\n\t\t\ta.attr(\"src\", t),\r\n\t\t\te\r\n\t\t);\r\n\t},\r\n\tisImageUrl: function (t) {\r\n\t\treturn /\\.\\w{3,4}$/.test(t);\r\n\t},\r\n};\r\n(jvm.$ = jQuery),\r\n\tArray.prototype.indexOf ||\r\n\t\t(Array.prototype.indexOf = function (t, e) {\r\n\t\t\tvar a;\r\n\t\t\tif (null == this) throw new TypeError('\"this\" is null or not defined');\r\n\t\t\tvar s = Object(this),\r\n\t\t\t\ti = s.length >>> 0;\r\n\t\t\tif (0 == i) return -1;\r\n\t\t\tif (((e = +e || 0), i <= (e = Math.abs(e) === 1 / 0 ? 0 : e))) return -1;\r\n\t\t\tfor (a = Math.max(0 <= e ? e : i - Math.abs(e), 0); a < i; ) {\r\n\t\t\t\tif (a in s && s[a] === t) return a;\r\n\t\t\t\ta++;\r\n\t\t\t}\r\n\t\t\treturn -1;\r\n\t\t}),\r\n\t(jvm.AbstractElement = function (t, e) {\r\n\t\t(this.node = this.createElement(t)), (this.name = t), (this.properties = {}), e && this.set(e);\r\n\t}),\r\n\t(jvm.AbstractElement.prototype.set = function (t, e) {\r\n\t\tif (\"object\" == typeof t) for (var a in t) (this.properties[a] = t[a]), this.applyAttr(a, t[a]);\r\n\t\telse (this.properties[t] = e), this.applyAttr(t, e);\r\n\t}),\r\n\t(jvm.AbstractElement.prototype.get = function (t) {\r\n\t\treturn this.properties[t];\r\n\t}),\r\n\t(jvm.AbstractElement.prototype.applyAttr = function (t, e) {\r\n\t\tthis.node.setAttribute(t, e);\r\n\t}),\r\n\t(jvm.AbstractElement.prototype.remove = function () {\r\n\t\tjvm.$(this.node).remove();\r\n\t}),\r\n\t(jvm.AbstractCanvasElement = function (t, e, a) {\r\n\t\t(this.container = t), this.setSize(e, a), (this.rootElement = new jvm[this.classPrefix + \"GroupElement\"]()), this.node.appendChild(this.rootElement.node), this.container.appendChild(this.node);\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.add = function (t, e) {\r\n\t\t(e = e || this.rootElement).add(t), (t.canvas = this);\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.addPath = function (t, e, a) {\r\n\t\treturn (e = new jvm[this.classPrefix + \"PathElement\"](t, e)), this.add(e, a), e;\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.addCircle = function (t, e, a) {\r\n\t\treturn (e = new jvm[this.classPrefix + \"CircleElement\"](t, e)), this.add(e, a), e;\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.addImage = function (t, e, a) {\r\n\t\treturn (e = new jvm[this.classPrefix + \"ImageElement\"](t, e)), this.add(e, a), e;\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.addText = function (t, e, a) {\r\n\t\treturn (e = new jvm[this.classPrefix + \"TextElement\"](t, e)), this.add(e, a), e;\r\n\t}),\r\n\t(jvm.AbstractCanvasElement.prototype.addGroup = function (t) {\r\n\t\tvar e = new jvm[this.classPrefix + \"GroupElement\"]();\r\n\t\treturn (t || this).node.appendChild(e.node), (e.canvas = this), e;\r\n\t}),\r\n\t(jvm.AbstractShapeElement = function (t, e, a) {\r\n\t\t(this.style = a || {}), (this.style.current = this.style.current || {}), (this.isHovered = !1), (this.isSelected = !1), this.updateStyle();\r\n\t}),\r\n\t(jvm.AbstractShapeElement.prototype.setStyle = function (t, e) {\r\n\t\tvar a = {};\r\n\t\t\"object\" == typeof t ? (a = t) : (a[t] = e), jvm.$.extend(this.style.current, a), this.updateStyle();\r\n\t}),\r\n\t(jvm.AbstractShapeElement.prototype.updateStyle = function () {\r\n\t\tvar t = {};\r\n\t\tjvm.AbstractShapeElement.mergeStyles(t, this.style.initial), jvm.AbstractShapeElement.mergeStyles(t, this.style.current), this.isHovered && jvm.AbstractShapeElement.mergeStyles(t, this.style.hover), this.isSelected && (jvm.AbstractShapeElement.mergeStyles(t, this.style.selected), this.isHovered && jvm.AbstractShapeElement.mergeStyles(t, this.style.selectedHover)), this.set(t);\r\n\t}),\r\n\t(jvm.AbstractShapeElement.mergeStyles = function (t, e) {\r\n\t\tfor (var a in (e = e || {})) null === e[a] ? delete t[a] : (t[a] = e[a]);\r\n\t}),\r\n\t(jvm.SVGElement = function (t, e) {\r\n\t\tjvm.SVGElement.parentClass.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGElement, jvm.AbstractElement),\r\n\t(jvm.SVGElement.svgns = \"http://www.w3.org/2000/svg\"),\r\n\t(jvm.SVGElement.prototype.createElement = function (t) {\r\n\t\treturn document.createElementNS(jvm.SVGElement.svgns, t);\r\n\t}),\r\n\t(jvm.SVGElement.prototype.addClass = function (t) {\r\n\t\tthis.node.setAttribute(\"class\", t);\r\n\t}),\r\n\t(jvm.SVGElement.prototype.getElementCtr = function (t) {\r\n\t\treturn jvm[\"SVG\" + t];\r\n\t}),\r\n\t(jvm.SVGElement.prototype.getBBox = function () {\r\n\t\treturn this.node.getBBox();\r\n\t}),\r\n\t(jvm.SVGGroupElement = function () {\r\n\t\tjvm.SVGGroupElement.parentClass.call(this, \"g\");\r\n\t}),\r\n\tjvm.inherits(jvm.SVGGroupElement, jvm.SVGElement),\r\n\t(jvm.SVGGroupElement.prototype.add = function (t) {\r\n\t\tthis.node.appendChild(t.node);\r\n\t}),\r\n\t(jvm.SVGCanvasElement = function (t, e, a) {\r\n\t\t(this.classPrefix = \"SVG\"), jvm.SVGCanvasElement.parentClass.call(this, \"svg\"), (this.defsElement = new jvm.SVGElement(\"defs\")), this.node.appendChild(this.defsElement.node), jvm.AbstractCanvasElement.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGCanvasElement, jvm.SVGElement),\r\n\tjvm.mixin(jvm.SVGCanvasElement, jvm.AbstractCanvasElement),\r\n\t(jvm.SVGCanvasElement.prototype.setSize = function (t, e) {\r\n\t\t(this.width = t), (this.height = e), this.node.setAttribute(\"width\", t), this.node.setAttribute(\"height\", e);\r\n\t}),\r\n\t(jvm.SVGCanvasElement.prototype.applyTransformParams = function (t, e, a) {\r\n\t\t(this.scale = t), (this.transX = e), (this.transY = a), this.rootElement.node.setAttribute(\"transform\", \"scale(\" + t + \") translate(\" + e + \", \" + a + \")\");\r\n\t}),\r\n\t(jvm.SVGShapeElement = function (t, e, a) {\r\n\t\tjvm.SVGShapeElement.parentClass.call(this, t, e), jvm.AbstractShapeElement.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGShapeElement, jvm.SVGElement),\r\n\tjvm.mixin(jvm.SVGShapeElement, jvm.AbstractShapeElement),\r\n\t(jvm.SVGShapeElement.prototype.applyAttr = function (t, e) {\r\n\t\tvar a,\r\n\t\t\ts,\r\n\t\t\ti = this;\r\n\t\t\"fill\" === t && jvm.isImageUrl(e)\r\n\t\t\t? jvm.SVGShapeElement.images[e]\r\n\t\t\t\t? this.applyAttr(\"fill\", \"url(#image\" + jvm.SVGShapeElement.images[e] + \")\")\r\n\t\t\t\t: jvm.whenImageLoaded(e).then(function (t) {\r\n\t\t\t\t\t\t(s = new jvm.SVGElement(\"image\")).node.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", e), s.applyAttr(\"x\", \"0\"), s.applyAttr(\"y\", \"0\"), s.applyAttr(\"width\", t[0].width), s.applyAttr(\"height\", t[0].height), (a = new jvm.SVGElement(\"pattern\")).applyAttr(\"id\", \"image\" + jvm.SVGShapeElement.imageCounter), a.applyAttr(\"x\", 0), a.applyAttr(\"y\", 0), a.applyAttr(\"width\", t[0].width / 2), a.applyAttr(\"height\", t[0].height / 2), a.applyAttr(\"viewBox\", \"0 0 \" + t[0].width + \" \" + t[0].height), a.applyAttr(\"patternUnits\", \"userSpaceOnUse\"), a.node.appendChild(s.node), i.canvas.defsElement.node.appendChild(a.node), (jvm.SVGShapeElement.images[e] = jvm.SVGShapeElement.imageCounter++), i.applyAttr(\"fill\", \"url(#image\" + jvm.SVGShapeElement.images[e] + \")\");\r\n\t\t\t\t })\r\n\t\t\t: jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);\r\n\t}),\r\n\t(jvm.SVGShapeElement.imageCounter = 1),\r\n\t(jvm.SVGShapeElement.images = {}),\r\n\t(jvm.SVGPathElement = function (t, e) {\r\n\t\tjvm.SVGPathElement.parentClass.call(this, \"path\", t, e), this.node.setAttribute(\"fill-rule\", \"evenodd\");\r\n\t}),\r\n\tjvm.inherits(jvm.SVGPathElement, jvm.SVGShapeElement),\r\n\t(jvm.SVGCircleElement = function (t, e) {\r\n\t\tjvm.SVGCircleElement.parentClass.call(this, \"circle\", t, e);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGCircleElement, jvm.SVGShapeElement),\r\n\t(jvm.SVGImageElement = function (t, e) {\r\n\t\tjvm.SVGImageElement.parentClass.call(this, \"image\", t, e);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGImageElement, jvm.SVGShapeElement),\r\n\t(jvm.SVGImageElement.prototype.applyAttr = function (t, e) {\r\n\t\tvar a = this;\r\n\t\t\"image\" == t\r\n\t\t\t? jvm.whenImageLoaded(e).then(function (t) {\r\n\t\t\t\t\ta.node.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", e), (a.width = t[0].width), (a.height = t[0].height), a.applyAttr(\"width\", a.width), a.applyAttr(\"height\", a.height), a.applyAttr(\"x\", a.cx - a.width / 2), a.applyAttr(\"y\", a.cy - a.height / 2), jvm.$(a.node).trigger(\"imageloaded\", [t]);\r\n\t\t\t })\r\n\t\t\t: \"cx\" == t\r\n\t\t\t? ((this.cx = e), this.width && this.applyAttr(\"x\", e - this.width / 2))\r\n\t\t\t: \"cy\" == t\r\n\t\t\t? ((this.cy = e), this.height && this.applyAttr(\"y\", e - this.height / 2))\r\n\t\t\t: jvm.SVGImageElement.parentClass.prototype.applyAttr.apply(this, arguments);\r\n\t}),\r\n\t(jvm.SVGTextElement = function (t, e) {\r\n\t\tjvm.SVGTextElement.parentClass.call(this, \"text\", t, e);\r\n\t}),\r\n\tjvm.inherits(jvm.SVGTextElement, jvm.SVGShapeElement),\r\n\t(jvm.SVGTextElement.prototype.applyAttr = function (t, e) {\r\n\t\t\"text\" === t ? (this.node.textContent = e) : jvm.SVGTextElement.parentClass.prototype.applyAttr.apply(this, arguments);\r\n\t}),\r\n\t(jvm.VMLElement = function (t, e) {\r\n\t\tjvm.VMLElement.VMLInitialized || jvm.VMLElement.initializeVML(), jvm.VMLElement.parentClass.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.VMLElement, jvm.AbstractElement),\r\n\t(jvm.VMLElement.VMLInitialized = !1),\r\n\t(jvm.VMLElement.initializeVML = function () {\r\n\t\ttry {\r\n\t\t\tdocument.namespaces.rvml || document.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\"),\r\n\t\t\t\t(jvm.VMLElement.prototype.createElement = function (t) {\r\n\t\t\t\t\treturn document.createElement(\"');\r\n\t\t\t\t});\r\n\t\t} catch (t) {\r\n\t\t\tjvm.VMLElement.prototype.createElement = function (t) {\r\n\t\t\t\treturn document.createElement(\"<\" + t + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\r\n\t\t\t};\r\n\t\t}\r\n\t\tdocument.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\"), (jvm.VMLElement.VMLInitialized = !0);\r\n\t}),\r\n\t(jvm.VMLElement.prototype.getElementCtr = function (t) {\r\n\t\treturn jvm[\"VML\" + t];\r\n\t}),\r\n\t(jvm.VMLElement.prototype.addClass = function (t) {\r\n\t\tjvm.$(this.node).addClass(t);\r\n\t}),\r\n\t(jvm.VMLElement.prototype.applyAttr = function (t, e) {\r\n\t\tthis.node[t] = e;\r\n\t}),\r\n\t(jvm.VMLElement.prototype.getBBox = function () {\r\n\t\tvar t = jvm.$(this.node);\r\n\t\treturn { x: t.position().left / this.canvas.scale, y: t.position().top / this.canvas.scale, width: t.width() / this.canvas.scale, height: t.height() / this.canvas.scale };\r\n\t}),\r\n\t(jvm.VMLGroupElement = function () {\r\n\t\tjvm.VMLGroupElement.parentClass.call(this, \"group\"), (this.node.style.left = \"0px\"), (this.node.style.top = \"0px\"), (this.node.coordorigin = \"0 0\");\r\n\t}),\r\n\tjvm.inherits(jvm.VMLGroupElement, jvm.VMLElement),\r\n\t(jvm.VMLGroupElement.prototype.add = function (t) {\r\n\t\tthis.node.appendChild(t.node);\r\n\t}),\r\n\t(jvm.VMLCanvasElement = function (t, e, a) {\r\n\t\t(this.classPrefix = \"VML\"), jvm.VMLCanvasElement.parentClass.call(this, \"group\"), jvm.AbstractCanvasElement.apply(this, arguments), (this.node.style.position = \"absolute\");\r\n\t}),\r\n\tjvm.inherits(jvm.VMLCanvasElement, jvm.VMLElement),\r\n\tjvm.mixin(jvm.VMLCanvasElement, jvm.AbstractCanvasElement),\r\n\t(jvm.VMLCanvasElement.prototype.setSize = function (t, e) {\r\n\t\tvar a, s, i, n;\r\n\t\tif (((this.width = t), (this.height = e), (this.node.style.width = t + \"px\"), (this.node.style.height = e + \"px\"), (this.node.coordsize = t + \" \" + e), (this.node.coordorigin = \"0 0\"), this.rootElement)) {\r\n\t\t\tfor (i = 0, n = (a = this.rootElement.node.getElementsByTagName(\"shape\")).length; i < n; i++) (a[i].coordsize = t + \" \" + e), (a[i].style.width = t + \"px\"), (a[i].style.height = e + \"px\");\r\n\t\t\tfor (i = 0, n = (s = this.node.getElementsByTagName(\"group\")).length; i < n; i++) (s[i].coordsize = t + \" \" + e), (s[i].style.width = t + \"px\"), (s[i].style.height = e + \"px\");\r\n\t\t}\r\n\t}),\r\n\t(jvm.VMLCanvasElement.prototype.applyTransformParams = function (t, e, a) {\r\n\t\t(this.scale = t), (this.transX = e), (this.transY = a), (this.rootElement.node.coordorigin = this.width - e - this.width / 100 + \",\" + (this.height - a - this.height / 100)), (this.rootElement.node.coordsize = this.width / t + \",\" + this.height / t);\r\n\t}),\r\n\t(jvm.VMLShapeElement = function (t, e) {\r\n\t\tjvm.VMLShapeElement.parentClass.call(this, t, e), (this.fillElement = new jvm.VMLElement(\"fill\")), (this.strokeElement = new jvm.VMLElement(\"stroke\")), this.node.appendChild(this.fillElement.node), this.node.appendChild(this.strokeElement.node), (this.node.stroked = !1), jvm.AbstractShapeElement.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.VMLShapeElement, jvm.VMLElement),\r\n\tjvm.mixin(jvm.VMLShapeElement, jvm.AbstractShapeElement),\r\n\t(jvm.VMLShapeElement.prototype.applyAttr = function (t, e) {\r\n\t\tswitch (t) {\r\n\t\t\tcase \"fill\":\r\n\t\t\t\tthis.node.fillcolor = e;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"fill-opacity\":\r\n\t\t\t\tthis.fillElement.node.opacity = Math.round(100 * e) + \"%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"stroke\":\r\n\t\t\t\t(this.node.stroked = \"none\" !== e), (this.node.strokecolor = e);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"stroke-opacity\":\r\n\t\t\t\tthis.strokeElement.node.opacity = Math.round(100 * e) + \"%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"stroke-width\":\r\n\t\t\t\t0 === parseInt(e, 10) ? (this.node.stroked = !1) : (this.node.stroked = !0), (this.node.strokeweight = e);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"d\":\r\n\t\t\t\tthis.node.path = jvm.VMLPathElement.pathSvgToVml(e);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tjvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);\r\n\t\t}\r\n\t}),\r\n\t(jvm.VMLPathElement = function (t, e) {\r\n\t\tvar a = new jvm.VMLElement(\"skew\");\r\n\t\tjvm.VMLPathElement.parentClass.call(this, \"shape\", t, e), (this.node.coordorigin = \"0 0\"), (a.node.on = !0), (a.node.matrix = \"0.01,0,0,0.01,0,0\"), (a.node.offset = \"0,0\"), this.node.appendChild(a.node);\r\n\t}),\r\n\tjvm.inherits(jvm.VMLPathElement, jvm.VMLShapeElement),\r\n\t(jvm.VMLPathElement.prototype.applyAttr = function (t, e) {\r\n\t\t\"d\" === t ? (this.node.path = jvm.VMLPathElement.pathSvgToVml(e)) : jvm.VMLShapeElement.prototype.applyAttr.call(this, t, e);\r\n\t}),\r\n\t(jvm.VMLPathElement.pathSvgToVml = function (t) {\r\n\t\tvar r,\r\n\t\t\th,\r\n\t\t\to = 0,\r\n\t\t\tl = 0;\r\n\t\treturn (t = t.replace(/(-?\\d+)e(-?\\d+)/g, \"0\"))\r\n\t\t\t.replace(/([MmLlHhVvCcSs])\\s*((?:-?\\d*(?:\\.\\d+)?\\s*,?\\s*)+)/g, function (t, e, a, s) {\r\n\t\t\t\t(a = a.replace(/(\\d)-/g, \"$1,-\").replace(/^\\s+/g, \"\").replace(/\\s+$/g, \"\").replace(/\\s+/g, \",\").split(\",\"))[0] || a.shift();\r\n\t\t\t\tfor (var i = 0, n = a.length; i < n; i++) a[i] = Math.round(100 * a[i]);\r\n\t\t\t\tswitch (e) {\r\n\t\t\t\t\tcase \"m\":\r\n\t\t\t\t\t\treturn (o += a[0]), (l += a[1]), \"t\" + a.join(\",\");\r\n\t\t\t\t\tcase \"M\":\r\n\t\t\t\t\t\treturn (o = a[0]), (l = a[1]), \"m\" + a.join(\",\");\r\n\t\t\t\t\tcase \"l\":\r\n\t\t\t\t\t\treturn (o += a[0]), (l += a[1]), \"r\" + a.join(\",\");\r\n\t\t\t\t\tcase \"L\":\r\n\t\t\t\t\t\treturn (o = a[0]), (l = a[1]), \"l\" + a.join(\",\");\r\n\t\t\t\t\tcase \"h\":\r\n\t\t\t\t\t\treturn (o += a[0]), \"r\" + a[0] + \",0\";\r\n\t\t\t\t\tcase \"H\":\r\n\t\t\t\t\t\treturn \"l\" + (o = a[0]) + \",\" + l;\r\n\t\t\t\t\tcase \"v\":\r\n\t\t\t\t\t\treturn (l += a[0]), \"r0,\" + a[0];\r\n\t\t\t\t\tcase \"V\":\r\n\t\t\t\t\t\treturn (l = a[0]), \"l\" + o + \",\" + l;\r\n\t\t\t\t\tcase \"c\":\r\n\t\t\t\t\t\treturn (r = o + a[a.length - 4]), (h = l + a[a.length - 3]), (o += a[a.length - 2]), (l += a[a.length - 1]), \"v\" + a.join(\",\");\r\n\t\t\t\t\tcase \"C\":\r\n\t\t\t\t\t\treturn (r = a[a.length - 4]), (h = a[a.length - 3]), (o = a[a.length - 2]), (l = a[a.length - 1]), \"c\" + a.join(\",\");\r\n\t\t\t\t\tcase \"s\":\r\n\t\t\t\t\t\treturn a.unshift(l - h), a.unshift(o - r), (r = o + a[a.length - 4]), (h = l + a[a.length - 3]), (o += a[a.length - 2]), (l += a[a.length - 1]), \"v\" + a.join(\",\");\r\n\t\t\t\t\tcase \"S\":\r\n\t\t\t\t\t\treturn a.unshift(l + l - h), a.unshift(o + o - r), (r = a[a.length - 4]), (h = a[a.length - 3]), (o = a[a.length - 2]), (l = a[a.length - 1]), \"c\" + a.join(\",\");\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\";\r\n\t\t\t})\r\n\t\t\t.replace(/z/g, \"e\");\r\n\t}),\r\n\t(jvm.VMLCircleElement = function (t, e) {\r\n\t\tjvm.VMLCircleElement.parentClass.call(this, \"oval\", t, e);\r\n\t}),\r\n\tjvm.inherits(jvm.VMLCircleElement, jvm.VMLShapeElement),\r\n\t(jvm.VMLCircleElement.prototype.applyAttr = function (t, e) {\r\n\t\tswitch (t) {\r\n\t\t\tcase \"r\":\r\n\t\t\t\t(this.node.style.width = 2 * e + \"px\"), (this.node.style.height = 2 * e + \"px\"), this.applyAttr(\"cx\", this.get(\"cx\") || 0), this.applyAttr(\"cy\", this.get(\"cy\") || 0);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"cx\":\r\n\t\t\t\tif (!e) return;\r\n\t\t\t\tthis.node.style.left = e - (this.get(\"r\") || 0) + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"cy\":\r\n\t\t\t\tif (!e) return;\r\n\t\t\t\tthis.node.style.top = e - (this.get(\"r\") || 0) + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tjvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this, t, e);\r\n\t\t}\r\n\t}),\r\n\t(jvm.VectorCanvas = function (t, e, a) {\r\n\t\treturn (this.mode = window.SVGAngle ? \"svg\" : \"vml\"), \"svg\" == this.mode ? (this.impl = new jvm.SVGCanvasElement(t, e, a)) : (this.impl = new jvm.VMLCanvasElement(t, e, a)), (this.impl.mode = this.mode), this.impl;\r\n\t}),\r\n\t(jvm.SimpleScale = function (t) {\r\n\t\tthis.scale = t;\r\n\t}),\r\n\t(jvm.SimpleScale.prototype.getValue = function (t) {\r\n\t\treturn t;\r\n\t}),\r\n\t(jvm.OrdinalScale = function (t) {\r\n\t\tthis.scale = t;\r\n\t}),\r\n\t(jvm.OrdinalScale.prototype.getValue = function (t) {\r\n\t\treturn this.scale[t];\r\n\t}),\r\n\t(jvm.OrdinalScale.prototype.getTicks = function () {\r\n\t\tvar t,\r\n\t\t\te = [];\r\n\t\tfor (t in this.scale) e.push({ label: t, value: this.scale[t] });\r\n\t\treturn e;\r\n\t}),\r\n\t(jvm.NumericScale = function (t, e, a, s) {\r\n\t\t(this.scale = []), (e = e || \"linear\"), t && this.setScale(t), e && this.setNormalizeFunction(e), void 0 !== a && this.setMin(a), void 0 !== s && this.setMax(s);\r\n\t}),\r\n\t(jvm.NumericScale.prototype = {\r\n\t\tsetMin: function (t) {\r\n\t\t\t(this.clearMinValue = t), \"function\" == typeof this.normalize ? (this.minValue = this.normalize(t)) : (this.minValue = t);\r\n\t\t},\r\n\t\tsetMax: function (t) {\r\n\t\t\t(this.clearMaxValue = t), \"function\" == typeof this.normalize ? (this.maxValue = this.normalize(t)) : (this.maxValue = t);\r\n\t\t},\r\n\t\tsetScale: function (t) {\r\n\t\t\tvar e;\r\n\t\t\tfor (this.scale = [], e = 0; e < t.length; e++) this.scale[e] = [t[e]];\r\n\t\t},\r\n\t\tsetNormalizeFunction: function (t) {\r\n\t\t\t\"polynomial\" === t\r\n\t\t\t\t? (this.normalize = function (t) {\r\n\t\t\t\t\t\treturn Math.pow(t, 0.2);\r\n\t\t\t\t })\r\n\t\t\t\t: \"linear\" === t\r\n\t\t\t\t? delete this.normalize\r\n\t\t\t\t: (this.normalize = t),\r\n\t\t\t\tthis.setMin(this.clearMinValue),\r\n\t\t\t\tthis.setMax(this.clearMaxValue);\r\n\t\t},\r\n\t\tgetValue: function (t) {\r\n\t\t\tvar e,\r\n\t\t\t\ta,\r\n\t\t\t\ts = [],\r\n\t\t\t\ti = 0,\r\n\t\t\t\tn = 0;\r\n\t\t\tfor (\"function\" == typeof this.normalize && (t = this.normalize(t)), n = 0; n < this.scale.length - 1; n++) (e = this.vectorLength(this.vectorSubtract(this.scale[n + 1], this.scale[n]))), s.push(e), (i += e);\r\n\t\t\tfor (a = (this.maxValue - this.minValue) / i, n = 0; n < s.length; n++) s[n] *= a;\r\n\t\t\tfor (n = 0, t -= this.minValue; 0 <= t - s[n]; ) (t -= s[n]), n++;\r\n\t\t\treturn n == this.scale.length - 1 ? this.vectorToNum(this.scale[n]) : this.vectorToNum(this.vectorAdd(this.scale[n], this.vectorMult(this.vectorSubtract(this.scale[n + 1], this.scale[n]), t / s[n])));\r\n\t\t},\r\n\t\tvectorToNum: function (t) {\r\n\t\t\tfor (var e = 0, a = 0; a < t.length; a++) e += Math.round(t[a]) * Math.pow(256, t.length - a - 1);\r\n\t\t\treturn e;\r\n\t\t},\r\n\t\tvectorSubtract: function (t, e) {\r\n\t\t\tfor (var a = [], s = 0; s < t.length; s++) a[s] = t[s] - e[s];\r\n\t\t\treturn a;\r\n\t\t},\r\n\t\tvectorAdd: function (t, e) {\r\n\t\t\tfor (var a = [], s = 0; s < t.length; s++) a[s] = t[s] + e[s];\r\n\t\t\treturn a;\r\n\t\t},\r\n\t\tvectorMult: function (t, e) {\r\n\t\t\tfor (var a = [], s = 0; s < t.length; s++) a[s] = t[s] * e;\r\n\t\t\treturn a;\r\n\t\t},\r\n\t\tvectorLength: function (t) {\r\n\t\t\tfor (var e = 0, a = 0; a < t.length; a++) e += t[a] * t[a];\r\n\t\t\treturn Math.sqrt(e);\r\n\t\t},\r\n\t\tgetTicks: function () {\r\n\t\t\tvar t,\r\n\t\t\t\te,\r\n\t\t\t\ta = [this.clearMinValue, this.clearMaxValue],\r\n\t\t\t\ts = a[1] - a[0],\r\n\t\t\t\ti = Math.pow(10, Math.floor(Math.log(s / 5) / Math.LN10)),\r\n\t\t\t\tn = [];\r\n\t\t\tfor ((s = (5 / s) * i) <= 0.15 ? (i *= 10) : s <= 0.35 ? (i *= 5) : s <= 0.75 && (i *= 2), a[0] = Math.floor(a[0] / i) * i, a[1] = Math.ceil(a[1] / i) * i, t = a[0]; t <= a[1]; ) (e = t == a[0] ? this.clearMinValue : t == a[1] ? this.clearMaxValue : t), n.push({ label: t, value: this.getValue(e) }), (t += i);\r\n\t\t\treturn n;\r\n\t\t},\r\n\t}),\r\n\t(jvm.ColorScale = function (t, e, a, s) {\r\n\t\tjvm.ColorScale.parentClass.apply(this, arguments);\r\n\t}),\r\n\tjvm.inherits(jvm.ColorScale, jvm.NumericScale),\r\n\t(jvm.ColorScale.prototype.setScale = function (t) {\r\n\t\tfor (var e = 0; e < t.length; e++) this.scale[e] = jvm.ColorScale.rgbToArray(t[e]);\r\n\t}),\r\n\t(jvm.ColorScale.prototype.getValue = function (t) {\r\n\t\treturn jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this, t));\r\n\t}),\r\n\t(jvm.ColorScale.arrayToRgb = function (t) {\r\n\t\tfor (var e, a = \"#\", s = 0; s < t.length; s++) a += 1 == (e = t[s].toString(16)).length ? \"0\" + e : e;\r\n\t\treturn a;\r\n\t}),\r\n\t(jvm.ColorScale.numToRgb = function (t) {\r\n\t\tfor (t = t.toString(16); t.length < 6; ) t = \"0\" + t;\r\n\t\treturn \"#\" + t;\r\n\t}),\r\n\t(jvm.ColorScale.rgbToArray = function (t) {\r\n\t\treturn (t = t.substr(1)), [parseInt(t.substr(0, 2), 16), parseInt(t.substr(2, 2), 16), parseInt(t.substr(4, 2), 16)];\r\n\t}),\r\n\t(jvm.Legend = function (t) {\r\n\t\t(this.params = t || {}), (this.map = this.params.map), (this.series = this.params.series), (this.body = jvm.$(\"
\")), this.body.addClass(\"jvectormap-legend\"), this.params.cssClass && this.body.addClass(this.params.cssClass), (t.vertical ? this.map.legendCntVertical : this.map.legendCntHorizontal).append(this.body), this.render();\r\n\t}),\r\n\t(jvm.Legend.prototype.render = function () {\r\n\t\tvar t,\r\n\t\t\te,\r\n\t\t\ta,\r\n\t\t\ts,\r\n\t\t\ti = this.series.scale.getTicks(),\r\n\t\t\tn = jvm.$(\"
\").addClass(\"jvectormap-legend-inner\");\r\n\t\tfor (this.body.html(\"\"), this.params.title && this.body.append(jvm.$(\"
\").addClass(\"jvectormap-legend-title\").html(this.params.title)), this.body.append(n), t = 0; t < i.length; t++) {\r\n\t\t\tswitch (((e = jvm.$(\"
\").addClass(\"jvectormap-legend-tick\")), (a = jvm.$(\"
\").addClass(\"jvectormap-legend-tick-sample\")), this.series.params.attribute)) {\r\n\t\t\t\tcase \"fill\":\r\n\t\t\t\t\tjvm.isImageUrl(i[t].value) ? a.css(\"background\", \"url(\" + i[t].value + \")\") : a.css(\"background\", i[t].value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"stroke\":\r\n\t\t\t\t\ta.css(\"background\", i[t].value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"image\":\r\n\t\t\t\t\ta.css(\"background\", \"url(\" + i[t].value + \") no-repeat center center\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"r\":\r\n\t\t\t\t\tjvm.$(\"
\")\r\n\t\t\t\t\t\t.css({ \"border-radius\": i[t].value, border: this.map.params.markerStyle.initial[\"stroke-width\"] + \"px \" + this.map.params.markerStyle.initial.stroke + \" solid\", width: 2 * i[t].value + \"px\", height: 2 * i[t].value + \"px\", background: this.map.params.markerStyle.initial.fill })\r\n\t\t\t\t\t\t.appendTo(a);\r\n\t\t\t}\r\n\t\t\te.append(a), (s = i[t].label), this.params.labelRender && (s = this.params.labelRender(s)), e.append(jvm.$(\"
\" + s + \"
\").addClass(\"jvectormap-legend-tick-text\")), n.append(e);\r\n\t\t}\r\n\t\tn.append(jvm.$(\"
\").css(\"clear\", \"both\"));\r\n\t}),\r\n\t(jvm.DataSeries = function (t, e, a) {\r\n\t\t((t = t || {}).attribute = t.attribute || \"fill\"), (this.elements = e), (this.params = t), (this.map = a), t.attributes && this.setAttributes(t.attributes), jvm.$.isArray(t.scale) ? ((a = \"fill\" === t.attribute || \"stroke\" === t.attribute ? jvm.ColorScale : jvm.NumericScale), (this.scale = new a(t.scale, t.normalizeFunction, t.min, t.max))) : t.scale ? (this.scale = new jvm.OrdinalScale(t.scale)) : (this.scale = new jvm.SimpleScale(t.scale)), (this.values = t.values || {}), this.setValues(this.values), this.params.legend && (this.legend = new jvm.Legend($.extend({ map: this.map, series: this }, this.params.legend)));\r\n\t}),\r\n\t(jvm.DataSeries.prototype = {\r\n\t\tsetAttributes: function (t, e) {\r\n\t\t\tvar a,\r\n\t\t\t\ts = t;\r\n\t\t\tif (\"string\" == typeof t) this.elements[t] && this.elements[t].setStyle(this.params.attribute, e);\r\n\t\t\telse for (a in s) this.elements[a] && this.elements[a].element.setStyle(this.params.attribute, s[a]);\r\n\t\t},\r\n\t\tsetValues: function (t) {\r\n\t\t\tvar e,\r\n\t\t\t\ta,\r\n\t\t\t\ts = -Number.MAX_VALUE,\r\n\t\t\t\ti = Number.MAX_VALUE,\r\n\t\t\t\tn = {};\r\n\t\t\tif (this.scale instanceof jvm.OrdinalScale || this.scale instanceof jvm.SimpleScale) for (a in t) t[a] ? (n[a] = this.scale.getValue(t[a])) : (n[a] = this.elements[a].element.style.initial[this.params.attribute]);\r\n\t\t\telse {\r\n\t\t\t\tif (void 0 === this.params.min || void 0 === this.params.max) for (a in t) s < (e = parseFloat(t[a])) && (s = e), e < i && (i = e);\r\n\t\t\t\tfor (a in (void 0 === this.params.min ? (this.scale.setMin(i), (this.params.min = i)) : this.scale.setMin(this.params.min), void 0 === this.params.max ? (this.scale.setMax(s), (this.params.max = s)) : this.scale.setMax(this.params.max), t)) \"indexOf\" != a && ((e = parseFloat(t[a])), isNaN(e) ? (n[a] = this.elements[a].element.style.initial[this.params.attribute]) : (n[a] = this.scale.getValue(e)));\r\n\t\t\t}\r\n\t\t\tthis.setAttributes(n), jvm.$.extend(this.values, t);\r\n\t\t},\r\n\t\tclear: function () {\r\n\t\t\tvar t,\r\n\t\t\t\te = {};\r\n\t\t\tfor (t in this.values) this.elements[t] && (e[t] = this.elements[t].element.shape.style.initial[this.params.attribute]);\r\n\t\t\tthis.setAttributes(e), (this.values = {});\r\n\t\t},\r\n\t\tsetScale: function (t) {\r\n\t\t\tthis.scale.setScale(t), this.values && this.setValues(this.values);\r\n\t\t},\r\n\t\tsetNormalizeFunction: function (t) {\r\n\t\t\tthis.scale.setNormalizeFunction(t), this.values && this.setValues(this.values);\r\n\t\t},\r\n\t}),\r\n\t(jvm.Proj = {\r\n\t\tdegRad: 180 / Math.PI,\r\n\t\tradDeg: Math.PI / 180,\r\n\t\tradius: 6381372,\r\n\t\tsgn: function (t) {\r\n\t\t\treturn 0 < t ? 1 : t < 0 ? -1 : t;\r\n\t\t},\r\n\t\tmill: function (t, e, a) {\r\n\t\t\treturn { x: this.radius * (e - a) * this.radDeg, y: (-this.radius * Math.log(Math.tan((45 + 0.4 * t) * this.radDeg))) / 0.8 };\r\n\t\t},\r\n\t\tmill_inv: function (t, e, a) {\r\n\t\t\treturn { lat: (2.5 * Math.atan(Math.exp((0.8 * e) / this.radius)) - (5 * Math.PI) / 8) * this.degRad, lng: (a * this.radDeg + t / this.radius) * this.degRad };\r\n\t\t},\r\n\t\tmerc: function (t, e, a) {\r\n\t\t\treturn { x: this.radius * (e - a) * this.radDeg, y: -this.radius * Math.log(Math.tan(Math.PI / 4 + (t * Math.PI) / 360)) };\r\n\t\t},\r\n\t\tmerc_inv: function (t, e, a) {\r\n\t\t\treturn { lat: (2 * Math.atan(Math.exp(e / this.radius)) - Math.PI / 2) * this.degRad, lng: (a * this.radDeg + t / this.radius) * this.degRad };\r\n\t\t},\r\n\t\taea: function (t, e, a) {\r\n\t\t\tvar s = a * this.radDeg,\r\n\t\t\t\ti = 29.5 * this.radDeg,\r\n\t\t\t\ta = 45.5 * this.radDeg,\r\n\t\t\t\tt = t * this.radDeg,\r\n\t\t\t\te = e * this.radDeg,\r\n\t\t\t\ta = (Math.sin(i) + Math.sin(a)) / 2,\r\n\t\t\t\ti = Math.cos(i) * Math.cos(i) + 2 * a * Math.sin(i),\r\n\t\t\t\ts = a * (e - s),\r\n\t\t\t\tt = Math.sqrt(i - 2 * a * Math.sin(t)) / a,\r\n\t\t\t\ta = Math.sqrt(i - 2 * a * Math.sin(0)) / a;\r\n\t\t\treturn { x: t * Math.sin(s) * this.radius, y: -(a - t * Math.cos(s)) * this.radius };\r\n\t\t},\r\n\t\taea_inv: function (t, e, a) {\r\n\t\t\tvar s = t / this.radius,\r\n\t\t\t\ti = e / this.radius,\r\n\t\t\t\tn = a * this.radDeg,\r\n\t\t\t\tr = 29.5 * this.radDeg,\r\n\t\t\t\tt = 45.5 * this.radDeg,\r\n\t\t\t\te = (Math.sin(r) + Math.sin(t)) / 2,\r\n\t\t\t\ta = Math.cos(r) * Math.cos(r) + 2 * e * Math.sin(r),\r\n\t\t\t\tt = Math.sqrt(a - 2 * e * Math.sin(0)) / e,\r\n\t\t\t\tr = Math.sqrt(s * s + (t - i) * (t - i)),\r\n\t\t\t\ti = Math.atan(s / (t - i));\r\n\t\t\treturn { lat: Math.asin((a - r * r * e * e) / (2 * e)) * this.degRad, lng: (n + i / e) * this.degRad };\r\n\t\t},\r\n\t\tlcc: function (t, e, a) {\r\n\t\t\tvar s = a * this.radDeg,\r\n\t\t\t\ti = e * this.radDeg,\r\n\t\t\t\ta = 33 * this.radDeg,\r\n\t\t\t\te = 45 * this.radDeg,\r\n\t\t\t\tt = t * this.radDeg,\r\n\t\t\t\te = Math.log(Math.cos(a) * (1 / Math.cos(e))) / Math.log(Math.tan(Math.PI / 4 + e / 2) * (1 / Math.tan(Math.PI / 4 + a / 2))),\r\n\t\t\t\tt = (a = (Math.cos(a) * Math.pow(Math.tan(Math.PI / 4 + a / 2), e)) / e) * Math.pow(1 / Math.tan(Math.PI / 4 + t / 2), e),\r\n\t\t\t\ta = a * Math.pow(1 / Math.tan(Math.PI / 4 + 0), e);\r\n\t\t\treturn { x: t * Math.sin(e * (i - s)) * this.radius, y: -(a - t * Math.cos(e * (i - s))) * this.radius };\r\n\t\t},\r\n\t\tlcc_inv: function (t, e, a) {\r\n\t\t\tvar s = t / this.radius,\r\n\t\t\t\ti = e / this.radius,\r\n\t\t\t\tn = a * this.radDeg,\r\n\t\t\t\tr = 33 * this.radDeg,\r\n\t\t\t\tt = 45 * this.radDeg,\r\n\t\t\t\te = Math.log(Math.cos(r) * (1 / Math.cos(t))) / Math.log(Math.tan(Math.PI / 4 + t / 2) * (1 / Math.tan(Math.PI / 4 + r / 2))),\r\n\t\t\t\tt = (a = (Math.cos(r) * Math.pow(Math.tan(Math.PI / 4 + r / 2), e)) / e) * Math.pow(1 / Math.tan(Math.PI / 4 + 0), e),\r\n\t\t\t\tr = this.sgn(e) * Math.sqrt(s * s + (t - i) * (t - i)),\r\n\t\t\t\ti = Math.atan(s / (t - i));\r\n\t\t\treturn { lat: (2 * Math.atan(Math.pow(a / r, 1 / e)) - Math.PI / 2) * this.degRad, lng: (n + i / e) * this.degRad };\r\n\t\t},\r\n\t}),\r\n\t(jvm.MapObject = function (t) {}),\r\n\t(jvm.MapObject.prototype.getLabelText = function (t) {\r\n\t\treturn this.config.label ? (\"function\" == typeof this.config.label.render ? this.config.label.render(t) : t) : null;\r\n\t}),\r\n\t(jvm.MapObject.prototype.getLabelOffsets = function (t) {\r\n\t\tvar e;\r\n\t\treturn this.config.label && (\"function\" == typeof this.config.label.offsets ? (e = this.config.label.offsets(t)) : \"object\" == typeof this.config.label.offsets && (e = this.config.label.offsets[t])), e || [0, 0];\r\n\t}),\r\n\t(jvm.MapObject.prototype.setHovered = function (t) {\r\n\t\tthis.isHovered !== t && ((this.isHovered = t), (this.shape.isHovered = t), this.shape.updateStyle(), this.label && ((this.label.isHovered = t), this.label.updateStyle()));\r\n\t}),\r\n\t(jvm.MapObject.prototype.setSelected = function (t) {\r\n\t\tthis.isSelected !== t && ((this.isSelected = t), (this.shape.isSelected = t), this.shape.updateStyle(), this.label && ((this.label.isSelected = t), this.label.updateStyle()), jvm.$(this.shape).trigger(\"selected\", [t]));\r\n\t}),\r\n\t(jvm.MapObject.prototype.setStyle = function () {\r\n\t\tthis.shape.setStyle.apply(this.shape, arguments);\r\n\t}),\r\n\t(jvm.MapObject.prototype.remove = function () {\r\n\t\tthis.shape.remove(), this.label && this.label.remove();\r\n\t}),\r\n\t(jvm.Region = function (t) {\r\n\t\tvar e, a, s;\r\n\t\t(this.config = t), (this.map = this.config.map), (this.shape = t.canvas.addPath({ d: t.path, \"data-code\": t.code }, t.style, t.canvas.rootElement)), this.shape.addClass(\"jvectormap-region jvectormap-element\"), (e = this.shape.getBBox()), (a = this.getLabelText(t.code)), this.config.label && a && ((s = this.getLabelOffsets(t.code)), (this.labelX = e.x + e.width / 2 + s[0]), (this.labelY = e.y + e.height / 2 + s[1]), (this.label = t.canvas.addText({ text: a, \"text-anchor\": \"middle\", \"alignment-baseline\": \"central\", x: this.labelX, y: this.labelY, \"data-code\": t.code }, t.labelStyle, t.labelsGroup)), this.label.addClass(\"jvectormap-region jvectormap-element\"));\r\n\t}),\r\n\tjvm.inherits(jvm.Region, jvm.MapObject),\r\n\t(jvm.Region.prototype.updateLabelPosition = function () {\r\n\t\tthis.label && this.label.set({ x: this.labelX * this.map.scale + this.map.transX * this.map.scale, y: this.labelY * this.map.scale + this.map.transY * this.map.scale });\r\n\t}),\r\n\t(jvm.Marker = function (t) {\r\n\t\tvar e;\r\n\t\t(this.config = t), (this.map = this.config.map), (this.isImage = !!this.config.style.initial.image), this.createShape(), (e = this.getLabelText(t.index)), this.config.label && e && ((this.offsets = this.getLabelOffsets(t.index)), (this.labelX = t.cx / this.map.scale - this.map.transX), (this.labelY = t.cy / this.map.scale - this.map.transY), (this.label = t.canvas.addText({ text: e, \"data-index\": t.index, dy: \"0.6ex\", x: this.labelX, y: this.labelY }, t.labelStyle, t.labelsGroup)), this.label.addClass(\"jvectormap-marker jvectormap-element\"));\r\n\t}),\r\n\tjvm.inherits(jvm.Marker, jvm.MapObject),\r\n\t(jvm.Marker.prototype.createShape = function () {\r\n\t\tvar t = this;\r\n\t\tthis.shape && this.shape.remove(),\r\n\t\t\t(this.shape = this.config.canvas[this.isImage ? \"addImage\" : \"addCircle\"]({ \"data-index\": this.config.index, cx: this.config.cx, cy: this.config.cy }, this.config.style, this.config.group)),\r\n\t\t\tthis.shape.addClass(\"jvectormap-marker jvectormap-element\"),\r\n\t\t\tthis.isImage &&\r\n\t\t\t\tjvm.$(this.shape.node).on(\"imageloaded\", function () {\r\n\t\t\t\t\tt.updateLabelPosition();\r\n\t\t\t\t});\r\n\t}),\r\n\t(jvm.Marker.prototype.updateLabelPosition = function () {\r\n\t\tthis.label && this.label.set({ x: this.labelX * this.map.scale + this.offsets[0] + this.map.transX * this.map.scale + 5 + (this.isImage ? (this.shape.width || 0) / 2 : this.shape.properties.r), y: this.labelY * this.map.scale + this.map.transY * this.map.scale + this.offsets[1] });\r\n\t}),\r\n\t(jvm.Marker.prototype.setStyle = function (t, e) {\r\n\t\tvar a;\r\n\t\tjvm.Marker.parentClass.prototype.setStyle.apply(this, arguments), \"r\" === t && this.updateLabelPosition(), (a = !!this.shape.get(\"image\")) != this.isImage && ((this.isImage = a), (this.config.style = jvm.$.extend(!0, {}, this.shape.style)), this.createShape());\r\n\t}),\r\n\t(jvm.Map = function (t) {\r\n\t\tvar e,\r\n\t\t\ta = this;\r\n\t\tif (((this.params = jvm.$.extend(!0, {}, jvm.Map.defaultParams, t)), !jvm.Map.maps[this.params.map])) throw new Error(\"Attempt to use map which was not loaded: \" + this.params.map);\r\n\t\tfor (e in ((this.mapData = jvm.Map.maps[this.params.map]),\r\n\t\t(this.markers = {}),\r\n\t\t(this.regions = {}),\r\n\t\t(this.regionsColors = {}),\r\n\t\t(this.regionsData = {}),\r\n\t\t(this.container = jvm.$(\"
\").addClass(\"jvectormap-container\")),\r\n\t\tthis.params.container && this.params.container.append(this.container),\r\n\t\tthis.container.data(\"mapObject\", this),\r\n\t\t(this.defaultWidth = this.mapData.width),\r\n\t\t(this.defaultHeight = this.mapData.height),\r\n\t\tthis.setBackgroundColor(this.params.backgroundColor),\r\n\t\t(this.onResize = function () {\r\n\t\t\ta.updateSize();\r\n\t\t}),\r\n\t\tjvm.$(window).resize(this.onResize),\r\n\t\tjvm.Map.apiEvents))\r\n\t\t\tthis.params[e] && this.container.bind(jvm.Map.apiEvents[e] + \".jvectormap\", this.params[e]);\r\n\t\t(this.canvas = new jvm.VectorCanvas(this.container[0], this.width, this.height)), (\"ontouchstart\" in window || (window.DocumentTouch && document instanceof DocumentTouch)) && this.params.bindTouchEvents && this.bindContainerTouchEvents(), this.bindContainerEvents(), this.bindElementEvents(), this.createTip(), this.params.zoomButtons && this.bindZoomButtons(), this.createRegions(), this.createMarkers(this.params.markers || {}), this.updateSize(), this.params.focusOn && (\"string\" == typeof this.params.focusOn ? (this.params.focusOn = { region: this.params.focusOn }) : jvm.$.isArray(this.params.focusOn) && (this.params.focusOn = { regions: this.params.focusOn }), this.setFocus(this.params.focusOn)), this.params.selectedRegions && this.setSelectedRegions(this.params.selectedRegions), this.params.selectedMarkers && this.setSelectedMarkers(this.params.selectedMarkers), (this.legendCntHorizontal = jvm.$(\"
\").addClass(\"jvectormap-legend-cnt jvectormap-legend-cnt-h\")), (this.legendCntVertical = jvm.$(\"
\").addClass(\"jvectormap-legend-cnt jvectormap-legend-cnt-v\")), this.container.append(this.legendCntHorizontal), this.container.append(this.legendCntVertical), this.params.series && this.createSeries();\r\n\t}),\r\n\t(jvm.Map.prototype = {\r\n\t\ttransX: 0,\r\n\t\ttransY: 0,\r\n\t\tscale: 1,\r\n\t\tbaseTransX: 0,\r\n\t\tbaseTransY: 0,\r\n\t\tbaseScale: 1,\r\n\t\twidth: 0,\r\n\t\theight: 0,\r\n\t\tsetBackgroundColor: function (t) {\r\n\t\t\tthis.container.css(\"background-color\", t);\r\n\t\t},\r\n\t\tresize: function () {\r\n\t\t\tvar t = this.baseScale;\r\n\t\t\tthis.width / this.height > this.defaultWidth / this.defaultHeight ? ((this.baseScale = this.height / this.defaultHeight), (this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale))) : ((this.baseScale = this.width / this.defaultWidth), (this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale))), (this.scale *= this.baseScale / t), (this.transX *= this.baseScale / t), (this.transY *= this.baseScale / t);\r\n\t\t},\r\n\t\tupdateSize: function () {\r\n\t\t\t(this.width = this.container.width()), (this.height = this.container.height()), this.resize(), this.canvas.setSize(this.width, this.height), this.applyTransform();\r\n\t\t},\r\n\t\treset: function () {\r\n\t\t\tvar t, e;\r\n\t\t\tfor (t in this.series) for (e = 0; e < this.series[t].length; e++) this.series[t][e].clear();\r\n\t\t\t(this.scale = this.baseScale), (this.transX = this.baseTransX), (this.transY = this.baseTransY), this.applyTransform();\r\n\t\t},\r\n\t\tapplyTransform: function () {\r\n\t\t\tvar t,\r\n\t\t\t\te,\r\n\t\t\t\ta = this.defaultWidth * this.scale <= this.width ? ((t = (this.width - this.defaultWidth * this.scale) / (2 * this.scale)), (this.width - this.defaultWidth * this.scale) / (2 * this.scale)) : ((t = 0), (this.width - this.defaultWidth * this.scale) / this.scale),\r\n\t\t\t\ts = this.defaultHeight * this.scale <= this.height ? ((e = (this.height - this.defaultHeight * this.scale) / (2 * this.scale)), (this.height - this.defaultHeight * this.scale) / (2 * this.scale)) : ((e = 0), (this.height - this.defaultHeight * this.scale) / this.scale);\r\n\t\t\tthis.transY > e ? (this.transY = e) : this.transY < s && (this.transY = s), this.transX > t ? (this.transX = t) : this.transX < a && (this.transX = a), this.canvas.applyTransformParams(this.scale, this.transX, this.transY), this.markers && this.repositionMarkers(), this.repositionLabels(), this.container.trigger(\"viewportChange\", [this.scale / this.baseScale, this.transX, this.transY]);\r\n\t\t},\r\n\t\tbindContainerEvents: function () {\r\n\t\t\tvar e,\r\n\t\t\t\ta,\r\n\t\t\t\ts = !1,\r\n\t\t\t\th = this;\r\n\t\t\tthis.params.panOnDrag &&\r\n\t\t\t\t(this.container\r\n\t\t\t\t\t.mousemove(function (t) {\r\n\t\t\t\t\t\treturn s && ((h.transX -= (e - t.pageX) / h.scale), (h.transY -= (a - t.pageY) / h.scale), h.applyTransform(), (e = t.pageX), (a = t.pageY)), !1;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.mousedown(function (t) {\r\n\t\t\t\t\t\treturn (s = !0), (e = t.pageX), (a = t.pageY), !1;\r\n\t\t\t\t\t}),\r\n\t\t\t\t(this.onContainerMouseUp = function () {\r\n\t\t\t\t\ts = !1;\r\n\t\t\t\t}),\r\n\t\t\t\tjvm.$(\"body\").mouseup(this.onContainerMouseUp)),\r\n\t\t\t\tthis.params.zoomOnScroll &&\r\n\t\t\t\t\tthis.container.mousewheel(function (t, e, a, s) {\r\n\t\t\t\t\t\tvar i = jvm.$(h.container).offset(),\r\n\t\t\t\t\t\t\tn = t.pageX - i.left,\r\n\t\t\t\t\t\t\tr = t.pageY - i.top,\r\n\t\t\t\t\t\t\ti = Math.pow(1 + h.params.zoomOnScrollSpeed / 1e3, t.deltaFactor * t.deltaY);\r\n\t\t\t\t\t\th.tip.hide(), h.setScale(h.scale * i, n, r), t.preventDefault();\r\n\t\t\t\t\t});\r\n\t\t},\r\n\t\tbindContainerTouchEvents: function () {\r\n\t\t\tfunction t(t) {\r\n\t\t\t\tvar e,\r\n\t\t\t\t\ta,\r\n\t\t\t\t\ts = t.originalEvent.touches;\r\n\t\t\t\t\"touchstart\" == t.type && (m = 0), 1 == s.length ? (1 == m && ((e = c.transX), (a = c.transY), (c.transX -= (r - s[0].pageX) / c.scale), (c.transY -= (h - s[0].pageY) / c.scale), c.applyTransform(), c.tip.hide(), (e == c.transX && a == c.transY) || t.preventDefault()), (r = s[0].pageX), (h = s[0].pageY)) : 2 == s.length && (2 == m ? ((a = Math.sqrt(Math.pow(s[0].pageX - s[1].pageX, 2) + Math.pow(s[0].pageY - s[1].pageY, 2)) / n), c.setScale(i * a, o, l), c.tip.hide(), t.preventDefault()) : ((t = jvm.$(c.container).offset()), (o = s[0].pageX > s[1].pageX ? s[1].pageX + (s[0].pageX - s[1].pageX) / 2 : s[0].pageX + (s[1].pageX - s[0].pageX) / 2), (l = s[0].pageY > s[1].pageY ? s[1].pageY + (s[0].pageY - s[1].pageY) / 2 : s[0].pageY + (s[1].pageY - s[0].pageY) / 2), (o -= t.left), (l -= t.top), (i = c.scale), (n = Math.sqrt(Math.pow(s[0].pageX - s[1].pageX, 2) + Math.pow(s[0].pageY - s[1].pageY, 2))))), (m = s.length);\r\n\t\t\t}\r\n\t\t\tvar i,\r\n\t\t\t\tn,\r\n\t\t\t\tr,\r\n\t\t\t\th,\r\n\t\t\t\to,\r\n\t\t\t\tl,\r\n\t\t\t\tm,\r\n\t\t\t\tc = this;\r\n\t\t\tjvm.$(this.container).bind(\"touchstart\", t), jvm.$(this.container).bind(\"touchmove\", t);\r\n\t\t},\r\n\t\tbindElementEvents: function () {\r\n\t\t\tvar i,\r\n\t\t\t\th = this;\r\n\t\t\tthis.container.mousemove(function () {\r\n\t\t\t\ti = !0;\r\n\t\t\t}),\r\n\t\t\t\tthis.container.delegate(\"[class~='jvectormap-element']\", \"mouseover mouseout\", function (t) {\r\n\t\t\t\t\tvar e = -1 === (jvm.$(this).attr(\"class\").baseVal || jvm.$(this).attr(\"class\")).indexOf(\"jvectormap-region\") ? \"marker\" : \"region\",\r\n\t\t\t\t\t\ta = \"region\" == e ? jvm.$(this).attr(\"data-code\") : jvm.$(this).attr(\"data-index\"),\r\n\t\t\t\t\t\ts = (\"region\" == e ? h.regions : h.markers)[a].element,\r\n\t\t\t\t\t\ti = \"region\" == e ? h.mapData.paths[a].name : h.markers[a].config.name || \"\",\r\n\t\t\t\t\t\tn = jvm.$.Event(e + \"TipShow.jvectormap\"),\r\n\t\t\t\t\t\tr = jvm.$.Event(e + \"Over.jvectormap\");\r\n\t\t\t\t\t\"mouseover\" == t.type ? (h.container.trigger(r, [a]), r.isDefaultPrevented() || s.setHovered(!0), h.tip.text(i), h.container.trigger(n, [h.tip, a]), n.isDefaultPrevented() || (h.tip.show(), (h.tipWidth = h.tip.width()), (h.tipHeight = h.tip.height()))) : (s.setHovered(!1), h.tip.hide(), h.container.trigger(e + \"Out.jvectormap\", [a]));\r\n\t\t\t\t}),\r\n\t\t\t\tthis.container.delegate(\"[class~='jvectormap-element']\", \"mousedown\", function () {\r\n\t\t\t\t\ti = !1;\r\n\t\t\t\t}),\r\n\t\t\t\tthis.container.delegate(\"[class~='jvectormap-element']\", \"mouseup\", function () {\r\n\t\t\t\t\tvar t = -1 === (jvm.$(this).attr(\"class\").baseVal ? jvm.$(this).attr(\"class\").baseVal : jvm.$(this).attr(\"class\")).indexOf(\"jvectormap-region\") ? \"marker\" : \"region\",\r\n\t\t\t\t\t\te = \"region\" == t ? jvm.$(this).attr(\"data-code\") : jvm.$(this).attr(\"data-index\"),\r\n\t\t\t\t\t\ta = jvm.$.Event(t + \"Click.jvectormap\"),\r\n\t\t\t\t\t\ts = (\"region\" == t ? h.regions : h.markers)[e].element;\r\n\t\t\t\t\ti || (h.container.trigger(a, [e]), ((\"region\" == t && h.params.regionsSelectable) || (\"marker\" == t && h.params.markersSelectable)) && (a.isDefaultPrevented() || (h.params[t + \"sSelectableOne\"] && h.clearSelected(t + \"s\"), s.setSelected(!s.isSelected))));\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tbindZoomButtons: function () {\r\n\t\t\tvar t = this;\r\n\t\t\tjvm.$(\"
\").addClass(\"jvectormap-zoomin\").text(\"+\").appendTo(this.container),\r\n\t\t\t\tjvm.$(\"
\").addClass(\"jvectormap-zoomout\").html(\"−\").appendTo(this.container),\r\n\t\t\t\tthis.container.find(\".jvectormap-zoomin\").click(function () {\r\n\t\t\t\t\tt.setScale(t.scale * t.params.zoomStep, t.width / 2, t.height / 2, !1, t.params.zoomAnimate);\r\n\t\t\t\t}),\r\n\t\t\t\tthis.container.find(\".jvectormap-zoomout\").click(function () {\r\n\t\t\t\t\tt.setScale(t.scale / t.params.zoomStep, t.width / 2, t.height / 2, !1, t.params.zoomAnimate);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tcreateTip: function () {\r\n\t\t\tvar s = this;\r\n\t\t\t(this.tip = jvm.$(\"
\").addClass(\"jvectormap-tip\").appendTo(jvm.$(\"body\"))),\r\n\t\t\t\tthis.container.mousemove(function (t) {\r\n\t\t\t\t\tvar e = t.pageX - 15 - s.tipWidth,\r\n\t\t\t\t\t\ta = t.pageY - 15 - s.tipHeight;\r\n\t\t\t\t\te < 5 && (e = t.pageX + 15), a < 5 && (a = t.pageY + 15), s.tip.css({ left: e, top: a });\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tsetScale: function (t, e, a, s, i) {\r\n\t\t\tvar n,\r\n\t\t\t\tr,\r\n\t\t\t\th,\r\n\t\t\t\to,\r\n\t\t\t\tl,\r\n\t\t\t\tm,\r\n\t\t\t\tc,\r\n\t\t\t\tp,\r\n\t\t\t\td,\r\n\t\t\t\tv = jvm.$.Event(\"zoom.jvectormap\"),\r\n\t\t\t\tu = this,\r\n\t\t\t\tg = 0,\r\n\t\t\t\tf = Math.abs(Math.round((60 * (t - this.scale)) / Math.max(t, this.scale))),\r\n\t\t\t\tj = new jvm.$.Deferred();\r\n\t\t\treturn (\r\n\t\t\t\tt > this.params.zoomMax * this.baseScale ? (t = this.params.zoomMax * this.baseScale) : t < this.params.zoomMin * this.baseScale && (t = this.params.zoomMin * this.baseScale),\r\n\t\t\t\tvoid 0 !== e && void 0 !== a && ((zoomStep = t / this.scale), (d = s ? ((p = e + (this.defaultWidth * (this.width / (this.defaultWidth * t))) / 2), a + (this.defaultHeight * (this.height / (this.defaultHeight * t))) / 2) : ((p = this.transX - ((zoomStep - 1) / t) * e), this.transY - ((zoomStep - 1) / t) * a))),\r\n\t\t\t\ti && 0 < f\r\n\t\t\t\t\t? ((r = this.scale),\r\n\t\t\t\t\t (h = (t - r) / f),\r\n\t\t\t\t\t (o = this.transX * this.scale),\r\n\t\t\t\t\t (m = this.transY * this.scale),\r\n\t\t\t\t\t (l = (p * t - o) / f),\r\n\t\t\t\t\t (c = (d * t - m) / f),\r\n\t\t\t\t\t (n = setInterval(function () {\r\n\t\t\t\t\t\t\t(g += 1), (u.scale = r + h * g), (u.transX = (o + l * g) / u.scale), (u.transY = (m + c * g) / u.scale), u.applyTransform(), g == f && (clearInterval(n), u.container.trigger(v, [t / u.baseScale]), j.resolve());\r\n\t\t\t\t\t }, 10)))\r\n\t\t\t\t\t: ((this.transX = p), (this.transY = d), (this.scale = t), this.applyTransform(), this.container.trigger(v, [t / this.baseScale]), j.resolve()),\r\n\t\t\t\tj\r\n\t\t\t);\r\n\t\t},\r\n\t\tsetFocus: function (t) {\r\n\t\t\tvar e, a, s, i, n;\r\n\t\t\tif (((t = t || {}).region ? (s = [t.region]) : t.regions && (s = t.regions), s)) {\r\n\t\t\t\tfor (i = 0; i < s.length; i++) this.regions[s[i]] && (a = this.regions[s[i]].element.shape.getBBox()) && (e = void 0 === e ? a : { x: Math.min(e.x, a.x), y: Math.min(e.y, a.y), width: Math.max(e.x + e.width, a.x + a.width) - Math.min(e.x, a.x), height: Math.max(e.y + e.height, a.y + a.height) - Math.min(e.y, a.y) });\r\n\t\t\t\treturn this.setScale(Math.min(this.width / e.width, this.height / e.height), -(e.x + e.width / 2), -(e.y + e.height / 2), !0, t.animate);\r\n\t\t\t}\r\n\t\t\treturn t.lat && t.lng ? ((n = this.latLngToPoint(t.lat, t.lng)), (t.x = this.transX - n.x / this.scale), (t.y = this.transY - n.y / this.scale)) : t.x && t.y && ((t.x *= -this.defaultWidth), (t.y *= -this.defaultHeight)), this.setScale(t.scale * this.baseScale, t.x, t.y, !0, t.animate);\r\n\t\t},\r\n\t\tgetSelected: function (t) {\r\n\t\t\tvar e,\r\n\t\t\t\ta = [];\r\n\t\t\tfor (e in this[t]) this[t][e].element.isSelected && a.push(e);\r\n\t\t\treturn a;\r\n\t\t},\r\n\t\tgetSelectedRegions: function () {\r\n\t\t\treturn this.getSelected(\"regions\");\r\n\t\t},\r\n\t\tgetSelectedMarkers: function () {\r\n\t\t\treturn this.getSelected(\"markers\");\r\n\t\t},\r\n\t\tsetSelected: function (t, e) {\r\n\t\t\tif ((\"object\" != typeof e && (e = [e]), jvm.$.isArray(e))) for (a = 0; a < e.length; a++) this[t][e[a]].element.setSelected(!0);\r\n\t\t\telse for (var a in e) this[t][a].element.setSelected(!!e[a]);\r\n\t\t},\r\n\t\tsetSelectedRegions: function (t) {\r\n\t\t\tthis.setSelected(\"regions\", t);\r\n\t\t},\r\n\t\tsetSelectedMarkers: function (t) {\r\n\t\t\tthis.setSelected(\"markers\", t);\r\n\t\t},\r\n\t\tclearSelected: function (t) {\r\n\t\t\tfor (var e = {}, a = this.getSelected(t), s = 0; s < a.length; s++) e[a[s]] = !1;\r\n\t\t\tthis.setSelected(t, e);\r\n\t\t},\r\n\t\tclearSelectedRegions: function () {\r\n\t\t\tthis.clearSelected(\"regions\");\r\n\t\t},\r\n\t\tclearSelectedMarkers: function () {\r\n\t\t\tthis.clearSelected(\"markers\");\r\n\t\t},\r\n\t\tgetMapObject: function () {\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetRegionName: function (t) {\r\n\t\t\treturn this.mapData.paths[t].name;\r\n\t\t},\r\n\t\tcreateRegions: function () {\r\n\t\t\tvar t,\r\n\t\t\t\te,\r\n\t\t\t\ta = this;\r\n\t\t\tfor (t in ((this.regionLabelsGroup = this.regionLabelsGroup || this.canvas.addGroup()), this.mapData.paths))\r\n\t\t\t\t(e = new jvm.Region({ map: this, path: this.mapData.paths[t].path, code: t, style: jvm.$.extend(!0, {}, this.params.regionStyle), labelStyle: jvm.$.extend(!0, {}, this.params.regionLabelStyle), canvas: this.canvas, labelsGroup: this.regionLabelsGroup, label: \"vml\" != this.canvas.mode ? this.params.labels && this.params.labels.regions : null })),\r\n\t\t\t\t\tjvm.$(e.shape).bind(\"selected\", function (t, e) {\r\n\t\t\t\t\t\ta.container.trigger(\"regionSelected.jvectormap\", [jvm.$(this.node).attr(\"data-code\"), e, a.getSelectedRegions()]);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(this.regions[t] = { element: e, config: this.mapData.paths[t] });\r\n\t\t},\r\n\t\tcreateMarkers: function (t) {\r\n\t\t\tvar e,\r\n\t\t\t\ta,\r\n\t\t\t\ts,\r\n\t\t\t\ti,\r\n\t\t\t\tn = this;\r\n\t\t\tif (((this.markersGroup = this.markersGroup || this.canvas.addGroup()), (this.markerLabelsGroup = this.markerLabelsGroup || this.canvas.addGroup()), jvm.$.isArray(t))) for (i = t.slice(), t = {}, e = 0; e < i.length; e++) t[e] = i[e];\r\n\t\t\tfor (e in t)\r\n\t\t\t\t(s = t[e] instanceof Array ? { latLng: t[e] } : t[e]),\r\n\t\t\t\t\t!1 !== (a = this.getMarkerPosition(s)) &&\r\n\t\t\t\t\t\t((a = new jvm.Marker({ map: this, style: jvm.$.extend(!0, {}, this.params.markerStyle, { initial: s.style || {} }), labelStyle: jvm.$.extend(!0, {}, this.params.markerLabelStyle), index: e, cx: a.x, cy: a.y, group: this.markersGroup, canvas: this.canvas, labelsGroup: this.markerLabelsGroup, label: \"vml\" != this.canvas.mode ? this.params.labels && this.params.labels.markers : null })),\r\n\t\t\t\t\t\tjvm.$(a.shape).bind(\"selected\", function (t, e) {\r\n\t\t\t\t\t\t\tn.container.trigger(\"markerSelected.jvectormap\", [jvm.$(this.node).attr(\"data-index\"), e, n.getSelectedMarkers()]);\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tthis.markers[e] && this.removeMarkers([e]),\r\n\t\t\t\t\t\t(this.markers[e] = { element: a, config: s }));\r\n\t\t},\r\n\t\trepositionMarkers: function () {\r\n\t\t\tvar t, e;\r\n\t\t\tfor (t in this.markers) !1 !== (e = this.getMarkerPosition(this.markers[t].config)) && this.markers[t].element.setStyle({ cx: e.x, cy: e.y });\r\n\t\t},\r\n\t\trepositionLabels: function () {\r\n\t\t\tfor (var t in this.regions) this.regions[t].element.updateLabelPosition();\r\n\t\t\tfor (t in this.markers) this.markers[t].element.updateLabelPosition();\r\n\t\t},\r\n\t\tgetMarkerPosition: function (t) {\r\n\t\t\treturn jvm.Map.maps[this.params.map].projection ? this.latLngToPoint.apply(this, t.latLng || [0, 0]) : { x: t.coords[0] * this.scale + this.transX * this.scale, y: t.coords[1] * this.scale + this.transY * this.scale };\r\n\t\t},\r\n\t\taddMarker: function (t, e, a) {\r\n\t\t\tvar s,\r\n\t\t\t\ti,\r\n\t\t\t\tn = {},\r\n\t\t\t\tr = [],\r\n\t\t\t\ta = a || [];\r\n\t\t\tfor (n[t] = e, i = 0; i < a.length; i++) (s = {}), void 0 !== a[i] && (s[t] = a[i]), r.push(s);\r\n\t\t\tthis.addMarkers(n, r);\r\n\t\t},\r\n\t\taddMarkers: function (t, e) {\r\n\t\t\tvar a;\r\n\t\t\tfor (e = e || [], this.createMarkers(t), a = 0; a < e.length; a++) this.series.markers[a].setValues(e[a] || {});\r\n\t\t},\r\n\t\tremoveMarkers: function (t) {\r\n\t\t\tfor (var e = 0; e < t.length; e++) this.markers[t[e]].element.remove(), delete this.markers[t[e]];\r\n\t\t},\r\n\t\tremoveAllMarkers: function () {\r\n\t\t\tvar t,\r\n\t\t\t\te = [];\r\n\t\t\tfor (t in this.markers) e.push(t);\r\n\t\t\tthis.removeMarkers(e);\r\n\t\t},\r\n\t\tlatLngToPoint: function (t, e) {\r\n\t\t\tvar a = jvm.Map.maps[this.params.map].projection,\r\n\t\t\t\ts = a.centralMeridian;\r\n\t\t\treturn e < -180 + s && (e += 360), (t = jvm.Proj[a.type](t, e, s)), !!(e = this.getInsetForPoint(t.x, t.y)) && ((s = e.bbox), (t.x = ((t.x - s[0].x) / (s[1].x - s[0].x)) * e.width * this.scale), (t.y = ((t.y - s[0].y) / (s[1].y - s[0].y)) * e.height * this.scale), { x: t.x + this.transX * this.scale + e.left * this.scale, y: t.y + this.transY * this.scale + e.top * this.scale });\r\n\t\t},\r\n\t\tpointToLatLng: function (t, e) {\r\n\t\t\tfor (var a, s, i, n, r = jvm.Map.maps[this.params.map].projection, h = r.centralMeridian, o = jvm.Map.maps[this.params.map].insets, l = 0; l < o.length; l++) if (((s = (a = o[l]).bbox), (i = t - (this.transX * this.scale + a.left * this.scale)), (n = e - (this.transY * this.scale + a.top * this.scale)), (i = (i / (a.width * this.scale)) * (s[1].x - s[0].x) + s[0].x), (n = (n / (a.height * this.scale)) * (s[1].y - s[0].y) + s[0].y), i > s[0].x && i < s[1].x && n > s[0].y && n < s[1].y)) return jvm.Proj[r.type + \"_inv\"](i, -n, h);\r\n\t\t\treturn !1;\r\n\t\t},\r\n\t\tgetInsetForPoint: function (t, e) {\r\n\t\t\tfor (var a, s = jvm.Map.maps[this.params.map].insets, i = 0; i < s.length; i++) if (t > (a = s[i].bbox)[0].x && t < a[1].x && e > a[0].y && e < a[1].y) return s[i];\r\n\t\t},\r\n\t\tcreateSeries: function () {\r\n\t\t\tvar t, e;\r\n\t\t\tfor (e in ((this.series = { markers: [], regions: [] }), this.params.series)) for (t = 0; t < this.params.series[e].length; t++) this.series[e][t] = new jvm.DataSeries(this.params.series[e][t], this[e], this);\r\n\t\t},\r\n\t\tremove: function () {\r\n\t\t\tthis.tip.remove(), this.container.remove(), jvm.$(window).unbind(\"resize\", this.onResize), jvm.$(\"body\").unbind(\"mouseup\", this.onContainerMouseUp);\r\n\t\t},\r\n\t}),\r\n\t(jvm.Map.maps = {}),\r\n\t(jvm.Map.defaultParams = { map: \"world_mill_en\", backgroundColor: \"#505050\", zoomButtons: !0, zoomOnScroll: !0, zoomOnScrollSpeed: 3, panOnDrag: !0, zoomMax: 8, zoomMin: 1, zoomStep: 1.6, zoomAnimate: !0, regionsSelectable: !1, markersSelectable: !1, bindTouchEvents: !0, regionStyle: { initial: { fill: \"white\", \"fill-opacity\": 1, stroke: \"none\", \"stroke-width\": 0, \"stroke-opacity\": 1 }, hover: { \"fill-opacity\": 0.8, cursor: \"pointer\" }, selected: { fill: \"yellow\" }, selectedHover: {} }, regionLabelStyle: { initial: { \"font-family\": \"Verdana\", \"font-size\": \"12\", \"font-weight\": \"bold\", cursor: \"default\", fill: \"black\" }, hover: { cursor: \"pointer\" } }, markerStyle: { initial: { fill: \"grey\", stroke: \"#505050\", \"fill-opacity\": 1, \"stroke-width\": 1, \"stroke-opacity\": 1, r: 5 }, hover: { stroke: \"black\", \"stroke-width\": 2, cursor: \"pointer\" }, selected: { fill: \"blue\" }, selectedHover: {} }, markerLabelStyle: { initial: { \"font-family\": \"Verdana\", \"font-size\": \"12\", \"font-weight\": \"bold\", cursor: \"default\", fill: \"black\" }, hover: { cursor: \"pointer\" } } }),\r\n\t(jvm.Map.apiEvents = { onRegionTipShow: \"regionTipShow\", onRegionOver: \"regionOver\", onRegionOut: \"regionOut\", onRegionClick: \"regionClick\", onRegionSelected: \"regionSelected\", onMarkerTipShow: \"markerTipShow\", onMarkerOver: \"markerOver\", onMarkerOut: \"markerOut\", onMarkerClick: \"markerClick\", onMarkerSelected: \"markerSelected\", onViewportChange: \"viewportChange\" }),\r\n\t(jvm.MultiMap = function (t) {\r\n\t\tvar e = this;\r\n\t\t(this.maps = {}),\r\n\t\t\t(this.params = jvm.$.extend(!0, {}, jvm.MultiMap.defaultParams, t)),\r\n\t\t\t(this.params.maxLevel = this.params.maxLevel || Number.MAX_VALUE),\r\n\t\t\t(this.params.main = this.params.main || {}),\r\n\t\t\t(this.params.main.multiMapLevel = 0),\r\n\t\t\t(this.history = [this.addMap(this.params.main.map, this.params.main)]),\r\n\t\t\t(this.defaultProjection = this.history[0].mapData.projection.type),\r\n\t\t\t(this.mapsLoaded = {}),\r\n\t\t\tthis.params.container.css({ position: \"relative\" }),\r\n\t\t\t(this.backButton = jvm.$(\"
\").addClass(\"jvectormap-goback\").text(\"Back\").appendTo(this.params.container)),\r\n\t\t\tthis.backButton.hide(),\r\n\t\t\tthis.backButton.click(function () {\r\n\t\t\t\te.goBack();\r\n\t\t\t}),\r\n\t\t\t(this.spinner = jvm.$(\"
\").addClass(\"jvectormap-spinner\").appendTo(this.params.container)),\r\n\t\t\tthis.spinner.hide();\r\n\t}),\r\n\t(jvm.MultiMap.prototype = {\r\n\t\taddMap: function (t, e) {\r\n\t\t\tvar a = jvm.$(\"
\").css({ width: \"100%\", height: \"100%\" });\r\n\t\t\treturn (\r\n\t\t\t\tthis.params.container.append(a),\r\n\t\t\t\t(this.maps[t] = new jvm.Map(jvm.$.extend(e, { container: a }))),\r\n\t\t\t\tthis.params.maxLevel > e.multiMapLevel &&\r\n\t\t\t\t\tthis.maps[t].container.on(\"regionClick.jvectormap\", { scope: this }, function (t, e) {\r\n\t\t\t\t\t\tvar a = t.data.scope,\r\n\t\t\t\t\t\t\tt = a.params.mapNameByCode(e, a);\r\n\t\t\t\t\t\t(a.drillDownPromise && \"pending\" === a.drillDownPromise.state()) || a.drillDown(t, e);\r\n\t\t\t\t\t}),\r\n\t\t\t\tthis.maps[t]\r\n\t\t\t);\r\n\t\t},\r\n\t\tdownloadMap: function (t) {\r\n\t\t\tvar e = this,\r\n\t\t\t\ta = jvm.$.Deferred();\r\n\t\t\treturn (\r\n\t\t\t\tthis.mapsLoaded[t]\r\n\t\t\t\t\t? a.resolve()\r\n\t\t\t\t\t: jvm.$.get(this.params.mapUrlByCode(t, this)).then(\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t(e.mapsLoaded[t] = !0), a.resolve();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\ta.reject();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t ),\r\n\t\t\t\ta\r\n\t\t\t);\r\n\t\t},\r\n\t\tdrillDown: function (t, e) {\r\n\t\t\tvar a = this.history[this.history.length - 1],\r\n\t\t\t\ts = this,\r\n\t\t\t\ti = a.setFocus({ region: e, animate: !0 }),\r\n\t\t\t\tn = this.downloadMap(e);\r\n\t\t\ti.then(function () {\r\n\t\t\t\t\"pending\" === n.state() && s.spinner.show();\r\n\t\t\t}),\r\n\t\t\t\tn.always(function () {\r\n\t\t\t\t\ts.spinner.hide();\r\n\t\t\t\t}),\r\n\t\t\t\t(this.drillDownPromise = jvm.$.when(n, i)),\r\n\t\t\t\tthis.drillDownPromise.then(function () {\r\n\t\t\t\t\ta.params.container.hide(), s.maps[t] ? s.maps[t].params.container.show() : s.addMap(t, { map: t, multiMapLevel: a.params.multiMapLevel + 1 }), s.history.push(s.maps[t]), s.backButton.show();\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tgoBack: function () {\r\n\t\t\tvar t = this.history.pop(),\r\n\t\t\t\te = this.history[this.history.length - 1],\r\n\t\t\t\ta = this;\r\n\t\t\tt.setFocus({ scale: 1, x: 0.5, y: 0.5, animate: !0 }).then(function () {\r\n\t\t\t\tt.params.container.hide(), e.params.container.show(), e.updateSize(), 1 === a.history.length && a.backButton.hide(), e.setFocus({ scale: 1, x: 0.5, y: 0.5, animate: !0 });\r\n\t\t\t});\r\n\t\t},\r\n\t}),\r\n\t(jvm.MultiMap.defaultParams = {\r\n\t\tmapNameByCode: function (t, e) {\r\n\t\t\treturn t.toLowerCase() + \"_\" + e.defaultProjection + \"_en\";\r\n\t\t},\r\n\t\tmapUrlByCode: function (t, e) {\r\n\t\t\treturn \"jquery-jvectormap-data-\" + t.toLowerCase() + \"-\" + e.defaultProjection + \"-en.js\";\r\n\t\t},\r\n\t});\r\n"],"names":["t","s","set","colors","values","backgroundColor","scaleColors","normalizeFunction","focus","get","selectedRegions","selectedMarkers","mapObject","regionName","fn","vectorMap","e","a","this","children","data","jvm","Map","maps","arguments","charAt","toUpperCase","substr","apply","Array","prototype","slice","call","container","jQuery","define","amd","exports","module","h","o","l","document","documentMode","m","event","fixHooks","length","mouseHooks","special","mousewheel","version","setup","addEventListener","i","onmousewheel","getLineHeight","getPageHeight","teardown","removeEventListener","parseInt","css","height","settings","adjustOldDeltas","window","n","r","fix","type","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","Math","max","abs","p","deltaFactor","unshift","clearTimeout","setTimeout","c","dispatch","handle","extend","bind","trigger","unmousewheel","unbind","inherits","constructor","parentClass","mixin","hasOwnProperty","min","Number","MAX_VALUE","MIN_VALUE","keys","push","whenImageLoaded","$","Deferred","error","reject","load","resolve","attr","isImageUrl","test","indexOf","TypeError","Object","AbstractElement","node","createElement","name","properties","applyAttr","setAttribute","remove","AbstractCanvasElement","setSize","rootElement","classPrefix","appendChild","add","canvas","addPath","addCircle","addImage","addText","addGroup","AbstractShapeElement","style","current","isHovered","isSelected","updateStyle","setStyle","mergeStyles","initial","hover","selected","selectedHover","SVGElement","svgns","createElementNS","addClass","getElementCtr","getBBox","SVGGroupElement","SVGCanvasElement","defsElement","width","applyTransformParams","scale","transX","transY","SVGShapeElement","images","then","setAttributeNS","imageCounter","SVGPathElement","SVGCircleElement","SVGImageElement","cx","cy","SVGTextElement","textContent","VMLElement","VMLInitialized","initializeVML","namespaces","rvml","createStyleSheet","addRule","x","position","left","y","top","VMLGroupElement","coordorigin","VMLCanvasElement","coordsize","getElementsByTagName","VMLShapeElement","fillElement","strokeElement","stroked","fillcolor","opacity","round","strokecolor","strokeweight","path","VMLPathElement","pathSvgToVml","on","matrix","offset","replace","split","shift","join","VMLCircleElement","VectorCanvas","mode","SVGAngle","impl","SimpleScale","getValue","OrdinalScale","getTicks","label","value","NumericScale","setScale","setNormalizeFunction","setMin","setMax","clearMinValue","normalize","minValue","clearMaxValue","maxValue","pow","vectorLength","vectorSubtract","vectorToNum","vectorAdd","vectorMult","sqrt","floor","log","LN10","ceil","ColorScale","rgbToArray","numToRgb","arrayToRgb","toString","Legend","params","map","series","body","cssClass","vertical","legendCntVertical","legendCntHorizontal","append","render","html","title","attribute","border-radius","border","markerStyle","stroke","background","fill","appendTo","labelRender","DataSeries","elements","attributes","setAttributes","isArray","setValues","legend","element","parseFloat","isNaN","clear","shape","Proj","degRad","PI","radDeg","radius","sgn","mill","tan","mill_inv","lat","atan","exp","lng","merc","merc_inv","aea","sin","cos","aea_inv","asin","lcc","lcc_inv","MapObject","getLabelText","config","getLabelOffsets","offsets","setHovered","setSelected","Region","d","data-code","code","labelX","labelY","text","text-anchor","alignment-baseline","labelStyle","labelsGroup","updateLabelPosition","Marker","isImage","image","createShape","index","data-index","dy","group","defaultParams","Error","mapData","markers","regions","regionsColors","regionsData","defaultWidth","defaultHeight","setBackgroundColor","onResize","updateSize","resize","apiEvents","DocumentTouch","bindTouchEvents","bindContainerTouchEvents","bindContainerEvents","bindElementEvents","createTip","zoomButtons","bindZoomButtons","createRegions","createMarkers","focusOn","region","setFocus","setSelectedRegions","setSelectedMarkers","createSeries","baseTransX","baseTransY","baseScale","applyTransform","reset","repositionMarkers","repositionLabels","panOnDrag","mousemove","pageX","pageY","mousedown","onContainerMouseUp","mouseup","zoomOnScroll","zoomOnScrollSpeed","tip","hide","preventDefault","originalEvent","touches","delegate","baseVal","paths","Event","isDefaultPrevented","show","tipWidth","tipHeight","regionsSelectable","markersSelectable","clearSelected","find","click","zoomStep","zoomAnimate","v","u","g","f","j","zoomMax","zoomMin","setInterval","clearInterval","animate","latLngToPoint","getSelected","getSelectedRegions","getSelectedMarkers","clearSelectedRegions","clearSelectedMarkers","getMapObject","getRegionName","regionLabelsGroup","regionStyle","regionLabelStyle","labels","markersGroup","markerLabelsGroup","latLng","getMarkerPosition","markerLabelStyle","removeMarkers","projection","coords","addMarker","addMarkers","removeAllMarkers","centralMeridian","getInsetForPoint","bbox","pointToLatLng","insets","fill-opacity","stroke-width","stroke-opacity","cursor","font-family","font-size","font-weight","onRegionTipShow","onRegionOver","onRegionOut","onRegionClick","onRegionSelected","onMarkerTipShow","onMarkerOver","onMarkerOut","onMarkerClick","onMarkerSelected","onViewportChange","MultiMap","maxLevel","main","multiMapLevel","history","addMap","defaultProjection","mapsLoaded","backButton","goBack","spinner","scope","mapNameByCode","drillDownPromise","state","drillDown","downloadMap","mapUrlByCode","always","when","pop","toLowerCase"],"mappings":"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"} \ No newline at end of file diff --git a/dasena-web/public/assets/admin/vendors/js/jquery-ui.min.js b/dasena-web/public/assets/admin/vendors/js/jquery-ui.min.js new file mode 100644 index 0000000..daee2e6 --- /dev/null +++ b/dasena-web/public/assets/admin/vendors/js/jquery-ui.min.js @@ -0,0 +1,2 @@ +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict";V.ui=V.ui||{};V.ui.version="1.13.2";var n,s,x,k,o,a,r,l,h,i,N=0,E=Array.prototype.hasOwnProperty,c=Array.prototype.slice;V.cleanData=(n=V.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=V._data(i,"events"))&&e.remove&&V(i).triggerHandler("remove");n(t)}),V.widget=function(t,i,e){var s,n,o,a={},r=t.split(".")[0],l=r+"-"+(t=t.split(".")[1]);return e||(e=i,i=V.Widget),Array.isArray(e)&&(e=V.extend.apply(null,[{}].concat(e))),V.expr.pseudos[l.toLowerCase()]=function(t){return!!V.data(t,l)},V[r]=V[r]||{},s=V[r][t],n=V[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},V.extend(n,s,{version:e.version,_proto:V.extend({},e),_childConstructors:[]}),(o=new i).options=V.widget.extend({},o.options),V.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=V.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(V.each(s._childConstructors,function(t,e){var i=e.prototype;V.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),V.widget.bridge(t,n),n},V.widget.extend=function(t){for(var e,i,s=c.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=N++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n
")).children()[0],V("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(k(s),k(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})):i.apply(this,arguments)},V.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,a=n-o,r=o+e.collisionWidth-s-n;e.collisionWidth>s?0n?0")[0],g=u.each;function m(t){return null==t?t+"":"object"==typeof t?d[F.call(t)]||"object":typeof t}function _(t,e,i){var s=Y[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function j(s){var n=p(),o=n._rgba=[];return s=s.toLowerCase(),g(R,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||"rgba";if(i)return i=n[e](i),n[f[e].cache]=i[f[e].cache],o=n._rgba=i._rgba,!1}),o.length?("0,0,0,0"===o.join()&&u.extend(o,y.transparent),n):y[s]}function v(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}t.style.cssText="background-color:rgba(1,1,1,.5)",B.rgba=-1o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=_((n-s)*a+s,e)))}),this[t](l)},blend:function(t){var e,i,s;return 1===this._rgba[3]?this:(e=this._rgba.slice(),i=e.pop(),s=p(t)._rgba,p(u.map(e,function(t,e){return(1-i)*s[e]+i*t})))},toRgbaString:function(){var t="rgba(",e=u.map(this._rgba,function(t,e){return null!=t?t:2
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.13.2",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){var s;return 0===e?{height:0,width:0,outerHeight:0,outerWidth:0}:(s="horizontal"!==i?(e||100)/100:1,i="vertical"!==i?(e||100)/100:1,{height:t.height()*i,width:t.width()*s,outerHeight:t.outerHeight()*i,outerWidth:t.outerWidth()*s})},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(w+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=w+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0
");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-o,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(r,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=et(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},b={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){b[t]=function(t){return Math.pow(t,e+2)}}),V.extend(b,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(b,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});t=V.effects;V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,o="show"===o,r=t.direction||"up",l=t.distance,h=t.times||5,c=2*h+(o||a?1:0),u=t.duration/c,d=t.easing,p="up"===r||"down"===r?"top":"left",f="up"===r||"left"===r,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),r=n.css(p),l=l||n["top"==p?"outerHeight":"outerWidth"]()/3,o&&((s={opacity:1})[p]=r,n.css("opacity",0).css(p,f?2*-l:2*l).animate(s,u,d)),a&&(l/=Math.pow(2,h-1)),(s={})[p]=r;g
").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,s="hide"===s,o=e.size||15,a=/([0-9]+)%/.exec(o),r=!!e.horizFirst?["right","bottom"]:["bottom","right"],l=e.duration/2,h=V.effects.createPlaceholder(i),c=i.cssClip(),u={clip:V.extend({},c)},d={clip:V.extend({},c)},p=[c[r[0]],c[r[1]]],f=i.queue().length;a&&(o=parseInt(a[1],10)/100*p[s?0:1]),u.clip[r[0]]=o,d.clip[r[0]]=o,d.clip[r[1]]=0,n&&(i.cssClip(d.clip),h&&h.css(V.effects.clipToBox(d)),d.clip=c),i.queue(function(t){h&&h.animate(V.effects.clipToBox(u),l,e.easing).animate(V.effects.clipToBox(d),l,e.easing),t()}).animate(u,l,e.easing).animate(d,l,e.easing).queue(t),V.effects.unshift(i,f,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(r=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*r.y+d.top,f.left=(p.outerWidth-f.outerWidth)*r.x+d.left,g.top=(p.outerHeight-g.outerHeight)*r.y+d.top,g.left=(p.outerWidth-g.outerWidth)*r.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),i=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(i.from.opacity=1,i.to.opacity=0),V.effects.effect.size.call(this,i,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"===t?this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e)&&this._createIcons())},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),r={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,r)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(r),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(a=i.children(".ui-accordion-header-icon"),this._removeClass(a,null,e.icons.activeHeader)._addClass(a,null,e.icons.header)),n)||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(t=s.children(".ui-accordion-header-icon"),this._removeClass(t,null,e.icons.header)._addClass(t,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active"))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){function s(){o._toggleComplete(e)}var n,o=this,a=0,r=t.css("box-sizing"),l=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("