From 17538717992c044950458081cf57ff368e4215d4 Mon Sep 17 00:00:00 2001 From: E98Developer Date: Sun, 19 Apr 2026 21:23:18 +0200 Subject: [PATCH] ADD delivery calendar part1 --- .../DeliveryCalendarOverrideResource.php | 2 +- .../DeliveryScheduleResource.php | 2 +- .../Schemas/DeliveryScheduleForm.php | 41 +- .../EditProfitCenterSupplierSchedule.php | 7 + .../ProfitCenterSupplierScheduleResource.php | 17 +- .../Schemas/WorkCalendarForm.php | 17 +- .../Tables/WorkCalendarsTable.php | 14 +- .../WorkCalendars/WorkCalendarResource.php | 6 +- app/Providers/Filament/AdminPanelProvider.php | 7 + composer.json | 2 + composer.lock | 160 +- public/css/app.css | 27131 +++- public/images/icons/ico_timetable1.png | Bin 0 -> 104244 bytes public/images/icons/ico_timetable2.png | Bin 0 -> 103339 bytes public/images/icons/ico_timetable3.png | Bin 0 -> 82127 bytes public/js/admin.js | 89 +- public/js/app.js | 313 +- public/js/components.js | 45 +- public/js/customize.js | 124068 ++++++++++++++- public/js/module.js | 78 +- public/mix-manifest.json | 45 +- .../components/speed-button-nav-bar.blade.php | 64 +- routes/web.php | 4 +- 23 files changed, 151820 insertions(+), 292 deletions(-) create mode 100644 public/images/icons/ico_timetable1.png create mode 100644 public/images/icons/ico_timetable2.png create mode 100644 public/images/icons/ico_timetable3.png diff --git a/app/Filament/Resources/DeliveryCalendarOverrides/DeliveryCalendarOverrideResource.php b/app/Filament/Resources/DeliveryCalendarOverrides/DeliveryCalendarOverrideResource.php index 10f3f61..b75af53 100644 --- a/app/Filament/Resources/DeliveryCalendarOverrides/DeliveryCalendarOverrideResource.php +++ b/app/Filament/Resources/DeliveryCalendarOverrides/DeliveryCalendarOverrideResource.php @@ -22,7 +22,7 @@ class DeliveryCalendarOverrideResource extends Resource protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-exclamation-triangle'; - protected static string|\UnitEnum|null $navigationGroup = 'Szállítási naptár'; + protected static string|\UnitEnum|null $navigationGroup = 'Szállítás'; protected static ?string $navigationLabel = 'Beszállítói felülbírálások'; diff --git a/app/Filament/Resources/DeliverySchedules/DeliveryScheduleResource.php b/app/Filament/Resources/DeliverySchedules/DeliveryScheduleResource.php index cc07d0b..d208c9a 100644 --- a/app/Filament/Resources/DeliverySchedules/DeliveryScheduleResource.php +++ b/app/Filament/Resources/DeliverySchedules/DeliveryScheduleResource.php @@ -22,7 +22,7 @@ class DeliveryScheduleResource extends Resource protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-calendar-days'; - protected static string|\UnitEnum|null $navigationGroup = 'Szállítási naptár'; + protected static string|\UnitEnum|null $navigationGroup = 'Szállítás'; protected static ?string $navigationLabel = 'Szállítási sablonok'; diff --git a/app/Filament/Resources/DeliverySchedules/Schemas/DeliveryScheduleForm.php b/app/Filament/Resources/DeliverySchedules/Schemas/DeliveryScheduleForm.php index fb68a67..c10434f 100644 --- a/app/Filament/Resources/DeliverySchedules/Schemas/DeliveryScheduleForm.php +++ b/app/Filament/Resources/DeliverySchedules/Schemas/DeliveryScheduleForm.php @@ -2,6 +2,7 @@ namespace App\Filament\Resources\DeliverySchedules\Schemas; +use Filament\Schemas\Components\Grid; use Filament\Schemas\Components\Section; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; @@ -14,25 +15,29 @@ public static function configure(Schema $schema): Schema return $schema ->components([ Section::make('Sablon adatai') + ->columnSpanFull() ->schema([ - TextInput::make('name') - ->label('Sablon neve') - ->required() - ->maxLength(255), - Toggle::make('is_active') - ->label('Aktív') - ->default(true), - ]), - Section::make('Szállítási napok') - ->columns(7) - ->schema([ - Toggle::make('monday')->label('Hétfő')->default(false), - Toggle::make('tuesday')->label('Kedd')->default(false), - Toggle::make('wednesday')->label('Szerda')->default(false), - Toggle::make('thursday')->label('Csütörtök')->default(false), - Toggle::make('friday')->label('Péntek')->default(false), - Toggle::make('saturday')->label('Szombat')->default(false), - Toggle::make('sunday')->label('Vasárnap')->default(false), + Grid::make(2) + ->schema([ + TextInput::make('name') + ->label('Sablon neve') + ->required() + ->maxLength(255), + Toggle::make('is_active') + ->label('Aktív') + ->default(true), + ]), + Section::make('Szállítási napok') + ->columns(7) + ->schema([ + Toggle::make('monday')->label('Hétfő')->default(false), + Toggle::make('tuesday')->label('Kedd')->default(false), + Toggle::make('wednesday')->label('Szerda')->default(false), + Toggle::make('thursday')->label('Csütörtök')->default(false), + Toggle::make('friday')->label('Péntek')->default(false), + Toggle::make('saturday')->label('Szombat')->default(false), + Toggle::make('sunday')->label('Vasárnap')->default(false), + ]), ]), ]); } diff --git a/app/Filament/Resources/ProfitCenterSupplierSchedules/Pages/EditProfitCenterSupplierSchedule.php b/app/Filament/Resources/ProfitCenterSupplierSchedules/Pages/EditProfitCenterSupplierSchedule.php index fa46a0e..141a530 100644 --- a/app/Filament/Resources/ProfitCenterSupplierSchedules/Pages/EditProfitCenterSupplierSchedule.php +++ b/app/Filament/Resources/ProfitCenterSupplierSchedules/Pages/EditProfitCenterSupplierSchedule.php @@ -20,4 +20,11 @@ protected function getHeaderActions(): array RestoreAction::make(), ]; } + + protected function getFooterWidgets(): array + { + return [ + \App\Filament\Widgets\DeliveryCalendarWidget::class, + ]; + } } diff --git a/app/Filament/Resources/ProfitCenterSupplierSchedules/ProfitCenterSupplierScheduleResource.php b/app/Filament/Resources/ProfitCenterSupplierSchedules/ProfitCenterSupplierScheduleResource.php index dac2e64..8b57319 100644 --- a/app/Filament/Resources/ProfitCenterSupplierSchedules/ProfitCenterSupplierScheduleResource.php +++ b/app/Filament/Resources/ProfitCenterSupplierSchedules/ProfitCenterSupplierScheduleResource.php @@ -22,15 +22,15 @@ class ProfitCenterSupplierScheduleResource extends Resource protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-link'; - protected static string|\UnitEnum|null $navigationGroup = 'Szállítási naptár'; + protected static string|\UnitEnum|null $navigationGroup = 'Szállítás'; - protected static ?string $navigationLabel = 'Beszállítói menetrendek'; + protected static ?string $navigationLabel = 'Profitcenter ütemezés'; - protected static ?string $modelLabel = 'Beszállítói menetrend'; + protected static ?string $modelLabel = 'Profitcenter ütemezés'; - protected static ?string $pluralLabel = 'Beszállítói menetrendek'; + protected static ?string $pluralLabel = 'Profitcenter ütemezések'; - protected static ?string $breadcrumb = 'Beszállítói menetrendek'; + protected static ?string $breadcrumb = 'Profitcenter ütemezés'; public static function form(Schema $schema): Schema { @@ -58,6 +58,13 @@ public static function getPages(): array ]; } + public static function getWidgets(): array + { + return [ + \App\Filament\Widgets\DeliveryCalendarWidget::class, + ]; + } + public static function getRecordRouteBindingEloquentQuery(): Builder { return parent::getRecordRouteBindingEloquentQuery() diff --git a/app/Filament/Resources/WorkCalendars/Schemas/WorkCalendarForm.php b/app/Filament/Resources/WorkCalendars/Schemas/WorkCalendarForm.php index 1e78bcd..69c63f5 100644 --- a/app/Filament/Resources/WorkCalendars/Schemas/WorkCalendarForm.php +++ b/app/Filament/Resources/WorkCalendars/Schemas/WorkCalendarForm.php @@ -2,6 +2,10 @@ namespace App\Filament\Resources\WorkCalendars\Schemas; +use App\Enums\WorkDayType; +use Filament\Forms\Components\DatePicker; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Schemas\Schema; class WorkCalendarForm @@ -10,7 +14,18 @@ public static function configure(Schema $schema): Schema { return $schema ->components([ - // + DatePicker::make('date') + ->label('Dátum') + ->required() + ->native(false) + ->displayFormat('Y-m-d'), + Select::make('type') + ->label('Típus') + ->options(WorkDayType::class) + ->required(), + TextInput::make('description') + ->label('Leírás') + ->maxLength(255), ]); } } diff --git a/app/Filament/Resources/WorkCalendars/Tables/WorkCalendarsTable.php b/app/Filament/Resources/WorkCalendars/Tables/WorkCalendarsTable.php index deb1b1c..dd325ea 100644 --- a/app/Filament/Resources/WorkCalendars/Tables/WorkCalendarsTable.php +++ b/app/Filament/Resources/WorkCalendars/Tables/WorkCalendarsTable.php @@ -7,6 +7,7 @@ use Filament\Actions\EditAction; use Filament\Actions\ForceDeleteBulkAction; use Filament\Actions\RestoreBulkAction; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\TrashedFilter; use Filament\Tables\Table; @@ -16,7 +17,18 @@ public static function configure(Table $table): Table { return $table ->columns([ - // + TextColumn::make('date') + ->label('Dátum') + ->date() + ->sortable(), + TextColumn::make('type') + ->label('Típus') + ->badge() + ->formatStateUsing(fn ($state) => $state?->label()) + ->color(fn ($state) => $state?->color()), + TextColumn::make('description') + ->label('Leírás') + ->searchable(), ]) ->filters([ TrashedFilter::make(), diff --git a/app/Filament/Resources/WorkCalendars/WorkCalendarResource.php b/app/Filament/Resources/WorkCalendars/WorkCalendarResource.php index 7647297..4015597 100644 --- a/app/Filament/Resources/WorkCalendars/WorkCalendarResource.php +++ b/app/Filament/Resources/WorkCalendars/WorkCalendarResource.php @@ -20,7 +20,11 @@ class WorkCalendarResource extends Resource { protected static ?string $model = WorkCalendar::class; - protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack; + protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-calendar'; + + protected static string|\UnitEnum|null $navigationGroup = 'Szállítás'; + + protected static ?string $navigationLabel = 'Munkanaptárak'; public static function form(Schema $schema): Schema { diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 67ccd85..56a24db 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -6,6 +6,7 @@ use Filament\Http\Middleware\AuthenticateSession; use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DispatchServingFilamentEvent; +use Saade\FilamentFullCalendar\FilamentFullCalendarPlugin; use Filament\Panel; use Filament\PanelProvider; use Filament\Support\Colors\Color; @@ -61,6 +62,7 @@ public function panel(Panel $panel): Panel ->widgets([ AccountWidget::class, FilamentInfoWidget::class, + \App\Filament\Widgets\DeliveryCalendarWidget::class, ]) ->middleware([ EncryptCookies::class, @@ -78,6 +80,11 @@ public function panel(Panel $panel): Panel ]) ->darkMode(false) ->topNavigation() + ->plugins([ + FilamentFullCalendarPlugin::make()->plugins(['multiMonth']) + ->selectable() + ->editable(), + ]) ->breadcrumbs(false) ->navigation(false) ->renderHook( diff --git a/composer.json b/composer.json index 87f85be..a2bbddc 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "bensampo/laravel-enum": "^6.12", "filament/filament": "4.0@dev", "flugger/laravel-responder": "^3.5", + "guava/calendar": "2.0", "jeroenzwart/laravel-csv-seeder": "^1.5", "kalnoy/nestedset": "^6.0", "laravel-json-api/laravel": "^5.1", @@ -23,6 +24,7 @@ "livewire/livewire": "^3.7", "maatwebsite/excel": "^3.1", "rap2hpoutre/fast-excel": "^5.6", + "saade/filament-fullcalendar": "4.x-dev", "santigarcor/laratrust": "^8.4", "yajra/laravel-datatables": "^12.0", "yajra/laravel-datatables-oracle": "^12.0" diff --git a/composer.lock b/composer.lock index 66417d1..751d610 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ec185cb1fddcfd26057ef51f712c4c19", + "content-hash": "05f09a61a6722503ee896c57c530bf6b", "packages": [ { "name": "ahmedhakeem/extra", @@ -2888,6 +2888,86 @@ ], "time": "2025-12-27T19:43:20+00:00" }, + { + "name": "guava/calendar", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/GuavaCZ/calendar.git", + "reference": "3ef87e6a754bd5a7d65cd387bfc98c58682110ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GuavaCZ/calendar/zipball/3ef87e6a754bd5a7d65cd387bfc98c58682110ae", + "reference": "3ef87e6a754bd5a7d65cd387bfc98c58682110ae", + "shasum": "" + }, + "require": { + "filament/filament": "^4.0-beta", + "illuminate/contracts": "^11.0|^12.0", + "php": "^8.1|^8.2", + "spatie/laravel-package-tools": "^1.14.0" + }, + "require-dev": { + "laravel/pint": "^1.0", + "nunomaduro/collision": "^7.8|^8.0", + "nunomaduro/larastan": "^2.0.1", + "orchestra/testbench": "^9.0|^10.0", + "pestphp/pest": "^2.36", + "pestphp/pest-plugin": "^2.1.1", + "pestphp/pest-plugin-arch": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Guava\\Calendar\\CalendarServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Guava\\Calendar\\": "src/", + "Guava\\Calendar\\Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lukas Frey", + "email": "lukas.frey@guava.cz", + "role": "Developer" + } + ], + "description": "Adds support for vkurko/calendar to Filament PHP.", + "homepage": "https://github.com/GuavaCZ/calendar", + "keywords": [ + "Guava", + "calendar", + "laravel" + ], + "support": { + "issues": "https://github.com/GuavaCZ/calendar/issues", + "source": "https://github.com/GuavaCZ/calendar/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/GuavaCZ", + "type": "github" + } + ], + "time": "2025-08-17T13:52:37+00:00" + }, { "name": "guzzlehttp/guzzle", "version": "7.10.0", @@ -8473,6 +8553,81 @@ ], "time": "2025-02-25T09:09:36+00:00" }, + { + "name": "saade/filament-fullcalendar", + "version": "4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/saade/filament-fullcalendar.git", + "reference": "191d69b9d568a9fdfd3f3586428d8cf5a940fd50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/saade/filament-fullcalendar/zipball/191d69b9d568a9fdfd3f3586428d8cf5a940fd50", + "reference": "191d69b9d568a9fdfd3f3586428d8cf5a940fd50", + "shasum": "" + }, + "require": { + "filament/filament": "^4.0|^5.0", + "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.92.7" + }, + "require-dev": { + "nunomaduro/collision": "^7.0|^8.0", + "nunomaduro/larastan": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", + "phpstan/phpstan-phpunit": "^1.0|^2.0", + "spatie/laravel-ray": "^1.26" + }, + "default-branch": true, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Saade\\FilamentFullCalendar\\FilamentFullCalendarServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Saade\\FilamentFullCalendar\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Saade", + "email": "saade@outlook.com.br", + "role": "Developer" + } + ], + "description": "The Most Popular JavaScript Calendar integrated with Filament 💛", + "homepage": "https://github.com/saade/filament-fullcalendar", + "keywords": [ + "filament-fullcalendar", + "laravel", + "saade" + ], + "support": { + "issues": "https://github.com/saade/filament-fullcalendar/issues", + "source": "https://github.com/saade/filament-fullcalendar/tree/4.x" + }, + "funding": [ + { + "url": "https://github.com/saade", + "type": "github" + } + ], + "time": "2026-04-14T23:35:46+00:00" + }, { "name": "sabberworm/php-css-parser", "version": "v9.1.0", @@ -17099,7 +17254,8 @@ "minimum-stability": "stable", "stability-flags": { "ahmedhakeem/extra": 20, - "filament/filament": 20 + "filament/filament": 20, + "saade/filament-fullcalendar": 20 }, "prefer-stable": true, "prefer-lowest": false, diff --git a/public/css/app.css b/public/css/app.css index 868e4ee..32a9473 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -1,185 +1,3 @@ -/*! - * jQuery UI CSS Framework 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/category/theming/ - */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{border:0;font-size:100%;line-height:1.3;list-style:none;margin:0;outline:0;padding:0;text-decoration:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{border-collapse:collapse;content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{background-repeat:no-repeat;display:inline-block;margin-top:-.25em;overflow:hidden;position:relative;text-indent:-99999px;vertical-align:middle}.ui-widget-icon-block{display:block;left:50%;margin-left:-8px}.ui-widget-overlay{height:100%;left:0;position:fixed;top:0;width:100%} -/*! - * jQuery UI Accordion 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/accordion/#theming - */.ui-accordion .ui-accordion-header{cursor:pointer;display:block;font-size:100%;margin:2px 0 0;padding:.5em .5em .5em .7em;position:relative}.ui-accordion .ui-accordion-content{border-top:0;overflow:auto;padding:1em 2.2em} -/*! - * jQuery UI Autocomplete 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/autocomplete/#theming - */.ui-autocomplete{cursor:default;left:0;position:absolute;top:0} -/*! - * jQuery UI Button 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/button/#theming - */.ui-button{cursor:pointer;display:inline-block;line-height:normal;margin-right:.1em;padding:.4em 1em;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{box-sizing:border-box;text-indent:-9999px;white-space:nowrap;width:2em}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-button.ui-icon-notext .ui-icon{height:2.1em;padding:0;text-indent:-9999px;white-space:nowrap;width:2.1em}input.ui-button.ui-icon-notext .ui-icon{height:auto;padding:.4em 1em;text-indent:0;white-space:normal;width:auto}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0} -/*! - * jQuery UI Checkboxradio 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/checkboxradio/#theming - */.ui-checkboxradio-label .ui-icon-background{border:none;border-radius:.12em;box-shadow:inset 1px 1px 1px #ccc}.ui-checkboxradio-radio-label .ui-icon-background{border:none;border-radius:1em;height:16px;overflow:visible;width:16px}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;border-style:solid;border-width:4px;height:8px;width:8px}.ui-checkboxradio-disabled{pointer-events:none} -/*! - * jQuery UI Controlgroup 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/controlgroup/#theming - */.ui-controlgroup{display:inline-block;vertical-align:middle}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;margin-bottom:0;margin-top:0;text-align:left;width:100%}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid} -/*! - * jQuery UI Datepicker 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/datepicker/#theming - */.ui-datepicker{display:none;padding:.2em .2em 0;width:17em}.ui-datepicker .ui-datepicker-header{padding:.2em 0;position:relative}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{height:1.8em;position:absolute;top:2px;width:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-datepicker .ui-datepicker-title{line-height:1.8em;margin:0 2.3em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{border-collapse:collapse;font-size:.9em;margin:0 0 .4em;width:100%}.ui-datepicker th{border:0;font-weight:700;padding:.7em .3em;text-align:center}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;border-bottom:0;border-left:0;border-right:0;margin:.7em 0 0;padding:0 .2em}.ui-datepicker .ui-datepicker-buttonpane button{cursor:pointer;float:right;margin:.5em .2em .4em;overflow:visible;padding:.2em .6em .3em;width:auto}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{margin:0 auto .4em;width:95%}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;font-size:0;width:100%}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{left:auto;right:2px}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{left:auto;right:1px}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:1px;border-right-width:0}.ui-datepicker .ui-icon{background-repeat:no-repeat;display:block;left:.5em;overflow:hidden;text-indent:-99999px;top:.3em} -/*! - * jQuery UI Dialog 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/dialog/#theming - */.ui-dialog{left:0;outline:0;padding:.2em;position:absolute;top:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:90%}.ui-dialog .ui-dialog-titlebar-close{height:20px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:20px}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;position:relative}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin-top:.5em;padding:.3em 1em .5em .4em;text-align:left}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;margin:.5em .4em .5em 0}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{right:0;width:2px}.ui-dialog .ui-resizable-s{bottom:0;height:2px}.ui-dialog .ui-resizable-w{left:0;width:2px}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{height:7px;width:7px}.ui-dialog .ui-resizable-se{bottom:0;right:0}.ui-dialog .ui-resizable-sw{bottom:0;left:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move} -/*! - * jQuery UI Draggable 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - */.ui-draggable-handle{touch-action:none} -/*! - * jQuery UI Menu 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/menu/#theming - */.ui-menu{display:block;list-style:none;margin:0;outline:0;padding:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{cursor:pointer;margin:0}.ui-menu .ui-menu-item-wrapper{padding:3px 1em 3px .4em;position:relative}.ui-menu .ui-menu-divider{border-width:1px 0 0;font-size:0;height:0;line-height:0;margin:5px 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{bottom:0;left:.2em;margin:auto 0;position:absolute;top:0}.ui-menu .ui-menu-icon{left:auto;right:0} -/*! - * jQuery UI Progressbar 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/progressbar/#theming - */.ui-progressbar{height:2em;overflow:hidden;text-align:left}.ui-progressbar .ui-progressbar-value{height:100%;margin:-1px}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none} -/*! - * jQuery UI Resizable 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - */.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px} -/*! - * jQuery UI Selectable 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - */.ui-selectable{touch-action:none}.ui-selectable-helper{border:1px dotted #000;position:absolute;z-index:100} -/*! - * jQuery UI Selectmenu 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/selectmenu/#theming - */.ui-selectmenu-menu{display:none;left:0;margin:0;padding:0;position:absolute;top:0}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{border:0;font-size:1em;font-weight:700;height:auto;line-height:1.5;margin:.5em 0 0;padding:2px .4em}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0} -/*! - * jQuery UI Sortable 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - */.ui-sortable-handle{touch-action:none} -/*! - * jQuery UI Slider 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/slider/#theming - */.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{cursor:pointer;height:1.2em;position:absolute;touch-action:none;width:1.2em;z-index:2}.ui-slider .ui-slider-range{background-position:0 0;border:0;display:block;font-size:.7em;position:absolute;z-index:1}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{margin-left:-.6em;top:-.3em}.ui-slider-horizontal .ui-slider-range{height:100%;top:0}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{height:100px;width:.8em}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-bottom:-.6em;margin-left:0}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0} -/*! - * jQuery UI Spinner 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/spinner/#theming - */.ui-spinner{display:inline-block;overflow:hidden;padding:0;position:relative;vertical-align:middle}.ui-spinner-input{background:none;border:none;color:inherit;margin:.2em 2em .2em .4em;padding:.222em 0;vertical-align:middle}.ui-spinner-button{cursor:default;display:block;font-size:.5em;height:50%;margin:0;overflow:hidden;padding:0;position:absolute;right:0;text-align:center;width:1.6em}.ui-spinner a.ui-spinner-button{border-bottom-style:none;border-right-style:none;border-top-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0} -/*! - * jQuery UI Tabs 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/tabs/#theming - */.ui-tabs{padding:.2em;position:relative}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{border-bottom-width:0;float:left;list-style:none;margin:1px .2em 0 0;padding:0;position:relative;top:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{background:none;border-width:0;display:block;padding:1em 1.4em} -/*! - * jQuery UI Tooltip 1.14.2 - * https://jqueryui.com - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license - * - * https://api.jqueryui.com/tooltip/#theming - */.ui-tooltip{max-width:300px;padding:8px;position:absolute;z-index:9999}body .ui-tooltip{border-width:2px} /*! * jQuery UI CSS Framework 1.14.2 * https://jqueryui.com @@ -190,6 +8,1065 @@ * * https://api.jqueryui.com/category/theming/ */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/*! + * jQuery UI Accordion 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/accordion/#theming + */ +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + font-size: 100%; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} + +/*! + * jQuery UI Autocomplete 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/autocomplete/#theming + */ +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} + +/*! + * jQuery UI Button 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/button/#theming + */ +.ui-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} + +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 125+ */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} + +/*! + * jQuery UI Checkboxradio 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/checkboxradio/#theming + */ + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} + +/*! + * jQuery UI Controlgroup 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/controlgroup/#theming + */ + +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + + +/*! + * jQuery UI Datepicker 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/datepicker/#theming + */ +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} + +/*! + * jQuery UI Dialog 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/dialog/#theming + */ +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} + +/*! + * jQuery UI Draggable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ +.ui-draggable-handle { + touch-action: none; +} + +/*! + * jQuery UI Menu 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/menu/#theming + */ +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} + +/*! + * jQuery UI Progressbar 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/progressbar/#theming + */ +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} + +/*! + * jQuery UI Resizable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} + +/*! + * jQuery UI Selectable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ +.ui-selectable { + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} + +/*! + * jQuery UI Selectmenu 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/selectmenu/#theming + */ +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} + +/*! + * jQuery UI Sortable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ +.ui-sortable-handle { + touch-action: none; +} + +/*! + * jQuery UI Slider 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/slider/#theming + */ +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: pointer; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} + +/*! + * jQuery UI Spinner 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/spinner/#theming + */ +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: .222em 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/*! + * jQuery UI Tabs 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/tabs/#theming + */ +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} + +/*! + * jQuery UI Tooltip 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/tooltip/#theming + */ +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} + +/*! + * jQuery UI CSS Framework 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/category/theming/ + */ + /*! * jQuery UI CSS Framework 1.14.2 * https://jqueryui.com @@ -201,7 +1078,435 @@ * https://api.jqueryui.com/category/theming/ * * To view and modify this theme, visit https://jqueryui.com/themeroller/ - */.ui-widget{font-family:Arial,Helvetica,sans-serif}.ui-widget,.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{background:#fff;border:1px solid #ddd;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{background:#e9e9e9;border:1px solid #ddd;color:#333;font-weight:700}.ui-widget-header a{color:#333}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{background:#f6f6f6;border:1px solid #c5c5c5;color:#454545;font-weight:400}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#ededed;border:1px solid #ccc;color:#2b2b2b;font-weight:400}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{background:#007fff;border:1px solid #003eff;color:#fff;font-weight:400}.ui-icon-background,.ui-state-active .ui-icon-background{background-color:#fff;border:#003eff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#fffa90;border:1px solid #dad55e;color:#777620}.ui-state-checked{background:#fffa90;border:1px solid #dad55e}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#fddfdf;border:1px solid #f1a899;color:#5f3f3f}.ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error a,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{font-weight:400;opacity:.7}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{background-image:none;opacity:.35}.ui-icon{height:16px;width:16px}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_444444_256x240.png?d1b818587c3bc65058fe43800e4a191c)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_555555_256x240.png?35d57320d9df28ec0d0d8bd1b5c75983)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_ffffff_256x240.png?92bef7e45fed3caba8dc9348edef4df2)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_777620_256x240.png?f423048bf942a7a33b33b1b982ecdb51)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_cc0000_256x240.png?5cbbd560bcf30acb95dd3b0b0d61645a)}.ui-button .ui-icon{background-image:url(/images/vendor/jquery-ui/themes/base/ui-icons_777777_256x240.png?f5d5fce2f36b5776eab8b314efc2dfd8)}.ui-icon-blank.ui-icon-blank.ui-icon-blank{background-image:none}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3}.ui-widget-shadow{box-shadow:0 0 5px #666} + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif/*{ffDefault}*/; + font-size: 1em/*{fsDefault}*/; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif/*{ffDefault}*/; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5/*{borderColorDefault}*/; +} +.ui-widget-content { + border: 1px solid #dddddd/*{borderColorContent}*/; + background: #ffffff/*{bgColorContent}*/ /*{bgImgUrlContent}*/ /*{bgContentXPos}*/ /*{bgContentYPos}*/ /*{bgContentRepeat}*/; + color: #333333/*{fcContent}*/; +} +.ui-widget-content a { + color: #333333/*{fcContent}*/; +} +.ui-widget-header { + border: 1px solid #dddddd/*{borderColorHeader}*/; + background: #e9e9e9/*{bgColorHeader}*/ /*{bgImgUrlHeader}*/ /*{bgHeaderXPos}*/ /*{bgHeaderYPos}*/ /*{bgHeaderRepeat}*/; + color: #333333/*{fcHeader}*/; + font-weight: bold; +} +.ui-widget-header a { + color: #333333/*{fcHeader}*/; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5/*{borderColorDefault}*/; + background: #f6f6f6/*{bgColorDefault}*/ /*{bgImgUrlDefault}*/ /*{bgDefaultXPos}*/ /*{bgDefaultYPos}*/ /*{bgDefaultRepeat}*/; + font-weight: normal/*{fwDefault}*/; + color: #454545/*{fcDefault}*/; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545/*{fcDefault}*/; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc/*{borderColorHover}*/; + background: #ededed/*{bgColorHover}*/ /*{bgImgUrlHover}*/ /*{bgHoverXPos}*/ /*{bgHoverYPos}*/ /*{bgHoverRepeat}*/; + font-weight: normal/*{fwDefault}*/; + color: #2b2b2b/*{fcHover}*/; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b/*{fcHover}*/; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff/*{borderColorActive}*/; + background: #007fff/*{bgColorActive}*/ /*{bgImgUrlActive}*/ /*{bgActiveXPos}*/ /*{bgActiveYPos}*/ /*{bgActiveRepeat}*/; + font-weight: normal/*{fwDefault}*/; + color: #ffffff/*{fcActive}*/; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff/*{borderColorActive}*/; + background-color: #ffffff/*{fcActive}*/; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff/*{fcActive}*/; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e/*{borderColorHighlight}*/; + background: #fffa90/*{bgColorHighlight}*/ /*{bgImgUrlHighlight}*/ /*{bgHighlightXPos}*/ /*{bgHighlightYPos}*/ /*{bgHighlightRepeat}*/; + color: #777620/*{fcHighlight}*/; +} +.ui-state-checked { + border: 1px solid #dad55e/*{borderColorHighlight}*/; + background: #fffa90/*{bgColorHighlight}*/; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620/*{fcHighlight}*/; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899/*{borderColorError}*/; + background: #fddfdf/*{bgColorError}*/ /*{bgImgUrlError}*/ /*{bgErrorXPos}*/ /*{bgErrorYPos}*/ /*{bgErrorRepeat}*/; + color: #5f3f3f/*{fcError}*/; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f/*{fcError}*/; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f/*{fcError}*/; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + background-image: none; +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_444444_256x240.png?d1b818587c3bc65058fe43800e4a191c)/*{iconsContent}*/; +} +.ui-widget-header .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_444444_256x240.png?d1b818587c3bc65058fe43800e4a191c)/*{iconsHeader}*/; +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_555555_256x240.png?35d57320d9df28ec0d0d8bd1b5c75983)/*{iconsHover}*/; +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_ffffff_256x240.png?92bef7e45fed3caba8dc9348edef4df2)/*{iconsActive}*/; +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_777620_256x240.png?f423048bf942a7a33b33b1b982ecdb51)/*{iconsHighlight}*/; +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_cc0000_256x240.png?5cbbd560bcf30acb95dd3b0b0d61645a)/*{iconsError}*/; +} +.ui-button .ui-icon { + background-image: url(/images/vendor/jquery-ui/themes/base/ui-icons_777777_256x240.png?f5d5fce2f36b5776eab8b314efc2dfd8)/*{iconsDefault}*/; +} + +/* positioning */ +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px/*{cornerRadius}*/; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px/*{cornerRadius}*/; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px/*{cornerRadius}*/; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px/*{cornerRadius}*/; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa/*{bgColorOverlay}*/ /*{bgImgUrlOverlay}*/ /*{bgOverlayXPos}*/ /*{bgOverlayYPos}*/ /*{bgOverlayRepeat}*/; + opacity: .3/*{opacityOverlay}*/; +} +.ui-widget-shadow { + box-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/; +} + /*! * jQuery UI CSS Framework 1.14.2 * https://jqueryui.com @@ -212,6 +1517,7 @@ * * https://api.jqueryui.com/category/theming/ */ + /*! * jQuery UI CSS Framework 1.12.0 * http://jqueryui.com @@ -223,37 +1529,25476 @@ * http://api.jqueryui.com/category/theming/ * * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ffffff&bgTextureHeader=fine_grain&bgImgOpacityHeader=15&borderColorHeader=d4d1bf&fcHeader=453821&iconColorHeader=b83400&bgColorContent=eceadf&bgTextureContent=fine_grain&bgImgOpacityContent=10&borderColorContent=d9d6c4&fcContent=1f1f1f&iconColorContent=222222&bgColorDefault=f8f7f6&bgTextureDefault=fine_grain&bgImgOpacityDefault=10&borderColorDefault=cbc7bd&fcDefault=654b24&iconColorDefault=b83400&bgColorHover=654b24&bgTextureHover=fine_grain&bgImgOpacityHover=65&borderColorHover=654b24&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=eceadf&bgTextureActive=fine_grain&bgImgOpacityActive=15&borderColorActive=d9d6c4&fcActive=140f06&iconColorActive=8c291d&bgColorHighlight=f7f3de&bgTextureHighlight=fine_grain&bgImgOpacityHighlight=15&borderColorHighlight=b2a266&fcHighlight=3a3427&iconColorHighlight=3572ac&bgColorError=b83400&bgTextureError=fine_grain&bgImgOpacityError=68&borderColorError=681818&fcError=ffffff&iconColorError=fbdb93&bgColorOverlay=6e4f1c&bgTextureOverlay=diagonal_maze&bgImgOpacityOverlay=20&opacityOverlay=60&bgColorShadow=000000&bgTextureShadow=diagonal_maze&bgImgOpacityShadow=40&opacityShadow=60&thicknessShadow=5px&offsetTopShadow=0&offsetLeftShadow=-10px&cornerRadiusShadow=18px - */.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #cbc7bd}.ui-widget-content{background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_eceadf_60x60.png?fcf8539b586ee18bcdea1755486148fb) 50% 50% repeat;border:1px solid #d9d6c4;color:#1f1f1f}.ui-widget-content a{color:#1f1f1f}.ui-widget-header{background:#fff url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_ffffff_60x60.png?c514e7ba7589d0f49ac63c298fcdae5e) 50% 50% repeat;border:1px solid #d4d1bf;color:#453821;font-weight:700}.ui-widget-header a{color:#453821}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{background:#f8f7f6 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_f8f7f6_60x60.png?2999b2509cfc0da9d2638ce9f892d541) 50% 50% repeat;border:1px solid #cbc7bd;color:#654b24;font-weight:700}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#654b24;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#654b24 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_65_654b24_60x60.png?6a53536235d962916651e5ade810be9c) 50% 50% repeat;border:1px solid #654b24;color:#fff;font-weight:700}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#fff;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_eceadf_60x60.png?bb99362eb46ac5b5824fabbfe6271e29) 50% 50% repeat;border:1px solid #d9d6c4;color:#140f06;font-weight:700}.ui-icon-background,.ui-state-active .ui-icon-background{background-color:#140f06;border:#d9d6c4}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#140f06;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#f7f3de url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_f7f3de_60x60.png?9d1facfcb89e21b78242e2eb8cbd491c) 50% 50% repeat;border:1px solid #b2a266;color:#3a3427}.ui-state-checked{background:#f7f3de;border:1px solid #b2a266}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#3a3427}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#b83400 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_68_b83400_60x60.png?f786ff5070a9c8cde4f9b567fc84e004) 50% 50% repeat;border:1px solid #681818;color:#fff}.ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error a,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{filter:Alpha(Opacity=70);font-weight:400;opacity:.7}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{background-image:none;filter:Alpha(Opacity=35);opacity:.35}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{height:16px;width:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_222222_256x240.png?bcf1cdc9c7d1486173cc9aaa8b1fc77b)}.ui-button .ui-icon,.ui-widget-header .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-default .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_ffffff_256x240.png?fc616163e14c52dba5af7fdb573d2e64)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_8c291d_256x240.png?faf8dac1c3a19fa71b3349936071548b)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_3572ac_256x240.png?6b15e6e5507d972be2e15634d0f7bc82)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_fbdb93_256x240.png?aca518e5efefaf76c067ffb0e2438334)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:6px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:6px}.ui-widget-overlay{background:#6e4f1c url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_diagonal-maze_20_6e4f1c_10x10.png?bde4cdb5c33f6a9c1c25419a4732ad98) 50% 50% repeat;filter:Alpha(Opacity=60);opacity:.6}.ui-widget-shadow{box-shadow:-10px 0 5px #000} + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #cbc7bd; +} +.ui-widget-content { + border: 1px solid #d9d6c4; + background: #eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_eceadf_60x60.png?fcf8539b586ee18bcdea1755486148fb) 50% 50% repeat; + color: #1f1f1f; +} +.ui-widget-content a { + color: #1f1f1f; +} +.ui-widget-header { + border: 1px solid #d4d1bf; + background: #ffffff url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_ffffff_60x60.png?c514e7ba7589d0f49ac63c298fcdae5e) 50% 50% repeat; + color: #453821; + font-weight: bold; +} +.ui-widget-header a { + color: #453821; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #cbc7bd; + background: #f8f7f6 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_f8f7f6_60x60.png?2999b2509cfc0da9d2638ce9f892d541) 50% 50% repeat; + font-weight: bold; + color: #654b24; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #654b24; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #654b24; + background: #654b24 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_65_654b24_60x60.png?6a53536235d962916651e5ade810be9c) 50% 50% repeat; + font-weight: bold; + color: #ffffff; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #ffffff; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #d9d6c4; + background: #eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_eceadf_60x60.png?bb99362eb46ac5b5824fabbfe6271e29) 50% 50% repeat; + font-weight: bold; + color: #140f06; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #d9d6c4; + background-color: #140f06; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #140f06; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #b2a266; + background: #f7f3de url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_f7f3de_60x60.png?9d1facfcb89e21b78242e2eb8cbd491c) 50% 50% repeat; + color: #3a3427; +} +.ui-state-checked { + border: 1px solid #b2a266; + background: #f7f3de; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #3a3427; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #681818; + background: #b83400 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_68_b83400_60x60.png?f786ff5070a9c8cde4f9b567fc84e004) 50% 50% repeat; + color: #ffffff; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #ffffff; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #ffffff; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_222222_256x240.png?bcf1cdc9c7d1486173cc9aaa8b1fc77b); +} +.ui-widget-header .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824); +} +.ui-button .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon, +.ui-state-default .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_ffffff_256x240.png?fc616163e14c52dba5af7fdb573d2e64); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_8c291d_256x240.png?faf8dac1c3a19fa71b3349936071548b); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_3572ac_256x240.png?6b15e6e5507d972be2e15634d0f7bc82); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_fbdb93_256x240.png?aca518e5efefaf76c067ffb0e2438334); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 6px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 6px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 6px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 6px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #6e4f1c url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_diagonal-maze_20_6e4f1c_10x10.png?bde4cdb5c33f6a9c1c25419a4732ad98) 50% 50% repeat; + opacity: .6; + filter: Alpha(Opacity=60); /* support: IE8 */ +} +.ui-widget-shadow { + box-shadow: -10px 0 5px #000000; +} + /*! jQuery UI - v1.12.0 - 2016-07-08 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ffffff&bgTextureHeader=fine_grain&bgImgOpacityHeader=15&borderColorHeader=d4d1bf&fcHeader=453821&iconColorHeader=b83400&bgColorContent=eceadf&bgTextureContent=fine_grain&bgImgOpacityContent=10&borderColorContent=d9d6c4&fcContent=1f1f1f&iconColorContent=222222&bgColorDefault=f8f7f6&bgTextureDefault=fine_grain&bgImgOpacityDefault=10&borderColorDefault=cbc7bd&fcDefault=654b24&iconColorDefault=b83400&bgColorHover=654b24&bgTextureHover=fine_grain&bgImgOpacityHover=65&borderColorHover=654b24&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=eceadf&bgTextureActive=fine_grain&bgImgOpacityActive=15&borderColorActive=d9d6c4&fcActive=140f06&iconColorActive=8c291d&bgColorHighlight=f7f3de&bgTextureHighlight=fine_grain&bgImgOpacityHighlight=15&borderColorHighlight=b2a266&fcHighlight=3a3427&iconColorHighlight=3572ac&bgColorError=b83400&bgTextureError=fine_grain&bgImgOpacityError=68&borderColorError=681818&fcError=ffffff&iconColorError=fbdb93&bgColorOverlay=6e4f1c&bgTextureOverlay=diagonal_maze&bgImgOpacityOverlay=20&opacityOverlay=60&bgColorShadow=000000&bgTextureShadow=diagonal_maze&bgImgOpacityShadow=40&opacityShadow=60&thicknessShadow=5px&offsetTopShadow=0&offsetLeftShadow=-10px&cornerRadiusShadow=18px -* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{border:0;font-size:100%;line-height:1.3;list-style:none;margin:0;outline:0;padding:0;text-decoration:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{border-collapse:collapse;content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{filter:Alpha(Opacity=0);height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{background-repeat:no-repeat;display:inline-block;margin-top:-.25em;overflow:hidden;position:relative;text-indent:-99999px;vertical-align:middle}.ui-widget-icon-block{display:block;left:50%;margin-left:-8px}.ui-widget-overlay{height:100%;left:0;position:fixed;top:0;width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;display:block;font-size:100%;margin:2px 0 0;padding:.5em .5em .5em .7em;position:relative}.ui-accordion .ui-accordion-content{border-top:0;overflow:auto;padding:1em 2.2em}.ui-autocomplete{cursor:default;left:0;position:absolute;top:0}.ui-menu{display:block;list-style:none;margin:0;outline:0;padding:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");margin:0}.ui-menu .ui-menu-item-wrapper{padding:3px 1em 3px .4em;position:relative}.ui-menu .ui-menu-divider{border-width:1px 0 0;font-size:0;height:0;line-height:0;margin:5px 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{bottom:0;left:.2em;margin:auto 0;position:absolute;top:0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{cursor:pointer;display:inline-block;line-height:normal;margin-right:.1em;overflow:visible;padding:.4em 1em;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{box-sizing:border-box;text-indent:-9999px;white-space:nowrap;width:2em}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-button.ui-icon-notext .ui-icon{height:2.1em;padding:0;text-indent:-9999px;white-space:nowrap;width:2.1em}input.ui-button.ui-icon-notext .ui-icon{height:auto;padding:.4em 1em;text-indent:0;white-space:normal;width:auto}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{display:inline-block;vertical-align:middle}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;margin-bottom:0;margin-top:0;text-align:left;width:100%}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{border:none;border-radius:.12em;box-shadow:inset 1px 1px 1px #ccc}.ui-checkboxradio-radio-label .ui-icon-background{border:none;border-radius:1em;height:16px;overflow:visible;width:16px}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;border-style:solid;border-width:4px;height:8px;width:8px}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{display:none;padding:.2em .2em 0;width:17em}.ui-datepicker .ui-datepicker-header{padding:.2em 0;position:relative}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{height:1.8em;position:absolute;top:2px;width:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-datepicker .ui-datepicker-title{line-height:1.8em;margin:0 2.3em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{border-collapse:collapse;font-size:.9em;margin:0 0 .4em;width:100%}.ui-datepicker th{border:0;font-weight:700;padding:.7em .3em;text-align:center}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;border-bottom:0;border-left:0;border-right:0;margin:.7em 0 0;padding:0 .2em}.ui-datepicker .ui-datepicker-buttonpane button{cursor:pointer;float:right;margin:.5em .2em .4em;overflow:visible;padding:.2em .6em .3em;width:auto}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{margin:0 auto .4em;width:95%}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;font-size:0;width:100%}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{left:auto;right:2px}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{left:auto;right:1px}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:1px;border-right-width:0}.ui-datepicker .ui-icon{background-repeat:no-repeat;display:block;left:.5em;overflow:hidden;text-indent:-99999px;top:.3em}.ui-dialog{left:0;outline:0;padding:.2em;position:absolute;top:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:90%}.ui-dialog .ui-dialog-titlebar-close{height:20px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:20px}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;position:relative}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin-top:.5em;padding:.3em 1em .5em .4em;text-align:left}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;margin:.5em .4em .5em 0}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{right:0;width:2px}.ui-dialog .ui-resizable-s{bottom:0;height:2px}.ui-dialog .ui-resizable-w{left:0;width:2px}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{height:7px;width:7px}.ui-dialog .ui-resizable-se{bottom:0;right:0}.ui-dialog .ui-resizable-sw{bottom:0;left:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-progressbar{height:2em;overflow:hidden;text-align:left}.ui-progressbar .ui-progressbar-value{height:100%;margin:-1px}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");filter:alpha(opacity=25);height:100%;opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{touch-action:none}.ui-selectable-helper{border:1px dotted #000;position:absolute;z-index:100}.ui-selectmenu-menu{display:none;left:0;margin:0;padding:0;position:absolute;top:0}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{border:0;font-size:1em;font-weight:700;height:auto;line-height:1.5;margin:.5em 0 0;padding:2px .4em}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{cursor:default;height:1.2em;position:absolute;touch-action:none;width:1.2em;z-index:2}.ui-slider .ui-slider-range{background-position:0 0;border:0;display:block;font-size:.7em;position:absolute;z-index:1}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{margin-left:-.6em;top:-.3em}.ui-slider-horizontal .ui-slider-range{height:100%;top:0}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{height:100px;width:.8em}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-bottom:-.6em;margin-left:0}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{touch-action:none}.ui-spinner{display:inline-block;overflow:hidden;padding:0;position:relative;vertical-align:middle}.ui-spinner-input{background:none;border:none;color:inherit;margin:.2em 2em .2em .4em;padding:.222em 0;vertical-align:middle}.ui-spinner-button{cursor:default;display:block;font-size:.5em;height:50%;margin:0;overflow:hidden;padding:0;position:absolute;right:0;text-align:center;width:1.6em}.ui-spinner a.ui-spinner-button{border-bottom-style:none;border-right-style:none;border-top-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{padding:.2em;position:relative}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{border-bottom-width:0;float:left;list-style:none;margin:1px .2em 0 0;padding:0;position:relative;top:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{background:none;border-width:0;display:block;padding:1em 1.4em}.ui-tooltip{max-width:300px;padding:8px;position:absolute;z-index:9999}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #cbc7bd}.ui-widget-content{background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_eceadf_60x60.png?fcf8539b586ee18bcdea1755486148fb) 50% 50% repeat;border:1px solid #d9d6c4;color:#1f1f1f}.ui-widget-content a{color:#1f1f1f}.ui-widget-header{background:#fff url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_ffffff_60x60.png?c514e7ba7589d0f49ac63c298fcdae5e) 50% 50% repeat;border:1px solid #d4d1bf;color:#453821;font-weight:700}.ui-widget-header a{color:#453821}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{background:#f8f7f6 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_f8f7f6_60x60.png?2999b2509cfc0da9d2638ce9f892d541) 50% 50% repeat;border:1px solid #cbc7bd;color:#654b24;font-weight:700}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#654b24;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#654b24 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_65_654b24_60x60.png?6a53536235d962916651e5ade810be9c) 50% 50% repeat;border:1px solid #654b24;color:#fff;font-weight:700}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#fff;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_eceadf_60x60.png?bb99362eb46ac5b5824fabbfe6271e29) 50% 50% repeat;border:1px solid #d9d6c4;color:#140f06;font-weight:700}.ui-icon-background,.ui-state-active .ui-icon-background{background-color:#140f06;border:#d9d6c4}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#140f06;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#f7f3de url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_f7f3de_60x60.png?9d1facfcb89e21b78242e2eb8cbd491c) 50% 50% repeat;border:1px solid #b2a266;color:#3a3427}.ui-state-checked{background:#f7f3de;border:1px solid #b2a266}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#3a3427}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#b83400 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_68_b83400_60x60.png?f786ff5070a9c8cde4f9b567fc84e004) 50% 50% repeat;border:1px solid #681818;color:#fff}.ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error a,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{filter:Alpha(Opacity=70);font-weight:400;opacity:.7}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{background-image:none;filter:Alpha(Opacity=35);opacity:.35}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{height:16px;width:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_222222_256x240.png?bcf1cdc9c7d1486173cc9aaa8b1fc77b)}.ui-button .ui-icon,.ui-widget-header .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-default .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_ffffff_256x240.png?fc616163e14c52dba5af7fdb573d2e64)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_8c291d_256x240.png?faf8dac1c3a19fa71b3349936071548b)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_3572ac_256x240.png?6b15e6e5507d972be2e15634d0f7bc82)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_fbdb93_256x240.png?aca518e5efefaf76c067ffb0e2438334)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:6px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:6px}.ui-widget-overlay{background:#6e4f1c url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_diagonal-maze_20_6e4f1c_10x10.png?bde4cdb5c33f6a9c1c25419a4732ad98) 50% 50% repeat;filter:Alpha(Opacity=60);opacity:.6}.ui-widget-shadow{box-shadow:-10px 0 5px #000} -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;overflow:hidden;padding-left:8px;padding-right:20px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-left:20px;padding-right:8px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{border:none;box-sizing:border-box;font-family:sans-serif;font-size:100%;height:18px;margin-left:5px;margin-top:5px;max-width:100%;overflow:hidden;padding:0;resize:none;vertical-align:bottom;word-break:keep-all}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;left:-100000px;position:absolute;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{box-sizing:border-box;padding:4px;width:100%}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{background-color:#fff;border:0;display:block;filter:alpha(opacity=0);height:auto;left:0;margin:0;min-height:100%;min-width:100%;opacity:0;padding:0;position:fixed;top:0;width:auto;z-index:99}.select2-hidden-accessible{clip:rect(0 0 0 0)!important;border:0!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;height:26px;margin-right:20px;padding-right:0}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;right:1px;top:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px;position:relative}.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:25px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;font-weight:700;height:20px;margin-right:10px;margin-top:5px;padding:1px;position:absolute;right:0}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:inline-block;margin-left:5px;margin-top:5px;max-width:100%;overflow:hidden;padding:0 0 0 20px;position:relative;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-bottom-left-radius:4px;border-right:1px solid #aaa;border-top-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:700;left:0;padding:0 4px;position:absolute;top:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{border-bottom-left-radius:0;border-bottom-right-radius:4px;border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-top-right-radius:4px}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #000;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{-webkit-appearance:textfield;background:transparent;border:none;box-shadow:none;outline:0}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;border:1px solid #aaa;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0);outline:0}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;border:none;border-bottom-right-radius:4px;border-left:1px solid #aaa;border-top-right-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0);height:26px;position:absolute;right:1px;top:1px;width:20px}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-radius:0;border-bottom-left-radius:4px;border-right:1px solid #aaa;border-top-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;border-top:none;border-top-left-radius:0;border-top-right-radius:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-bottom-left-radius:4px;border-top-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:700;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{border-bottom-left-radius:0;border-bottom-right-radius:4px;border-top-left-radius:0;border-top-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{box-shadow:none;outline:0}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #cbc7bd}.ui-widget-content{border:1px solid #d9d6c4;background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_eceadf_60x60.png?fcf8539b586ee18bcdea1755486148fb) 50% 50% repeat;color:#1f1f1f}.ui-widget-content a{color:#1f1f1f}.ui-widget-header{border:1px solid #d4d1bf;background:#fff url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_ffffff_60x60.png?c514e7ba7589d0f49ac63c298fcdae5e) 50% 50% repeat;color:#453821;font-weight:bold}.ui-widget-header a{color:#453821}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #cbc7bd;background:#f8f7f6 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_10_f8f7f6_60x60.png?2999b2509cfc0da9d2638ce9f892d541) 50% 50% repeat;font-weight:bold;color:#654b24}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#654b24;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #654b24;background:#654b24 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_65_654b24_60x60.png?6a53536235d962916651e5ade810be9c) 50% 50% repeat;font-weight:bold;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#fff;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #d9d6c4;background:#eceadf url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_eceadf_60x60.png?bb99362eb46ac5b5824fabbfe6271e29) 50% 50% repeat;font-weight:bold;color:#140f06}.ui-icon-background,.ui-state-active .ui-icon-background{border:#d9d6c4;background-color:#140f06}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#140f06;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #b2a266;background:#f7f3de url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_15_f7f3de_60x60.png?9d1facfcb89e21b78242e2eb8cbd491c) 50% 50% repeat;color:#3a3427}.ui-state-checked{border:1px solid #b2a266;background:#f7f3de}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#3a3427}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #681818;background:#b83400 url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_fine-grain_68_b83400_60x60.png?f786ff5070a9c8cde4f9b567fc84e004) 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_222222_256x240.png?bcf1cdc9c7d1486173cc9aaa8b1fc77b)}.ui-widget-header .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824)}.ui-button .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_b83400_256x240.png?f481d1b47a462e74eed1e20ae7ac7824)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon,.ui-state-default .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_ffffff_256x240.png?fc616163e14c52dba5af7fdb573d2e64)}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_8c291d_256x240.png?faf8dac1c3a19fa71b3349936071548b)}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_3572ac_256x240.png?6b15e6e5507d972be2e15634d0f7bc82)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-icons_fbdb93_256x240.png?aca518e5efefaf76c067ffb0e2438334)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:6px}.ui-widget-overlay{background:#6e4f1c url(/images/vendor/jquery-ui-themes/themes/pepper-grinder/ui-bg_diagonal-maze_20_6e4f1c_10x10.png?bde4cdb5c33f6a9c1c25419a4732ad98) 50% 50% repeat;opacity:.6;filter:Alpha(Opacity=60)}.ui-widget-shadow{box-shadow:-10px 0 5px #000} +.select2-container { + box-sizing: border-box; + display: inline-block; + margin: 0; + position: relative; + vertical-align: middle; } + .select2-container .select2-selection--single { + box-sizing: border-box; + cursor: pointer; + display: block; + height: 28px; + -moz-user-select: none; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--single .select2-selection__rendered { + display: block; + padding-left: 8px; + padding-right: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-selection--single .select2-selection__clear { + background-color: transparent; + border: none; + font-size: 1em; } + .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { + padding-right: 8px; + padding-left: 20px; } + .select2-container .select2-selection--multiple { + box-sizing: border-box; + cursor: pointer; + display: block; + min-height: 32px; + -moz-user-select: none; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--multiple .select2-selection__rendered { + display: inline; + list-style: none; + padding: 0; } + .select2-container .select2-selection--multiple .select2-selection__clear { + background-color: transparent; + border: none; + font-size: 1em; } + .select2-container .select2-search--inline .select2-search__field { + box-sizing: border-box; + border: none; + font-size: 100%; + margin-top: 5px; + margin-left: 5px; + padding: 0; + max-width: 100%; + resize: none; + height: 18px; + vertical-align: bottom; + font-family: sans-serif; + overflow: hidden; + word-break: keep-all; } + .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + +.select2-dropdown { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + box-sizing: border-box; + display: block; + position: absolute; + left: -100000px; + width: 100%; + z-index: 1051; } + +.select2-results { + display: block; } + +.select2-results__options { + list-style: none; + margin: 0; + padding: 0; } + +.select2-results__option { + padding: 6px; + -moz-user-select: none; + user-select: none; + -webkit-user-select: none; } + +.select2-results__option--selectable { + cursor: pointer; } + +.select2-container--open .select2-dropdown { + left: 0; } + +.select2-container--open .select2-dropdown--above { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--open .select2-dropdown--below { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-search--dropdown { + display: block; + padding: 4px; } + .select2-search--dropdown .select2-search__field { + padding: 4px; + width: 100%; + box-sizing: border-box; } + .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + .select2-search--dropdown.select2-search--hide { + display: none; } + +.select2-close-mask { + border: 0; + margin: 0; + padding: 0; + display: block; + position: fixed; + left: 0; + top: 0; + min-height: 100%; + min-width: 100%; + height: auto; + width: auto; + opacity: 0; + z-index: 99; + background-color: #fff; + filter: alpha(opacity=0); } + +.select2-hidden-accessible { + border: 0 !important; + clip: rect(0 0 0 0) !important; + clip-path: inset(50%) !important; + height: 1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + white-space: nowrap !important; } + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 1px solid #aaa; + border-radius: 4px; } + .select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 26px; + margin-right: 20px; + padding-right: 0px; } + .select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; } + .select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; } + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; } + .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; } + +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; + padding-bottom: 5px; + padding-right: 5px; + position: relative; } + .select2-container--default .select2-selection--multiple.select2-selection--clearable { + padding-right: 25px; } + .select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + font-weight: bold; + height: 20px; + margin-right: 10px; + margin-top: 5px; + position: absolute; + right: 0; + padding: 1px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + box-sizing: border-box; + display: inline-block; + margin-left: 5px; + margin-top: 5px; + padding: 0; + padding-left: 20px; + position: relative; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: bottom; + white-space: nowrap; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__display { + cursor: default; + padding-left: 2px; + padding-right: 5px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + background-color: transparent; + border: none; + border-right: 1px solid #aaa; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + color: #999; + cursor: pointer; + font-size: 1em; + font-weight: bold; + padding: 0 4px; + position: absolute; + left: 0; + top: 0; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus { + background-color: #f1f1f1; + color: #333; + outline: none; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display { + padding-left: 5px; + padding-right: 2px; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + border-left: 1px solid #aaa; + border-right: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear { + float: left; + margin-left: 10px; + margin-right: auto; } + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: solid black 1px; + outline: 0; } + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; } + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; } + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; } + +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; } + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; } + +.select2-container--default .select2-results__option--group { + padding: 0; } + +.select2-container--default .select2-results__option--disabled { + color: #999; } + +.select2-container--default .select2-results__option--selected { + background-color: #ddd; } + +.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { + background-color: #5897fb; + color: white; } + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic .select2-selection--single { + background-color: #f7f7f7; + border: 1px solid #aaa; + border-radius: 4px; + outline: 0; + background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + .select2-container--classic .select2-selection--single:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--classic .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 26px; + margin-right: 20px; } + .select2-container--classic .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--classic .select2-selection--single .select2-selection__arrow { + background-color: #ddd; + border: none; + border-left: 1px solid #aaa; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; + background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } + .select2-container--classic .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { + border: none; + border-right: 1px solid #aaa; + border-radius: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + left: 1px; + right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--single { + border: 1px solid #5897fb; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { + background: transparent; + border: none; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } + +.select2-container--classic .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; + outline: 0; + padding-bottom: 5px; + padding-right: 5px; } + .select2-container--classic .select2-selection--multiple:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--multiple .select2-selection__clear { + display: none; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + display: inline-block; + margin-left: 5px; + margin-top: 5px; + padding: 0; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__display { + cursor: default; + padding-left: 2px; + padding-right: 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { + background-color: transparent; + border: none; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + color: #888; + cursor: pointer; + font-size: 1em; + font-weight: bold; + padding: 0 4px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #555; + outline: none; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display { + padding-left: 5px; + padding-right: 2px; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.select2-container--classic.select2-container--open .select2-selection--multiple { + border: 1px solid #5897fb; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--classic .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; + outline: 0; } + +.select2-container--classic .select2-search--inline .select2-search__field { + outline: 0; + box-shadow: none; } + +.select2-container--classic .select2-dropdown { + background-color: white; + border: 1px solid transparent; } + +.select2-container--classic .select2-dropdown--above { + border-bottom: none; } + +.select2-container--classic .select2-dropdown--below { + border-top: none; } + +.select2-container--classic .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--classic .select2-results__option--group { + padding: 0; } + +.select2-container--classic .select2-results__option--disabled { + color: grey; } + +.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable { + background-color: #3875d7; + color: white; } + +.select2-container--classic .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic.select2-container--open .select2-dropdown { + border-color: #5897fb; } + /*! * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:2em}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s linear infinite}.fa-pulse{animation:fa-spin 1s steps(8) infinite}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-display:block;font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?23f19bb08961f37aaf692ff943823453);src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?23f19bb08961f37aaf692ff943823453?#iefix) format("embedded-opentype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2?d878b0a6a1144760244ff0665888404c) format("woff2"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff?2285773e6b4b172f07d9b777c81b0775) format("woff"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf?527940b104eb2ea366c8630f3f038603) format("truetype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg?2f517e09eb2ca6650ff5bec5a95157ab#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?77206a6bb316fa0aded5083cc57f92b9);src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?77206a6bb316fa0aded5083cc57f92b9?#iefix) format("embedded-opentype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2?7a3337626410ca2f40718481c755640f) format("woff2"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff?bb58e57c48a3e911f15fa834ff00d44a) format("woff"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf?491974d108fe4002b2aaf7ffc48249a0) format("truetype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg?4689f52cc96215721344e51e5831eec1#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?9bbb245e67a133f6e486d8d2545e14a5);src:url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?9bbb245e67a133f6e486d8d2545e14a5?#iefix) format("embedded-opentype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2?1551f4f60c37af51121f106501f69b80) format("woff2"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff?eeccf4f66002c6f2ba24d3d22f2434c2) format("woff"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf?be9ee23c0c6390141475d519c2c5fb8f) format("truetype"),url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg?7a8b4f130182d19a2d7c67d80c090397#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900} -.speedButtonNavBar{margin-bottom:1px!important;padding-bottom:.2rem!important}.speedButtonNavBar img{display:block;margin:0 auto 5px;max-width:64px}.speedButtonNavBar ul{margin-bottom:1px;overflow:hidden}.speedButtonNavBar ul li{float:left;font-size:11px;height:105px;line-height:1.2;overflow:hidden;padding-top:10px;text-align:center;width:100px}.speedButtonNavBar ul li.selected{background-color:hsla(0,0%,78%,.5);border-radius:10px}.speedButtonNavBar ul a{display:block;height:100%;width:100%} + */ +.fa, +.fas, +.far, +.fal, +.fad, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; } + +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; } + +.fa-xs { + font-size: .75em; } + +.fa-sm { + font-size: .875em; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + animation: fa-spin 1s infinite steps(8); } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(1, -1); } + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-flip-both { + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: #fff; } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-acquisitions-incorporated:before { + content: "\f6af"; } + +.fa-ad:before { + content: "\f641"; } + +.fa-address-book:before { + content: "\f2b9"; } + +.fa-address-card:before { + content: "\f2bb"; } + +.fa-adjust:before { + content: "\f042"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-air-freshener:before { + content: "\f5d0"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-align-center:before { + content: "\f037"; } + +.fa-align-justify:before { + content: "\f039"; } + +.fa-align-left:before { + content: "\f036"; } + +.fa-align-right:before { + content: "\f038"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-allergies:before { + content: "\f461"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-ambulance:before { + content: "\f0f9"; } + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-anchor:before { + content: "\f13d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angle-double-down:before { + content: "\f103"; } + +.fa-angle-double-left:before { + content: "\f100"; } + +.fa-angle-double-right:before { + content: "\f101"; } + +.fa-angle-double-up:before { + content: "\f102"; } + +.fa-angle-down:before { + content: "\f107"; } + +.fa-angle-left:before { + content: "\f104"; } + +.fa-angle-right:before { + content: "\f105"; } + +.fa-angle-up:before { + content: "\f106"; } + +.fa-angry:before { + content: "\f556"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-ankh:before { + content: "\f644"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-alt:before { + content: "\f5d1"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-archive:before { + content: "\f187"; } + +.fa-archway:before { + content: "\f557"; } + +.fa-arrow-alt-circle-down:before { + content: "\f358"; } + +.fa-arrow-alt-circle-left:before { + content: "\f359"; } + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; } + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; } + +.fa-arrow-circle-down:before { + content: "\f0ab"; } + +.fa-arrow-circle-left:before { + content: "\f0a8"; } + +.fa-arrow-circle-right:before { + content: "\f0a9"; } + +.fa-arrow-circle-up:before { + content: "\f0aa"; } + +.fa-arrow-down:before { + content: "\f063"; } + +.fa-arrow-left:before { + content: "\f060"; } + +.fa-arrow-right:before { + content: "\f061"; } + +.fa-arrow-up:before { + content: "\f062"; } + +.fa-arrows-alt:before { + content: "\f0b2"; } + +.fa-arrows-alt-h:before { + content: "\f337"; } + +.fa-arrows-alt-v:before { + content: "\f338"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-assistive-listening-systems:before { + content: "\f2a2"; } + +.fa-asterisk:before { + content: "\f069"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-at:before { + content: "\f1fa"; } + +.fa-atlas:before { + content: "\f558"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-atom:before { + content: "\f5d2"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-audio-description:before { + content: "\f29e"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-award:before { + content: "\f559"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-baby:before { + content: "\f77c"; } + +.fa-baby-carriage:before { + content: "\f77d"; } + +.fa-backspace:before { + content: "\f55a"; } + +.fa-backward:before { + content: "\f04a"; } + +.fa-bacon:before { + content: "\f7e5"; } + +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + +.fa-bahai:before { + content: "\f666"; } + +.fa-balance-scale:before { + content: "\f24e"; } + +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + +.fa-ban:before { + content: "\f05e"; } + +.fa-band-aid:before { + content: "\f462"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-barcode:before { + content: "\f02a"; } + +.fa-bars:before { + content: "\f0c9"; } + +.fa-baseball-ball:before { + content: "\f433"; } + +.fa-basketball-ball:before { + content: "\f434"; } + +.fa-bath:before { + content: "\f2cd"; } + +.fa-battery-empty:before { + content: "\f244"; } + +.fa-battery-full:before { + content: "\f240"; } + +.fa-battery-half:before { + content: "\f242"; } + +.fa-battery-quarter:before { + content: "\f243"; } + +.fa-battery-three-quarters:before { + content: "\f241"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-bed:before { + content: "\f236"; } + +.fa-beer:before { + content: "\f0fc"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bell:before { + content: "\f0f3"; } + +.fa-bell-slash:before { + content: "\f1f6"; } + +.fa-bezier-curve:before { + content: "\f55b"; } + +.fa-bible:before { + content: "\f647"; } + +.fa-bicycle:before { + content: "\f206"; } + +.fa-biking:before { + content: "\f84a"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-binoculars:before { + content: "\f1e5"; } + +.fa-biohazard:before { + content: "\f780"; } + +.fa-birthday-cake:before { + content: "\f1fd"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blender:before { + content: "\f517"; } + +.fa-blender-phone:before { + content: "\f6b6"; } + +.fa-blind:before { + content: "\f29d"; } + +.fa-blog:before { + content: "\f781"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bold:before { + content: "\f032"; } + +.fa-bolt:before { + content: "\f0e7"; } + +.fa-bomb:before { + content: "\f1e2"; } + +.fa-bone:before { + content: "\f5d7"; } + +.fa-bong:before { + content: "\f55c"; } + +.fa-book:before { + content: "\f02d"; } + +.fa-book-dead:before { + content: "\f6b7"; } + +.fa-book-medical:before { + content: "\f7e6"; } + +.fa-book-open:before { + content: "\f518"; } + +.fa-book-reader:before { + content: "\f5da"; } + +.fa-bookmark:before { + content: "\f02e"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + +.fa-bowling-ball:before { + content: "\f436"; } + +.fa-box:before { + content: "\f466"; } + +.fa-box-open:before { + content: "\f49e"; } + +.fa-box-tissue:before { + content: "\e05b"; } + +.fa-boxes:before { + content: "\f468"; } + +.fa-braille:before { + content: "\f2a1"; } + +.fa-brain:before { + content: "\f5dc"; } + +.fa-bread-slice:before { + content: "\f7ec"; } + +.fa-briefcase:before { + content: "\f0b1"; } + +.fa-briefcase-medical:before { + content: "\f469"; } + +.fa-broadcast-tower:before { + content: "\f519"; } + +.fa-broom:before { + content: "\f51a"; } + +.fa-brush:before { + content: "\f55d"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-bug:before { + content: "\f188"; } + +.fa-building:before { + content: "\f1ad"; } + +.fa-bullhorn:before { + content: "\f0a1"; } + +.fa-bullseye:before { + content: "\f140"; } + +.fa-burn:before { + content: "\f46a"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-bus:before { + content: "\f207"; } + +.fa-bus-alt:before { + content: "\f55e"; } + +.fa-business-time:before { + content: "\f64a"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-calculator:before { + content: "\f1ec"; } + +.fa-calendar:before { + content: "\f133"; } + +.fa-calendar-alt:before { + content: "\f073"; } + +.fa-calendar-check:before { + content: "\f274"; } + +.fa-calendar-day:before { + content: "\f783"; } + +.fa-calendar-minus:before { + content: "\f272"; } + +.fa-calendar-plus:before { + content: "\f271"; } + +.fa-calendar-times:before { + content: "\f273"; } + +.fa-calendar-week:before { + content: "\f784"; } + +.fa-camera:before { + content: "\f030"; } + +.fa-camera-retro:before { + content: "\f083"; } + +.fa-campground:before { + content: "\f6bb"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-candy-cane:before { + content: "\f786"; } + +.fa-cannabis:before { + content: "\f55f"; } + +.fa-capsules:before { + content: "\f46b"; } + +.fa-car:before { + content: "\f1b9"; } + +.fa-car-alt:before { + content: "\f5de"; } + +.fa-car-battery:before { + content: "\f5df"; } + +.fa-car-crash:before { + content: "\f5e1"; } + +.fa-car-side:before { + content: "\f5e4"; } + +.fa-caravan:before { + content: "\f8ff"; } + +.fa-caret-down:before { + content: "\f0d7"; } + +.fa-caret-left:before { + content: "\f0d9"; } + +.fa-caret-right:before { + content: "\f0da"; } + +.fa-caret-square-down:before { + content: "\f150"; } + +.fa-caret-square-left:before { + content: "\f191"; } + +.fa-caret-square-right:before { + content: "\f152"; } + +.fa-caret-square-up:before { + content: "\f151"; } + +.fa-caret-up:before { + content: "\f0d8"; } + +.fa-carrot:before { + content: "\f787"; } + +.fa-cart-arrow-down:before { + content: "\f218"; } + +.fa-cart-plus:before { + content: "\f217"; } + +.fa-cash-register:before { + content: "\f788"; } + +.fa-cat:before { + content: "\f6be"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-certificate:before { + content: "\f0a3"; } + +.fa-chair:before { + content: "\f6c0"; } + +.fa-chalkboard:before { + content: "\f51b"; } + +.fa-chalkboard-teacher:before { + content: "\f51c"; } + +.fa-charging-station:before { + content: "\f5e7"; } + +.fa-chart-area:before { + content: "\f1fe"; } + +.fa-chart-bar:before { + content: "\f080"; } + +.fa-chart-line:before { + content: "\f201"; } + +.fa-chart-pie:before { + content: "\f200"; } + +.fa-check:before { + content: "\f00c"; } + +.fa-check-circle:before { + content: "\f058"; } + +.fa-check-double:before { + content: "\f560"; } + +.fa-check-square:before { + content: "\f14a"; } + +.fa-cheese:before { + content: "\f7ef"; } + +.fa-chess:before { + content: "\f439"; } + +.fa-chess-bishop:before { + content: "\f43a"; } + +.fa-chess-board:before { + content: "\f43c"; } + +.fa-chess-king:before { + content: "\f43f"; } + +.fa-chess-knight:before { + content: "\f441"; } + +.fa-chess-pawn:before { + content: "\f443"; } + +.fa-chess-queen:before { + content: "\f445"; } + +.fa-chess-rook:before { + content: "\f447"; } + +.fa-chevron-circle-down:before { + content: "\f13a"; } + +.fa-chevron-circle-left:before { + content: "\f137"; } + +.fa-chevron-circle-right:before { + content: "\f138"; } + +.fa-chevron-circle-up:before { + content: "\f139"; } + +.fa-chevron-down:before { + content: "\f078"; } + +.fa-chevron-left:before { + content: "\f053"; } + +.fa-chevron-right:before { + content: "\f054"; } + +.fa-chevron-up:before { + content: "\f077"; } + +.fa-child:before { + content: "\f1ae"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-church:before { + content: "\f51d"; } + +.fa-circle:before { + content: "\f111"; } + +.fa-circle-notch:before { + content: "\f1ce"; } + +.fa-city:before { + content: "\f64f"; } + +.fa-clinic-medical:before { + content: "\f7f2"; } + +.fa-clipboard:before { + content: "\f328"; } + +.fa-clipboard-check:before { + content: "\f46c"; } + +.fa-clipboard-list:before { + content: "\f46d"; } + +.fa-clock:before { + content: "\f017"; } + +.fa-clone:before { + content: "\f24d"; } + +.fa-closed-captioning:before { + content: "\f20a"; } + +.fa-cloud:before { + content: "\f0c2"; } + +.fa-cloud-download-alt:before { + content: "\f381"; } + +.fa-cloud-meatball:before { + content: "\f73b"; } + +.fa-cloud-moon:before { + content: "\f6c3"; } + +.fa-cloud-moon-rain:before { + content: "\f73c"; } + +.fa-cloud-rain:before { + content: "\f73d"; } + +.fa-cloud-showers-heavy:before { + content: "\f740"; } + +.fa-cloud-sun:before { + content: "\f6c4"; } + +.fa-cloud-sun-rain:before { + content: "\f743"; } + +.fa-cloud-upload-alt:before { + content: "\f382"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cocktail:before { + content: "\f561"; } + +.fa-code:before { + content: "\f121"; } + +.fa-code-branch:before { + content: "\f126"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-coffee:before { + content: "\f0f4"; } + +.fa-cog:before { + content: "\f013"; } + +.fa-cogs:before { + content: "\f085"; } + +.fa-coins:before { + content: "\f51e"; } + +.fa-columns:before { + content: "\f0db"; } + +.fa-comment:before { + content: "\f075"; } + +.fa-comment-alt:before { + content: "\f27a"; } + +.fa-comment-dollar:before { + content: "\f651"; } + +.fa-comment-dots:before { + content: "\f4ad"; } + +.fa-comment-medical:before { + content: "\f7f5"; } + +.fa-comment-slash:before { + content: "\f4b3"; } + +.fa-comments:before { + content: "\f086"; } + +.fa-comments-dollar:before { + content: "\f653"; } + +.fa-compact-disc:before { + content: "\f51f"; } + +.fa-compass:before { + content: "\f14e"; } + +.fa-compress:before { + content: "\f066"; } + +.fa-compress-alt:before { + content: "\f422"; } + +.fa-compress-arrows-alt:before { + content: "\f78c"; } + +.fa-concierge-bell:before { + content: "\f562"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cookie:before { + content: "\f563"; } + +.fa-cookie-bite:before { + content: "\f564"; } + +.fa-copy:before { + content: "\f0c5"; } + +.fa-copyright:before { + content: "\f1f9"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-couch:before { + content: "\f4b8"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-credit-card:before { + content: "\f09d"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-crop:before { + content: "\f125"; } + +.fa-crop-alt:before { + content: "\f565"; } + +.fa-cross:before { + content: "\f654"; } + +.fa-crosshairs:before { + content: "\f05b"; } + +.fa-crow:before { + content: "\f520"; } + +.fa-crown:before { + content: "\f521"; } + +.fa-crutch:before { + content: "\f7f7"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cube:before { + content: "\f1b2"; } + +.fa-cubes:before { + content: "\f1b3"; } + +.fa-cut:before { + content: "\f0c4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-database:before { + content: "\f1c0"; } + +.fa-deaf:before { + content: "\f2a4"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-democrat:before { + content: "\f747"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-desktop:before { + content: "\f108"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dharmachakra:before { + content: "\f655"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diagnoses:before { + content: "\f470"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-dice:before { + content: "\f522"; } + +.fa-dice-d20:before { + content: "\f6cf"; } + +.fa-dice-d6:before { + content: "\f6d1"; } + +.fa-dice-five:before { + content: "\f523"; } + +.fa-dice-four:before { + content: "\f524"; } + +.fa-dice-one:before { + content: "\f525"; } + +.fa-dice-six:before { + content: "\f526"; } + +.fa-dice-three:before { + content: "\f527"; } + +.fa-dice-two:before { + content: "\f528"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-digital-tachograph:before { + content: "\f566"; } + +.fa-directions:before { + content: "\f5eb"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-disease:before { + content: "\f7fa"; } + +.fa-divide:before { + content: "\f529"; } + +.fa-dizzy:before { + content: "\f567"; } + +.fa-dna:before { + content: "\f471"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-dog:before { + content: "\f6d3"; } + +.fa-dollar-sign:before { + content: "\f155"; } + +.fa-dolly:before { + content: "\f472"; } + +.fa-dolly-flatbed:before { + content: "\f474"; } + +.fa-donate:before { + content: "\f4b9"; } + +.fa-door-closed:before { + content: "\f52a"; } + +.fa-door-open:before { + content: "\f52b"; } + +.fa-dot-circle:before { + content: "\f192"; } + +.fa-dove:before { + content: "\f4ba"; } + +.fa-download:before { + content: "\f019"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-drafting-compass:before { + content: "\f568"; } + +.fa-dragon:before { + content: "\f6d5"; } + +.fa-draw-polygon:before { + content: "\f5ee"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drum:before { + content: "\f569"; } + +.fa-drum-steelpan:before { + content: "\f56a"; } + +.fa-drumstick-bite:before { + content: "\f6d7"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dumbbell:before { + content: "\f44b"; } + +.fa-dumpster:before { + content: "\f793"; } + +.fa-dumpster-fire:before { + content: "\f794"; } + +.fa-dungeon:before { + content: "\f6d9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-edit:before { + content: "\f044"; } + +.fa-egg:before { + content: "\f7fb"; } + +.fa-eject:before { + content: "\f052"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ellipsis-h:before { + content: "\f141"; } + +.fa-ellipsis-v:before { + content: "\f142"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envelope:before { + content: "\f0e0"; } + +.fa-envelope-open:before { + content: "\f2b6"; } + +.fa-envelope-open-text:before { + content: "\f658"; } + +.fa-envelope-square:before { + content: "\f199"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-equals:before { + content: "\f52c"; } + +.fa-eraser:before { + content: "\f12d"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-ethernet:before { + content: "\f796"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-euro-sign:before { + content: "\f153"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-exchange-alt:before { + content: "\f362"; } + +.fa-exclamation:before { + content: "\f12a"; } + +.fa-exclamation-circle:before { + content: "\f06a"; } + +.fa-exclamation-triangle:before { + content: "\f071"; } + +.fa-expand:before { + content: "\f065"; } + +.fa-expand-alt:before { + content: "\f424"; } + +.fa-expand-arrows-alt:before { + content: "\f31e"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-external-link-alt:before { + content: "\f35d"; } + +.fa-external-link-square-alt:before { + content: "\f360"; } + +.fa-eye:before { + content: "\f06e"; } + +.fa-eye-dropper:before { + content: "\f1fb"; } + +.fa-eye-slash:before { + content: "\f070"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fan:before { + content: "\f863"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fast-backward:before { + content: "\f049"; } + +.fa-fast-forward:before { + content: "\f050"; } + +.fa-faucet:before { + content: "\e005"; } + +.fa-fax:before { + content: "\f1ac"; } + +.fa-feather:before { + content: "\f52d"; } + +.fa-feather-alt:before { + content: "\f56b"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-female:before { + content: "\f182"; } + +.fa-fighter-jet:before { + content: "\f0fb"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-file:before { + content: "\f15b"; } + +.fa-file-alt:before { + content: "\f15c"; } + +.fa-file-archive:before { + content: "\f1c6"; } + +.fa-file-audio:before { + content: "\f1c7"; } + +.fa-file-code:before { + content: "\f1c9"; } + +.fa-file-contract:before { + content: "\f56c"; } + +.fa-file-csv:before { + content: "\f6dd"; } + +.fa-file-download:before { + content: "\f56d"; } + +.fa-file-excel:before { + content: "\f1c3"; } + +.fa-file-export:before { + content: "\f56e"; } + +.fa-file-image:before { + content: "\f1c5"; } + +.fa-file-import:before { + content: "\f56f"; } + +.fa-file-invoice:before { + content: "\f570"; } + +.fa-file-invoice-dollar:before { + content: "\f571"; } + +.fa-file-medical:before { + content: "\f477"; } + +.fa-file-medical-alt:before { + content: "\f478"; } + +.fa-file-pdf:before { + content: "\f1c1"; } + +.fa-file-powerpoint:before { + content: "\f1c4"; } + +.fa-file-prescription:before { + content: "\f572"; } + +.fa-file-signature:before { + content: "\f573"; } + +.fa-file-upload:before { + content: "\f574"; } + +.fa-file-video:before { + content: "\f1c8"; } + +.fa-file-word:before { + content: "\f1c2"; } + +.fa-fill:before { + content: "\f575"; } + +.fa-fill-drip:before { + content: "\f576"; } + +.fa-film:before { + content: "\f008"; } + +.fa-filter:before { + content: "\f0b0"; } + +.fa-fingerprint:before { + content: "\f577"; } + +.fa-fire:before { + content: "\f06d"; } + +.fa-fire-alt:before { + content: "\f7e4"; } + +.fa-fire-extinguisher:before { + content: "\f134"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-aid:before { + content: "\f479"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-fish:before { + content: "\f578"; } + +.fa-fist-raised:before { + content: "\f6de"; } + +.fa-flag:before { + content: "\f024"; } + +.fa-flag-checkered:before { + content: "\f11e"; } + +.fa-flag-usa:before { + content: "\f74d"; } + +.fa-flask:before { + content: "\f0c3"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-flushed:before { + content: "\f579"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-folder:before { + content: "\f07b"; } + +.fa-folder-minus:before { + content: "\f65d"; } + +.fa-folder-open:before { + content: "\f07c"; } + +.fa-folder-plus:before { + content: "\f65e"; } + +.fa-font:before { + content: "\f031"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-font-awesome-flag:before { + content: "\f425"; } + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-football-ball:before { + content: "\f44e"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-forward:before { + content: "\f04e"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-frog:before { + content: "\f52e"; } + +.fa-frown:before { + content: "\f119"; } + +.fa-frown-open:before { + content: "\f57a"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-funnel-dollar:before { + content: "\f662"; } + +.fa-futbol:before { + content: "\f1e3"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-gamepad:before { + content: "\f11b"; } + +.fa-gas-pump:before { + content: "\f52f"; } + +.fa-gavel:before { + content: "\f0e3"; } + +.fa-gem:before { + content: "\f3a5"; } + +.fa-genderless:before { + content: "\f22d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-ghost:before { + content: "\f6e2"; } + +.fa-gift:before { + content: "\f06b"; } + +.fa-gifts:before { + content: "\f79c"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glass-cheers:before { + content: "\f79f"; } + +.fa-glass-martini:before { + content: "\f000"; } + +.fa-glass-martini-alt:before { + content: "\f57b"; } + +.fa-glass-whiskey:before { + content: "\f7a0"; } + +.fa-glasses:before { + content: "\f530"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-globe:before { + content: "\f0ac"; } + +.fa-globe-africa:before { + content: "\f57c"; } + +.fa-globe-americas:before { + content: "\f57d"; } + +.fa-globe-asia:before { + content: "\f57e"; } + +.fa-globe-europe:before { + content: "\f7a2"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golf-ball:before { + content: "\f450"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gopuram:before { + content: "\f664"; } + +.fa-graduation-cap:before { + content: "\f19d"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-greater-than:before { + content: "\f531"; } + +.fa-greater-than-equal:before { + content: "\f532"; } + +.fa-grimace:before { + content: "\f57f"; } + +.fa-grin:before { + content: "\f580"; } + +.fa-grin-alt:before { + content: "\f581"; } + +.fa-grin-beam:before { + content: "\f582"; } + +.fa-grin-beam-sweat:before { + content: "\f583"; } + +.fa-grin-hearts:before { + content: "\f584"; } + +.fa-grin-squint:before { + content: "\f585"; } + +.fa-grin-squint-tears:before { + content: "\f586"; } + +.fa-grin-stars:before { + content: "\f587"; } + +.fa-grin-tears:before { + content: "\f588"; } + +.fa-grin-tongue:before { + content: "\f589"; } + +.fa-grin-tongue-squint:before { + content: "\f58a"; } + +.fa-grin-tongue-wink:before { + content: "\f58b"; } + +.fa-grin-wink:before { + content: "\f58c"; } + +.fa-grip-horizontal:before { + content: "\f58d"; } + +.fa-grip-lines:before { + content: "\f7a4"; } + +.fa-grip-lines-vertical:before { + content: "\f7a5"; } + +.fa-grip-vertical:before { + content: "\f58e"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-guitar:before { + content: "\f7a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-h-square:before { + content: "\f0fd"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hamburger:before { + content: "\f805"; } + +.fa-hammer:before { + content: "\f6e3"; } + +.fa-hamsa:before { + content: "\f665"; } + +.fa-hand-holding:before { + content: "\f4bd"; } + +.fa-hand-holding-heart:before { + content: "\f4be"; } + +.fa-hand-holding-medical:before { + content: "\e05c"; } + +.fa-hand-holding-usd:before { + content: "\f4c0"; } + +.fa-hand-holding-water:before { + content: "\f4c1"; } + +.fa-hand-lizard:before { + content: "\f258"; } + +.fa-hand-middle-finger:before { + content: "\f806"; } + +.fa-hand-paper:before { + content: "\f256"; } + +.fa-hand-peace:before { + content: "\f25b"; } + +.fa-hand-point-down:before { + content: "\f0a7"; } + +.fa-hand-point-left:before { + content: "\f0a5"; } + +.fa-hand-point-right:before { + content: "\f0a4"; } + +.fa-hand-point-up:before { + content: "\f0a6"; } + +.fa-hand-pointer:before { + content: "\f25a"; } + +.fa-hand-rock:before { + content: "\f255"; } + +.fa-hand-scissors:before { + content: "\f257"; } + +.fa-hand-sparkles:before { + content: "\e05d"; } + +.fa-hand-spock:before { + content: "\f259"; } + +.fa-hands:before { + content: "\f4c2"; } + +.fa-hands-helping:before { + content: "\f4c4"; } + +.fa-hands-wash:before { + content: "\e05e"; } + +.fa-handshake:before { + content: "\f2b5"; } + +.fa-handshake-alt-slash:before { + content: "\e05f"; } + +.fa-handshake-slash:before { + content: "\e060"; } + +.fa-hanukiah:before { + content: "\f6e6"; } + +.fa-hard-hat:before { + content: "\f807"; } + +.fa-hashtag:before { + content: "\f292"; } + +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + +.fa-hat-wizard:before { + content: "\f6e8"; } + +.fa-hdd:before { + content: "\f0a0"; } + +.fa-head-side-cough:before { + content: "\e061"; } + +.fa-head-side-cough-slash:before { + content: "\e062"; } + +.fa-head-side-mask:before { + content: "\e063"; } + +.fa-head-side-virus:before { + content: "\e064"; } + +.fa-heading:before { + content: "\f1dc"; } + +.fa-headphones:before { + content: "\f025"; } + +.fa-headphones-alt:before { + content: "\f58f"; } + +.fa-headset:before { + content: "\f590"; } + +.fa-heart:before { + content: "\f004"; } + +.fa-heart-broken:before { + content: "\f7a9"; } + +.fa-heartbeat:before { + content: "\f21e"; } + +.fa-helicopter:before { + content: "\f533"; } + +.fa-highlighter:before { + content: "\f591"; } + +.fa-hiking:before { + content: "\f6ec"; } + +.fa-hippo:before { + content: "\f6ed"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-history:before { + content: "\f1da"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-hockey-puck:before { + content: "\f453"; } + +.fa-holly-berry:before { + content: "\f7aa"; } + +.fa-home:before { + content: "\f015"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-horse:before { + content: "\f6f0"; } + +.fa-horse-head:before { + content: "\f7ab"; } + +.fa-hospital:before { + content: "\f0f8"; } + +.fa-hospital-alt:before { + content: "\f47d"; } + +.fa-hospital-symbol:before { + content: "\f47e"; } + +.fa-hospital-user:before { + content: "\f80d"; } + +.fa-hot-tub:before { + content: "\f593"; } + +.fa-hotdog:before { + content: "\f80f"; } + +.fa-hotel:before { + content: "\f594"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-hourglass:before { + content: "\f254"; } + +.fa-hourglass-end:before { + content: "\f253"; } + +.fa-hourglass-half:before { + content: "\f252"; } + +.fa-hourglass-start:before { + content: "\f251"; } + +.fa-house-damage:before { + content: "\f6f1"; } + +.fa-house-user:before { + content: "\e065"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-hryvnia:before { + content: "\f6f2"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-i-cursor:before { + content: "\f246"; } + +.fa-ice-cream:before { + content: "\f810"; } + +.fa-icicles:before { + content: "\f7ad"; } + +.fa-icons:before { + content: "\f86d"; } + +.fa-id-badge:before { + content: "\f2c1"; } + +.fa-id-card:before { + content: "\f2c2"; } + +.fa-id-card-alt:before { + content: "\f47f"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-igloo:before { + content: "\f7ae"; } + +.fa-image:before { + content: "\f03e"; } + +.fa-images:before { + content: "\f302"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-inbox:before { + content: "\f01c"; } + +.fa-indent:before { + content: "\f03c"; } + +.fa-industry:before { + content: "\f275"; } + +.fa-infinity:before { + content: "\f534"; } + +.fa-info:before { + content: "\f129"; } + +.fa-info-circle:before { + content: "\f05a"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-italic:before { + content: "\f033"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi:before { + content: "\f669"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joint:before { + content: "\f595"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-journal-whills:before { + content: "\f66a"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaaba:before { + content: "\f66b"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-key:before { + content: "\f084"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keyboard:before { + content: "\f11c"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-khanda:before { + content: "\f66d"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-kiss:before { + content: "\f596"; } + +.fa-kiss-beam:before { + content: "\f597"; } + +.fa-kiss-wink-heart:before { + content: "\f598"; } + +.fa-kiwi-bird:before { + content: "\f535"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-landmark:before { + content: "\f66f"; } + +.fa-language:before { + content: "\f1ab"; } + +.fa-laptop:before { + content: "\f109"; } + +.fa-laptop-code:before { + content: "\f5fc"; } + +.fa-laptop-house:before { + content: "\e066"; } + +.fa-laptop-medical:before { + content: "\f812"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-laugh:before { + content: "\f599"; } + +.fa-laugh-beam:before { + content: "\f59a"; } + +.fa-laugh-squint:before { + content: "\f59b"; } + +.fa-laugh-wink:before { + content: "\f59c"; } + +.fa-layer-group:before { + content: "\f5fd"; } + +.fa-leaf:before { + content: "\f06c"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-lemon:before { + content: "\f094"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-less-than:before { + content: "\f536"; } + +.fa-less-than-equal:before { + content: "\f537"; } + +.fa-level-down-alt:before { + content: "\f3be"; } + +.fa-level-up-alt:before { + content: "\f3bf"; } + +.fa-life-ring:before { + content: "\f1cd"; } + +.fa-lightbulb:before { + content: "\f0eb"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lira-sign:before { + content: "\f195"; } + +.fa-list:before { + content: "\f03a"; } + +.fa-list-alt:before { + content: "\f022"; } + +.fa-list-ol:before { + content: "\f0cb"; } + +.fa-list-ul:before { + content: "\f0ca"; } + +.fa-location-arrow:before { + content: "\f124"; } + +.fa-lock:before { + content: "\f023"; } + +.fa-lock-open:before { + content: "\f3c1"; } + +.fa-long-arrow-alt-down:before { + content: "\f309"; } + +.fa-long-arrow-alt-left:before { + content: "\f30a"; } + +.fa-long-arrow-alt-right:before { + content: "\f30b"; } + +.fa-long-arrow-alt-up:before { + content: "\f30c"; } + +.fa-low-vision:before { + content: "\f2a8"; } + +.fa-luggage-cart:before { + content: "\f59d"; } + +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\e067"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-magic:before { + content: "\f0d0"; } + +.fa-magnet:before { + content: "\f076"; } + +.fa-mail-bulk:before { + content: "\f674"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-male:before { + content: "\f183"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-map:before { + content: "\f279"; } + +.fa-map-marked:before { + content: "\f59f"; } + +.fa-map-marked-alt:before { + content: "\f5a0"; } + +.fa-map-marker:before { + content: "\f041"; } + +.fa-map-marker-alt:before { + content: "\f3c5"; } + +.fa-map-pin:before { + content: "\f276"; } + +.fa-map-signs:before { + content: "\f277"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-marker:before { + content: "\f5a1"; } + +.fa-mars:before { + content: "\f222"; } + +.fa-mars-double:before { + content: "\f227"; } + +.fa-mars-stroke:before { + content: "\f229"; } + +.fa-mars-stroke-h:before { + content: "\f22b"; } + +.fa-mars-stroke-v:before { + content: "\f22a"; } + +.fa-mask:before { + content: "\f6fa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medal:before { + content: "\f5a2"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f3c7"; } + +.fa-medkit:before { + content: "\f0fa"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-meh:before { + content: "\f11a"; } + +.fa-meh-blank:before { + content: "\f5a4"; } + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; } + +.fa-memory:before { + content: "\f538"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-menorah:before { + content: "\f676"; } + +.fa-mercury:before { + content: "\f223"; } + +.fa-meteor:before { + content: "\f753"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microchip:before { + content: "\f2db"; } + +.fa-microphone:before { + content: "\f130"; } + +.fa-microphone-alt:before { + content: "\f3c9"; } + +.fa-microphone-alt-slash:before { + content: "\f539"; } + +.fa-microphone-slash:before { + content: "\f131"; } + +.fa-microscope:before { + content: "\f610"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-minus:before { + content: "\f068"; } + +.fa-minus-circle:before { + content: "\f056"; } + +.fa-minus-square:before { + content: "\f146"; } + +.fa-mitten:before { + content: "\f7b5"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-mobile:before { + content: "\f10b"; } + +.fa-mobile-alt:before { + content: "\f3cd"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-money-bill:before { + content: "\f0d6"; } + +.fa-money-bill-alt:before { + content: "\f3d1"; } + +.fa-money-bill-wave:before { + content: "\f53a"; } + +.fa-money-bill-wave-alt:before { + content: "\f53b"; } + +.fa-money-check:before { + content: "\f53c"; } + +.fa-money-check-alt:before { + content: "\f53d"; } + +.fa-monument:before { + content: "\f5a6"; } + +.fa-moon:before { + content: "\f186"; } + +.fa-mortar-pestle:before { + content: "\f5a7"; } + +.fa-mosque:before { + content: "\f678"; } + +.fa-motorcycle:before { + content: "\f21c"; } + +.fa-mountain:before { + content: "\f6fc"; } + +.fa-mouse:before { + content: "\f8cc"; } + +.fa-mouse-pointer:before { + content: "\f245"; } + +.fa-mug-hot:before { + content: "\f7b6"; } + +.fa-music:before { + content: "\f001"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-network-wired:before { + content: "\f6ff"; } + +.fa-neuter:before { + content: "\f22c"; } + +.fa-newspaper:before { + content: "\f1ea"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-not-equal:before { + content: "\f53e"; } + +.fa-notes-medical:before { + content: "\f481"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-object-group:before { + content: "\f247"; } + +.fa-object-ungroup:before { + content: "\f248"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-oil-can:before { + content: "\f613"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-om:before { + content: "\f679"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-otter:before { + content: "\f700"; } + +.fa-outdent:before { + content: "\f03b"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-pager:before { + content: "\f815"; } + +.fa-paint-brush:before { + content: "\f1fc"; } + +.fa-paint-roller:before { + content: "\f5aa"; } + +.fa-palette:before { + content: "\f53f"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-pallet:before { + content: "\f482"; } + +.fa-paper-plane:before { + content: "\f1d8"; } + +.fa-paperclip:before { + content: "\f0c6"; } + +.fa-parachute-box:before { + content: "\f4cd"; } + +.fa-paragraph:before { + content: "\f1dd"; } + +.fa-parking:before { + content: "\f540"; } + +.fa-passport:before { + content: "\f5ab"; } + +.fa-pastafarianism:before { + content: "\f67b"; } + +.fa-paste:before { + content: "\f0ea"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-pause:before { + content: "\f04c"; } + +.fa-pause-circle:before { + content: "\f28b"; } + +.fa-paw:before { + content: "\f1b0"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-peace:before { + content: "\f67c"; } + +.fa-pen:before { + content: "\f304"; } + +.fa-pen-alt:before { + content: "\f305"; } + +.fa-pen-fancy:before { + content: "\f5ac"; } + +.fa-pen-nib:before { + content: "\f5ad"; } + +.fa-pen-square:before { + content: "\f14b"; } + +.fa-pencil-alt:before { + content: "\f303"; } + +.fa-pencil-ruler:before { + content: "\f5ae"; } + +.fa-penny-arcade:before { + content: "\f704"; } + +.fa-people-arrows:before { + content: "\e068"; } + +.fa-people-carry:before { + content: "\f4ce"; } + +.fa-pepper-hot:before { + content: "\f816"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-percent:before { + content: "\f295"; } + +.fa-percentage:before { + content: "\f541"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-person-booth:before { + content: "\f756"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-phone:before { + content: "\f095"; } + +.fa-phone-alt:before { + content: "\f879"; } + +.fa-phone-slash:before { + content: "\f3dd"; } + +.fa-phone-square:before { + content: "\f098"; } + +.fa-phone-square-alt:before { + content: "\f87b"; } + +.fa-phone-volume:before { + content: "\f2a0"; } + +.fa-photo-video:before { + content: "\f87c"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-piggy-bank:before { + content: "\f4d3"; } + +.fa-pills:before { + content: "\f484"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pizza-slice:before { + content: "\f818"; } + +.fa-place-of-worship:before { + content: "\f67f"; } + +.fa-plane:before { + content: "\f072"; } + +.fa-plane-arrival:before { + content: "\f5af"; } + +.fa-plane-departure:before { + content: "\f5b0"; } + +.fa-plane-slash:before { + content: "\e069"; } + +.fa-play:before { + content: "\f04b"; } + +.fa-play-circle:before { + content: "\f144"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-plug:before { + content: "\f1e6"; } + +.fa-plus:before { + content: "\f067"; } + +.fa-plus-circle:before { + content: "\f055"; } + +.fa-plus-square:before { + content: "\f0fe"; } + +.fa-podcast:before { + content: "\f2ce"; } + +.fa-poll:before { + content: "\f681"; } + +.fa-poll-h:before { + content: "\f682"; } + +.fa-poo:before { + content: "\f2fe"; } + +.fa-poo-storm:before { + content: "\f75a"; } + +.fa-poop:before { + content: "\f619"; } + +.fa-portrait:before { + content: "\f3e0"; } + +.fa-pound-sign:before { + content: "\f154"; } + +.fa-power-off:before { + content: "\f011"; } + +.fa-pray:before { + content: "\f683"; } + +.fa-praying-hands:before { + content: "\f684"; } + +.fa-prescription:before { + content: "\f5b1"; } + +.fa-prescription-bottle:before { + content: "\f485"; } + +.fa-prescription-bottle-alt:before { + content: "\f486"; } + +.fa-print:before { + content: "\f02f"; } + +.fa-procedures:before { + content: "\f487"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-project-diagram:before { + content: "\f542"; } + +.fa-pump-medical:before { + content: "\e06a"; } + +.fa-pump-soap:before { + content: "\e06b"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-puzzle-piece:before { + content: "\f12e"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-qrcode:before { + content: "\f029"; } + +.fa-question:before { + content: "\f128"; } + +.fa-question-circle:before { + content: "\f059"; } + +.fa-quidditch:before { + content: "\f458"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-quote-left:before { + content: "\f10d"; } + +.fa-quote-right:before { + content: "\f10e"; } + +.fa-quran:before { + content: "\f687"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-radiation:before { + content: "\f7b9"; } + +.fa-radiation-alt:before { + content: "\f7ba"; } + +.fa-rainbow:before { + content: "\f75b"; } + +.fa-random:before { + content: "\f074"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-receipt:before { + content: "\f543"; } + +.fa-record-vinyl:before { + content: "\f8d9"; } + +.fa-recycle:before { + content: "\f1b8"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-redo:before { + content: "\f01e"; } + +.fa-redo-alt:before { + content: "\f2f9"; } + +.fa-registered:before { + content: "\f25d"; } + +.fa-remove-format:before { + content: "\f87d"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-reply:before { + content: "\f3e5"; } + +.fa-reply-all:before { + content: "\f122"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-republican:before { + content: "\f75e"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-restroom:before { + content: "\f7bd"; } + +.fa-retweet:before { + content: "\f079"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-ribbon:before { + content: "\f4d6"; } + +.fa-ring:before { + content: "\f70b"; } + +.fa-road:before { + content: "\f018"; } + +.fa-robot:before { + content: "\f544"; } + +.fa-rocket:before { + content: "\f135"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-route:before { + content: "\f4d7"; } + +.fa-rss:before { + content: "\f09e"; } + +.fa-rss-square:before { + content: "\f143"; } + +.fa-ruble-sign:before { + content: "\f158"; } + +.fa-ruler:before { + content: "\f545"; } + +.fa-ruler-combined:before { + content: "\f546"; } + +.fa-ruler-horizontal:before { + content: "\f547"; } + +.fa-ruler-vertical:before { + content: "\f548"; } + +.fa-running:before { + content: "\f70c"; } + +.fa-rupee-sign:before { + content: "\f156"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-sad-cry:before { + content: "\f5b3"; } + +.fa-sad-tear:before { + content: "\f5b4"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-satellite:before { + content: "\f7bf"; } + +.fa-satellite-dish:before { + content: "\f7c0"; } + +.fa-save:before { + content: "\f0c7"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-school:before { + content: "\f549"; } + +.fa-screwdriver:before { + content: "\f54a"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-scroll:before { + content: "\f70e"; } + +.fa-sd-card:before { + content: "\f7c2"; } + +.fa-search:before { + content: "\f002"; } + +.fa-search-dollar:before { + content: "\f688"; } + +.fa-search-location:before { + content: "\f689"; } + +.fa-search-minus:before { + content: "\f010"; } + +.fa-search-plus:before { + content: "\f00e"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-seedling:before { + content: "\f4d8"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-server:before { + content: "\f233"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shapes:before { + content: "\f61f"; } + +.fa-share:before { + content: "\f064"; } + +.fa-share-alt:before { + content: "\f1e0"; } + +.fa-share-alt-square:before { + content: "\f1e1"; } + +.fa-share-square:before { + content: "\f14d"; } + +.fa-shekel-sign:before { + content: "\f20b"; } + +.fa-shield-alt:before { + content: "\f3ed"; } + +.fa-shield-virus:before { + content: "\e06c"; } + +.fa-ship:before { + content: "\f21a"; } + +.fa-shipping-fast:before { + content: "\f48b"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shoe-prints:before { + content: "\f54b"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopping-bag:before { + content: "\f290"; } + +.fa-shopping-basket:before { + content: "\f291"; } + +.fa-shopping-cart:before { + content: "\f07a"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-shower:before { + content: "\f2cc"; } + +.fa-shuttle-van:before { + content: "\f5b6"; } + +.fa-sign:before { + content: "\f4d9"; } + +.fa-sign-in-alt:before { + content: "\f2f6"; } + +.fa-sign-language:before { + content: "\f2a7"; } + +.fa-sign-out-alt:before { + content: "\f2f5"; } + +.fa-signal:before { + content: "\f012"; } + +.fa-signature:before { + content: "\f5b7"; } + +.fa-sim-card:before { + content: "\f7c4"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sink:before { + content: "\e06d"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sitemap:before { + content: "\f0e8"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-skating:before { + content: "\f7c5"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skiing:before { + content: "\f7c9"; } + +.fa-skiing-nordic:before { + content: "\f7ca"; } + +.fa-skull:before { + content: "\f54c"; } + +.fa-skull-crossbones:before { + content: "\f714"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f3ef"; } + +.fa-slash:before { + content: "\f715"; } + +.fa-sleigh:before { + content: "\f7cc"; } + +.fa-sliders-h:before { + content: "\f1de"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-smile:before { + content: "\f118"; } + +.fa-smile-beam:before { + content: "\f5b8"; } + +.fa-smile-wink:before { + content: "\f4da"; } + +.fa-smog:before { + content: "\f75f"; } + +.fa-smoking:before { + content: "\f48d"; } + +.fa-smoking-ban:before { + content: "\f54d"; } + +.fa-sms:before { + content: "\f7cd"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ac"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-snowboarding:before { + content: "\f7ce"; } + +.fa-snowflake:before { + content: "\f2dc"; } + +.fa-snowman:before { + content: "\f7d0"; } + +.fa-snowplow:before { + content: "\f7d2"; } + +.fa-soap:before { + content: "\e06e"; } + +.fa-socks:before { + content: "\f696"; } + +.fa-solar-panel:before { + content: "\f5ba"; } + +.fa-sort:before { + content: "\f0dc"; } + +.fa-sort-alpha-down:before { + content: "\f15d"; } + +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + +.fa-sort-alpha-up:before { + content: "\f15e"; } + +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + +.fa-sort-amount-down:before { + content: "\f160"; } + +.fa-sort-amount-down-alt:before { + content: "\f884"; } + +.fa-sort-amount-up:before { + content: "\f161"; } + +.fa-sort-amount-up-alt:before { + content: "\f885"; } + +.fa-sort-down:before { + content: "\f0dd"; } + +.fa-sort-numeric-down:before { + content: "\f162"; } + +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + +.fa-sort-numeric-up:before { + content: "\f163"; } + +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + +.fa-sort-up:before { + content: "\f0de"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-spa:before { + content: "\f5bb"; } + +.fa-space-shuttle:before { + content: "\f197"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + +.fa-spider:before { + content: "\f717"; } + +.fa-spinner:before { + content: "\f110"; } + +.fa-splotch:before { + content: "\f5bc"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-spray-can:before { + content: "\f5bd"; } + +.fa-square:before { + content: "\f0c8"; } + +.fa-square-full:before { + content: "\f45c"; } + +.fa-square-root-alt:before { + content: "\f698"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-stamp:before { + content: "\f5bf"; } + +.fa-star:before { + content: "\f005"; } + +.fa-star-and-crescent:before { + content: "\f699"; } + +.fa-star-half:before { + content: "\f089"; } + +.fa-star-half-alt:before { + content: "\f5c0"; } + +.fa-star-of-david:before { + content: "\f69a"; } + +.fa-star-of-life:before { + content: "\f621"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-step-backward:before { + content: "\f048"; } + +.fa-step-forward:before { + content: "\f051"; } + +.fa-stethoscope:before { + content: "\f0f1"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-sticky-note:before { + content: "\f249"; } + +.fa-stop:before { + content: "\f04d"; } + +.fa-stop-circle:before { + content: "\f28d"; } + +.fa-stopwatch:before { + content: "\f2f2"; } + +.fa-stopwatch-20:before { + content: "\e06f"; } + +.fa-store:before { + content: "\f54e"; } + +.fa-store-alt:before { + content: "\f54f"; } + +.fa-store-alt-slash:before { + content: "\e070"; } + +.fa-store-slash:before { + content: "\e071"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stream:before { + content: "\f550"; } + +.fa-street-view:before { + content: "\f21d"; } + +.fa-strikethrough:before { + content: "\f0cc"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-stroopwafel:before { + content: "\f551"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-subscript:before { + content: "\f12c"; } + +.fa-subway:before { + content: "\f239"; } + +.fa-suitcase:before { + content: "\f0f2"; } + +.fa-suitcase-rolling:before { + content: "\f5c1"; } + +.fa-sun:before { + content: "\f185"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-superscript:before { + content: "\f12b"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-surprise:before { + content: "\f5c2"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swatchbook:before { + content: "\f5c3"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-swimmer:before { + content: "\f5c4"; } + +.fa-swimming-pool:before { + content: "\f5c5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-synagogue:before { + content: "\f69b"; } + +.fa-sync:before { + content: "\f021"; } + +.fa-sync-alt:before { + content: "\f2f1"; } + +.fa-syringe:before { + content: "\f48e"; } + +.fa-table:before { + content: "\f0ce"; } + +.fa-table-tennis:before { + content: "\f45d"; } + +.fa-tablet:before { + content: "\f10a"; } + +.fa-tablet-alt:before { + content: "\f3fa"; } + +.fa-tablets:before { + content: "\f490"; } + +.fa-tachometer-alt:before { + content: "\f3fd"; } + +.fa-tag:before { + content: "\f02b"; } + +.fa-tags:before { + content: "\f02c"; } + +.fa-tape:before { + content: "\f4db"; } + +.fa-tasks:before { + content: "\f0ae"; } + +.fa-taxi:before { + content: "\f1ba"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-teeth:before { + content: "\f62e"; } + +.fa-teeth-open:before { + content: "\f62f"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f3fe"; } + +.fa-temperature-high:before { + content: "\f769"; } + +.fa-temperature-low:before { + content: "\f76b"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-tenge:before { + content: "\f7d7"; } + +.fa-terminal:before { + content: "\f120"; } + +.fa-text-height:before { + content: "\f034"; } + +.fa-text-width:before { + content: "\f035"; } + +.fa-th:before { + content: "\f00a"; } + +.fa-th-large:before { + content: "\f009"; } + +.fa-th-list:before { + content: "\f00b"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-theater-masks:before { + content: "\f630"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-thermometer:before { + content: "\f491"; } + +.fa-thermometer-empty:before { + content: "\f2cb"; } + +.fa-thermometer-full:before { + content: "\f2c7"; } + +.fa-thermometer-half:before { + content: "\f2c9"; } + +.fa-thermometer-quarter:before { + content: "\f2ca"; } + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-thumbs-down:before { + content: "\f165"; } + +.fa-thumbs-up:before { + content: "\f164"; } + +.fa-thumbtack:before { + content: "\f08d"; } + +.fa-ticket-alt:before { + content: "\f3ff"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-times:before { + content: "\f00d"; } + +.fa-times-circle:before { + content: "\f057"; } + +.fa-tint:before { + content: "\f043"; } + +.fa-tint-slash:before { + content: "\f5c7"; } + +.fa-tired:before { + content: "\f5c8"; } + +.fa-toggle-off:before { + content: "\f204"; } + +.fa-toggle-on:before { + content: "\f205"; } + +.fa-toilet:before { + content: "\f7d8"; } + +.fa-toilet-paper:before { + content: "\f71e"; } + +.fa-toilet-paper-slash:before { + content: "\e072"; } + +.fa-toolbox:before { + content: "\f552"; } + +.fa-tools:before { + content: "\f7d9"; } + +.fa-tooth:before { + content: "\f5c9"; } + +.fa-torah:before { + content: "\f6a0"; } + +.fa-torii-gate:before { + content: "\f6a1"; } + +.fa-tractor:before { + content: "\f722"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trademark:before { + content: "\f25c"; } + +.fa-traffic-light:before { + content: "\f637"; } + +.fa-trailer:before { + content: "\e041"; } + +.fa-train:before { + content: "\f238"; } + +.fa-tram:before { + content: "\f7da"; } + +.fa-transgender:before { + content: "\f224"; } + +.fa-transgender-alt:before { + content: "\f225"; } + +.fa-trash:before { + content: "\f1f8"; } + +.fa-trash-alt:before { + content: "\f2ed"; } + +.fa-trash-restore:before { + content: "\f829"; } + +.fa-trash-restore-alt:before { + content: "\f82a"; } + +.fa-tree:before { + content: "\f1bb"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-trophy:before { + content: "\f091"; } + +.fa-truck:before { + content: "\f0d1"; } + +.fa-truck-loading:before { + content: "\f4de"; } + +.fa-truck-monster:before { + content: "\f63b"; } + +.fa-truck-moving:before { + content: "\f4df"; } + +.fa-truck-pickup:before { + content: "\f63c"; } + +.fa-tshirt:before { + content: "\f553"; } + +.fa-tty:before { + content: "\f1e4"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-tv:before { + content: "\f26c"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-umbrella:before { + content: "\f0e9"; } + +.fa-umbrella-beach:before { + content: "\f5ca"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-underline:before { + content: "\f0cd"; } + +.fa-undo:before { + content: "\f0e2"; } + +.fa-undo-alt:before { + content: "\f2ea"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-universal-access:before { + content: "\f29a"; } + +.fa-university:before { + content: "\f19c"; } + +.fa-unlink:before { + content: "\f127"; } + +.fa-unlock:before { + content: "\f09c"; } + +.fa-unlock-alt:before { + content: "\f13e"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-upload:before { + content: "\f093"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-user:before { + content: "\f007"; } + +.fa-user-alt:before { + content: "\f406"; } + +.fa-user-alt-slash:before { + content: "\f4fa"; } + +.fa-user-astronaut:before { + content: "\f4fb"; } + +.fa-user-check:before { + content: "\f4fc"; } + +.fa-user-circle:before { + content: "\f2bd"; } + +.fa-user-clock:before { + content: "\f4fd"; } + +.fa-user-cog:before { + content: "\f4fe"; } + +.fa-user-edit:before { + content: "\f4ff"; } + +.fa-user-friends:before { + content: "\f500"; } + +.fa-user-graduate:before { + content: "\f501"; } + +.fa-user-injured:before { + content: "\f728"; } + +.fa-user-lock:before { + content: "\f502"; } + +.fa-user-md:before { + content: "\f0f0"; } + +.fa-user-minus:before { + content: "\f503"; } + +.fa-user-ninja:before { + content: "\f504"; } + +.fa-user-nurse:before { + content: "\f82f"; } + +.fa-user-plus:before { + content: "\f234"; } + +.fa-user-secret:before { + content: "\f21b"; } + +.fa-user-shield:before { + content: "\f505"; } + +.fa-user-slash:before { + content: "\f506"; } + +.fa-user-tag:before { + content: "\f507"; } + +.fa-user-tie:before { + content: "\f508"; } + +.fa-user-times:before { + content: "\f235"; } + +.fa-users:before { + content: "\f0c0"; } + +.fa-users-cog:before { + content: "\f509"; } + +.fa-users-slash:before { + content: "\e073"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-utensil-spoon:before { + content: "\f2e5"; } + +.fa-utensils:before { + content: "\f2e7"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-vector-square:before { + content: "\f5cb"; } + +.fa-venus:before { + content: "\f221"; } + +.fa-venus-double:before { + content: "\f226"; } + +.fa-venus-mars:before { + content: "\f228"; } + +.fa-vest:before { + content: "\e085"; } + +.fa-vest-patches:before { + content: "\e086"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-vial:before { + content: "\f492"; } + +.fa-vials:before { + content: "\f493"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-video:before { + content: "\f03d"; } + +.fa-video-slash:before { + content: "\f4e2"; } + +.fa-vihara:before { + content: "\f6a7"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-virus:before { + content: "\e074"; } + +.fa-virus-slash:before { + content: "\e075"; } + +.fa-viruses:before { + content: "\e076"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-voicemail:before { + content: "\f897"; } + +.fa-volleyball-ball:before { + content: "\f45f"; } + +.fa-volume-down:before { + content: "\f027"; } + +.fa-volume-mute:before { + content: "\f6a9"; } + +.fa-volume-off:before { + content: "\f026"; } + +.fa-volume-up:before { + content: "\f028"; } + +.fa-vote-yea:before { + content: "\f772"; } + +.fa-vr-cardboard:before { + content: "\f729"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-walking:before { + content: "\f554"; } + +.fa-wallet:before { + content: "\f555"; } + +.fa-warehouse:before { + content: "\f494"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-water:before { + content: "\f773"; } + +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weight:before { + content: "\f496"; } + +.fa-weight-hanging:before { + content: "\f5cd"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-wheelchair:before { + content: "\f193"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wifi:before { + content: "\f1eb"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wind:before { + content: "\f72e"; } + +.fa-window-close:before { + content: "\f410"; } + +.fa-window-maximize:before { + content: "\f2d0"; } + +.fa-window-minimize:before { + content: "\f2d1"; } + +.fa-window-restore:before { + content: "\f2d2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wine-bottle:before { + content: "\f72f"; } + +.fa-wine-glass:before { + content: "\f4e3"; } + +.fa-wine-glass-alt:before { + content: "\f5ce"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-won-sign:before { + content: "\f159"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-wrench:before { + content: "\f0ad"; } + +.fa-x-ray:before { + content: "\f497"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yen-sign:before { + content: "\f157"; } + +.fa-yin-yang:before { + content: "\f6ad"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?23f19bb08961f37aaf692ff943823453); + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?23f19bb08961f37aaf692ff943823453?#iefix) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2?d878b0a6a1144760244ff0665888404c) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff?2285773e6b4b172f07d9b777c81b0775) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf?527940b104eb2ea366c8630f3f038603) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg?2f517e09eb2ca6650ff5bec5a95157ab#fontawesome) format("svg"); } + +.fab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?77206a6bb316fa0aded5083cc57f92b9); + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?77206a6bb316fa0aded5083cc57f92b9?#iefix) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2?7a3337626410ca2f40718481c755640f) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff?bb58e57c48a3e911f15fa834ff00d44a) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf?491974d108fe4002b2aaf7ffc48249a0) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg?4689f52cc96215721344e51e5831eec1#fontawesome) format("svg"); } + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?9bbb245e67a133f6e486d8d2545e14a5); + src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?9bbb245e67a133f6e486d8d2545e14a5?#iefix) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2?1551f4f60c37af51121f106501f69b80) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff?eeccf4f66002c6f2ba24d3d22f2434c2) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf?be9ee23c0c6390141475d519c2c5fb8f) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg?7a8b4f130182d19a2d7c67d80c090397#fontawesome) format("svg"); } + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; } + +/*---------------------------------------------------*/ +.speedButtonNavBar{ + margin-bottom: 1px !important; + padding-bottom: 0.2rem !important; +} +.speedButtonNavBar img{ + display: block; + margin: 0 auto 5px auto; + max-width: 64px; +} +.speedButtonNavBar ul{ + overflow: hidden; + margin-bottom: 1px; +} +.speedButtonNavBar ul li{ + text-align: center; + width: 100px; + height: 105px; + padding-top: 10px; + float: left; + /*margin: 10px;*/ + font-size: 11px; + overflow: hidden; + line-height: 1.2; + +} +.speedButtonNavBar ul li.selected{ + background-color: rgba(200,200,200,0.5); + border-radius: 10px; +} +.speedButtonNavBar ul a{ + display: block; + width: 100%; + height: 100%; +} + +/* +.speedButtonNavBar ul li{ + text-align: center; + width: 100px; + height: 100px; + padding-top: 10px; + float: left; + margin: 10px; + font-size: 11px; + overflow: hidden; + line-height: 1.2; +} +.speedButtonNavBar ul li.selected{ + background-color: rgba(200,200,200,0.5); + border-radius: 10px; +} +.speedButtonNavBar ul a{ + display: block; + width: 100%; + height: 100%; +} + +.speedButtonNavBar.smallicons{ + +} +.speedButtonNavBar.smallicons ul li{ + width: 80px; + height: 70px; + padding: 10px 10px 0 10px; + margin: 5px; +} +.speedButtonNavBar.smallicons img{ + max-width: 32px; +} +*/ + @charset "UTF-8"; /*! * Bootstrap v4.6.2 (https://getbootstrap.com/) * Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{background-color:#fff;color:#212529;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;margin-top:0}p{margin-bottom:1rem;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}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{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{background-color:transparent;color:#007bff;text-decoration:none}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{-ms-overflow-style:scrollbar;margin-bottom:1rem;margin-top:0;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{caption-side:bottom;color:#6c757d;padding-bottom:.75rem;padding-top:.75rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[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}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{cursor:pointer;display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{border:0;border-top:1px solid rgba(0,0,0,.1);margin-bottom:1rem;margin-top:1rem}.small,small{font-size:.875em;font-weight:400}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote-footer{color:#6c757d;display:block;font-size:.875em}.blockquote-footer:before{content:"— "}.img-fluid,.img-thumbnail{height:auto;max-width:100%}.img-thumbnail{background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;padding:.25rem}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{color:#6c757d;font-size:90%}code{word-wrap:break-word;color:#e83e8c;font-size:87.5%}a>code{color:inherit}kbd{background-color:#212529;border-radius:.2rem;color:#fff;font-size:87.5%;padding:.2rem .4rem}kbd kbd{font-size:100%;font-weight:700;padding:0}pre{color:#212529;display:block;font-size:87.5%}pre code{color:inherit;font-size:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@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}}.row{display:flex;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.no-gutters{margin-left:0;margin-right:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-left:0;padding-right:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;max-width:100%;width:auto}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;max-width:100%;width:auto}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;max-width:100%;width:auto}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;max-width:100%;width:auto}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;max-width:100%;width:auto}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{color:#212529;margin-bottom:1rem;width:100%}.table td,.table th{border-top:1px solid #dee2e6;padding:.75rem;vertical-align:top}.table thead th{border-bottom:2px solid #dee2e6;vertical-align:bottom}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075);color:#212529}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{background-color:#343a40;border-color:#454d55;color:#fff}.table .thead-light th{background-color:#e9ecef;border-color:#dee2e6;color:#495057}.table-dark{background-color:#343a40;color:#fff}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{background-color:hsla(0,0%,100%,.075);color:#fff}@media (max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive>.table-bordered{border:0}.form-control{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;display:block;font-size:1rem;font-weight:400;height:calc(1.5em + .75rem + 2px);line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{background-color:#fff;border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25);color:#495057;outline:0}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{background-color:#fff;color:#495057}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{font-size:inherit;line-height:1.5;margin-bottom:0;padding-bottom:calc(.375rem + 1px);padding-top:calc(.375rem + 1px)}.col-form-label-lg{font-size:1.25rem;line-height:1.5;padding-bottom:calc(.5rem + 1px);padding-top:calc(.5rem + 1px)}.col-form-label-sm{font-size:.875rem;line-height:1.5;padding-bottom:calc(.25rem + 1px);padding-top:calc(.25rem + 1px)}.form-control-plaintext{background-color:transparent;border:solid transparent;border-width:1px 0;color:#212529;display:block;font-size:1rem;line-height:1.5;margin-bottom:0;padding:.375rem 0;width:100%}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:.2rem;font-size:.875rem;height:calc(1.5em + .5rem + 2px);line-height:1.5;padding:.25rem .5rem}.form-control-lg{border-radius:.3rem;font-size:1.25rem;height:calc(1.5em + 1rem + 2px);line-height:1.5;padding:.5rem 1rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-left:-5px;margin-right:-5px}.form-row>.col,.form-row>[class*=col-]{padding-left:5px;padding-right:5px}.form-check{display:block;padding-left:1.25rem;position:relative}.form-check-input{margin-left:-1.25rem;margin-top:.3rem;position:absolute}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{align-items:center;display:inline-flex;margin-right:.75rem;padding-left:0}.form-check-inline .form-check-input{margin-left:0;margin-right:.3125rem;margin-top:0;position:static}.valid-feedback{color:#28a745;display:none;font-size:.875em;margin-top:.25rem;width:100%}.valid-tooltip{background-color:rgba(40,167,69,.9);border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.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{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' 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-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#28a745;padding-right:calc(1.5em + .75rem)!important}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-valid,.was-validated .custom-select:valid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' 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") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background-color:#34ce57;border-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{color:#dc3545;display:none;font-size:.875em;margin-top:.25rem;width:100%}.invalid-tooltip{background-color:rgba(220,53,69,.9);border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.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{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' 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-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' 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") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background-color:#e4606d;border-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{align-items:center;display:flex;flex-flow:row wrap}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{align-items:center;display:flex;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;vertical-align:middle;width:auto}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{align-items:center;display:flex;justify-content:center;padding-left:0;width:auto}.form-inline .form-check-input{flex-shrink:0;margin-left:0;margin-right:.25rem;margin-top:0;position:relative}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;color:#212529;display:inline-block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25);outline:0}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{background-color:#007bff;border-color:#007bff;color:#fff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{background-color:#0069d9;border-color:#0062cc;color:#fff}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{background-color:#007bff;border-color:#007bff;color:#fff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{background-color:#0062cc;border-color:#005cbf;color:#fff}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{background-color:#5a6268;border-color:#545b62;color:#fff}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem hsla(208,6%,54%,.5)}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#545b62;border-color:#4e555b;color:#fff}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(208,6%,54%,.5)}.btn-success{background-color:#28a745;border-color:#28a745;color:#fff}.btn-success.focus,.btn-success:focus,.btn-success:hover{background-color:#218838;border-color:#1e7e34;color:#fff}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{background-color:#28a745;border-color:#28a745;color:#fff}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{background-color:#1e7e34;border-color:#1c7430;color:#fff}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-info.focus,.btn-info:focus,.btn-info:hover{background-color:#138496;border-color:#117a8b;color:#fff}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{background-color:#117a8b;border-color:#10707f;color:#fff}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{background-color:#e0a800;border-color:#d39e00;color:#212529}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{background-color:#d39e00;border-color:#c69500;color:#212529}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{background-color:#c82333;border-color:#bd2130;color:#fff}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{background-color:#bd2130;border-color:#b21f2d;color:#fff}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-light.focus,.btn-light:focus,.btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5;color:#212529}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem hsla(220,4%,85%,.5)}.btn-light.disabled,.btn-light:disabled{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{background-color:#dae0e5;border-color:#d3d9df;color:#212529}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(220,4%,85%,.5)}.btn-dark{background-color:#343a40;border-color:#343a40;color:#fff}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{background-color:#23272b;border-color:#1d2124;color:#fff}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{background-color:#343a40;border-color:#343a40;color:#fff}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{background-color:#1d2124;border-color:#171a1d;color:#fff}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{border-color:#007bff;color:#007bff}.btn-outline-primary:hover{background-color:#007bff;border-color:#007bff;color:#fff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{background-color:transparent;color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{background-color:#007bff;border-color:#007bff;color:#fff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{border-color:#6c757d;color:#6c757d}.btn-outline-secondary:hover{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{background-color:transparent;color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5)}.btn-outline-success{border-color:#28a745;color:#28a745}.btn-outline-success:hover{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{background-color:transparent;color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{border-color:#17a2b8;color:#17a2b8}.btn-outline-info:hover{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{background-color:transparent;color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{border-color:#ffc107;color:#ffc107}.btn-outline-warning:hover{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{background-color:transparent;color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{border-color:#dc3545;color:#dc3545}.btn-outline-danger:hover{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{background-color:transparent;color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{border-color:#f8f9fa;color:#f8f9fa}.btn-outline-light:hover{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{background-color:transparent;color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{border-color:#343a40;color:#343a40}.btn-outline-dark:hover{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{background-color:transparent;color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{color:#007bff;font-weight:400;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{border-radius:.3rem;font-size:1.25rem;line-height:1.5;padding:.5rem 1rem}.btn-group-sm>.btn,.btn-sm{border-radius:.2rem;font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.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;position:relative;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;color:#212529;display:none;float:left;font-size:1rem;left:0;list-style:none;margin:.125rem 0 0;min-width:10rem;padding:.5rem 0;position:absolute;text-align:left;top:100%;z-index:1000}.dropdown-menu-left{left:0;right:auto}.dropdown-menu-right{left:auto;right:0}@media (min-width:576px){.dropdown-menu-sm-left{left:0;right:auto}.dropdown-menu-sm-right{left:auto;right:0}}@media (min-width:768px){.dropdown-menu-md-left{left:0;right:auto}.dropdown-menu-md-right{left:auto;right:0}}@media (min-width:992px){.dropdown-menu-lg-left{left:0;right:auto}.dropdown-menu-lg-right{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-left{left:0;right:auto}.dropdown-menu-xl-right{left:auto;right:0}}.dropup .dropdown-menu{bottom:100%;margin-bottom:.125rem;margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:0;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{left:100%;margin-left:.125rem;margin-top:0;right:auto;top:0}.dropright .dropdown-toggle:after{border-bottom:.3em solid transparent;border-left:.3em solid;border-right:0;border-top:.3em solid transparent;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{left:auto;margin-right:.125rem;margin-top:0;right:100%;top:0}.dropleft .dropdown-toggle:after{content:"";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:before{border-bottom:.3em solid transparent;border-right:.3em solid;border-top:.3em solid transparent;content:"";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{bottom:auto;right:auto}.dropdown-divider{border-top:1px solid #e9ecef;height:0;margin:.5rem 0;overflow:hidden}.dropdown-item{background-color:transparent;border:0;clear:both;color:#212529;display:block;font-weight:400;padding:.25rem 1.5rem;text-align:inherit;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background-color:#e9ecef;color:#16181b;text-decoration:none}.dropdown-item.active,.dropdown-item:active{background-color:#007bff;color:#fff;text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:transparent;color:#adb5bd;pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:#6c757d;display:block;font-size:.875rem;margin-bottom:0;padding:.5rem 1.5rem;white-space:nowrap}.dropdown-item-text{color:#212529;display:block;padding:.25rem 1.5rem}.btn-group,.btn-group-vertical{display:inline-flex;position:relative;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{flex:1 1 auto;position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.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>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.dropdown-toggle-split{padding-left:.5625rem;padding-right:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group-vertical{align-items:flex-start;flex-direction:column;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:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{clip:rect(0,0,0,0);pointer-events:none;position:absolute}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{flex:1 1 auto;margin-bottom:0;min-width:0;position:relative;width:1%}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group>.custom-file{align-items:center;display:flex}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-bottom-left-radius:0;border-top-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{align-items:center;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem;color:#495057;display:flex;font-size:1rem;font-weight:400;line-height:1.5;margin-bottom:0;padding:.375rem .75rem;text-align:center;white-space:nowrap}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{border-radius:.3rem;font-size:1.25rem;line-height:1.5;padding:.5rem 1rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{border-radius:.2rem;font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.custom-control{display:block;min-height:1.5rem;padding-left:1.5rem;position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact;z-index:1}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{height:1.25rem;left:0;opacity:0;position:absolute;width:1rem;z-index:-1}.custom-control-input:checked~.custom-control-label:before{background-color:#007bff;border-color:#007bff;color:#fff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#b3d7ff;border-color:#b3d7ff;color:#fff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{margin-bottom:0;position:relative;vertical-align:top}.custom-control-label:before{background-color:#fff;border:1px solid #adb5bd;pointer-events:none}.custom-control-label:after,.custom-control-label:before{content:"";display:block;height:1rem;left:-1.5rem;position:absolute;top:.25rem;width:1rem}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='m6.564.75-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#007bff;border-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{border-radius:.5rem;left:-2.25rem;pointer-events:all;width:1.75rem}.custom-switch .custom-control-label:after{background-color:#adb5bd;border-radius:.5rem;height:calc(1rem - 4px);left:calc(-2.25rem + 2px);top:calc(.25rem + 2px);transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:calc(1rem - 4px)}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;color:#495057;display:inline-block;font-size:1rem;font-weight:400;height:calc(1.5em + .75rem + 2px);line-height:1.5;padding:.375rem 1.75rem .375rem .75rem;vertical-align:middle;width:100%}.custom-select:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25);outline:0}.custom-select:focus::-ms-value{background-color:#fff;color:#495057}.custom-select[multiple],.custom-select[size]:not([size="1"]){background-image:none;height:auto;padding-right:.75rem}.custom-select:disabled{background-color:#e9ecef;color:#6c757d}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{font-size:.875rem;height:calc(1.5em + .5rem + 2px);padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}.custom-select-lg{font-size:1.25rem;height:calc(1.5em + 1rem + 2px);padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{height:calc(1.5em + .75rem + 2px);position:relative;width:100%}.custom-file-input{margin:0;opacity:0;overflow:hidden;z-index:2}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;font-weight:400;height:calc(1.5em + .75rem + 2px);left:0;overflow:hidden;z-index:1}.custom-file-label,.custom-file-label:after{color:#495057;line-height:1.5;padding:.375rem .75rem;position:absolute;right:0;top:0}.custom-file-label:after{background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0;bottom:0;content:"Browse";display:block;height:calc(1.5em + .75rem);z-index:3}.custom-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;height:1.4rem;padding:0;width:100%}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#007bff;border:0;border-radius:1rem;height:1rem;margin-top:-.25rem;-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;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{background-color:#dee2e6;border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:#007bff;border:0;border-radius:1rem;height: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;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{background-color:#dee2e6;border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-thumb{appearance:none;background-color:#007bff;border:0;border-radius:1rem;height:1rem;margin-left:.2rem;margin-right:.2rem;margin-top:0;-ms-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;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{background-color:transparent;border-color:transparent;border-width:.5rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;cursor:default;pointer-events:none}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;margin-bottom:-1px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{background-color:transparent;border-color:transparent;color:#6c757d}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:#fff;border-color:#dee2e6 #dee2e6 #fff;color:#495057}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#007bff;color:#fff}.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}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{padding:.5rem 1rem;position:relative}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.navbar-brand{display:inline-block;font-size:1.25rem;line-height:inherit;margin-right:1rem;padding-bottom:.3125rem;padding-top:.3125rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{float:none;position:static}.navbar-text{display:inline-block;padding-bottom:.5rem;padding-top:.5rem}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{background-color:transparent;border:1px solid transparent;border-radius:.25rem;font-size:1.25rem;line-height:1;padding:.25rem .75rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{background:50%/100% 100% no-repeat;content:"";display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-left:0;padding-right:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row 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-left:.5rem;padding-right:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.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}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-left:0;padding-right:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row 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-left:.5rem;padding-right:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.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}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-left:0;padding-right:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row 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-left:.5rem;padding-right:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.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}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-left:0;padding-right:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row 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-left:.5rem;padding-right:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.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{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-left:0;padding-right:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.5)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{border-color:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{word-wrap:break-word;background-clip:border-box;background-color:#fff;border:1px solid rgba(0,0,0,.125);border-radius:.25rem;display:flex;flex-direction:column;min-width:0;position:relative}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px);border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125);margin-bottom:0;padding:.75rem 1.25rem}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125);padding:.75rem 1.25rem}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{border-bottom:0;margin-bottom:-.75rem}.card-header-pills,.card-header-tabs{margin-left:-.625rem;margin-right:-.625rem}.card-img-overlay{border-radius:calc(.25rem - 1px);bottom:0;left:0;padding:1.25rem;position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-left:-15px;margin-right:-15px}.card-deck .card{flex:1 0 0%;margin-bottom:0;margin-left:15px;margin-right:15px}}.card-group>.card{margin-bottom:15px}@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{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-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-bottom-left-radius:0;border-top-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}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{background-color:#e9ecef;border-radius:.25rem;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:1rem;padding:.75rem 1rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{color:#6c757d;content:"/";float:left;padding-right:.5rem}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{border-radius:.25rem;display:flex;list-style:none;padding-left:0}.page-link{background-color:#fff;border:1px solid #dee2e6;color:#007bff;display:block;line-height:1.25;margin-left:-1px;padding:.5rem .75rem;position:relative}.page-link:hover{background-color:#e9ecef;border-color:#dee2e6;color:#0056b3;text-decoration:none;z-index:2}.page-link:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25);outline:0;z-index:3}.page-item:first-child .page-link{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem;margin-left:0}.page-item:last-child .page-link{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.page-item.active .page-link{background-color:#007bff;border-color:#007bff;color:#fff;z-index:3}.page-item.disabled .page-link{background-color:#fff;border-color:#dee2e6;color:#6c757d;cursor:auto;pointer-events:none}.pagination-lg .page-link{font-size:1.25rem;line-height:1.5;padding:.75rem 1.5rem}.pagination-lg .page-item:first-child .page-link{border-bottom-left-radius:.3rem;border-top-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-bottom-right-radius:.3rem;border-top-right-radius:.3rem}.pagination-sm .page-link{font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.badge{border-radius:.25rem;display:inline-block;font-size:75%;font-weight:700;line-height:1;padding:.25em .4em;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:baseline;white-space:nowrap}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{border-radius:10rem;padding-left:.6em;padding-right:.6em}.badge-primary{background-color:#007bff;color:#fff}a.badge-primary:focus,a.badge-primary:hover{background-color:#0062cc;color:#fff}a.badge-primary.focus,a.badge-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5);outline:0}.badge-secondary{background-color:#6c757d;color:#fff}a.badge-secondary:focus,a.badge-secondary:hover{background-color:#545b62;color:#fff}a.badge-secondary.focus,a.badge-secondary:focus{box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5);outline:0}.badge-success{background-color:#28a745;color:#fff}a.badge-success:focus,a.badge-success:hover{background-color:#1e7e34;color:#fff}a.badge-success.focus,a.badge-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5);outline:0}.badge-info{background-color:#17a2b8;color:#fff}a.badge-info:focus,a.badge-info:hover{background-color:#117a8b;color:#fff}a.badge-info.focus,a.badge-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5);outline:0}.badge-warning{background-color:#ffc107;color:#212529}a.badge-warning:focus,a.badge-warning:hover{background-color:#d39e00;color:#212529}a.badge-warning.focus,a.badge-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5);outline:0}.badge-danger{background-color:#dc3545;color:#fff}a.badge-danger:focus,a.badge-danger:hover{background-color:#bd2130;color:#fff}a.badge-danger.focus,a.badge-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5);outline:0}.badge-light{background-color:#f8f9fa;color:#212529}a.badge-light:focus,a.badge-light:hover{background-color:#dae0e5;color:#212529}a.badge-light.focus,a.badge-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5);outline:0}.badge-dark{background-color:#343a40;color:#fff}a.badge-dark:focus,a.badge-dark:hover{background-color:#1d2124;color:#fff}a.badge-dark.focus,a.badge-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5);outline:0}.jumbotron{background-color:#e9ecef;border-radius:.3rem;margin-bottom:2rem;padding:2rem 1rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{border-radius:0;padding-left:0;padding-right:0}.alert{border:1px solid transparent;border-radius:.25rem;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{color:inherit;padding:.75rem 1.25rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{background-color:#cce5ff;border-color:#b8daff;color:#004085}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{background-color:#e2e3e5;border-color:#d6d8db;color:#383d41}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{background-color:#fefefe;border-color:#fdfdfe;color:#818182}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{background-color:#d6d8d9;border-color:#c6c8ca;color:#1b1e21}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{background-color:#e9ecef;border-radius:.25rem;font-size:.75rem;height:1rem;line-height:0}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{background-color:#007bff;color:#fff;flex-direction:column;justify-content:center;text-align:center;transition:width .6s ease;white-space:nowrap}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{align-items:flex-start;display:flex}.media-body{flex:1}.list-group{border-radius:.25rem;display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-item-action{color:#495057;text-align:inherit;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:#f8f9fa;color:#495057;text-decoration:none;z-index:1}.list-group-item-action:active{background-color:#e9ecef;color:#212529}.list-group-item{background-color:#fff;border:1px solid rgba(0,0,0,.125);display:block;padding:.75rem 1.25rem;position:relative}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{background-color:#fff;color:#6c757d;pointer-events:none}.list-group-item.active{background-color:#007bff;border-color:#007bff;color:#fff;z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:1px;margin-top:-1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{background-color:#b8daff;color:#004085}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{background-color:#9fcdff;color:#004085}.list-group-item-primary.list-group-item-action.active{background-color:#004085;border-color:#004085;color:#fff}.list-group-item-secondary{background-color:#d6d8db;color:#383d41}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{background-color:#c8cbcf;color:#383d41}.list-group-item-secondary.list-group-item-action.active{background-color:#383d41;border-color:#383d41;color:#fff}.list-group-item-success{background-color:#c3e6cb;color:#155724}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{background-color:#b1dfbb;color:#155724}.list-group-item-success.list-group-item-action.active{background-color:#155724;border-color:#155724;color:#fff}.list-group-item-info{background-color:#bee5eb;color:#0c5460}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{background-color:#abdde5;color:#0c5460}.list-group-item-info.list-group-item-action.active{background-color:#0c5460;border-color:#0c5460;color:#fff}.list-group-item-warning{background-color:#ffeeba;color:#856404}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{background-color:#ffe8a1;color:#856404}.list-group-item-warning.list-group-item-action.active{background-color:#856404;border-color:#856404;color:#fff}.list-group-item-danger{background-color:#f5c6cb;color:#721c24}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{background-color:#f1b0b7;color:#721c24}.list-group-item-danger.list-group-item-action.active{background-color:#721c24;border-color:#721c24;color:#fff}.list-group-item-light{background-color:#fdfdfe;color:#818182}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{background-color:#ececf6;color:#818182}.list-group-item-light.list-group-item-action.active{background-color:#818182;border-color:#818182;color:#fff}.list-group-item-dark{background-color:#c6c8ca;color:#1b1e21}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{background-color:#b9bbbe;color:#1b1e21}.list-group-item-dark.list-group-item-action.active{background-color:#1b1e21;border-color:#1b1e21;color:#fff}.close{color:#000;float:right;font-size:1.5rem;font-weight:700;line-height:1;opacity:.5;text-shadow:0 1px 0 #fff}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{background-color:transparent;border:0;padding:0}a.close.disabled{pointer-events:none}.toast{background-clip:padding-box;background-color:hsla(0,0%,100%,.85);border:1px solid rgba(0,0,0,.1);border-radius:.25rem;box-shadow:0 .25rem .75rem rgba(0,0,0,.1);flex-basis:350px;font-size:.875rem;max-width:350px;opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{align-items:center;background-clip:padding-box;background-color:hsla(0,0%,100%,.85);border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);color:#6c757d;display:flex;padding:.25rem .75rem}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{display:none;height:100%;left:0;outline:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:1050}.modal-dialog{margin:.5rem;pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@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{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{content:"";display:block;height:calc(100vh - 1rem);height:-moz-min-content;height:min-content}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;height:100%;justify-content:center}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{align-items:flex-start;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);display:flex;justify-content:space-between;padding:1rem}.modal-header .close{margin:-1rem -1rem -1rem auto;padding:1rem}.modal-title{line-height:1.5;margin-bottom:0}.modal-body{flex:1 1 auto;padding:1rem;position:relative}.modal-footer{align-items:center;border-bottom-left-radius:calc(.3rem - 1px);border-bottom-right-radius:calc(.3rem - 1px);border-top:1px solid #dee2e6;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:.75rem}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}@media (min-width:576px){.modal-dialog{margin:1.75rem auto;max-width:500px}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{word-wrap:break-word;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;margin:0;opacity:0;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1070}.tooltip.show{opacity:.9}.tooltip .arrow{display:block;height:.4rem;position:absolute;width:.8rem}.tooltip .arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{border-top-color:#000;border-width:.4rem .4rem 0;top:0}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{height:.8rem;left:0;width:.4rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{border-right-color:#000;border-width:.4rem .4rem .4rem 0;right:0}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{border-bottom-color:#000;border-width:0 .4rem .4rem;bottom:0}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{height:.8rem;right:0;width:.4rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{border-left-color:#000;border-width:.4rem 0 .4rem .4rem;left:0}.tooltip-inner{background-color:#000;border-radius:.25rem;color:#fff;max-width:200px;padding:.25rem .5rem;text-align:center}.popover{word-wrap:break-word;background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;left:0;letter-spacing:normal;line-break:auto;line-height:1.5;max-width:276px;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;top:0;white-space:normal;word-break:normal;word-spacing:normal;z-index:1060}.popover,.popover .arrow{display:block;position:absolute}.popover .arrow{height:.5rem;margin:0 .3rem;width:1rem}.popover .arrow:after,.popover .arrow:before{border-color:transparent;border-style:solid;content:"";display:block;position:absolute}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{border-top-color:rgba(0,0,0,.25);border-width:.5rem .5rem 0;bottom:0}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{border-top-color:#fff;border-width:.5rem .5rem 0;bottom:1px}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{height:1rem;left:calc(-.5rem - 1px);margin:.3rem 0;width:.5rem}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{border-right-color:rgba(0,0,0,.25);border-width:.5rem .5rem .5rem 0;left:0}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{border-right-color:#fff;border-width:.5rem .5rem .5rem 0;left:1px}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{border-bottom-color:rgba(0,0,0,.25);border-width:0 .5rem .5rem;top:0}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{border-bottom-color:#fff;border-width:0 .5rem .5rem;top:1px}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:1px solid #f7f7f7;content:"";display:block;left:50%;margin-left:-.5rem;position:absolute;top:0;width:1rem}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{height:1rem;margin:.3rem 0;right:calc(-.5rem - 1px);width:.5rem}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{border-left-color:rgba(0,0,0,.25);border-width:.5rem 0 .5rem .5rem;right:0}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{border-left-color:#fff;border-width:.5rem 0 .5rem .5rem;right:1px}.popover-header{background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);font-size:1rem;margin-bottom:0;padding:.5rem .75rem}.popover-header:empty{display:none}.popover-body{color:#212529;padding:.5rem .75rem}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{overflow:hidden;position:relative;width:100%}.carousel-inner:after{clear:both;content:"";display:block}.carousel-item{backface-visibility:hidden;display:none;float:left;margin-right:-100%;position:relative;transition:transform .6s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transform:none;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1;z-index:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0;transition:opacity 0s .6s;z-index:0}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{align-items:center;background:none;border:0;bottom:0;color:#fff;display:flex;justify-content:center;opacity:.5;padding:0;position:absolute;text-align:center;top:0;transition:opacity .15s ease;width:15%;z-index:1}@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;opacity:.9;outline:0;text-decoration:none}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{background:50%/100% 100% no-repeat;display:inline-block;height:20px;width:20px}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='m5.25 0-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='m2.75 0-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{bottom:0;display:flex;justify-content:center;left:0;list-style:none;margin-left:15%;margin-right:15%;padding-left:0;position:absolute;right:0;z-index:15}.carousel-indicators li{background-clip:padding-box;background-color:#fff;border-bottom:10px solid transparent;border-top:10px solid transparent;box-sizing:content-box;cursor:pointer;flex:0 1 auto;height:3px;margin-left:3px;margin-right:3px;opacity:.5;text-indent:-999px;transition:opacity .6s ease;width:30px}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{bottom:20px;color:#fff;left:15%;padding-bottom:20px;padding-top:20px;position:absolute;right:15%;text-align:center;z-index:10}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{animation:spinner-border .75s linear infinite;border:.25em solid;border-radius:50%;border-right:.25em solid transparent;display:inline-block;height:2rem;vertical-align:-.125em;width:2rem}.spinner-border-sm{border-width:.2em;height:1rem;width:1rem}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{animation:spinner-grow .75s linear infinite;background-color:currentcolor;border-radius:50%;display:inline-block;height:2rem;opacity:0;vertical-align:-.125em;width:2rem}.spinner-grow-sm{height:1rem;width:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.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}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{clear:both;content:"";display:block}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!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}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!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}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!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}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!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}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!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}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!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}}.embed-responsive{display:block;overflow:hidden;padding:0;position:relative;width:100%}.embed-responsive:before{content:"";display:block}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{border:0;bottom:0;height:100%;left:0;position:absolute;top:0;width:100%}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.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-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!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}.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}.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}@media (min-width:576px){.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-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!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}.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}.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}}@media (min-width:768px){.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-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!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}.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}.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}}@media (min-width:992px){.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-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!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}.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}.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}}@media (min-width:1200px){.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-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!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}.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}.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}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!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}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;overflow:visible;position:static;white-space:normal;width:auto}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.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}.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}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{background-color:transparent;bottom:0;content:"";left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{background-color:transparent;border:0;color:transparent;font:0/0 a;text-shadow:none}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd}blockquote,img,pre,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{border-color:#dee2e6;color:inherit}} + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([class]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type=radio], +input[type=checkbox] { + box-sizing: border-box; + padding: 0; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 0.875em; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.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: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 0.875em; + color: #6c757d; +} + +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container, +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*=col-] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + order: -1; +} + +.order-last { + order: 13; +} + +.order-0 { + order: 0; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.order-3 { + order: 3; +} + +.order-4 { + order: 4; +} + +.order-5 { + order: 5; +} + +.order-6 { + order: 6; +} + +.order-7 { + order: 7; +} + +.order-8 { + order: 8; +} + +.order-9 { + order: 9; +} + +.order-10 { + order: 10; +} + +.order-11 { + order: 11; +} + +.order-12 { + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +input[type=date].form-control, +input[type=time].form-control, +input[type=datetime-local].form-control, +input[type=month].form-control { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +select.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*=col-] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.form-row > .col > .valid-tooltip, +.form-row > [class*=col-] > .valid-tooltip { + left: 5px; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem) !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated select.form-control:valid, select.form-control.is-valid { + padding-right: 3rem !important; + background-position: right 1.5rem center; +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem) !important; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.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") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.form-row > .col > .invalid-tooltip, +.form-row > [class*=col-] > .invalid-tooltip { + left: 5px; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem) !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated select.form-control:invalid, select.form-control.is-invalid { + padding-right: 3rem !important; + background-position: right 1.5rem center; +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem) !important; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + 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; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type=submit].btn-block, +input[type=reset].btn-block, +input[type=button].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.width { + width: 0; + height: auto; + transition: width 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing.width { + transition: none; + } +} +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #e9ecef; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.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:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type=radio], +.btn-group-toggle > .btn input[type=checkbox], +.btn-group-toggle > .btn-group > .btn input[type=radio], +.btn-group-toggle > .btn-group > .btn input[type=checkbox] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: flex; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group:not(.has-validation) > .form-control:not(:last-child), +.input-group:not(.has-validation) > .custom-select:not(:last-child), +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label, +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group.has-validation > .form-control:nth-last-child(n+3), +.input-group.has-validation > .custom-select:nth-last-child(n+3), +.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label, +.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type=radio], +.input-group-text input[type=checkbox] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, +.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .btn, +.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + z-index: 1; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: 1px solid #adb5bd; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: 50%/50% 50% no-repeat; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: transform 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; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + overflow: hidden; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + overflow: hidden; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: 0; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-link { + margin-bottom: -1px; + background-color: transparent; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: 50%/100% 100% no-repeat; +} + +.navbar-nav-scroll { + max-height: 75vh; + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; + } + .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; + } +} +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + flex-wrap: nowrap; + } + .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; + } +} +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; + } + .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; + } +} +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; + } + .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 { + flex-flow: row nowrap; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + flex-wrap: nowrap; +} + +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.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: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} +.card-group > .card { + margin-bottom: 15px; +} + +@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-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + 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-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -moz-column-count: 3; + column-count: 3; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} +.accordion { + overflow-anchor: none; +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + 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; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} +.media { + display: flex; + align-items: flex-start; +} + +.media-body { + flex: 1; +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.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: #6c757d; + pointer-events: none; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-item + .list-group-item { + border-top-width: 0; +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} + +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; +} + +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} + +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} + +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: 0.5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: 0.75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + flex-basis: 350px; + max-width: 350px; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: transform 0.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 { + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: -moz-min-content; + height: min-content; + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: -moz-min-content; + height: min-content; + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + 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: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + 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: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^=top] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^=right] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^=left] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.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%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} +.carousel-control-prev, +.carousel-control-next { + 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: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: 50%/100% 100% no-repeat; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentcolor; + border-right-color: transparent; + border-radius: 50%; + animation: 0.75s linear infinite spinner-border; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentcolor; + border-radius: 50%; + opacity: 0; + animation: 0.75s linear infinite spinner-grow; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + animation-duration: 1.5s; + } +} +.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; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !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; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !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; + } +} +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !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; + } +} +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !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; + } +} +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !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; + } +} +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !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; + } +} +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.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-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + flex: 1 1 auto !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; +} + +.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; +} + +.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; +} + +@media (min-width: 576px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} +@media (min-width: 768px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} +@media (min-width: 992px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} +@media (min-width: 1200px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !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; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.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; +} + +@supports (position: sticky) { + .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.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; +} + +.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; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + word-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} /*! * Bootstrap Icons v1.13.1 (https://icons.getbootstrap.com/) * Copyright 2019-2024 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) - */@font-face{font-display:block;font-family:bootstrap-icons;src:url(/fonts/vendor/bootstrap-icons/bootstrap-icons.woff2?92ea18a81d737146ff044ddb52010366) format("woff2"),url(/fonts/vendor/bootstrap-icons/bootstrap-icons.woff?1295669cd4e305c97f2cfc16d56614b8) format("woff")}.bi:before,[class*=" bi-"]:before,[class^=bi-]:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-variant:normal;font-weight:400!important;line-height:1;text-transform:none;vertical-align:-.125em}.bi-123:before{content:"\f67f"}.bi-alarm-fill:before{content:"\f101"}.bi-alarm:before{content:"\f102"}.bi-align-bottom:before{content:"\f103"}.bi-align-center:before{content:"\f104"}.bi-align-end:before{content:"\f105"}.bi-align-middle:before{content:"\f106"}.bi-align-start:before{content:"\f107"}.bi-align-top:before{content:"\f108"}.bi-alt:before{content:"\f109"}.bi-app-indicator:before{content:"\f10a"}.bi-app:before{content:"\f10b"}.bi-archive-fill:before{content:"\f10c"}.bi-archive:before{content:"\f10d"}.bi-arrow-90deg-down:before{content:"\f10e"}.bi-arrow-90deg-left:before{content:"\f10f"}.bi-arrow-90deg-right:before{content:"\f110"}.bi-arrow-90deg-up:before{content:"\f111"}.bi-arrow-bar-down:before{content:"\f112"}.bi-arrow-bar-left:before{content:"\f113"}.bi-arrow-bar-right:before{content:"\f114"}.bi-arrow-bar-up:before{content:"\f115"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down-circle-fill:before{content:"\f118"}.bi-arrow-down-circle:before{content:"\f119"}.bi-arrow-down-left-circle-fill:before{content:"\f11a"}.bi-arrow-down-left-circle:before{content:"\f11b"}.bi-arrow-down-left-square-fill:before{content:"\f11c"}.bi-arrow-down-left-square:before{content:"\f11d"}.bi-arrow-down-left:before{content:"\f11e"}.bi-arrow-down-right-circle-fill:before{content:"\f11f"}.bi-arrow-down-right-circle:before{content:"\f120"}.bi-arrow-down-right-square-fill:before{content:"\f121"}.bi-arrow-down-right-square:before{content:"\f122"}.bi-arrow-down-right:before{content:"\f123"}.bi-arrow-down-short:before{content:"\f124"}.bi-arrow-down-square-fill:before{content:"\f125"}.bi-arrow-down-square:before{content:"\f126"}.bi-arrow-down-up:before{content:"\f127"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left-circle-fill:before{content:"\f129"}.bi-arrow-left-circle:before{content:"\f12a"}.bi-arrow-left-right:before{content:"\f12b"}.bi-arrow-left-short:before{content:"\f12c"}.bi-arrow-left-square-fill:before{content:"\f12d"}.bi-arrow-left-square:before{content:"\f12e"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-return-left:before{content:"\f131"}.bi-arrow-return-right:before{content:"\f132"}.bi-arrow-right-circle-fill:before{content:"\f133"}.bi-arrow-right-circle:before{content:"\f134"}.bi-arrow-right-short:before{content:"\f135"}.bi-arrow-right-square-fill:before{content:"\f136"}.bi-arrow-right-square:before{content:"\f137"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-circle-fill:before{content:"\f139"}.bi-arrow-up-circle:before{content:"\f13a"}.bi-arrow-up-left-circle-fill:before{content:"\f13b"}.bi-arrow-up-left-circle:before{content:"\f13c"}.bi-arrow-up-left-square-fill:before{content:"\f13d"}.bi-arrow-up-left-square:before{content:"\f13e"}.bi-arrow-up-left:before{content:"\f13f"}.bi-arrow-up-right-circle-fill:before{content:"\f140"}.bi-arrow-up-right-circle:before{content:"\f141"}.bi-arrow-up-right-square-fill:before{content:"\f142"}.bi-arrow-up-right-square:before{content:"\f143"}.bi-arrow-up-right:before{content:"\f144"}.bi-arrow-up-short:before{content:"\f145"}.bi-arrow-up-square-fill:before{content:"\f146"}.bi-arrow-up-square:before{content:"\f147"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-arrows-collapse:before{content:"\f14b"}.bi-arrows-expand:before{content:"\f14c"}.bi-arrows-fullscreen:before{content:"\f14d"}.bi-arrows-move:before{content:"\f14e"}.bi-aspect-ratio-fill:before{content:"\f14f"}.bi-aspect-ratio:before{content:"\f150"}.bi-asterisk:before{content:"\f151"}.bi-at:before{content:"\f152"}.bi-award-fill:before{content:"\f153"}.bi-award:before{content:"\f154"}.bi-back:before{content:"\f155"}.bi-backspace-fill:before{content:"\f156"}.bi-backspace-reverse-fill:before{content:"\f157"}.bi-backspace-reverse:before{content:"\f158"}.bi-backspace:before{content:"\f159"}.bi-badge-3d-fill:before{content:"\f15a"}.bi-badge-3d:before{content:"\f15b"}.bi-badge-4k-fill:before{content:"\f15c"}.bi-badge-4k:before{content:"\f15d"}.bi-badge-8k-fill:before{content:"\f15e"}.bi-badge-8k:before{content:"\f15f"}.bi-badge-ad-fill:before{content:"\f160"}.bi-badge-ad:before{content:"\f161"}.bi-badge-ar-fill:before{content:"\f162"}.bi-badge-ar:before{content:"\f163"}.bi-badge-cc-fill:before{content:"\f164"}.bi-badge-cc:before{content:"\f165"}.bi-badge-hd-fill:before{content:"\f166"}.bi-badge-hd:before{content:"\f167"}.bi-badge-tm-fill:before{content:"\f168"}.bi-badge-tm:before{content:"\f169"}.bi-badge-vo-fill:before{content:"\f16a"}.bi-badge-vo:before{content:"\f16b"}.bi-badge-vr-fill:before{content:"\f16c"}.bi-badge-vr:before{content:"\f16d"}.bi-badge-wc-fill:before{content:"\f16e"}.bi-badge-wc:before{content:"\f16f"}.bi-bag-check-fill:before{content:"\f170"}.bi-bag-check:before{content:"\f171"}.bi-bag-dash-fill:before{content:"\f172"}.bi-bag-dash:before{content:"\f173"}.bi-bag-fill:before{content:"\f174"}.bi-bag-plus-fill:before{content:"\f175"}.bi-bag-plus:before{content:"\f176"}.bi-bag-x-fill:before{content:"\f177"}.bi-bag-x:before{content:"\f178"}.bi-bag:before{content:"\f179"}.bi-bar-chart-fill:before{content:"\f17a"}.bi-bar-chart-line-fill:before{content:"\f17b"}.bi-bar-chart-line:before{content:"\f17c"}.bi-bar-chart-steps:before{content:"\f17d"}.bi-bar-chart:before{content:"\f17e"}.bi-basket-fill:before{content:"\f17f"}.bi-basket:before{content:"\f180"}.bi-basket2-fill:before{content:"\f181"}.bi-basket2:before{content:"\f182"}.bi-basket3-fill:before{content:"\f183"}.bi-basket3:before{content:"\f184"}.bi-battery-charging:before{content:"\f185"}.bi-battery-full:before{content:"\f186"}.bi-battery-half:before{content:"\f187"}.bi-battery:before{content:"\f188"}.bi-bell-fill:before{content:"\f189"}.bi-bell:before{content:"\f18a"}.bi-bezier:before{content:"\f18b"}.bi-bezier2:before{content:"\f18c"}.bi-bicycle:before{content:"\f18d"}.bi-binoculars-fill:before{content:"\f18e"}.bi-binoculars:before{content:"\f18f"}.bi-blockquote-left:before{content:"\f190"}.bi-blockquote-right:before{content:"\f191"}.bi-book-fill:before{content:"\f192"}.bi-book-half:before{content:"\f193"}.bi-book:before{content:"\f194"}.bi-bookmark-check-fill:before{content:"\f195"}.bi-bookmark-check:before{content:"\f196"}.bi-bookmark-dash-fill:before{content:"\f197"}.bi-bookmark-dash:before{content:"\f198"}.bi-bookmark-fill:before{content:"\f199"}.bi-bookmark-heart-fill:before{content:"\f19a"}.bi-bookmark-heart:before{content:"\f19b"}.bi-bookmark-plus-fill:before{content:"\f19c"}.bi-bookmark-plus:before{content:"\f19d"}.bi-bookmark-star-fill:before{content:"\f19e"}.bi-bookmark-star:before{content:"\f19f"}.bi-bookmark-x-fill:before{content:"\f1a0"}.bi-bookmark-x:before{content:"\f1a1"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmarks-fill:before{content:"\f1a3"}.bi-bookmarks:before{content:"\f1a4"}.bi-bookshelf:before{content:"\f1a5"}.bi-bootstrap-fill:before{content:"\f1a6"}.bi-bootstrap-reboot:before{content:"\f1a7"}.bi-bootstrap:before{content:"\f1a8"}.bi-border-all:before{content:"\f1a9"}.bi-border-bottom:before{content:"\f1aa"}.bi-border-center:before{content:"\f1ab"}.bi-border-inner:before{content:"\f1ac"}.bi-border-left:before{content:"\f1ad"}.bi-border-middle:before{content:"\f1ae"}.bi-border-outer:before{content:"\f1af"}.bi-border-right:before{content:"\f1b0"}.bi-border-style:before{content:"\f1b1"}.bi-border-top:before{content:"\f1b2"}.bi-border-width:before{content:"\f1b3"}.bi-border:before{content:"\f1b4"}.bi-bounding-box-circles:before{content:"\f1b5"}.bi-bounding-box:before{content:"\f1b6"}.bi-box-arrow-down-left:before{content:"\f1b7"}.bi-box-arrow-down-right:before{content:"\f1b8"}.bi-box-arrow-down:before{content:"\f1b9"}.bi-box-arrow-in-down-left:before{content:"\f1ba"}.bi-box-arrow-in-down-right:before{content:"\f1bb"}.bi-box-arrow-in-down:before{content:"\f1bc"}.bi-box-arrow-in-left:before{content:"\f1bd"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-in-up-left:before{content:"\f1bf"}.bi-box-arrow-in-up-right:before{content:"\f1c0"}.bi-box-arrow-in-up:before{content:"\f1c1"}.bi-box-arrow-left:before{content:"\f1c2"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-box-arrow-up-left:before{content:"\f1c4"}.bi-box-arrow-up-right:before{content:"\f1c5"}.bi-box-arrow-up:before{content:"\f1c6"}.bi-box-seam:before{content:"\f1c7"}.bi-box:before{content:"\f1c8"}.bi-braces:before{content:"\f1c9"}.bi-bricks:before{content:"\f1ca"}.bi-briefcase-fill:before{content:"\f1cb"}.bi-briefcase:before{content:"\f1cc"}.bi-brightness-alt-high-fill:before{content:"\f1cd"}.bi-brightness-alt-high:before{content:"\f1ce"}.bi-brightness-alt-low-fill:before{content:"\f1cf"}.bi-brightness-alt-low:before{content:"\f1d0"}.bi-brightness-high-fill:before{content:"\f1d1"}.bi-brightness-high:before{content:"\f1d2"}.bi-brightness-low-fill:before{content:"\f1d3"}.bi-brightness-low:before{content:"\f1d4"}.bi-broadcast-pin:before{content:"\f1d5"}.bi-broadcast:before{content:"\f1d6"}.bi-brush-fill:before{content:"\f1d7"}.bi-brush:before{content:"\f1d8"}.bi-bucket-fill:before{content:"\f1d9"}.bi-bucket:before{content:"\f1da"}.bi-bug-fill:before{content:"\f1db"}.bi-bug:before{content:"\f1dc"}.bi-building:before{content:"\f1dd"}.bi-bullseye:before{content:"\f1de"}.bi-calculator-fill:before{content:"\f1df"}.bi-calculator:before{content:"\f1e0"}.bi-calendar-check-fill:before{content:"\f1e1"}.bi-calendar-check:before{content:"\f1e2"}.bi-calendar-date-fill:before{content:"\f1e3"}.bi-calendar-date:before{content:"\f1e4"}.bi-calendar-day-fill:before{content:"\f1e5"}.bi-calendar-day:before{content:"\f1e6"}.bi-calendar-event-fill:before{content:"\f1e7"}.bi-calendar-event:before{content:"\f1e8"}.bi-calendar-fill:before{content:"\f1e9"}.bi-calendar-minus-fill:before{content:"\f1ea"}.bi-calendar-minus:before{content:"\f1eb"}.bi-calendar-month-fill:before{content:"\f1ec"}.bi-calendar-month:before{content:"\f1ed"}.bi-calendar-plus-fill:before{content:"\f1ee"}.bi-calendar-plus:before{content:"\f1ef"}.bi-calendar-range-fill:before{content:"\f1f0"}.bi-calendar-range:before{content:"\f1f1"}.bi-calendar-week-fill:before{content:"\f1f2"}.bi-calendar-week:before{content:"\f1f3"}.bi-calendar-x-fill:before{content:"\f1f4"}.bi-calendar-x:before{content:"\f1f5"}.bi-calendar:before{content:"\f1f6"}.bi-calendar2-check-fill:before{content:"\f1f7"}.bi-calendar2-check:before{content:"\f1f8"}.bi-calendar2-date-fill:before{content:"\f1f9"}.bi-calendar2-date:before{content:"\f1fa"}.bi-calendar2-day-fill:before{content:"\f1fb"}.bi-calendar2-day:before{content:"\f1fc"}.bi-calendar2-event-fill:before{content:"\f1fd"}.bi-calendar2-event:before{content:"\f1fe"}.bi-calendar2-fill:before{content:"\f1ff"}.bi-calendar2-minus-fill:before{content:"\f200"}.bi-calendar2-minus:before{content:"\f201"}.bi-calendar2-month-fill:before{content:"\f202"}.bi-calendar2-month:before{content:"\f203"}.bi-calendar2-plus-fill:before{content:"\f204"}.bi-calendar2-plus:before{content:"\f205"}.bi-calendar2-range-fill:before{content:"\f206"}.bi-calendar2-range:before{content:"\f207"}.bi-calendar2-week-fill:before{content:"\f208"}.bi-calendar2-week:before{content:"\f209"}.bi-calendar2-x-fill:before{content:"\f20a"}.bi-calendar2-x:before{content:"\f20b"}.bi-calendar2:before{content:"\f20c"}.bi-calendar3-event-fill:before{content:"\f20d"}.bi-calendar3-event:before{content:"\f20e"}.bi-calendar3-fill:before{content:"\f20f"}.bi-calendar3-range-fill:before{content:"\f210"}.bi-calendar3-range:before{content:"\f211"}.bi-calendar3-week-fill:before{content:"\f212"}.bi-calendar3-week:before{content:"\f213"}.bi-calendar3:before{content:"\f214"}.bi-calendar4-event:before{content:"\f215"}.bi-calendar4-range:before{content:"\f216"}.bi-calendar4-week:before{content:"\f217"}.bi-calendar4:before{content:"\f218"}.bi-camera-fill:before{content:"\f219"}.bi-camera-reels-fill:before{content:"\f21a"}.bi-camera-reels:before{content:"\f21b"}.bi-camera-video-fill:before{content:"\f21c"}.bi-camera-video-off-fill:before{content:"\f21d"}.bi-camera-video-off:before{content:"\f21e"}.bi-camera-video:before{content:"\f21f"}.bi-camera:before{content:"\f220"}.bi-camera2:before{content:"\f221"}.bi-capslock-fill:before{content:"\f222"}.bi-capslock:before{content:"\f223"}.bi-card-checklist:before{content:"\f224"}.bi-card-heading:before{content:"\f225"}.bi-card-image:before{content:"\f226"}.bi-card-list:before{content:"\f227"}.bi-card-text:before{content:"\f228"}.bi-caret-down-fill:before{content:"\f229"}.bi-caret-down-square-fill:before{content:"\f22a"}.bi-caret-down-square:before{content:"\f22b"}.bi-caret-down:before{content:"\f22c"}.bi-caret-left-fill:before{content:"\f22d"}.bi-caret-left-square-fill:before{content:"\f22e"}.bi-caret-left-square:before{content:"\f22f"}.bi-caret-left:before{content:"\f230"}.bi-caret-right-fill:before{content:"\f231"}.bi-caret-right-square-fill:before{content:"\f232"}.bi-caret-right-square:before{content:"\f233"}.bi-caret-right:before{content:"\f234"}.bi-caret-up-fill:before{content:"\f235"}.bi-caret-up-square-fill:before{content:"\f236"}.bi-caret-up-square:before{content:"\f237"}.bi-caret-up:before{content:"\f238"}.bi-cart-check-fill:before{content:"\f239"}.bi-cart-check:before{content:"\f23a"}.bi-cart-dash-fill:before{content:"\f23b"}.bi-cart-dash:before{content:"\f23c"}.bi-cart-fill:before{content:"\f23d"}.bi-cart-plus-fill:before{content:"\f23e"}.bi-cart-plus:before{content:"\f23f"}.bi-cart-x-fill:before{content:"\f240"}.bi-cart-x:before{content:"\f241"}.bi-cart:before{content:"\f242"}.bi-cart2:before{content:"\f243"}.bi-cart3:before{content:"\f244"}.bi-cart4:before{content:"\f245"}.bi-cash-stack:before{content:"\f246"}.bi-cash:before{content:"\f247"}.bi-cast:before{content:"\f248"}.bi-chat-dots-fill:before{content:"\f249"}.bi-chat-dots:before{content:"\f24a"}.bi-chat-fill:before{content:"\f24b"}.bi-chat-left-dots-fill:before{content:"\f24c"}.bi-chat-left-dots:before{content:"\f24d"}.bi-chat-left-fill:before{content:"\f24e"}.bi-chat-left-quote-fill:before{content:"\f24f"}.bi-chat-left-quote:before{content:"\f250"}.bi-chat-left-text-fill:before{content:"\f251"}.bi-chat-left-text:before{content:"\f252"}.bi-chat-left:before{content:"\f253"}.bi-chat-quote-fill:before{content:"\f254"}.bi-chat-quote:before{content:"\f255"}.bi-chat-right-dots-fill:before{content:"\f256"}.bi-chat-right-dots:before{content:"\f257"}.bi-chat-right-fill:before{content:"\f258"}.bi-chat-right-quote-fill:before{content:"\f259"}.bi-chat-right-quote:before{content:"\f25a"}.bi-chat-right-text-fill:before{content:"\f25b"}.bi-chat-right-text:before{content:"\f25c"}.bi-chat-right:before{content:"\f25d"}.bi-chat-square-dots-fill:before{content:"\f25e"}.bi-chat-square-dots:before{content:"\f25f"}.bi-chat-square-fill:before{content:"\f260"}.bi-chat-square-quote-fill:before{content:"\f261"}.bi-chat-square-quote:before{content:"\f262"}.bi-chat-square-text-fill:before{content:"\f263"}.bi-chat-square-text:before{content:"\f264"}.bi-chat-square:before{content:"\f265"}.bi-chat-text-fill:before{content:"\f266"}.bi-chat-text:before{content:"\f267"}.bi-chat:before{content:"\f268"}.bi-check-all:before{content:"\f269"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check-circle:before{content:"\f26b"}.bi-check-square-fill:before{content:"\f26c"}.bi-check-square:before{content:"\f26d"}.bi-check:before{content:"\f26e"}.bi-check2-all:before{content:"\f26f"}.bi-check2-circle:before{content:"\f270"}.bi-check2-square:before{content:"\f271"}.bi-check2:before{content:"\f272"}.bi-chevron-bar-contract:before{content:"\f273"}.bi-chevron-bar-down:before{content:"\f274"}.bi-chevron-bar-expand:before{content:"\f275"}.bi-chevron-bar-left:before{content:"\f276"}.bi-chevron-bar-right:before{content:"\f277"}.bi-chevron-bar-up:before{content:"\f278"}.bi-chevron-compact-down:before{content:"\f279"}.bi-chevron-compact-left:before{content:"\f27a"}.bi-chevron-compact-right:before{content:"\f27b"}.bi-chevron-compact-up:before{content:"\f27c"}.bi-chevron-contract:before{content:"\f27d"}.bi-chevron-double-down:before{content:"\f27e"}.bi-chevron-double-left:before{content:"\f27f"}.bi-chevron-double-right:before{content:"\f280"}.bi-chevron-double-up:before{content:"\f281"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-expand:before{content:"\f283"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle-fill:before{content:"\f287"}.bi-circle-half:before{content:"\f288"}.bi-circle-square:before{content:"\f289"}.bi-circle:before{content:"\f28a"}.bi-clipboard-check:before{content:"\f28b"}.bi-clipboard-data:before{content:"\f28c"}.bi-clipboard-minus:before{content:"\f28d"}.bi-clipboard-plus:before{content:"\f28e"}.bi-clipboard-x:before{content:"\f28f"}.bi-clipboard:before{content:"\f290"}.bi-clock-fill:before{content:"\f291"}.bi-clock-history:before{content:"\f292"}.bi-clock:before{content:"\f293"}.bi-cloud-arrow-down-fill:before{content:"\f294"}.bi-cloud-arrow-down:before{content:"\f295"}.bi-cloud-arrow-up-fill:before{content:"\f296"}.bi-cloud-arrow-up:before{content:"\f297"}.bi-cloud-check-fill:before{content:"\f298"}.bi-cloud-check:before{content:"\f299"}.bi-cloud-download-fill:before{content:"\f29a"}.bi-cloud-download:before{content:"\f29b"}.bi-cloud-drizzle-fill:before{content:"\f29c"}.bi-cloud-drizzle:before{content:"\f29d"}.bi-cloud-fill:before{content:"\f29e"}.bi-cloud-fog-fill:before{content:"\f29f"}.bi-cloud-fog:before{content:"\f2a0"}.bi-cloud-fog2-fill:before{content:"\f2a1"}.bi-cloud-fog2:before{content:"\f2a2"}.bi-cloud-hail-fill:before{content:"\f2a3"}.bi-cloud-hail:before{content:"\f2a4"}.bi-cloud-haze-fill:before{content:"\f2a6"}.bi-cloud-haze:before{content:"\f2a7"}.bi-cloud-haze2-fill:before{content:"\f2a8"}.bi-cloud-lightning-fill:before{content:"\f2a9"}.bi-cloud-lightning-rain-fill:before{content:"\f2aa"}.bi-cloud-lightning-rain:before{content:"\f2ab"}.bi-cloud-lightning:before{content:"\f2ac"}.bi-cloud-minus-fill:before{content:"\f2ad"}.bi-cloud-minus:before{content:"\f2ae"}.bi-cloud-moon-fill:before{content:"\f2af"}.bi-cloud-moon:before{content:"\f2b0"}.bi-cloud-plus-fill:before{content:"\f2b1"}.bi-cloud-plus:before{content:"\f2b2"}.bi-cloud-rain-fill:before{content:"\f2b3"}.bi-cloud-rain-heavy-fill:before{content:"\f2b4"}.bi-cloud-rain-heavy:before{content:"\f2b5"}.bi-cloud-rain:before{content:"\f2b6"}.bi-cloud-slash-fill:before{content:"\f2b7"}.bi-cloud-slash:before{content:"\f2b8"}.bi-cloud-sleet-fill:before{content:"\f2b9"}.bi-cloud-sleet:before{content:"\f2ba"}.bi-cloud-snow-fill:before{content:"\f2bb"}.bi-cloud-snow:before{content:"\f2bc"}.bi-cloud-sun-fill:before{content:"\f2bd"}.bi-cloud-sun:before{content:"\f2be"}.bi-cloud-upload-fill:before{content:"\f2bf"}.bi-cloud-upload:before{content:"\f2c0"}.bi-cloud:before{content:"\f2c1"}.bi-clouds-fill:before{content:"\f2c2"}.bi-clouds:before{content:"\f2c3"}.bi-cloudy-fill:before{content:"\f2c4"}.bi-cloudy:before{content:"\f2c5"}.bi-code-slash:before{content:"\f2c6"}.bi-code-square:before{content:"\f2c7"}.bi-code:before{content:"\f2c8"}.bi-collection-fill:before{content:"\f2c9"}.bi-collection-play-fill:before{content:"\f2ca"}.bi-collection-play:before{content:"\f2cb"}.bi-collection:before{content:"\f2cc"}.bi-columns-gap:before{content:"\f2cd"}.bi-columns:before{content:"\f2ce"}.bi-command:before{content:"\f2cf"}.bi-compass-fill:before{content:"\f2d0"}.bi-compass:before{content:"\f2d1"}.bi-cone-striped:before{content:"\f2d2"}.bi-cone:before{content:"\f2d3"}.bi-controller:before{content:"\f2d4"}.bi-cpu-fill:before{content:"\f2d5"}.bi-cpu:before{content:"\f2d6"}.bi-credit-card-2-back-fill:before{content:"\f2d7"}.bi-credit-card-2-back:before{content:"\f2d8"}.bi-credit-card-2-front-fill:before{content:"\f2d9"}.bi-credit-card-2-front:before{content:"\f2da"}.bi-credit-card-fill:before{content:"\f2db"}.bi-credit-card:before{content:"\f2dc"}.bi-crop:before{content:"\f2dd"}.bi-cup-fill:before{content:"\f2de"}.bi-cup-straw:before{content:"\f2df"}.bi-cup:before{content:"\f2e0"}.bi-cursor-fill:before{content:"\f2e1"}.bi-cursor-text:before{content:"\f2e2"}.bi-cursor:before{content:"\f2e3"}.bi-dash-circle-dotted:before{content:"\f2e4"}.bi-dash-circle-fill:before{content:"\f2e5"}.bi-dash-circle:before{content:"\f2e6"}.bi-dash-square-dotted:before{content:"\f2e7"}.bi-dash-square-fill:before{content:"\f2e8"}.bi-dash-square:before{content:"\f2e9"}.bi-dash:before{content:"\f2ea"}.bi-diagram-2-fill:before{content:"\f2eb"}.bi-diagram-2:before{content:"\f2ec"}.bi-diagram-3-fill:before{content:"\f2ed"}.bi-diagram-3:before{content:"\f2ee"}.bi-diamond-fill:before{content:"\f2ef"}.bi-diamond-half:before{content:"\f2f0"}.bi-diamond:before{content:"\f2f1"}.bi-dice-1-fill:before{content:"\f2f2"}.bi-dice-1:before{content:"\f2f3"}.bi-dice-2-fill:before{content:"\f2f4"}.bi-dice-2:before{content:"\f2f5"}.bi-dice-3-fill:before{content:"\f2f6"}.bi-dice-3:before{content:"\f2f7"}.bi-dice-4-fill:before{content:"\f2f8"}.bi-dice-4:before{content:"\f2f9"}.bi-dice-5-fill:before{content:"\f2fa"}.bi-dice-5:before{content:"\f2fb"}.bi-dice-6-fill:before{content:"\f2fc"}.bi-dice-6:before{content:"\f2fd"}.bi-disc-fill:before{content:"\f2fe"}.bi-disc:before{content:"\f2ff"}.bi-discord:before{content:"\f300"}.bi-display-fill:before{content:"\f301"}.bi-display:before{content:"\f302"}.bi-distribute-horizontal:before{content:"\f303"}.bi-distribute-vertical:before{content:"\f304"}.bi-door-closed-fill:before{content:"\f305"}.bi-door-closed:before{content:"\f306"}.bi-door-open-fill:before{content:"\f307"}.bi-door-open:before{content:"\f308"}.bi-dot:before{content:"\f309"}.bi-download:before{content:"\f30a"}.bi-droplet-fill:before{content:"\f30b"}.bi-droplet-half:before{content:"\f30c"}.bi-droplet:before{content:"\f30d"}.bi-earbuds:before{content:"\f30e"}.bi-easel-fill:before{content:"\f30f"}.bi-easel:before{content:"\f310"}.bi-egg-fill:before{content:"\f311"}.bi-egg-fried:before{content:"\f312"}.bi-egg:before{content:"\f313"}.bi-eject-fill:before{content:"\f314"}.bi-eject:before{content:"\f315"}.bi-emoji-angry-fill:before{content:"\f316"}.bi-emoji-angry:before{content:"\f317"}.bi-emoji-dizzy-fill:before{content:"\f318"}.bi-emoji-dizzy:before{content:"\f319"}.bi-emoji-expressionless-fill:before{content:"\f31a"}.bi-emoji-expressionless:before{content:"\f31b"}.bi-emoji-frown-fill:before{content:"\f31c"}.bi-emoji-frown:before{content:"\f31d"}.bi-emoji-heart-eyes-fill:before{content:"\f31e"}.bi-emoji-heart-eyes:before{content:"\f31f"}.bi-emoji-laughing-fill:before{content:"\f320"}.bi-emoji-laughing:before{content:"\f321"}.bi-emoji-neutral-fill:before{content:"\f322"}.bi-emoji-neutral:before{content:"\f323"}.bi-emoji-smile-fill:before{content:"\f324"}.bi-emoji-smile-upside-down-fill:before{content:"\f325"}.bi-emoji-smile-upside-down:before{content:"\f326"}.bi-emoji-smile:before{content:"\f327"}.bi-emoji-sunglasses-fill:before{content:"\f328"}.bi-emoji-sunglasses:before{content:"\f329"}.bi-emoji-wink-fill:before{content:"\f32a"}.bi-emoji-wink:before{content:"\f32b"}.bi-envelope-fill:before{content:"\f32c"}.bi-envelope-open-fill:before{content:"\f32d"}.bi-envelope-open:before{content:"\f32e"}.bi-envelope:before{content:"\f32f"}.bi-eraser-fill:before{content:"\f330"}.bi-eraser:before{content:"\f331"}.bi-exclamation-circle-fill:before{content:"\f332"}.bi-exclamation-circle:before{content:"\f333"}.bi-exclamation-diamond-fill:before{content:"\f334"}.bi-exclamation-diamond:before{content:"\f335"}.bi-exclamation-octagon-fill:before{content:"\f336"}.bi-exclamation-octagon:before{content:"\f337"}.bi-exclamation-square-fill:before{content:"\f338"}.bi-exclamation-square:before{content:"\f339"}.bi-exclamation-triangle-fill:before{content:"\f33a"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-exclamation:before{content:"\f33c"}.bi-exclude:before{content:"\f33d"}.bi-eye-fill:before{content:"\f33e"}.bi-eye-slash-fill:before{content:"\f33f"}.bi-eye-slash:before{content:"\f340"}.bi-eye:before{content:"\f341"}.bi-eyedropper:before{content:"\f342"}.bi-eyeglasses:before{content:"\f343"}.bi-facebook:before{content:"\f344"}.bi-file-arrow-down-fill:before{content:"\f345"}.bi-file-arrow-down:before{content:"\f346"}.bi-file-arrow-up-fill:before{content:"\f347"}.bi-file-arrow-up:before{content:"\f348"}.bi-file-bar-graph-fill:before{content:"\f349"}.bi-file-bar-graph:before{content:"\f34a"}.bi-file-binary-fill:before{content:"\f34b"}.bi-file-binary:before{content:"\f34c"}.bi-file-break-fill:before{content:"\f34d"}.bi-file-break:before{content:"\f34e"}.bi-file-check-fill:before{content:"\f34f"}.bi-file-check:before{content:"\f350"}.bi-file-code-fill:before{content:"\f351"}.bi-file-code:before{content:"\f352"}.bi-file-diff-fill:before{content:"\f353"}.bi-file-diff:before{content:"\f354"}.bi-file-earmark-arrow-down-fill:before{content:"\f355"}.bi-file-earmark-arrow-down:before{content:"\f356"}.bi-file-earmark-arrow-up-fill:before{content:"\f357"}.bi-file-earmark-arrow-up:before{content:"\f358"}.bi-file-earmark-bar-graph-fill:before{content:"\f359"}.bi-file-earmark-bar-graph:before{content:"\f35a"}.bi-file-earmark-binary-fill:before{content:"\f35b"}.bi-file-earmark-binary:before{content:"\f35c"}.bi-file-earmark-break-fill:before{content:"\f35d"}.bi-file-earmark-break:before{content:"\f35e"}.bi-file-earmark-check-fill:before{content:"\f35f"}.bi-file-earmark-check:before{content:"\f360"}.bi-file-earmark-code-fill:before{content:"\f361"}.bi-file-earmark-code:before{content:"\f362"}.bi-file-earmark-diff-fill:before{content:"\f363"}.bi-file-earmark-diff:before{content:"\f364"}.bi-file-earmark-easel-fill:before{content:"\f365"}.bi-file-earmark-easel:before{content:"\f366"}.bi-file-earmark-excel-fill:before{content:"\f367"}.bi-file-earmark-excel:before{content:"\f368"}.bi-file-earmark-fill:before{content:"\f369"}.bi-file-earmark-font-fill:before{content:"\f36a"}.bi-file-earmark-font:before{content:"\f36b"}.bi-file-earmark-image-fill:before{content:"\f36c"}.bi-file-earmark-image:before{content:"\f36d"}.bi-file-earmark-lock-fill:before{content:"\f36e"}.bi-file-earmark-lock:before{content:"\f36f"}.bi-file-earmark-lock2-fill:before{content:"\f370"}.bi-file-earmark-lock2:before{content:"\f371"}.bi-file-earmark-medical-fill:before{content:"\f372"}.bi-file-earmark-medical:before{content:"\f373"}.bi-file-earmark-minus-fill:before{content:"\f374"}.bi-file-earmark-minus:before{content:"\f375"}.bi-file-earmark-music-fill:before{content:"\f376"}.bi-file-earmark-music:before{content:"\f377"}.bi-file-earmark-person-fill:before{content:"\f378"}.bi-file-earmark-person:before{content:"\f379"}.bi-file-earmark-play-fill:before{content:"\f37a"}.bi-file-earmark-play:before{content:"\f37b"}.bi-file-earmark-plus-fill:before{content:"\f37c"}.bi-file-earmark-plus:before{content:"\f37d"}.bi-file-earmark-post-fill:before{content:"\f37e"}.bi-file-earmark-post:before{content:"\f37f"}.bi-file-earmark-ppt-fill:before{content:"\f380"}.bi-file-earmark-ppt:before{content:"\f381"}.bi-file-earmark-richtext-fill:before{content:"\f382"}.bi-file-earmark-richtext:before{content:"\f383"}.bi-file-earmark-ruled-fill:before{content:"\f384"}.bi-file-earmark-ruled:before{content:"\f385"}.bi-file-earmark-slides-fill:before{content:"\f386"}.bi-file-earmark-slides:before{content:"\f387"}.bi-file-earmark-spreadsheet-fill:before{content:"\f388"}.bi-file-earmark-spreadsheet:before{content:"\f389"}.bi-file-earmark-text-fill:before{content:"\f38a"}.bi-file-earmark-text:before{content:"\f38b"}.bi-file-earmark-word-fill:before{content:"\f38c"}.bi-file-earmark-word:before{content:"\f38d"}.bi-file-earmark-x-fill:before{content:"\f38e"}.bi-file-earmark-x:before{content:"\f38f"}.bi-file-earmark-zip-fill:before{content:"\f390"}.bi-file-earmark-zip:before{content:"\f391"}.bi-file-earmark:before{content:"\f392"}.bi-file-easel-fill:before{content:"\f393"}.bi-file-easel:before{content:"\f394"}.bi-file-excel-fill:before{content:"\f395"}.bi-file-excel:before{content:"\f396"}.bi-file-fill:before{content:"\f397"}.bi-file-font-fill:before{content:"\f398"}.bi-file-font:before{content:"\f399"}.bi-file-image-fill:before{content:"\f39a"}.bi-file-image:before{content:"\f39b"}.bi-file-lock-fill:before{content:"\f39c"}.bi-file-lock:before{content:"\f39d"}.bi-file-lock2-fill:before{content:"\f39e"}.bi-file-lock2:before{content:"\f39f"}.bi-file-medical-fill:before{content:"\f3a0"}.bi-file-medical:before{content:"\f3a1"}.bi-file-minus-fill:before{content:"\f3a2"}.bi-file-minus:before{content:"\f3a3"}.bi-file-music-fill:before{content:"\f3a4"}.bi-file-music:before{content:"\f3a5"}.bi-file-person-fill:before{content:"\f3a6"}.bi-file-person:before{content:"\f3a7"}.bi-file-play-fill:before{content:"\f3a8"}.bi-file-play:before{content:"\f3a9"}.bi-file-plus-fill:before{content:"\f3aa"}.bi-file-plus:before{content:"\f3ab"}.bi-file-post-fill:before{content:"\f3ac"}.bi-file-post:before{content:"\f3ad"}.bi-file-ppt-fill:before{content:"\f3ae"}.bi-file-ppt:before{content:"\f3af"}.bi-file-richtext-fill:before{content:"\f3b0"}.bi-file-richtext:before{content:"\f3b1"}.bi-file-ruled-fill:before{content:"\f3b2"}.bi-file-ruled:before{content:"\f3b3"}.bi-file-slides-fill:before{content:"\f3b4"}.bi-file-slides:before{content:"\f3b5"}.bi-file-spreadsheet-fill:before{content:"\f3b6"}.bi-file-spreadsheet:before{content:"\f3b7"}.bi-file-text-fill:before{content:"\f3b8"}.bi-file-text:before{content:"\f3b9"}.bi-file-word-fill:before{content:"\f3ba"}.bi-file-word:before{content:"\f3bb"}.bi-file-x-fill:before{content:"\f3bc"}.bi-file-x:before{content:"\f3bd"}.bi-file-zip-fill:before{content:"\f3be"}.bi-file-zip:before{content:"\f3bf"}.bi-file:before{content:"\f3c0"}.bi-files-alt:before{content:"\f3c1"}.bi-files:before{content:"\f3c2"}.bi-film:before{content:"\f3c3"}.bi-filter-circle-fill:before{content:"\f3c4"}.bi-filter-circle:before{content:"\f3c5"}.bi-filter-left:before{content:"\f3c6"}.bi-filter-right:before{content:"\f3c7"}.bi-filter-square-fill:before{content:"\f3c8"}.bi-filter-square:before{content:"\f3c9"}.bi-filter:before{content:"\f3ca"}.bi-flag-fill:before{content:"\f3cb"}.bi-flag:before{content:"\f3cc"}.bi-flower1:before{content:"\f3cd"}.bi-flower2:before{content:"\f3ce"}.bi-flower3:before{content:"\f3cf"}.bi-folder-check:before{content:"\f3d0"}.bi-folder-fill:before{content:"\f3d1"}.bi-folder-minus:before{content:"\f3d2"}.bi-folder-plus:before{content:"\f3d3"}.bi-folder-symlink-fill:before{content:"\f3d4"}.bi-folder-symlink:before{content:"\f3d5"}.bi-folder-x:before{content:"\f3d6"}.bi-folder:before{content:"\f3d7"}.bi-folder2-open:before{content:"\f3d8"}.bi-folder2:before{content:"\f3d9"}.bi-fonts:before{content:"\f3da"}.bi-forward-fill:before{content:"\f3db"}.bi-forward:before{content:"\f3dc"}.bi-front:before{content:"\f3dd"}.bi-fullscreen-exit:before{content:"\f3de"}.bi-fullscreen:before{content:"\f3df"}.bi-funnel-fill:before{content:"\f3e0"}.bi-funnel:before{content:"\f3e1"}.bi-gear-fill:before{content:"\f3e2"}.bi-gear-wide-connected:before{content:"\f3e3"}.bi-gear-wide:before{content:"\f3e4"}.bi-gear:before{content:"\f3e5"}.bi-gem:before{content:"\f3e6"}.bi-geo-alt-fill:before{content:"\f3e7"}.bi-geo-alt:before{content:"\f3e8"}.bi-geo-fill:before{content:"\f3e9"}.bi-geo:before{content:"\f3ea"}.bi-gift-fill:before{content:"\f3eb"}.bi-gift:before{content:"\f3ec"}.bi-github:before{content:"\f3ed"}.bi-globe:before{content:"\f3ee"}.bi-globe2:before{content:"\f3ef"}.bi-google:before{content:"\f3f0"}.bi-graph-down:before{content:"\f3f1"}.bi-graph-up:before{content:"\f3f2"}.bi-grid-1x2-fill:before{content:"\f3f3"}.bi-grid-1x2:before{content:"\f3f4"}.bi-grid-3x2-gap-fill:before{content:"\f3f5"}.bi-grid-3x2-gap:before{content:"\f3f6"}.bi-grid-3x2:before{content:"\f3f7"}.bi-grid-3x3-gap-fill:before{content:"\f3f8"}.bi-grid-3x3-gap:before{content:"\f3f9"}.bi-grid-3x3:before{content:"\f3fa"}.bi-grid-fill:before{content:"\f3fb"}.bi-grid:before{content:"\f3fc"}.bi-grip-horizontal:before{content:"\f3fd"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-index-fill:before{content:"\f400"}.bi-hand-index-thumb-fill:before{content:"\f401"}.bi-hand-index-thumb:before{content:"\f402"}.bi-hand-index:before{content:"\f403"}.bi-hand-thumbs-down-fill:before{content:"\f404"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up-fill:before{content:"\f406"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-handbag-fill:before{content:"\f408"}.bi-handbag:before{content:"\f409"}.bi-hash:before{content:"\f40a"}.bi-hdd-fill:before{content:"\f40b"}.bi-hdd-network-fill:before{content:"\f40c"}.bi-hdd-network:before{content:"\f40d"}.bi-hdd-rack-fill:before{content:"\f40e"}.bi-hdd-rack:before{content:"\f40f"}.bi-hdd-stack-fill:before{content:"\f410"}.bi-hdd-stack:before{content:"\f411"}.bi-hdd:before{content:"\f412"}.bi-headphones:before{content:"\f413"}.bi-headset:before{content:"\f414"}.bi-heart-fill:before{content:"\f415"}.bi-heart-half:before{content:"\f416"}.bi-heart:before{content:"\f417"}.bi-heptagon-fill:before{content:"\f418"}.bi-heptagon-half:before{content:"\f419"}.bi-heptagon:before{content:"\f41a"}.bi-hexagon-fill:before{content:"\f41b"}.bi-hexagon-half:before{content:"\f41c"}.bi-hexagon:before{content:"\f41d"}.bi-hourglass-bottom:before{content:"\f41e"}.bi-hourglass-split:before{content:"\f41f"}.bi-hourglass-top:before{content:"\f420"}.bi-hourglass:before{content:"\f421"}.bi-house-door-fill:before{content:"\f422"}.bi-house-door:before{content:"\f423"}.bi-house-fill:before{content:"\f424"}.bi-house:before{content:"\f425"}.bi-hr:before{content:"\f426"}.bi-hurricane:before{content:"\f427"}.bi-image-alt:before{content:"\f428"}.bi-image-fill:before{content:"\f429"}.bi-image:before{content:"\f42a"}.bi-images:before{content:"\f42b"}.bi-inbox-fill:before{content:"\f42c"}.bi-inbox:before{content:"\f42d"}.bi-inboxes-fill:before{content:"\f42e"}.bi-inboxes:before{content:"\f42f"}.bi-info-circle-fill:before{content:"\f430"}.bi-info-circle:before{content:"\f431"}.bi-info-square-fill:before{content:"\f432"}.bi-info-square:before{content:"\f433"}.bi-info:before{content:"\f434"}.bi-input-cursor-text:before{content:"\f435"}.bi-input-cursor:before{content:"\f436"}.bi-instagram:before{content:"\f437"}.bi-intersect:before{content:"\f438"}.bi-journal-album:before{content:"\f439"}.bi-journal-arrow-down:before{content:"\f43a"}.bi-journal-arrow-up:before{content:"\f43b"}.bi-journal-bookmark-fill:before{content:"\f43c"}.bi-journal-bookmark:before{content:"\f43d"}.bi-journal-check:before{content:"\f43e"}.bi-journal-code:before{content:"\f43f"}.bi-journal-medical:before{content:"\f440"}.bi-journal-minus:before{content:"\f441"}.bi-journal-plus:before{content:"\f442"}.bi-journal-richtext:before{content:"\f443"}.bi-journal-text:before{content:"\f444"}.bi-journal-x:before{content:"\f445"}.bi-journal:before{content:"\f446"}.bi-journals:before{content:"\f447"}.bi-joystick:before{content:"\f448"}.bi-justify-left:before{content:"\f449"}.bi-justify-right:before{content:"\f44a"}.bi-justify:before{content:"\f44b"}.bi-kanban-fill:before{content:"\f44c"}.bi-kanban:before{content:"\f44d"}.bi-key-fill:before{content:"\f44e"}.bi-key:before{content:"\f44f"}.bi-keyboard-fill:before{content:"\f450"}.bi-keyboard:before{content:"\f451"}.bi-ladder:before{content:"\f452"}.bi-lamp-fill:before{content:"\f453"}.bi-lamp:before{content:"\f454"}.bi-laptop-fill:before{content:"\f455"}.bi-laptop:before{content:"\f456"}.bi-layer-backward:before{content:"\f457"}.bi-layer-forward:before{content:"\f458"}.bi-layers-fill:before{content:"\f459"}.bi-layers-half:before{content:"\f45a"}.bi-layers:before{content:"\f45b"}.bi-layout-sidebar-inset-reverse:before{content:"\f45c"}.bi-layout-sidebar-inset:before{content:"\f45d"}.bi-layout-sidebar-reverse:before{content:"\f45e"}.bi-layout-sidebar:before{content:"\f45f"}.bi-layout-split:before{content:"\f460"}.bi-layout-text-sidebar-reverse:before{content:"\f461"}.bi-layout-text-sidebar:before{content:"\f462"}.bi-layout-text-window-reverse:before{content:"\f463"}.bi-layout-text-window:before{content:"\f464"}.bi-layout-three-columns:before{content:"\f465"}.bi-layout-wtf:before{content:"\f466"}.bi-life-preserver:before{content:"\f467"}.bi-lightbulb-fill:before{content:"\f468"}.bi-lightbulb-off-fill:before{content:"\f469"}.bi-lightbulb-off:before{content:"\f46a"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning-charge-fill:before{content:"\f46c"}.bi-lightning-charge:before{content:"\f46d"}.bi-lightning-fill:before{content:"\f46e"}.bi-lightning:before{content:"\f46f"}.bi-link-45deg:before{content:"\f470"}.bi-link:before{content:"\f471"}.bi-linkedin:before{content:"\f472"}.bi-list-check:before{content:"\f473"}.bi-list-nested:before{content:"\f474"}.bi-list-ol:before{content:"\f475"}.bi-list-stars:before{content:"\f476"}.bi-list-task:before{content:"\f477"}.bi-list-ul:before{content:"\f478"}.bi-list:before{content:"\f479"}.bi-lock-fill:before{content:"\f47a"}.bi-lock:before{content:"\f47b"}.bi-mailbox:before{content:"\f47c"}.bi-mailbox2:before{content:"\f47d"}.bi-map-fill:before{content:"\f47e"}.bi-map:before{content:"\f47f"}.bi-markdown-fill:before{content:"\f480"}.bi-markdown:before{content:"\f481"}.bi-mask:before{content:"\f482"}.bi-megaphone-fill:before{content:"\f483"}.bi-megaphone:before{content:"\f484"}.bi-menu-app-fill:before{content:"\f485"}.bi-menu-app:before{content:"\f486"}.bi-menu-button-fill:before{content:"\f487"}.bi-menu-button-wide-fill:before{content:"\f488"}.bi-menu-button-wide:before{content:"\f489"}.bi-menu-button:before{content:"\f48a"}.bi-menu-down:before{content:"\f48b"}.bi-menu-up:before{content:"\f48c"}.bi-mic-fill:before{content:"\f48d"}.bi-mic-mute-fill:before{content:"\f48e"}.bi-mic-mute:before{content:"\f48f"}.bi-mic:before{content:"\f490"}.bi-minecart-loaded:before{content:"\f491"}.bi-minecart:before{content:"\f492"}.bi-moisture:before{content:"\f493"}.bi-moon-fill:before{content:"\f494"}.bi-moon-stars-fill:before{content:"\f495"}.bi-moon-stars:before{content:"\f496"}.bi-moon:before{content:"\f497"}.bi-mouse-fill:before{content:"\f498"}.bi-mouse:before{content:"\f499"}.bi-mouse2-fill:before{content:"\f49a"}.bi-mouse2:before{content:"\f49b"}.bi-mouse3-fill:before{content:"\f49c"}.bi-mouse3:before{content:"\f49d"}.bi-music-note-beamed:before{content:"\f49e"}.bi-music-note-list:before{content:"\f49f"}.bi-music-note:before{content:"\f4a0"}.bi-music-player-fill:before{content:"\f4a1"}.bi-music-player:before{content:"\f4a2"}.bi-newspaper:before{content:"\f4a3"}.bi-node-minus-fill:before{content:"\f4a4"}.bi-node-minus:before{content:"\f4a5"}.bi-node-plus-fill:before{content:"\f4a6"}.bi-node-plus:before{content:"\f4a7"}.bi-nut-fill:before{content:"\f4a8"}.bi-nut:before{content:"\f4a9"}.bi-octagon-fill:before{content:"\f4aa"}.bi-octagon-half:before{content:"\f4ab"}.bi-octagon:before{content:"\f4ac"}.bi-option:before{content:"\f4ad"}.bi-outlet:before{content:"\f4ae"}.bi-paint-bucket:before{content:"\f4af"}.bi-palette-fill:before{content:"\f4b0"}.bi-palette:before{content:"\f4b1"}.bi-palette2:before{content:"\f4b2"}.bi-paperclip:before{content:"\f4b3"}.bi-paragraph:before{content:"\f4b4"}.bi-patch-check-fill:before{content:"\f4b5"}.bi-patch-check:before{content:"\f4b6"}.bi-patch-exclamation-fill:before{content:"\f4b7"}.bi-patch-exclamation:before{content:"\f4b8"}.bi-patch-minus-fill:before{content:"\f4b9"}.bi-patch-minus:before{content:"\f4ba"}.bi-patch-plus-fill:before{content:"\f4bb"}.bi-patch-plus:before{content:"\f4bc"}.bi-patch-question-fill:before{content:"\f4bd"}.bi-patch-question:before{content:"\f4be"}.bi-pause-btn-fill:before{content:"\f4bf"}.bi-pause-btn:before{content:"\f4c0"}.bi-pause-circle-fill:before{content:"\f4c1"}.bi-pause-circle:before{content:"\f4c2"}.bi-pause-fill:before{content:"\f4c3"}.bi-pause:before{content:"\f4c4"}.bi-peace-fill:before{content:"\f4c5"}.bi-peace:before{content:"\f4c6"}.bi-pen-fill:before{content:"\f4c7"}.bi-pen:before{content:"\f4c8"}.bi-pencil-fill:before{content:"\f4c9"}.bi-pencil-square:before{content:"\f4ca"}.bi-pencil:before{content:"\f4cb"}.bi-pentagon-fill:before{content:"\f4cc"}.bi-pentagon-half:before{content:"\f4cd"}.bi-pentagon:before{content:"\f4ce"}.bi-people-fill:before{content:"\f4cf"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person-badge-fill:before{content:"\f4d2"}.bi-person-badge:before{content:"\f4d3"}.bi-person-bounding-box:before{content:"\f4d4"}.bi-person-check-fill:before{content:"\f4d5"}.bi-person-check:before{content:"\f4d6"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash-fill:before{content:"\f4d8"}.bi-person-dash:before{content:"\f4d9"}.bi-person-fill:before{content:"\f4da"}.bi-person-lines-fill:before{content:"\f4db"}.bi-person-plus-fill:before{content:"\f4dc"}.bi-person-plus:before{content:"\f4dd"}.bi-person-square:before{content:"\f4de"}.bi-person-x-fill:before{content:"\f4df"}.bi-person-x:before{content:"\f4e0"}.bi-person:before{content:"\f4e1"}.bi-phone-fill:before{content:"\f4e2"}.bi-phone-landscape-fill:before{content:"\f4e3"}.bi-phone-landscape:before{content:"\f4e4"}.bi-phone-vibrate-fill:before{content:"\f4e5"}.bi-phone-vibrate:before{content:"\f4e6"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart-fill:before{content:"\f4e8"}.bi-pie-chart:before{content:"\f4e9"}.bi-pin-angle-fill:before{content:"\f4ea"}.bi-pin-angle:before{content:"\f4eb"}.bi-pin-fill:before{content:"\f4ec"}.bi-pin:before{content:"\f4ed"}.bi-pip-fill:before{content:"\f4ee"}.bi-pip:before{content:"\f4ef"}.bi-play-btn-fill:before{content:"\f4f0"}.bi-play-btn:before{content:"\f4f1"}.bi-play-circle-fill:before{content:"\f4f2"}.bi-play-circle:before{content:"\f4f3"}.bi-play-fill:before{content:"\f4f4"}.bi-play:before{content:"\f4f5"}.bi-plug-fill:before{content:"\f4f6"}.bi-plug:before{content:"\f4f7"}.bi-plus-circle-dotted:before{content:"\f4f8"}.bi-plus-circle-fill:before{content:"\f4f9"}.bi-plus-circle:before{content:"\f4fa"}.bi-plus-square-dotted:before{content:"\f4fb"}.bi-plus-square-fill:before{content:"\f4fc"}.bi-plus-square:before{content:"\f4fd"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer-fill:before{content:"\f500"}.bi-printer:before{content:"\f501"}.bi-puzzle-fill:before{content:"\f502"}.bi-puzzle:before{content:"\f503"}.bi-question-circle-fill:before{content:"\f504"}.bi-question-circle:before{content:"\f505"}.bi-question-diamond-fill:before{content:"\f506"}.bi-question-diamond:before{content:"\f507"}.bi-question-octagon-fill:before{content:"\f508"}.bi-question-octagon:before{content:"\f509"}.bi-question-square-fill:before{content:"\f50a"}.bi-question-square:before{content:"\f50b"}.bi-question:before{content:"\f50c"}.bi-rainbow:before{content:"\f50d"}.bi-receipt-cutoff:before{content:"\f50e"}.bi-receipt:before{content:"\f50f"}.bi-reception-0:before{content:"\f510"}.bi-reception-1:before{content:"\f511"}.bi-reception-2:before{content:"\f512"}.bi-reception-3:before{content:"\f513"}.bi-reception-4:before{content:"\f514"}.bi-record-btn-fill:before{content:"\f515"}.bi-record-btn:before{content:"\f516"}.bi-record-circle-fill:before{content:"\f517"}.bi-record-circle:before{content:"\f518"}.bi-record-fill:before{content:"\f519"}.bi-record:before{content:"\f51a"}.bi-record2-fill:before{content:"\f51b"}.bi-record2:before{content:"\f51c"}.bi-reply-all-fill:before{content:"\f51d"}.bi-reply-all:before{content:"\f51e"}.bi-reply-fill:before{content:"\f51f"}.bi-reply:before{content:"\f520"}.bi-rss-fill:before{content:"\f521"}.bi-rss:before{content:"\f522"}.bi-rulers:before{content:"\f523"}.bi-save-fill:before{content:"\f524"}.bi-save:before{content:"\f525"}.bi-save2-fill:before{content:"\f526"}.bi-save2:before{content:"\f527"}.bi-scissors:before{content:"\f528"}.bi-screwdriver:before{content:"\f529"}.bi-search:before{content:"\f52a"}.bi-segmented-nav:before{content:"\f52b"}.bi-server:before{content:"\f52c"}.bi-share-fill:before{content:"\f52d"}.bi-share:before{content:"\f52e"}.bi-shield-check:before{content:"\f52f"}.bi-shield-exclamation:before{content:"\f530"}.bi-shield-fill-check:before{content:"\f531"}.bi-shield-fill-exclamation:before{content:"\f532"}.bi-shield-fill-minus:before{content:"\f533"}.bi-shield-fill-plus:before{content:"\f534"}.bi-shield-fill-x:before{content:"\f535"}.bi-shield-fill:before{content:"\f536"}.bi-shield-lock-fill:before{content:"\f537"}.bi-shield-lock:before{content:"\f538"}.bi-shield-minus:before{content:"\f539"}.bi-shield-plus:before{content:"\f53a"}.bi-shield-shaded:before{content:"\f53b"}.bi-shield-slash-fill:before{content:"\f53c"}.bi-shield-slash:before{content:"\f53d"}.bi-shield-x:before{content:"\f53e"}.bi-shield:before{content:"\f53f"}.bi-shift-fill:before{content:"\f540"}.bi-shift:before{content:"\f541"}.bi-shop-window:before{content:"\f542"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-2-fill:before{content:"\f545"}.bi-signpost-2:before{content:"\f546"}.bi-signpost-fill:before{content:"\f547"}.bi-signpost-split-fill:before{content:"\f548"}.bi-signpost-split:before{content:"\f549"}.bi-signpost:before{content:"\f54a"}.bi-sim-fill:before{content:"\f54b"}.bi-sim:before{content:"\f54c"}.bi-skip-backward-btn-fill:before{content:"\f54d"}.bi-skip-backward-btn:before{content:"\f54e"}.bi-skip-backward-circle-fill:before{content:"\f54f"}.bi-skip-backward-circle:before{content:"\f550"}.bi-skip-backward-fill:before{content:"\f551"}.bi-skip-backward:before{content:"\f552"}.bi-skip-end-btn-fill:before{content:"\f553"}.bi-skip-end-btn:before{content:"\f554"}.bi-skip-end-circle-fill:before{content:"\f555"}.bi-skip-end-circle:before{content:"\f556"}.bi-skip-end-fill:before{content:"\f557"}.bi-skip-end:before{content:"\f558"}.bi-skip-forward-btn-fill:before{content:"\f559"}.bi-skip-forward-btn:before{content:"\f55a"}.bi-skip-forward-circle-fill:before{content:"\f55b"}.bi-skip-forward-circle:before{content:"\f55c"}.bi-skip-forward-fill:before{content:"\f55d"}.bi-skip-forward:before{content:"\f55e"}.bi-skip-start-btn-fill:before{content:"\f55f"}.bi-skip-start-btn:before{content:"\f560"}.bi-skip-start-circle-fill:before{content:"\f561"}.bi-skip-start-circle:before{content:"\f562"}.bi-skip-start-fill:before{content:"\f563"}.bi-skip-start:before{content:"\f564"}.bi-slack:before{content:"\f565"}.bi-slash-circle-fill:before{content:"\f566"}.bi-slash-circle:before{content:"\f567"}.bi-slash-square-fill:before{content:"\f568"}.bi-slash-square:before{content:"\f569"}.bi-slash:before{content:"\f56a"}.bi-sliders:before{content:"\f56b"}.bi-smartwatch:before{content:"\f56c"}.bi-snow:before{content:"\f56d"}.bi-snow2:before{content:"\f56e"}.bi-snow3:before{content:"\f56f"}.bi-sort-alpha-down-alt:before{content:"\f570"}.bi-sort-alpha-down:before{content:"\f571"}.bi-sort-alpha-up-alt:before{content:"\f572"}.bi-sort-alpha-up:before{content:"\f573"}.bi-sort-down-alt:before{content:"\f574"}.bi-sort-down:before{content:"\f575"}.bi-sort-numeric-down-alt:before{content:"\f576"}.bi-sort-numeric-down:before{content:"\f577"}.bi-sort-numeric-up-alt:before{content:"\f578"}.bi-sort-numeric-up:before{content:"\f579"}.bi-sort-up-alt:before{content:"\f57a"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speaker-fill:before{content:"\f57d"}.bi-speaker:before{content:"\f57e"}.bi-speedometer:before{content:"\f57f"}.bi-speedometer2:before{content:"\f580"}.bi-spellcheck:before{content:"\f581"}.bi-square-fill:before{content:"\f582"}.bi-square-half:before{content:"\f583"}.bi-square:before{content:"\f584"}.bi-stack:before{content:"\f585"}.bi-star-fill:before{content:"\f586"}.bi-star-half:before{content:"\f587"}.bi-star:before{content:"\f588"}.bi-stars:before{content:"\f589"}.bi-stickies-fill:before{content:"\f58a"}.bi-stickies:before{content:"\f58b"}.bi-sticky-fill:before{content:"\f58c"}.bi-sticky:before{content:"\f58d"}.bi-stop-btn-fill:before{content:"\f58e"}.bi-stop-btn:before{content:"\f58f"}.bi-stop-circle-fill:before{content:"\f590"}.bi-stop-circle:before{content:"\f591"}.bi-stop-fill:before{content:"\f592"}.bi-stop:before{content:"\f593"}.bi-stoplights-fill:before{content:"\f594"}.bi-stoplights:before{content:"\f595"}.bi-stopwatch-fill:before{content:"\f596"}.bi-stopwatch:before{content:"\f597"}.bi-subtract:before{content:"\f598"}.bi-suit-club-fill:before{content:"\f599"}.bi-suit-club:before{content:"\f59a"}.bi-suit-diamond-fill:before{content:"\f59b"}.bi-suit-diamond:before{content:"\f59c"}.bi-suit-heart-fill:before{content:"\f59d"}.bi-suit-heart:before{content:"\f59e"}.bi-suit-spade-fill:before{content:"\f59f"}.bi-suit-spade:before{content:"\f5a0"}.bi-sun-fill:before{content:"\f5a1"}.bi-sun:before{content:"\f5a2"}.bi-sunglasses:before{content:"\f5a3"}.bi-sunrise-fill:before{content:"\f5a4"}.bi-sunrise:before{content:"\f5a5"}.bi-sunset-fill:before{content:"\f5a6"}.bi-sunset:before{content:"\f5a7"}.bi-symmetry-horizontal:before{content:"\f5a8"}.bi-symmetry-vertical:before{content:"\f5a9"}.bi-table:before{content:"\f5aa"}.bi-tablet-fill:before{content:"\f5ab"}.bi-tablet-landscape-fill:before{content:"\f5ac"}.bi-tablet-landscape:before{content:"\f5ad"}.bi-tablet:before{content:"\f5ae"}.bi-tag-fill:before{content:"\f5af"}.bi-tag:before{content:"\f5b0"}.bi-tags-fill:before{content:"\f5b1"}.bi-tags:before{content:"\f5b2"}.bi-telegram:before{content:"\f5b3"}.bi-telephone-fill:before{content:"\f5b4"}.bi-telephone-forward-fill:before{content:"\f5b5"}.bi-telephone-forward:before{content:"\f5b6"}.bi-telephone-inbound-fill:before{content:"\f5b7"}.bi-telephone-inbound:before{content:"\f5b8"}.bi-telephone-minus-fill:before{content:"\f5b9"}.bi-telephone-minus:before{content:"\f5ba"}.bi-telephone-outbound-fill:before{content:"\f5bb"}.bi-telephone-outbound:before{content:"\f5bc"}.bi-telephone-plus-fill:before{content:"\f5bd"}.bi-telephone-plus:before{content:"\f5be"}.bi-telephone-x-fill:before{content:"\f5bf"}.bi-telephone-x:before{content:"\f5c0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal-fill:before{content:"\f5c2"}.bi-terminal:before{content:"\f5c3"}.bi-text-center:before{content:"\f5c4"}.bi-text-indent-left:before{content:"\f5c5"}.bi-text-indent-right:before{content:"\f5c6"}.bi-text-left:before{content:"\f5c7"}.bi-text-paragraph:before{content:"\f5c8"}.bi-text-right:before{content:"\f5c9"}.bi-textarea-resize:before{content:"\f5ca"}.bi-textarea-t:before{content:"\f5cb"}.bi-textarea:before{content:"\f5cc"}.bi-thermometer-half:before{content:"\f5cd"}.bi-thermometer-high:before{content:"\f5ce"}.bi-thermometer-low:before{content:"\f5cf"}.bi-thermometer-snow:before{content:"\f5d0"}.bi-thermometer-sun:before{content:"\f5d1"}.bi-thermometer:before{content:"\f5d2"}.bi-three-dots-vertical:before{content:"\f5d3"}.bi-three-dots:before{content:"\f5d4"}.bi-toggle-off:before{content:"\f5d5"}.bi-toggle-on:before{content:"\f5d6"}.bi-toggle2-off:before{content:"\f5d7"}.bi-toggle2-on:before{content:"\f5d8"}.bi-toggles:before{content:"\f5d9"}.bi-toggles2:before{content:"\f5da"}.bi-tools:before{content:"\f5db"}.bi-tornado:before{content:"\f5dc"}.bi-trash-fill:before{content:"\f5dd"}.bi-trash:before{content:"\f5de"}.bi-trash2-fill:before{content:"\f5df"}.bi-trash2:before{content:"\f5e0"}.bi-tree-fill:before{content:"\f5e1"}.bi-tree:before{content:"\f5e2"}.bi-triangle-fill:before{content:"\f5e3"}.bi-triangle-half:before{content:"\f5e4"}.bi-triangle:before{content:"\f5e5"}.bi-trophy-fill:before{content:"\f5e6"}.bi-trophy:before{content:"\f5e7"}.bi-tropical-storm:before{content:"\f5e8"}.bi-truck-flatbed:before{content:"\f5e9"}.bi-truck:before{content:"\f5ea"}.bi-tsunami:before{content:"\f5eb"}.bi-tv-fill:before{content:"\f5ec"}.bi-tv:before{content:"\f5ed"}.bi-twitch:before{content:"\f5ee"}.bi-twitter:before{content:"\f5ef"}.bi-type-bold:before{content:"\f5f0"}.bi-type-h1:before{content:"\f5f1"}.bi-type-h2:before{content:"\f5f2"}.bi-type-h3:before{content:"\f5f3"}.bi-type-italic:before{content:"\f5f4"}.bi-type-strikethrough:before{content:"\f5f5"}.bi-type-underline:before{content:"\f5f6"}.bi-type:before{content:"\f5f7"}.bi-ui-checks-grid:before{content:"\f5f8"}.bi-ui-checks:before{content:"\f5f9"}.bi-ui-radios-grid:before{content:"\f5fa"}.bi-ui-radios:before{content:"\f5fb"}.bi-umbrella-fill:before{content:"\f5fc"}.bi-umbrella:before{content:"\f5fd"}.bi-union:before{content:"\f5fe"}.bi-unlock-fill:before{content:"\f5ff"}.bi-unlock:before{content:"\f600"}.bi-upc-scan:before{content:"\f601"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-vector-pen:before{content:"\f604"}.bi-view-list:before{content:"\f605"}.bi-view-stacked:before{content:"\f606"}.bi-vinyl-fill:before{content:"\f607"}.bi-vinyl:before{content:"\f608"}.bi-voicemail:before{content:"\f609"}.bi-volume-down-fill:before{content:"\f60a"}.bi-volume-down:before{content:"\f60b"}.bi-volume-mute-fill:before{content:"\f60c"}.bi-volume-mute:before{content:"\f60d"}.bi-volume-off-fill:before{content:"\f60e"}.bi-volume-off:before{content:"\f60f"}.bi-volume-up-fill:before{content:"\f610"}.bi-volume-up:before{content:"\f611"}.bi-vr:before{content:"\f612"}.bi-wallet-fill:before{content:"\f613"}.bi-wallet:before{content:"\f614"}.bi-wallet2:before{content:"\f615"}.bi-watch:before{content:"\f616"}.bi-water:before{content:"\f617"}.bi-whatsapp:before{content:"\f618"}.bi-wifi-1:before{content:"\f619"}.bi-wifi-2:before{content:"\f61a"}.bi-wifi-off:before{content:"\f61b"}.bi-wifi:before{content:"\f61c"}.bi-wind:before{content:"\f61d"}.bi-window-dock:before{content:"\f61e"}.bi-window-sidebar:before{content:"\f61f"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x-circle-fill:before{content:"\f622"}.bi-x-circle:before{content:"\f623"}.bi-x-diamond-fill:before{content:"\f624"}.bi-x-diamond:before{content:"\f625"}.bi-x-octagon-fill:before{content:"\f626"}.bi-x-octagon:before{content:"\f627"}.bi-x-square-fill:before{content:"\f628"}.bi-x-square:before{content:"\f629"}.bi-x:before{content:"\f62a"}.bi-youtube:before{content:"\f62b"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.bi-bank:before{content:"\f62e"}.bi-bank2:before{content:"\f62f"}.bi-bell-slash-fill:before{content:"\f630"}.bi-bell-slash:before{content:"\f631"}.bi-cash-coin:before{content:"\f632"}.bi-check-lg:before{content:"\f633"}.bi-coin:before{content:"\f634"}.bi-currency-bitcoin:before{content:"\f635"}.bi-currency-dollar:before{content:"\f636"}.bi-currency-euro:before{content:"\f637"}.bi-currency-exchange:before{content:"\f638"}.bi-currency-pound:before{content:"\f639"}.bi-currency-yen:before{content:"\f63a"}.bi-dash-lg:before{content:"\f63b"}.bi-exclamation-lg:before{content:"\f63c"}.bi-file-earmark-pdf-fill:before{content:"\f63d"}.bi-file-earmark-pdf:before{content:"\f63e"}.bi-file-pdf-fill:before{content:"\f63f"}.bi-file-pdf:before{content:"\f640"}.bi-gender-ambiguous:before{content:"\f641"}.bi-gender-female:before{content:"\f642"}.bi-gender-male:before{content:"\f643"}.bi-gender-trans:before{content:"\f644"}.bi-headset-vr:before{content:"\f645"}.bi-info-lg:before{content:"\f646"}.bi-mastodon:before{content:"\f647"}.bi-messenger:before{content:"\f648"}.bi-piggy-bank-fill:before{content:"\f649"}.bi-piggy-bank:before{content:"\f64a"}.bi-pin-map-fill:before{content:"\f64b"}.bi-pin-map:before{content:"\f64c"}.bi-plus-lg:before{content:"\f64d"}.bi-question-lg:before{content:"\f64e"}.bi-recycle:before{content:"\f64f"}.bi-reddit:before{content:"\f650"}.bi-safe-fill:before{content:"\f651"}.bi-safe2-fill:before{content:"\f652"}.bi-safe2:before{content:"\f653"}.bi-sd-card-fill:before{content:"\f654"}.bi-sd-card:before{content:"\f655"}.bi-skype:before{content:"\f656"}.bi-slash-lg:before{content:"\f657"}.bi-translate:before{content:"\f658"}.bi-x-lg:before{content:"\f659"}.bi-safe:before{content:"\f65a"}.bi-apple:before{content:"\f65b"}.bi-microsoft:before{content:"\f65d"}.bi-windows:before{content:"\f65e"}.bi-behance:before{content:"\f65c"}.bi-dribbble:before{content:"\f65f"}.bi-line:before{content:"\f660"}.bi-medium:before{content:"\f661"}.bi-paypal:before{content:"\f662"}.bi-pinterest:before{content:"\f663"}.bi-signal:before{content:"\f664"}.bi-snapchat:before{content:"\f665"}.bi-spotify:before{content:"\f666"}.bi-stack-overflow:before{content:"\f667"}.bi-strava:before{content:"\f668"}.bi-wordpress:before{content:"\f669"}.bi-vimeo:before{content:"\f66a"}.bi-activity:before{content:"\f66b"}.bi-easel2-fill:before{content:"\f66c"}.bi-easel2:before{content:"\f66d"}.bi-easel3-fill:before{content:"\f66e"}.bi-easel3:before{content:"\f66f"}.bi-fan:before{content:"\f670"}.bi-fingerprint:before{content:"\f671"}.bi-graph-down-arrow:before{content:"\f672"}.bi-graph-up-arrow:before{content:"\f673"}.bi-hypnotize:before{content:"\f674"}.bi-magic:before{content:"\f675"}.bi-person-rolodex:before{content:"\f676"}.bi-person-video:before{content:"\f677"}.bi-person-video2:before{content:"\f678"}.bi-person-video3:before{content:"\f679"}.bi-person-workspace:before{content:"\f67a"}.bi-radioactive:before{content:"\f67b"}.bi-webcam-fill:before{content:"\f67c"}.bi-webcam:before{content:"\f67d"}.bi-yin-yang:before{content:"\f67e"}.bi-bandaid-fill:before{content:"\f680"}.bi-bandaid:before{content:"\f681"}.bi-bluetooth:before{content:"\f682"}.bi-body-text:before{content:"\f683"}.bi-boombox:before{content:"\f684"}.bi-boxes:before{content:"\f685"}.bi-dpad-fill:before{content:"\f686"}.bi-dpad:before{content:"\f687"}.bi-ear-fill:before{content:"\f688"}.bi-ear:before{content:"\f689"}.bi-envelope-check-fill:before{content:"\f68b"}.bi-envelope-check:before{content:"\f68c"}.bi-envelope-dash-fill:before{content:"\f68e"}.bi-envelope-dash:before{content:"\f68f"}.bi-envelope-exclamation-fill:before{content:"\f691"}.bi-envelope-exclamation:before{content:"\f692"}.bi-envelope-plus-fill:before{content:"\f693"}.bi-envelope-plus:before{content:"\f694"}.bi-envelope-slash-fill:before{content:"\f696"}.bi-envelope-slash:before{content:"\f697"}.bi-envelope-x-fill:before{content:"\f699"}.bi-envelope-x:before{content:"\f69a"}.bi-explicit-fill:before{content:"\f69b"}.bi-explicit:before{content:"\f69c"}.bi-git:before{content:"\f69d"}.bi-infinity:before{content:"\f69e"}.bi-list-columns-reverse:before{content:"\f69f"}.bi-list-columns:before{content:"\f6a0"}.bi-meta:before{content:"\f6a1"}.bi-nintendo-switch:before{content:"\f6a4"}.bi-pc-display-horizontal:before{content:"\f6a5"}.bi-pc-display:before{content:"\f6a6"}.bi-pc-horizontal:before{content:"\f6a7"}.bi-pc:before{content:"\f6a8"}.bi-playstation:before{content:"\f6a9"}.bi-plus-slash-minus:before{content:"\f6aa"}.bi-projector-fill:before{content:"\f6ab"}.bi-projector:before{content:"\f6ac"}.bi-qr-code-scan:before{content:"\f6ad"}.bi-qr-code:before{content:"\f6ae"}.bi-quora:before{content:"\f6af"}.bi-quote:before{content:"\f6b0"}.bi-robot:before{content:"\f6b1"}.bi-send-check-fill:before{content:"\f6b2"}.bi-send-check:before{content:"\f6b3"}.bi-send-dash-fill:before{content:"\f6b4"}.bi-send-dash:before{content:"\f6b5"}.bi-send-exclamation-fill:before{content:"\f6b7"}.bi-send-exclamation:before{content:"\f6b8"}.bi-send-fill:before{content:"\f6b9"}.bi-send-plus-fill:before{content:"\f6ba"}.bi-send-plus:before{content:"\f6bb"}.bi-send-slash-fill:before{content:"\f6bc"}.bi-send-slash:before{content:"\f6bd"}.bi-send-x-fill:before{content:"\f6be"}.bi-send-x:before{content:"\f6bf"}.bi-send:before{content:"\f6c0"}.bi-steam:before{content:"\f6c1"}.bi-terminal-dash:before{content:"\f6c3"}.bi-terminal-plus:before{content:"\f6c4"}.bi-terminal-split:before{content:"\f6c5"}.bi-ticket-detailed-fill:before{content:"\f6c6"}.bi-ticket-detailed:before{content:"\f6c7"}.bi-ticket-fill:before{content:"\f6c8"}.bi-ticket-perforated-fill:before{content:"\f6c9"}.bi-ticket-perforated:before{content:"\f6ca"}.bi-ticket:before{content:"\f6cb"}.bi-tiktok:before{content:"\f6cc"}.bi-window-dash:before{content:"\f6cd"}.bi-window-desktop:before{content:"\f6ce"}.bi-window-fullscreen:before{content:"\f6cf"}.bi-window-plus:before{content:"\f6d0"}.bi-window-split:before{content:"\f6d1"}.bi-window-stack:before{content:"\f6d2"}.bi-window-x:before{content:"\f6d3"}.bi-xbox:before{content:"\f6d4"}.bi-ethernet:before{content:"\f6d5"}.bi-hdmi-fill:before{content:"\f6d6"}.bi-hdmi:before{content:"\f6d7"}.bi-usb-c-fill:before{content:"\f6d8"}.bi-usb-c:before{content:"\f6d9"}.bi-usb-fill:before{content:"\f6da"}.bi-usb-plug-fill:before{content:"\f6db"}.bi-usb-plug:before{content:"\f6dc"}.bi-usb-symbol:before{content:"\f6dd"}.bi-usb:before{content:"\f6de"}.bi-boombox-fill:before{content:"\f6df"}.bi-displayport:before{content:"\f6e1"}.bi-gpu-card:before{content:"\f6e2"}.bi-memory:before{content:"\f6e3"}.bi-modem-fill:before{content:"\f6e4"}.bi-modem:before{content:"\f6e5"}.bi-motherboard-fill:before{content:"\f6e6"}.bi-motherboard:before{content:"\f6e7"}.bi-optical-audio-fill:before{content:"\f6e8"}.bi-optical-audio:before{content:"\f6e9"}.bi-pci-card:before{content:"\f6ea"}.bi-router-fill:before{content:"\f6eb"}.bi-router:before{content:"\f6ec"}.bi-thunderbolt-fill:before{content:"\f6ef"}.bi-thunderbolt:before{content:"\f6f0"}.bi-usb-drive-fill:before{content:"\f6f1"}.bi-usb-drive:before{content:"\f6f2"}.bi-usb-micro-fill:before{content:"\f6f3"}.bi-usb-micro:before{content:"\f6f4"}.bi-usb-mini-fill:before{content:"\f6f5"}.bi-usb-mini:before{content:"\f6f6"}.bi-cloud-haze2:before{content:"\f6f7"}.bi-device-hdd-fill:before{content:"\f6f8"}.bi-device-hdd:before{content:"\f6f9"}.bi-device-ssd-fill:before{content:"\f6fa"}.bi-device-ssd:before{content:"\f6fb"}.bi-displayport-fill:before{content:"\f6fc"}.bi-mortarboard-fill:before{content:"\f6fd"}.bi-mortarboard:before{content:"\f6fe"}.bi-terminal-x:before{content:"\f6ff"}.bi-arrow-through-heart-fill:before{content:"\f700"}.bi-arrow-through-heart:before{content:"\f701"}.bi-badge-sd-fill:before{content:"\f702"}.bi-badge-sd:before{content:"\f703"}.bi-bag-heart-fill:before{content:"\f704"}.bi-bag-heart:before{content:"\f705"}.bi-balloon-fill:before{content:"\f706"}.bi-balloon-heart-fill:before{content:"\f707"}.bi-balloon-heart:before{content:"\f708"}.bi-balloon:before{content:"\f709"}.bi-box2-fill:before{content:"\f70a"}.bi-box2-heart-fill:before{content:"\f70b"}.bi-box2-heart:before{content:"\f70c"}.bi-box2:before{content:"\f70d"}.bi-braces-asterisk:before{content:"\f70e"}.bi-calendar-heart-fill:before{content:"\f70f"}.bi-calendar-heart:before{content:"\f710"}.bi-calendar2-heart-fill:before{content:"\f711"}.bi-calendar2-heart:before{content:"\f712"}.bi-chat-heart-fill:before{content:"\f713"}.bi-chat-heart:before{content:"\f714"}.bi-chat-left-heart-fill:before{content:"\f715"}.bi-chat-left-heart:before{content:"\f716"}.bi-chat-right-heart-fill:before{content:"\f717"}.bi-chat-right-heart:before{content:"\f718"}.bi-chat-square-heart-fill:before{content:"\f719"}.bi-chat-square-heart:before{content:"\f71a"}.bi-clipboard-check-fill:before{content:"\f71b"}.bi-clipboard-data-fill:before{content:"\f71c"}.bi-clipboard-fill:before{content:"\f71d"}.bi-clipboard-heart-fill:before{content:"\f71e"}.bi-clipboard-heart:before{content:"\f71f"}.bi-clipboard-minus-fill:before{content:"\f720"}.bi-clipboard-plus-fill:before{content:"\f721"}.bi-clipboard-pulse:before{content:"\f722"}.bi-clipboard-x-fill:before{content:"\f723"}.bi-clipboard2-check-fill:before{content:"\f724"}.bi-clipboard2-check:before{content:"\f725"}.bi-clipboard2-data-fill:before{content:"\f726"}.bi-clipboard2-data:before{content:"\f727"}.bi-clipboard2-fill:before{content:"\f728"}.bi-clipboard2-heart-fill:before{content:"\f729"}.bi-clipboard2-heart:before{content:"\f72a"}.bi-clipboard2-minus-fill:before{content:"\f72b"}.bi-clipboard2-minus:before{content:"\f72c"}.bi-clipboard2-plus-fill:before{content:"\f72d"}.bi-clipboard2-plus:before{content:"\f72e"}.bi-clipboard2-pulse-fill:before{content:"\f72f"}.bi-clipboard2-pulse:before{content:"\f730"}.bi-clipboard2-x-fill:before{content:"\f731"}.bi-clipboard2-x:before{content:"\f732"}.bi-clipboard2:before{content:"\f733"}.bi-emoji-kiss-fill:before{content:"\f734"}.bi-emoji-kiss:before{content:"\f735"}.bi-envelope-heart-fill:before{content:"\f736"}.bi-envelope-heart:before{content:"\f737"}.bi-envelope-open-heart-fill:before{content:"\f738"}.bi-envelope-open-heart:before{content:"\f739"}.bi-envelope-paper-fill:before{content:"\f73a"}.bi-envelope-paper-heart-fill:before{content:"\f73b"}.bi-envelope-paper-heart:before{content:"\f73c"}.bi-envelope-paper:before{content:"\f73d"}.bi-filetype-aac:before{content:"\f73e"}.bi-filetype-ai:before{content:"\f73f"}.bi-filetype-bmp:before{content:"\f740"}.bi-filetype-cs:before{content:"\f741"}.bi-filetype-css:before{content:"\f742"}.bi-filetype-csv:before{content:"\f743"}.bi-filetype-doc:before{content:"\f744"}.bi-filetype-docx:before{content:"\f745"}.bi-filetype-exe:before{content:"\f746"}.bi-filetype-gif:before{content:"\f747"}.bi-filetype-heic:before{content:"\f748"}.bi-filetype-html:before{content:"\f749"}.bi-filetype-java:before{content:"\f74a"}.bi-filetype-jpg:before{content:"\f74b"}.bi-filetype-js:before{content:"\f74c"}.bi-filetype-jsx:before{content:"\f74d"}.bi-filetype-key:before{content:"\f74e"}.bi-filetype-m4p:before{content:"\f74f"}.bi-filetype-md:before{content:"\f750"}.bi-filetype-mdx:before{content:"\f751"}.bi-filetype-mov:before{content:"\f752"}.bi-filetype-mp3:before{content:"\f753"}.bi-filetype-mp4:before{content:"\f754"}.bi-filetype-otf:before{content:"\f755"}.bi-filetype-pdf:before{content:"\f756"}.bi-filetype-php:before{content:"\f757"}.bi-filetype-png:before{content:"\f758"}.bi-filetype-ppt:before{content:"\f75a"}.bi-filetype-psd:before{content:"\f75b"}.bi-filetype-py:before{content:"\f75c"}.bi-filetype-raw:before{content:"\f75d"}.bi-filetype-rb:before{content:"\f75e"}.bi-filetype-sass:before{content:"\f75f"}.bi-filetype-scss:before{content:"\f760"}.bi-filetype-sh:before{content:"\f761"}.bi-filetype-svg:before{content:"\f762"}.bi-filetype-tiff:before{content:"\f763"}.bi-filetype-tsx:before{content:"\f764"}.bi-filetype-ttf:before{content:"\f765"}.bi-filetype-txt:before{content:"\f766"}.bi-filetype-wav:before{content:"\f767"}.bi-filetype-woff:before{content:"\f768"}.bi-filetype-xls:before{content:"\f76a"}.bi-filetype-xml:before{content:"\f76b"}.bi-filetype-yml:before{content:"\f76c"}.bi-heart-arrow:before{content:"\f76d"}.bi-heart-pulse-fill:before{content:"\f76e"}.bi-heart-pulse:before{content:"\f76f"}.bi-heartbreak-fill:before{content:"\f770"}.bi-heartbreak:before{content:"\f771"}.bi-hearts:before{content:"\f772"}.bi-hospital-fill:before{content:"\f773"}.bi-hospital:before{content:"\f774"}.bi-house-heart-fill:before{content:"\f775"}.bi-house-heart:before{content:"\f776"}.bi-incognito:before{content:"\f777"}.bi-magnet-fill:before{content:"\f778"}.bi-magnet:before{content:"\f779"}.bi-person-heart:before{content:"\f77a"}.bi-person-hearts:before{content:"\f77b"}.bi-phone-flip:before{content:"\f77c"}.bi-plugin:before{content:"\f77d"}.bi-postage-fill:before{content:"\f77e"}.bi-postage-heart-fill:before{content:"\f77f"}.bi-postage-heart:before{content:"\f780"}.bi-postage:before{content:"\f781"}.bi-postcard-fill:before{content:"\f782"}.bi-postcard-heart-fill:before{content:"\f783"}.bi-postcard-heart:before{content:"\f784"}.bi-postcard:before{content:"\f785"}.bi-search-heart-fill:before{content:"\f786"}.bi-search-heart:before{content:"\f787"}.bi-sliders2-vertical:before{content:"\f788"}.bi-sliders2:before{content:"\f789"}.bi-trash3-fill:before{content:"\f78a"}.bi-trash3:before{content:"\f78b"}.bi-valentine:before{content:"\f78c"}.bi-valentine2:before{content:"\f78d"}.bi-wrench-adjustable-circle-fill:before{content:"\f78e"}.bi-wrench-adjustable-circle:before{content:"\f78f"}.bi-wrench-adjustable:before{content:"\f790"}.bi-filetype-json:before{content:"\f791"}.bi-filetype-pptx:before{content:"\f792"}.bi-filetype-xlsx:before{content:"\f793"}.bi-1-circle-fill:before{content:"\f796"}.bi-1-circle:before{content:"\f797"}.bi-1-square-fill:before{content:"\f798"}.bi-1-square:before{content:"\f799"}.bi-2-circle-fill:before{content:"\f79c"}.bi-2-circle:before{content:"\f79d"}.bi-2-square-fill:before{content:"\f79e"}.bi-2-square:before{content:"\f79f"}.bi-3-circle-fill:before{content:"\f7a2"}.bi-3-circle:before{content:"\f7a3"}.bi-3-square-fill:before{content:"\f7a4"}.bi-3-square:before{content:"\f7a5"}.bi-4-circle-fill:before{content:"\f7a8"}.bi-4-circle:before{content:"\f7a9"}.bi-4-square-fill:before{content:"\f7aa"}.bi-4-square:before{content:"\f7ab"}.bi-5-circle-fill:before{content:"\f7ae"}.bi-5-circle:before{content:"\f7af"}.bi-5-square-fill:before{content:"\f7b0"}.bi-5-square:before{content:"\f7b1"}.bi-6-circle-fill:before{content:"\f7b4"}.bi-6-circle:before{content:"\f7b5"}.bi-6-square-fill:before{content:"\f7b6"}.bi-6-square:before{content:"\f7b7"}.bi-7-circle-fill:before{content:"\f7ba"}.bi-7-circle:before{content:"\f7bb"}.bi-7-square-fill:before{content:"\f7bc"}.bi-7-square:before{content:"\f7bd"}.bi-8-circle-fill:before{content:"\f7c0"}.bi-8-circle:before{content:"\f7c1"}.bi-8-square-fill:before{content:"\f7c2"}.bi-8-square:before{content:"\f7c3"}.bi-9-circle-fill:before{content:"\f7c6"}.bi-9-circle:before{content:"\f7c7"}.bi-9-square-fill:before{content:"\f7c8"}.bi-9-square:before{content:"\f7c9"}.bi-airplane-engines-fill:before{content:"\f7ca"}.bi-airplane-engines:before{content:"\f7cb"}.bi-airplane-fill:before{content:"\f7cc"}.bi-airplane:before{content:"\f7cd"}.bi-alexa:before{content:"\f7ce"}.bi-alipay:before{content:"\f7cf"}.bi-android:before{content:"\f7d0"}.bi-android2:before{content:"\f7d1"}.bi-box-fill:before{content:"\f7d2"}.bi-box-seam-fill:before{content:"\f7d3"}.bi-browser-chrome:before{content:"\f7d4"}.bi-browser-edge:before{content:"\f7d5"}.bi-browser-firefox:before{content:"\f7d6"}.bi-browser-safari:before{content:"\f7d7"}.bi-c-circle-fill:before{content:"\f7da"}.bi-c-circle:before{content:"\f7db"}.bi-c-square-fill:before{content:"\f7dc"}.bi-c-square:before{content:"\f7dd"}.bi-capsule-pill:before{content:"\f7de"}.bi-capsule:before{content:"\f7df"}.bi-car-front-fill:before{content:"\f7e0"}.bi-car-front:before{content:"\f7e1"}.bi-cassette-fill:before{content:"\f7e2"}.bi-cassette:before{content:"\f7e3"}.bi-cc-circle-fill:before{content:"\f7e6"}.bi-cc-circle:before{content:"\f7e7"}.bi-cc-square-fill:before{content:"\f7e8"}.bi-cc-square:before{content:"\f7e9"}.bi-cup-hot-fill:before{content:"\f7ea"}.bi-cup-hot:before{content:"\f7eb"}.bi-currency-rupee:before{content:"\f7ec"}.bi-dropbox:before{content:"\f7ed"}.bi-escape:before{content:"\f7ee"}.bi-fast-forward-btn-fill:before{content:"\f7ef"}.bi-fast-forward-btn:before{content:"\f7f0"}.bi-fast-forward-circle-fill:before{content:"\f7f1"}.bi-fast-forward-circle:before{content:"\f7f2"}.bi-fast-forward-fill:before{content:"\f7f3"}.bi-fast-forward:before{content:"\f7f4"}.bi-filetype-sql:before{content:"\f7f5"}.bi-fire:before{content:"\f7f6"}.bi-google-play:before{content:"\f7f7"}.bi-h-circle-fill:before{content:"\f7fa"}.bi-h-circle:before{content:"\f7fb"}.bi-h-square-fill:before{content:"\f7fc"}.bi-h-square:before{content:"\f7fd"}.bi-indent:before{content:"\f7fe"}.bi-lungs-fill:before{content:"\f7ff"}.bi-lungs:before{content:"\f800"}.bi-microsoft-teams:before{content:"\f801"}.bi-p-circle-fill:before{content:"\f804"}.bi-p-circle:before{content:"\f805"}.bi-p-square-fill:before{content:"\f806"}.bi-p-square:before{content:"\f807"}.bi-pass-fill:before{content:"\f808"}.bi-pass:before{content:"\f809"}.bi-prescription:before{content:"\f80a"}.bi-prescription2:before{content:"\f80b"}.bi-r-circle-fill:before{content:"\f80e"}.bi-r-circle:before{content:"\f80f"}.bi-r-square-fill:before{content:"\f810"}.bi-r-square:before{content:"\f811"}.bi-repeat-1:before{content:"\f812"}.bi-repeat:before{content:"\f813"}.bi-rewind-btn-fill:before{content:"\f814"}.bi-rewind-btn:before{content:"\f815"}.bi-rewind-circle-fill:before{content:"\f816"}.bi-rewind-circle:before{content:"\f817"}.bi-rewind-fill:before{content:"\f818"}.bi-rewind:before{content:"\f819"}.bi-train-freight-front-fill:before{content:"\f81a"}.bi-train-freight-front:before{content:"\f81b"}.bi-train-front-fill:before{content:"\f81c"}.bi-train-front:before{content:"\f81d"}.bi-train-lightrail-front-fill:before{content:"\f81e"}.bi-train-lightrail-front:before{content:"\f81f"}.bi-truck-front-fill:before{content:"\f820"}.bi-truck-front:before{content:"\f821"}.bi-ubuntu:before{content:"\f822"}.bi-unindent:before{content:"\f823"}.bi-unity:before{content:"\f824"}.bi-universal-access-circle:before{content:"\f825"}.bi-universal-access:before{content:"\f826"}.bi-virus:before{content:"\f827"}.bi-virus2:before{content:"\f828"}.bi-wechat:before{content:"\f829"}.bi-yelp:before{content:"\f82a"}.bi-sign-stop-fill:before{content:"\f82b"}.bi-sign-stop-lights-fill:before{content:"\f82c"}.bi-sign-stop-lights:before{content:"\f82d"}.bi-sign-stop:before{content:"\f82e"}.bi-sign-turn-left-fill:before{content:"\f82f"}.bi-sign-turn-left:before{content:"\f830"}.bi-sign-turn-right-fill:before{content:"\f831"}.bi-sign-turn-right:before{content:"\f832"}.bi-sign-turn-slight-left-fill:before{content:"\f833"}.bi-sign-turn-slight-left:before{content:"\f834"}.bi-sign-turn-slight-right-fill:before{content:"\f835"}.bi-sign-turn-slight-right:before{content:"\f836"}.bi-sign-yield-fill:before{content:"\f837"}.bi-sign-yield:before{content:"\f838"}.bi-ev-station-fill:before{content:"\f839"}.bi-ev-station:before{content:"\f83a"}.bi-fuel-pump-diesel-fill:before{content:"\f83b"}.bi-fuel-pump-diesel:before{content:"\f83c"}.bi-fuel-pump-fill:before{content:"\f83d"}.bi-fuel-pump:before{content:"\f83e"}.bi-0-circle-fill:before{content:"\f83f"}.bi-0-circle:before{content:"\f840"}.bi-0-square-fill:before{content:"\f841"}.bi-0-square:before{content:"\f842"}.bi-rocket-fill:before{content:"\f843"}.bi-rocket-takeoff-fill:before{content:"\f844"}.bi-rocket-takeoff:before{content:"\f845"}.bi-rocket:before{content:"\f846"}.bi-stripe:before{content:"\f847"}.bi-subscript:before{content:"\f848"}.bi-superscript:before{content:"\f849"}.bi-trello:before{content:"\f84a"}.bi-envelope-at-fill:before{content:"\f84b"}.bi-envelope-at:before{content:"\f84c"}.bi-regex:before{content:"\f84d"}.bi-text-wrap:before{content:"\f84e"}.bi-sign-dead-end-fill:before{content:"\f84f"}.bi-sign-dead-end:before{content:"\f850"}.bi-sign-do-not-enter-fill:before{content:"\f851"}.bi-sign-do-not-enter:before{content:"\f852"}.bi-sign-intersection-fill:before{content:"\f853"}.bi-sign-intersection-side-fill:before{content:"\f854"}.bi-sign-intersection-side:before{content:"\f855"}.bi-sign-intersection-t-fill:before{content:"\f856"}.bi-sign-intersection-t:before{content:"\f857"}.bi-sign-intersection-y-fill:before{content:"\f858"}.bi-sign-intersection-y:before{content:"\f859"}.bi-sign-intersection:before{content:"\f85a"}.bi-sign-merge-left-fill:before{content:"\f85b"}.bi-sign-merge-left:before{content:"\f85c"}.bi-sign-merge-right-fill:before{content:"\f85d"}.bi-sign-merge-right:before{content:"\f85e"}.bi-sign-no-left-turn-fill:before{content:"\f85f"}.bi-sign-no-left-turn:before{content:"\f860"}.bi-sign-no-parking-fill:before{content:"\f861"}.bi-sign-no-parking:before{content:"\f862"}.bi-sign-no-right-turn-fill:before{content:"\f863"}.bi-sign-no-right-turn:before{content:"\f864"}.bi-sign-railroad-fill:before{content:"\f865"}.bi-sign-railroad:before{content:"\f866"}.bi-building-add:before{content:"\f867"}.bi-building-check:before{content:"\f868"}.bi-building-dash:before{content:"\f869"}.bi-building-down:before{content:"\f86a"}.bi-building-exclamation:before{content:"\f86b"}.bi-building-fill-add:before{content:"\f86c"}.bi-building-fill-check:before{content:"\f86d"}.bi-building-fill-dash:before{content:"\f86e"}.bi-building-fill-down:before{content:"\f86f"}.bi-building-fill-exclamation:before{content:"\f870"}.bi-building-fill-gear:before{content:"\f871"}.bi-building-fill-lock:before{content:"\f872"}.bi-building-fill-slash:before{content:"\f873"}.bi-building-fill-up:before{content:"\f874"}.bi-building-fill-x:before{content:"\f875"}.bi-building-fill:before{content:"\f876"}.bi-building-gear:before{content:"\f877"}.bi-building-lock:before{content:"\f878"}.bi-building-slash:before{content:"\f879"}.bi-building-up:before{content:"\f87a"}.bi-building-x:before{content:"\f87b"}.bi-buildings-fill:before{content:"\f87c"}.bi-buildings:before{content:"\f87d"}.bi-bus-front-fill:before{content:"\f87e"}.bi-bus-front:before{content:"\f87f"}.bi-ev-front-fill:before{content:"\f880"}.bi-ev-front:before{content:"\f881"}.bi-globe-americas:before{content:"\f882"}.bi-globe-asia-australia:before{content:"\f883"}.bi-globe-central-south-asia:before{content:"\f884"}.bi-globe-europe-africa:before{content:"\f885"}.bi-house-add-fill:before{content:"\f886"}.bi-house-add:before{content:"\f887"}.bi-house-check-fill:before{content:"\f888"}.bi-house-check:before{content:"\f889"}.bi-house-dash-fill:before{content:"\f88a"}.bi-house-dash:before{content:"\f88b"}.bi-house-down-fill:before{content:"\f88c"}.bi-house-down:before{content:"\f88d"}.bi-house-exclamation-fill:before{content:"\f88e"}.bi-house-exclamation:before{content:"\f88f"}.bi-house-gear-fill:before{content:"\f890"}.bi-house-gear:before{content:"\f891"}.bi-house-lock-fill:before{content:"\f892"}.bi-house-lock:before{content:"\f893"}.bi-house-slash-fill:before{content:"\f894"}.bi-house-slash:before{content:"\f895"}.bi-house-up-fill:before{content:"\f896"}.bi-house-up:before{content:"\f897"}.bi-house-x-fill:before{content:"\f898"}.bi-house-x:before{content:"\f899"}.bi-person-add:before{content:"\f89a"}.bi-person-down:before{content:"\f89b"}.bi-person-exclamation:before{content:"\f89c"}.bi-person-fill-add:before{content:"\f89d"}.bi-person-fill-check:before{content:"\f89e"}.bi-person-fill-dash:before{content:"\f89f"}.bi-person-fill-down:before{content:"\f8a0"}.bi-person-fill-exclamation:before{content:"\f8a1"}.bi-person-fill-gear:before{content:"\f8a2"}.bi-person-fill-lock:before{content:"\f8a3"}.bi-person-fill-slash:before{content:"\f8a4"}.bi-person-fill-up:before{content:"\f8a5"}.bi-person-fill-x:before{content:"\f8a6"}.bi-person-gear:before{content:"\f8a7"}.bi-person-lock:before{content:"\f8a8"}.bi-person-slash:before{content:"\f8a9"}.bi-person-up:before{content:"\f8aa"}.bi-scooter:before{content:"\f8ab"}.bi-taxi-front-fill:before{content:"\f8ac"}.bi-taxi-front:before{content:"\f8ad"}.bi-amd:before{content:"\f8ae"}.bi-database-add:before{content:"\f8af"}.bi-database-check:before{content:"\f8b0"}.bi-database-dash:before{content:"\f8b1"}.bi-database-down:before{content:"\f8b2"}.bi-database-exclamation:before{content:"\f8b3"}.bi-database-fill-add:before{content:"\f8b4"}.bi-database-fill-check:before{content:"\f8b5"}.bi-database-fill-dash:before{content:"\f8b6"}.bi-database-fill-down:before{content:"\f8b7"}.bi-database-fill-exclamation:before{content:"\f8b8"}.bi-database-fill-gear:before{content:"\f8b9"}.bi-database-fill-lock:before{content:"\f8ba"}.bi-database-fill-slash:before{content:"\f8bb"}.bi-database-fill-up:before{content:"\f8bc"}.bi-database-fill-x:before{content:"\f8bd"}.bi-database-fill:before{content:"\f8be"}.bi-database-gear:before{content:"\f8bf"}.bi-database-lock:before{content:"\f8c0"}.bi-database-slash:before{content:"\f8c1"}.bi-database-up:before{content:"\f8c2"}.bi-database-x:before{content:"\f8c3"}.bi-database:before{content:"\f8c4"}.bi-houses-fill:before{content:"\f8c5"}.bi-houses:before{content:"\f8c6"}.bi-nvidia:before{content:"\f8c7"}.bi-person-vcard-fill:before{content:"\f8c8"}.bi-person-vcard:before{content:"\f8c9"}.bi-sina-weibo:before{content:"\f8ca"}.bi-tencent-qq:before{content:"\f8cb"}.bi-wikipedia:before{content:"\f8cc"}.bi-alphabet-uppercase:before{content:"\f2a5"}.bi-alphabet:before{content:"\f68a"}.bi-amazon:before{content:"\f68d"}.bi-arrows-collapse-vertical:before{content:"\f690"}.bi-arrows-expand-vertical:before{content:"\f695"}.bi-arrows-vertical:before{content:"\f698"}.bi-arrows:before{content:"\f6a2"}.bi-ban-fill:before{content:"\f6a3"}.bi-ban:before{content:"\f6b6"}.bi-bing:before{content:"\f6c2"}.bi-cake:before{content:"\f6e0"}.bi-cake2:before{content:"\f6ed"}.bi-cookie:before{content:"\f6ee"}.bi-copy:before{content:"\f759"}.bi-crosshair:before{content:"\f769"}.bi-crosshair2:before{content:"\f794"}.bi-emoji-astonished-fill:before{content:"\f795"}.bi-emoji-astonished:before{content:"\f79a"}.bi-emoji-grimace-fill:before{content:"\f79b"}.bi-emoji-grimace:before{content:"\f7a0"}.bi-emoji-grin-fill:before{content:"\f7a1"}.bi-emoji-grin:before{content:"\f7a6"}.bi-emoji-surprise-fill:before{content:"\f7a7"}.bi-emoji-surprise:before{content:"\f7ac"}.bi-emoji-tear-fill:before{content:"\f7ad"}.bi-emoji-tear:before{content:"\f7b2"}.bi-envelope-arrow-down-fill:before{content:"\f7b3"}.bi-envelope-arrow-down:before{content:"\f7b8"}.bi-envelope-arrow-up-fill:before{content:"\f7b9"}.bi-envelope-arrow-up:before{content:"\f7be"}.bi-feather:before{content:"\f7bf"}.bi-feather2:before{content:"\f7c4"}.bi-floppy-fill:before{content:"\f7c5"}.bi-floppy:before{content:"\f7d8"}.bi-floppy2-fill:before{content:"\f7d9"}.bi-floppy2:before{content:"\f7e4"}.bi-gitlab:before{content:"\f7e5"}.bi-highlighter:before{content:"\f7f8"}.bi-marker-tip:before{content:"\f802"}.bi-nvme-fill:before{content:"\f803"}.bi-nvme:before{content:"\f80c"}.bi-opencollective:before{content:"\f80d"}.bi-pci-card-network:before{content:"\f8cd"}.bi-pci-card-sound:before{content:"\f8ce"}.bi-radar:before{content:"\f8cf"}.bi-send-arrow-down-fill:before{content:"\f8d0"}.bi-send-arrow-down:before{content:"\f8d1"}.bi-send-arrow-up-fill:before{content:"\f8d2"}.bi-send-arrow-up:before{content:"\f8d3"}.bi-sim-slash-fill:before{content:"\f8d4"}.bi-sim-slash:before{content:"\f8d5"}.bi-sourceforge:before{content:"\f8d6"}.bi-substack:before{content:"\f8d7"}.bi-threads-fill:before{content:"\f8d8"}.bi-threads:before{content:"\f8d9"}.bi-transparency:before{content:"\f8da"}.bi-twitter-x:before{content:"\f8db"}.bi-type-h4:before{content:"\f8dc"}.bi-type-h5:before{content:"\f8dd"}.bi-type-h6:before{content:"\f8de"}.bi-backpack-fill:before{content:"\f8df"}.bi-backpack:before{content:"\f8e0"}.bi-backpack2-fill:before{content:"\f8e1"}.bi-backpack2:before{content:"\f8e2"}.bi-backpack3-fill:before{content:"\f8e3"}.bi-backpack3:before{content:"\f8e4"}.bi-backpack4-fill:before{content:"\f8e5"}.bi-backpack4:before{content:"\f8e6"}.bi-brilliance:before{content:"\f8e7"}.bi-cake-fill:before{content:"\f8e8"}.bi-cake2-fill:before{content:"\f8e9"}.bi-duffle-fill:before{content:"\f8ea"}.bi-duffle:before{content:"\f8eb"}.bi-exposure:before{content:"\f8ec"}.bi-gender-neuter:before{content:"\f8ed"}.bi-highlights:before{content:"\f8ee"}.bi-luggage-fill:before{content:"\f8ef"}.bi-luggage:before{content:"\f8f0"}.bi-mailbox-flag:before{content:"\f8f1"}.bi-mailbox2-flag:before{content:"\f8f2"}.bi-noise-reduction:before{content:"\f8f3"}.bi-passport-fill:before{content:"\f8f4"}.bi-passport:before{content:"\f8f5"}.bi-person-arms-up:before{content:"\f8f6"}.bi-person-raised-hand:before{content:"\f8f7"}.bi-person-standing-dress:before{content:"\f8f8"}.bi-person-standing:before{content:"\f8f9"}.bi-person-walking:before{content:"\f8fa"}.bi-person-wheelchair:before{content:"\f8fb"}.bi-shadows:before{content:"\f8fc"}.bi-suitcase-fill:before{content:"\f8fd"}.bi-suitcase-lg-fill:before{content:"\f8fe"}.bi-suitcase-lg:before{content:"\f8ff"}.bi-suitcase:before{content:"豈"}.bi-suitcase2-fill:before{content:"更"}.bi-suitcase2:before{content:"車"}.bi-vignette:before{content:"賈"}.bi-bluesky:before{content:"\f7f9"}.bi-tux:before{content:"滑"}.bi-beaker-fill:before{content:"串"}.bi-beaker:before{content:"句"}.bi-flask-fill:before{content:"龜"}.bi-flask-florence-fill:before{content:"龜"}.bi-flask-florence:before{content:"契"}.bi-flask:before{content:"金"}.bi-leaf-fill:before{content:"喇"}.bi-leaf:before{content:"奈"}.bi-measuring-cup-fill:before{content:"懶"}.bi-measuring-cup:before{content:"癩"}.bi-unlock2-fill:before{content:"羅"}.bi-unlock2:before{content:"蘿"}.bi-battery-low:before{content:"螺"}.bi-anthropic:before{content:"裸"}.bi-apple-music:before{content:"邏"}.bi-claude:before{content:"樂"}.bi-openai:before{content:"洛"}.bi-perplexity:before{content:"烙"}.bi-css:before{content:"珞"}.bi-javascript:before{content:"落"}.bi-typescript:before{content:"酪"}.bi-fork-knife:before{content:"駱"}.bi-globe-americas-fill:before{content:"亂"}.bi-globe-asia-australia-fill:before{content:"卵"}.bi-globe-central-south-asia-fill:before{content:"欄"}.bi-globe-europe-africa-fill:before{content:"爛"}:root{--dt-row-selected:13,110,253;--dt-row-selected-text:255,255,255;--dt-row-selected-link:9,10,11;--dt-row-stripe:0,0,0;--dt-row-hover:0,0,0;--dt-column-ordering:0,0,0;--dt-html-background:#fff}:root.dark{--dt-html-background:#212529}table.dataTable td.dt-control{cursor:pointer;text-align:center}table.dataTable td.dt-control:before{color:rgba(0,0,0,.5);content:"▶";display:inline-block}table.dataTable tr.dt-hasChild td.dt-control:before{content:"▼"}:root[data-bs-theme=dark] table.dataTable td.dt-control:before,:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before,html.dark table.dataTable td.dt-control:before,html.dark table.dataTable tr.dt-hasChild td.dt-control:before{color:hsla(0,0%,100%,.5)}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_desc_disabled,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_desc_disabled{cursor:pointer;padding-right:26px;position:relative}table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before{display:block;font-size:.8em;line-height:9px;opacity:.125;position:absolute;right:10px}table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc_disabled:before{bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_desc_disabled:after{content:"▼";content:"▼"/"";top:50%}table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after{opacity:.6}table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after{display:none}table.dataTable thead>tr>td:active,table.dataTable thead>tr>th:active{outline:none}div.dataTables_scrollBody>table.dataTable>thead>tr>td:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>th:before{display:none}div.dataTables_processing{left:50%;margin-left:-100px;margin-top:-26px;padding:2px;position:absolute;text-align:center;top:50%;width:200px;z-index:10}div.dataTables_processing>div:last-child{height:15px;margin:1em auto;position:relative;width:80px}div.dataTables_processing>div:last-child>div{animation-timing-function:cubic-bezier(0,1,1,0);background:#0d6efd;background:rgb(var(--dt-row-selected));border-radius:50%;height:13px;position:absolute;top:0;width:13px}div.dataTables_processing>div:last-child>div:first-child{animation:datatables-loader-1 .6s infinite;left:8px}div.dataTables_processing>div:last-child>div:nth-child(2){animation:datatables-loader-2 .6s infinite;left:8px}div.dataTables_processing>div:last-child>div:nth-child(3){animation:datatables-loader-2 .6s infinite;left:32px}div.dataTables_processing>div:last-child>div:nth-child(4){animation:datatables-loader-3 .6s infinite;left:56px}@keyframes datatables-loader-1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0)}to{transform:translate(24px)}}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td,table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th,table.dataTable tfoot th.dt-head-left,table.dataTable thead td,table.dataTable thead td.dt-head-left,table.dataTable thead th,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable{border-collapse:separate;border-spacing:0;clear:both;margin:0 auto;width:100%}table.dataTable tfoot th,table.dataTable thead th{font-weight:700}table.dataTable>thead>tr>td,table.dataTable>thead>tr>th{padding:10px}table.dataTable>thead>tr>td:active,table.dataTable>thead>tr>th:active{outline:none}table.dataTable>tfoot>tr>td,table.dataTable>tfoot>tr>th{padding:10px 10px 6px}table.dataTable tbody tr{background-color:transparent}table.dataTable tbody tr.selected>*{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.9);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.9);color:#fff;color:rgb(var(--dt-row-selected-text))}table.dataTable tbody tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable tbody td,table.dataTable tbody th{padding:8px 10px}table.dataTable.display>tbody>tr>td,table.dataTable.display>tbody>tr>th,table.dataTable.row-border>tbody>tr>td,table.dataTable.row-border>tbody>tr>th{border-top:1px solid rgba(0,0,0,.15)}table.dataTable.display>tbody>tr:first-child>td,table.dataTable.display>tbody>tr:first-child>th,table.dataTable.row-border>tbody>tr:first-child>td,table.dataTable.row-border>tbody>tr:first-child>th{border-top:none}table.dataTable.display>tbody>tr.selected+tr.selected>td,table.dataTable.row-border>tbody>tr.selected+tr.selected>td{border-top-color:rgba(13,110,253,.65);border-top-color:rgba(var(--dt-row-selected),.65)}table.dataTable.cell-border>tbody>tr>td,table.dataTable.cell-border>tbody>tr>th{border-right:1px solid rgba(0,0,0,.15);border-top:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr>td:first-child,table.dataTable.cell-border>tbody>tr>th:first-child{border-left:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr:first-child>td,table.dataTable.cell-border>tbody>tr:first-child>th{border-top:none}table.dataTable.display>tbody>tr.odd>*,table.dataTable.stripe>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.023);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe),.023)}table.dataTable.display>tbody>tr.odd.selected>*,table.dataTable.stripe>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.923)}table.dataTable.display>tbody>tr:hover>*,table.dataTable.hover>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.035);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.035)}table.dataTable.display>tbody>tr.selected:hover>*,table.dataTable.hover>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd!important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),1)!important}table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3,table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.019);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3,table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr.odd>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.054);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.054)}table.dataTable.display>tbody>tr.odd>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.047);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.047)}table.dataTable.display>tbody>tr.odd>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.039);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.039)}table.dataTable.display>tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.954);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.954)}table.dataTable.display>tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.947);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.947)}table.dataTable.display>tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.939);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.939)}table.dataTable.display>tbody>tr.even>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.019);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.display>tbody>tr.even>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.011);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.011)}table.dataTable.display>tbody>tr.even>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.003);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.003)}table.dataTable.display>tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.911);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.911)}table.dataTable.display>tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.903);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.903)}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.082);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.082)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.074);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.074)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.062);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.062)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.982);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.982)}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.974);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.974)}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.962);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.962)}table.dataTable.no-footer{border-bottom:1px solid rgba(0,0,0,.3)}table.dataTable.compact tbody td,table.dataTable.compact tbody th,table.dataTable.compact tfoot td,table.dataTable.compact tfoot th,table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px}table.dataTable td,table.dataTable th{box-sizing:content-box}.dataTables_wrapper{clear:both;position:relative}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{background-color:transparent;border:1px solid #aaa;border-radius:3px;color:inherit;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{background-color:transparent;border:1px solid #aaa;border-radius:3px;color:inherit;margin-left:3px;padding:5px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;padding-top:.25em;text-align:right}.dataTables_wrapper .dataTables_paginate .paginate_button{background:transparent;border:1px solid transparent;border-radius:2px;box-sizing:border-box;color:inherit!important;cursor:pointer;display:inline-block;margin-left:2px;min-width:1.5em;padding:.5em 1em;text-align:center;text-decoration:none!important}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background-color:rgba(0,0,0,.05);background:linear-gradient(180deg,hsla(0,0%,90%,.05) 0,rgba(0,0,0,.05));border:1px solid rgba(0,0,0,.3);color:inherit!important}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:transparent;border:1px solid transparent;box-shadow:none;color:#666!important;cursor:default}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background-color:#111;background:linear-gradient(180deg,#585858 0,#111);border:1px solid #111;color:#fff!important}.dataTables_wrapper .dataTables_paginate .paginate_button:active{background-color:#0c0c0c;background:linear-gradient(180deg,#2b2b2b 0,#0c0c0c);box-shadow:inset 0 0 3px #111;outline:none}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing{height:0;margin:0!important;overflow:hidden;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid rgba(0,0,0,.3)}.dataTables_wrapper.no-footer div.dataTables_scrollBody>table,.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable{border-bottom:none}.dataTables_wrapper:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}html.dark{--dt-row-hover:255,255,255;--dt-row-stripe:255,255,255;--dt-column-ordering:255,255,255}html.dark table.dataTable>thead>tr>td:active,html.dark table.dataTable>thead>tr>th:active{outline:none}html.dark table.dataTable.display>tbody>tr>td,html.dark table.dataTable.display>tbody>tr>th,html.dark table.dataTable.row-border>tbody>tr>td,html.dark table.dataTable.row-border>tbody>tr>th{border-top:1px solid #404346}html.dark table.dataTable.display>tbody>tr.selected+tr.selected>td,html.dark table.dataTable.row-border>tbody>tr.selected+tr.selected>td{border-top-color:rgba(13,110,253,.65);border-top-color:rgba(var(--dt-row-selected),.65)}html.dark table.dataTable.cell-border>tbody>tr>td,html.dark table.dataTable.cell-border>tbody>tr>th{border-right:1px solid #404346;border-top:1px solid #404346}html.dark table.dataTable.cell-border>tbody>tr>td:first-child,html.dark table.dataTable.cell-border>tbody>tr>th:first-child{border-left:1px solid #404346}html.dark .dataTables_wrapper .dataTables_filter input,html.dark .dataTables_wrapper .dataTables_length select{background-color:var(--dt-html-background);border:1px solid hsla(0,0%,100%,.2)}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:hsla(0,0%,100%,.15);border:1px solid #595b5e}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:#666!important}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#353535;border:1px solid #353535}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:active{background:#3a3a3a}table.dataTable thead th div.DataTables_sort_wrapper{position:relative}table.dataTable thead th div.DataTables_sort_wrapper span{margin-top:-8px;position:absolute;right:-18px;top:50%}table.dataTable tfoot th.ui-state-default,table.dataTable thead th.ui-state-default{border-left-width:0}table.dataTable tfoot th.ui-state-default:first-child,table.dataTable thead th.ui-state-default:first-child{border-left-width:1px}.dataTables_wrapper .dataTables_paginate .fg-button{border:1px solid transparent;box-sizing:border-box;cursor:pointer;display:inline-block;margin-left:2px;min-width:1.5em;padding:.5em;text-align:center;text-decoration:none!important}.dataTables_wrapper .dataTables_paginate .fg-button:active{outline:none}.dataTables_wrapper .dataTables_paginate .fg-button:first-child{border-bottom-left-radius:3px;border-top-left-radius:3px}.dataTables_wrapper .dataTables_paginate .fg-button:last-child{border-bottom-right-radius:3px;border-top-right-radius:3px}.dataTables_wrapper .ui-widget-header{font-weight:400}.dataTables_wrapper .ui-toolbar{padding:8px}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:inherit} + */ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url(/fonts/vendor/bootstrap-icons/bootstrap-icons.woff2?92ea18a81d737146ff044ddb52010366) format("woff2"), url(/fonts/vendor/bootstrap-icons/bootstrap-icons.woff?1295669cd4e305c97f2cfc16d56614b8) format("woff"); +} +.bi::before, +[class^=bi-]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: "bootstrap-icons" !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -0.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { + content: "\f67f"; +} + +.bi-alarm-fill::before { + content: "\f101"; +} + +.bi-alarm::before { + content: "\f102"; +} + +.bi-align-bottom::before { + content: "\f103"; +} + +.bi-align-center::before { + content: "\f104"; +} + +.bi-align-end::before { + content: "\f105"; +} + +.bi-align-middle::before { + content: "\f106"; +} + +.bi-align-start::before { + content: "\f107"; +} + +.bi-align-top::before { + content: "\f108"; +} + +.bi-alt::before { + content: "\f109"; +} + +.bi-app-indicator::before { + content: "\f10a"; +} + +.bi-app::before { + content: "\f10b"; +} + +.bi-archive-fill::before { + content: "\f10c"; +} + +.bi-archive::before { + content: "\f10d"; +} + +.bi-arrow-90deg-down::before { + content: "\f10e"; +} + +.bi-arrow-90deg-left::before { + content: "\f10f"; +} + +.bi-arrow-90deg-right::before { + content: "\f110"; +} + +.bi-arrow-90deg-up::before { + content: "\f111"; +} + +.bi-arrow-bar-down::before { + content: "\f112"; +} + +.bi-arrow-bar-left::before { + content: "\f113"; +} + +.bi-arrow-bar-right::before { + content: "\f114"; +} + +.bi-arrow-bar-up::before { + content: "\f115"; +} + +.bi-arrow-clockwise::before { + content: "\f116"; +} + +.bi-arrow-counterclockwise::before { + content: "\f117"; +} + +.bi-arrow-down-circle-fill::before { + content: "\f118"; +} + +.bi-arrow-down-circle::before { + content: "\f119"; +} + +.bi-arrow-down-left-circle-fill::before { + content: "\f11a"; +} + +.bi-arrow-down-left-circle::before { + content: "\f11b"; +} + +.bi-arrow-down-left-square-fill::before { + content: "\f11c"; +} + +.bi-arrow-down-left-square::before { + content: "\f11d"; +} + +.bi-arrow-down-left::before { + content: "\f11e"; +} + +.bi-arrow-down-right-circle-fill::before { + content: "\f11f"; +} + +.bi-arrow-down-right-circle::before { + content: "\f120"; +} + +.bi-arrow-down-right-square-fill::before { + content: "\f121"; +} + +.bi-arrow-down-right-square::before { + content: "\f122"; +} + +.bi-arrow-down-right::before { + content: "\f123"; +} + +.bi-arrow-down-short::before { + content: "\f124"; +} + +.bi-arrow-down-square-fill::before { + content: "\f125"; +} + +.bi-arrow-down-square::before { + content: "\f126"; +} + +.bi-arrow-down-up::before { + content: "\f127"; +} + +.bi-arrow-down::before { + content: "\f128"; +} + +.bi-arrow-left-circle-fill::before { + content: "\f129"; +} + +.bi-arrow-left-circle::before { + content: "\f12a"; +} + +.bi-arrow-left-right::before { + content: "\f12b"; +} + +.bi-arrow-left-short::before { + content: "\f12c"; +} + +.bi-arrow-left-square-fill::before { + content: "\f12d"; +} + +.bi-arrow-left-square::before { + content: "\f12e"; +} + +.bi-arrow-left::before { + content: "\f12f"; +} + +.bi-arrow-repeat::before { + content: "\f130"; +} + +.bi-arrow-return-left::before { + content: "\f131"; +} + +.bi-arrow-return-right::before { + content: "\f132"; +} + +.bi-arrow-right-circle-fill::before { + content: "\f133"; +} + +.bi-arrow-right-circle::before { + content: "\f134"; +} + +.bi-arrow-right-short::before { + content: "\f135"; +} + +.bi-arrow-right-square-fill::before { + content: "\f136"; +} + +.bi-arrow-right-square::before { + content: "\f137"; +} + +.bi-arrow-right::before { + content: "\f138"; +} + +.bi-arrow-up-circle-fill::before { + content: "\f139"; +} + +.bi-arrow-up-circle::before { + content: "\f13a"; +} + +.bi-arrow-up-left-circle-fill::before { + content: "\f13b"; +} + +.bi-arrow-up-left-circle::before { + content: "\f13c"; +} + +.bi-arrow-up-left-square-fill::before { + content: "\f13d"; +} + +.bi-arrow-up-left-square::before { + content: "\f13e"; +} + +.bi-arrow-up-left::before { + content: "\f13f"; +} + +.bi-arrow-up-right-circle-fill::before { + content: "\f140"; +} + +.bi-arrow-up-right-circle::before { + content: "\f141"; +} + +.bi-arrow-up-right-square-fill::before { + content: "\f142"; +} + +.bi-arrow-up-right-square::before { + content: "\f143"; +} + +.bi-arrow-up-right::before { + content: "\f144"; +} + +.bi-arrow-up-short::before { + content: "\f145"; +} + +.bi-arrow-up-square-fill::before { + content: "\f146"; +} + +.bi-arrow-up-square::before { + content: "\f147"; +} + +.bi-arrow-up::before { + content: "\f148"; +} + +.bi-arrows-angle-contract::before { + content: "\f149"; +} + +.bi-arrows-angle-expand::before { + content: "\f14a"; +} + +.bi-arrows-collapse::before { + content: "\f14b"; +} + +.bi-arrows-expand::before { + content: "\f14c"; +} + +.bi-arrows-fullscreen::before { + content: "\f14d"; +} + +.bi-arrows-move::before { + content: "\f14e"; +} + +.bi-aspect-ratio-fill::before { + content: "\f14f"; +} + +.bi-aspect-ratio::before { + content: "\f150"; +} + +.bi-asterisk::before { + content: "\f151"; +} + +.bi-at::before { + content: "\f152"; +} + +.bi-award-fill::before { + content: "\f153"; +} + +.bi-award::before { + content: "\f154"; +} + +.bi-back::before { + content: "\f155"; +} + +.bi-backspace-fill::before { + content: "\f156"; +} + +.bi-backspace-reverse-fill::before { + content: "\f157"; +} + +.bi-backspace-reverse::before { + content: "\f158"; +} + +.bi-backspace::before { + content: "\f159"; +} + +.bi-badge-3d-fill::before { + content: "\f15a"; +} + +.bi-badge-3d::before { + content: "\f15b"; +} + +.bi-badge-4k-fill::before { + content: "\f15c"; +} + +.bi-badge-4k::before { + content: "\f15d"; +} + +.bi-badge-8k-fill::before { + content: "\f15e"; +} + +.bi-badge-8k::before { + content: "\f15f"; +} + +.bi-badge-ad-fill::before { + content: "\f160"; +} + +.bi-badge-ad::before { + content: "\f161"; +} + +.bi-badge-ar-fill::before { + content: "\f162"; +} + +.bi-badge-ar::before { + content: "\f163"; +} + +.bi-badge-cc-fill::before { + content: "\f164"; +} + +.bi-badge-cc::before { + content: "\f165"; +} + +.bi-badge-hd-fill::before { + content: "\f166"; +} + +.bi-badge-hd::before { + content: "\f167"; +} + +.bi-badge-tm-fill::before { + content: "\f168"; +} + +.bi-badge-tm::before { + content: "\f169"; +} + +.bi-badge-vo-fill::before { + content: "\f16a"; +} + +.bi-badge-vo::before { + content: "\f16b"; +} + +.bi-badge-vr-fill::before { + content: "\f16c"; +} + +.bi-badge-vr::before { + content: "\f16d"; +} + +.bi-badge-wc-fill::before { + content: "\f16e"; +} + +.bi-badge-wc::before { + content: "\f16f"; +} + +.bi-bag-check-fill::before { + content: "\f170"; +} + +.bi-bag-check::before { + content: "\f171"; +} + +.bi-bag-dash-fill::before { + content: "\f172"; +} + +.bi-bag-dash::before { + content: "\f173"; +} + +.bi-bag-fill::before { + content: "\f174"; +} + +.bi-bag-plus-fill::before { + content: "\f175"; +} + +.bi-bag-plus::before { + content: "\f176"; +} + +.bi-bag-x-fill::before { + content: "\f177"; +} + +.bi-bag-x::before { + content: "\f178"; +} + +.bi-bag::before { + content: "\f179"; +} + +.bi-bar-chart-fill::before { + content: "\f17a"; +} + +.bi-bar-chart-line-fill::before { + content: "\f17b"; +} + +.bi-bar-chart-line::before { + content: "\f17c"; +} + +.bi-bar-chart-steps::before { + content: "\f17d"; +} + +.bi-bar-chart::before { + content: "\f17e"; +} + +.bi-basket-fill::before { + content: "\f17f"; +} + +.bi-basket::before { + content: "\f180"; +} + +.bi-basket2-fill::before { + content: "\f181"; +} + +.bi-basket2::before { + content: "\f182"; +} + +.bi-basket3-fill::before { + content: "\f183"; +} + +.bi-basket3::before { + content: "\f184"; +} + +.bi-battery-charging::before { + content: "\f185"; +} + +.bi-battery-full::before { + content: "\f186"; +} + +.bi-battery-half::before { + content: "\f187"; +} + +.bi-battery::before { + content: "\f188"; +} + +.bi-bell-fill::before { + content: "\f189"; +} + +.bi-bell::before { + content: "\f18a"; +} + +.bi-bezier::before { + content: "\f18b"; +} + +.bi-bezier2::before { + content: "\f18c"; +} + +.bi-bicycle::before { + content: "\f18d"; +} + +.bi-binoculars-fill::before { + content: "\f18e"; +} + +.bi-binoculars::before { + content: "\f18f"; +} + +.bi-blockquote-left::before { + content: "\f190"; +} + +.bi-blockquote-right::before { + content: "\f191"; +} + +.bi-book-fill::before { + content: "\f192"; +} + +.bi-book-half::before { + content: "\f193"; +} + +.bi-book::before { + content: "\f194"; +} + +.bi-bookmark-check-fill::before { + content: "\f195"; +} + +.bi-bookmark-check::before { + content: "\f196"; +} + +.bi-bookmark-dash-fill::before { + content: "\f197"; +} + +.bi-bookmark-dash::before { + content: "\f198"; +} + +.bi-bookmark-fill::before { + content: "\f199"; +} + +.bi-bookmark-heart-fill::before { + content: "\f19a"; +} + +.bi-bookmark-heart::before { + content: "\f19b"; +} + +.bi-bookmark-plus-fill::before { + content: "\f19c"; +} + +.bi-bookmark-plus::before { + content: "\f19d"; +} + +.bi-bookmark-star-fill::before { + content: "\f19e"; +} + +.bi-bookmark-star::before { + content: "\f19f"; +} + +.bi-bookmark-x-fill::before { + content: "\f1a0"; +} + +.bi-bookmark-x::before { + content: "\f1a1"; +} + +.bi-bookmark::before { + content: "\f1a2"; +} + +.bi-bookmarks-fill::before { + content: "\f1a3"; +} + +.bi-bookmarks::before { + content: "\f1a4"; +} + +.bi-bookshelf::before { + content: "\f1a5"; +} + +.bi-bootstrap-fill::before { + content: "\f1a6"; +} + +.bi-bootstrap-reboot::before { + content: "\f1a7"; +} + +.bi-bootstrap::before { + content: "\f1a8"; +} + +.bi-border-all::before { + content: "\f1a9"; +} + +.bi-border-bottom::before { + content: "\f1aa"; +} + +.bi-border-center::before { + content: "\f1ab"; +} + +.bi-border-inner::before { + content: "\f1ac"; +} + +.bi-border-left::before { + content: "\f1ad"; +} + +.bi-border-middle::before { + content: "\f1ae"; +} + +.bi-border-outer::before { + content: "\f1af"; +} + +.bi-border-right::before { + content: "\f1b0"; +} + +.bi-border-style::before { + content: "\f1b1"; +} + +.bi-border-top::before { + content: "\f1b2"; +} + +.bi-border-width::before { + content: "\f1b3"; +} + +.bi-border::before { + content: "\f1b4"; +} + +.bi-bounding-box-circles::before { + content: "\f1b5"; +} + +.bi-bounding-box::before { + content: "\f1b6"; +} + +.bi-box-arrow-down-left::before { + content: "\f1b7"; +} + +.bi-box-arrow-down-right::before { + content: "\f1b8"; +} + +.bi-box-arrow-down::before { + content: "\f1b9"; +} + +.bi-box-arrow-in-down-left::before { + content: "\f1ba"; +} + +.bi-box-arrow-in-down-right::before { + content: "\f1bb"; +} + +.bi-box-arrow-in-down::before { + content: "\f1bc"; +} + +.bi-box-arrow-in-left::before { + content: "\f1bd"; +} + +.bi-box-arrow-in-right::before { + content: "\f1be"; +} + +.bi-box-arrow-in-up-left::before { + content: "\f1bf"; +} + +.bi-box-arrow-in-up-right::before { + content: "\f1c0"; +} + +.bi-box-arrow-in-up::before { + content: "\f1c1"; +} + +.bi-box-arrow-left::before { + content: "\f1c2"; +} + +.bi-box-arrow-right::before { + content: "\f1c3"; +} + +.bi-box-arrow-up-left::before { + content: "\f1c4"; +} + +.bi-box-arrow-up-right::before { + content: "\f1c5"; +} + +.bi-box-arrow-up::before { + content: "\f1c6"; +} + +.bi-box-seam::before { + content: "\f1c7"; +} + +.bi-box::before { + content: "\f1c8"; +} + +.bi-braces::before { + content: "\f1c9"; +} + +.bi-bricks::before { + content: "\f1ca"; +} + +.bi-briefcase-fill::before { + content: "\f1cb"; +} + +.bi-briefcase::before { + content: "\f1cc"; +} + +.bi-brightness-alt-high-fill::before { + content: "\f1cd"; +} + +.bi-brightness-alt-high::before { + content: "\f1ce"; +} + +.bi-brightness-alt-low-fill::before { + content: "\f1cf"; +} + +.bi-brightness-alt-low::before { + content: "\f1d0"; +} + +.bi-brightness-high-fill::before { + content: "\f1d1"; +} + +.bi-brightness-high::before { + content: "\f1d2"; +} + +.bi-brightness-low-fill::before { + content: "\f1d3"; +} + +.bi-brightness-low::before { + content: "\f1d4"; +} + +.bi-broadcast-pin::before { + content: "\f1d5"; +} + +.bi-broadcast::before { + content: "\f1d6"; +} + +.bi-brush-fill::before { + content: "\f1d7"; +} + +.bi-brush::before { + content: "\f1d8"; +} + +.bi-bucket-fill::before { + content: "\f1d9"; +} + +.bi-bucket::before { + content: "\f1da"; +} + +.bi-bug-fill::before { + content: "\f1db"; +} + +.bi-bug::before { + content: "\f1dc"; +} + +.bi-building::before { + content: "\f1dd"; +} + +.bi-bullseye::before { + content: "\f1de"; +} + +.bi-calculator-fill::before { + content: "\f1df"; +} + +.bi-calculator::before { + content: "\f1e0"; +} + +.bi-calendar-check-fill::before { + content: "\f1e1"; +} + +.bi-calendar-check::before { + content: "\f1e2"; +} + +.bi-calendar-date-fill::before { + content: "\f1e3"; +} + +.bi-calendar-date::before { + content: "\f1e4"; +} + +.bi-calendar-day-fill::before { + content: "\f1e5"; +} + +.bi-calendar-day::before { + content: "\f1e6"; +} + +.bi-calendar-event-fill::before { + content: "\f1e7"; +} + +.bi-calendar-event::before { + content: "\f1e8"; +} + +.bi-calendar-fill::before { + content: "\f1e9"; +} + +.bi-calendar-minus-fill::before { + content: "\f1ea"; +} + +.bi-calendar-minus::before { + content: "\f1eb"; +} + +.bi-calendar-month-fill::before { + content: "\f1ec"; +} + +.bi-calendar-month::before { + content: "\f1ed"; +} + +.bi-calendar-plus-fill::before { + content: "\f1ee"; +} + +.bi-calendar-plus::before { + content: "\f1ef"; +} + +.bi-calendar-range-fill::before { + content: "\f1f0"; +} + +.bi-calendar-range::before { + content: "\f1f1"; +} + +.bi-calendar-week-fill::before { + content: "\f1f2"; +} + +.bi-calendar-week::before { + content: "\f1f3"; +} + +.bi-calendar-x-fill::before { + content: "\f1f4"; +} + +.bi-calendar-x::before { + content: "\f1f5"; +} + +.bi-calendar::before { + content: "\f1f6"; +} + +.bi-calendar2-check-fill::before { + content: "\f1f7"; +} + +.bi-calendar2-check::before { + content: "\f1f8"; +} + +.bi-calendar2-date-fill::before { + content: "\f1f9"; +} + +.bi-calendar2-date::before { + content: "\f1fa"; +} + +.bi-calendar2-day-fill::before { + content: "\f1fb"; +} + +.bi-calendar2-day::before { + content: "\f1fc"; +} + +.bi-calendar2-event-fill::before { + content: "\f1fd"; +} + +.bi-calendar2-event::before { + content: "\f1fe"; +} + +.bi-calendar2-fill::before { + content: "\f1ff"; +} + +.bi-calendar2-minus-fill::before { + content: "\f200"; +} + +.bi-calendar2-minus::before { + content: "\f201"; +} + +.bi-calendar2-month-fill::before { + content: "\f202"; +} + +.bi-calendar2-month::before { + content: "\f203"; +} + +.bi-calendar2-plus-fill::before { + content: "\f204"; +} + +.bi-calendar2-plus::before { + content: "\f205"; +} + +.bi-calendar2-range-fill::before { + content: "\f206"; +} + +.bi-calendar2-range::before { + content: "\f207"; +} + +.bi-calendar2-week-fill::before { + content: "\f208"; +} + +.bi-calendar2-week::before { + content: "\f209"; +} + +.bi-calendar2-x-fill::before { + content: "\f20a"; +} + +.bi-calendar2-x::before { + content: "\f20b"; +} + +.bi-calendar2::before { + content: "\f20c"; +} + +.bi-calendar3-event-fill::before { + content: "\f20d"; +} + +.bi-calendar3-event::before { + content: "\f20e"; +} + +.bi-calendar3-fill::before { + content: "\f20f"; +} + +.bi-calendar3-range-fill::before { + content: "\f210"; +} + +.bi-calendar3-range::before { + content: "\f211"; +} + +.bi-calendar3-week-fill::before { + content: "\f212"; +} + +.bi-calendar3-week::before { + content: "\f213"; +} + +.bi-calendar3::before { + content: "\f214"; +} + +.bi-calendar4-event::before { + content: "\f215"; +} + +.bi-calendar4-range::before { + content: "\f216"; +} + +.bi-calendar4-week::before { + content: "\f217"; +} + +.bi-calendar4::before { + content: "\f218"; +} + +.bi-camera-fill::before { + content: "\f219"; +} + +.bi-camera-reels-fill::before { + content: "\f21a"; +} + +.bi-camera-reels::before { + content: "\f21b"; +} + +.bi-camera-video-fill::before { + content: "\f21c"; +} + +.bi-camera-video-off-fill::before { + content: "\f21d"; +} + +.bi-camera-video-off::before { + content: "\f21e"; +} + +.bi-camera-video::before { + content: "\f21f"; +} + +.bi-camera::before { + content: "\f220"; +} + +.bi-camera2::before { + content: "\f221"; +} + +.bi-capslock-fill::before { + content: "\f222"; +} + +.bi-capslock::before { + content: "\f223"; +} + +.bi-card-checklist::before { + content: "\f224"; +} + +.bi-card-heading::before { + content: "\f225"; +} + +.bi-card-image::before { + content: "\f226"; +} + +.bi-card-list::before { + content: "\f227"; +} + +.bi-card-text::before { + content: "\f228"; +} + +.bi-caret-down-fill::before { + content: "\f229"; +} + +.bi-caret-down-square-fill::before { + content: "\f22a"; +} + +.bi-caret-down-square::before { + content: "\f22b"; +} + +.bi-caret-down::before { + content: "\f22c"; +} + +.bi-caret-left-fill::before { + content: "\f22d"; +} + +.bi-caret-left-square-fill::before { + content: "\f22e"; +} + +.bi-caret-left-square::before { + content: "\f22f"; +} + +.bi-caret-left::before { + content: "\f230"; +} + +.bi-caret-right-fill::before { + content: "\f231"; +} + +.bi-caret-right-square-fill::before { + content: "\f232"; +} + +.bi-caret-right-square::before { + content: "\f233"; +} + +.bi-caret-right::before { + content: "\f234"; +} + +.bi-caret-up-fill::before { + content: "\f235"; +} + +.bi-caret-up-square-fill::before { + content: "\f236"; +} + +.bi-caret-up-square::before { + content: "\f237"; +} + +.bi-caret-up::before { + content: "\f238"; +} + +.bi-cart-check-fill::before { + content: "\f239"; +} + +.bi-cart-check::before { + content: "\f23a"; +} + +.bi-cart-dash-fill::before { + content: "\f23b"; +} + +.bi-cart-dash::before { + content: "\f23c"; +} + +.bi-cart-fill::before { + content: "\f23d"; +} + +.bi-cart-plus-fill::before { + content: "\f23e"; +} + +.bi-cart-plus::before { + content: "\f23f"; +} + +.bi-cart-x-fill::before { + content: "\f240"; +} + +.bi-cart-x::before { + content: "\f241"; +} + +.bi-cart::before { + content: "\f242"; +} + +.bi-cart2::before { + content: "\f243"; +} + +.bi-cart3::before { + content: "\f244"; +} + +.bi-cart4::before { + content: "\f245"; +} + +.bi-cash-stack::before { + content: "\f246"; +} + +.bi-cash::before { + content: "\f247"; +} + +.bi-cast::before { + content: "\f248"; +} + +.bi-chat-dots-fill::before { + content: "\f249"; +} + +.bi-chat-dots::before { + content: "\f24a"; +} + +.bi-chat-fill::before { + content: "\f24b"; +} + +.bi-chat-left-dots-fill::before { + content: "\f24c"; +} + +.bi-chat-left-dots::before { + content: "\f24d"; +} + +.bi-chat-left-fill::before { + content: "\f24e"; +} + +.bi-chat-left-quote-fill::before { + content: "\f24f"; +} + +.bi-chat-left-quote::before { + content: "\f250"; +} + +.bi-chat-left-text-fill::before { + content: "\f251"; +} + +.bi-chat-left-text::before { + content: "\f252"; +} + +.bi-chat-left::before { + content: "\f253"; +} + +.bi-chat-quote-fill::before { + content: "\f254"; +} + +.bi-chat-quote::before { + content: "\f255"; +} + +.bi-chat-right-dots-fill::before { + content: "\f256"; +} + +.bi-chat-right-dots::before { + content: "\f257"; +} + +.bi-chat-right-fill::before { + content: "\f258"; +} + +.bi-chat-right-quote-fill::before { + content: "\f259"; +} + +.bi-chat-right-quote::before { + content: "\f25a"; +} + +.bi-chat-right-text-fill::before { + content: "\f25b"; +} + +.bi-chat-right-text::before { + content: "\f25c"; +} + +.bi-chat-right::before { + content: "\f25d"; +} + +.bi-chat-square-dots-fill::before { + content: "\f25e"; +} + +.bi-chat-square-dots::before { + content: "\f25f"; +} + +.bi-chat-square-fill::before { + content: "\f260"; +} + +.bi-chat-square-quote-fill::before { + content: "\f261"; +} + +.bi-chat-square-quote::before { + content: "\f262"; +} + +.bi-chat-square-text-fill::before { + content: "\f263"; +} + +.bi-chat-square-text::before { + content: "\f264"; +} + +.bi-chat-square::before { + content: "\f265"; +} + +.bi-chat-text-fill::before { + content: "\f266"; +} + +.bi-chat-text::before { + content: "\f267"; +} + +.bi-chat::before { + content: "\f268"; +} + +.bi-check-all::before { + content: "\f269"; +} + +.bi-check-circle-fill::before { + content: "\f26a"; +} + +.bi-check-circle::before { + content: "\f26b"; +} + +.bi-check-square-fill::before { + content: "\f26c"; +} + +.bi-check-square::before { + content: "\f26d"; +} + +.bi-check::before { + content: "\f26e"; +} + +.bi-check2-all::before { + content: "\f26f"; +} + +.bi-check2-circle::before { + content: "\f270"; +} + +.bi-check2-square::before { + content: "\f271"; +} + +.bi-check2::before { + content: "\f272"; +} + +.bi-chevron-bar-contract::before { + content: "\f273"; +} + +.bi-chevron-bar-down::before { + content: "\f274"; +} + +.bi-chevron-bar-expand::before { + content: "\f275"; +} + +.bi-chevron-bar-left::before { + content: "\f276"; +} + +.bi-chevron-bar-right::before { + content: "\f277"; +} + +.bi-chevron-bar-up::before { + content: "\f278"; +} + +.bi-chevron-compact-down::before { + content: "\f279"; +} + +.bi-chevron-compact-left::before { + content: "\f27a"; +} + +.bi-chevron-compact-right::before { + content: "\f27b"; +} + +.bi-chevron-compact-up::before { + content: "\f27c"; +} + +.bi-chevron-contract::before { + content: "\f27d"; +} + +.bi-chevron-double-down::before { + content: "\f27e"; +} + +.bi-chevron-double-left::before { + content: "\f27f"; +} + +.bi-chevron-double-right::before { + content: "\f280"; +} + +.bi-chevron-double-up::before { + content: "\f281"; +} + +.bi-chevron-down::before { + content: "\f282"; +} + +.bi-chevron-expand::before { + content: "\f283"; +} + +.bi-chevron-left::before { + content: "\f284"; +} + +.bi-chevron-right::before { + content: "\f285"; +} + +.bi-chevron-up::before { + content: "\f286"; +} + +.bi-circle-fill::before { + content: "\f287"; +} + +.bi-circle-half::before { + content: "\f288"; +} + +.bi-circle-square::before { + content: "\f289"; +} + +.bi-circle::before { + content: "\f28a"; +} + +.bi-clipboard-check::before { + content: "\f28b"; +} + +.bi-clipboard-data::before { + content: "\f28c"; +} + +.bi-clipboard-minus::before { + content: "\f28d"; +} + +.bi-clipboard-plus::before { + content: "\f28e"; +} + +.bi-clipboard-x::before { + content: "\f28f"; +} + +.bi-clipboard::before { + content: "\f290"; +} + +.bi-clock-fill::before { + content: "\f291"; +} + +.bi-clock-history::before { + content: "\f292"; +} + +.bi-clock::before { + content: "\f293"; +} + +.bi-cloud-arrow-down-fill::before { + content: "\f294"; +} + +.bi-cloud-arrow-down::before { + content: "\f295"; +} + +.bi-cloud-arrow-up-fill::before { + content: "\f296"; +} + +.bi-cloud-arrow-up::before { + content: "\f297"; +} + +.bi-cloud-check-fill::before { + content: "\f298"; +} + +.bi-cloud-check::before { + content: "\f299"; +} + +.bi-cloud-download-fill::before { + content: "\f29a"; +} + +.bi-cloud-download::before { + content: "\f29b"; +} + +.bi-cloud-drizzle-fill::before { + content: "\f29c"; +} + +.bi-cloud-drizzle::before { + content: "\f29d"; +} + +.bi-cloud-fill::before { + content: "\f29e"; +} + +.bi-cloud-fog-fill::before { + content: "\f29f"; +} + +.bi-cloud-fog::before { + content: "\f2a0"; +} + +.bi-cloud-fog2-fill::before { + content: "\f2a1"; +} + +.bi-cloud-fog2::before { + content: "\f2a2"; +} + +.bi-cloud-hail-fill::before { + content: "\f2a3"; +} + +.bi-cloud-hail::before { + content: "\f2a4"; +} + +.bi-cloud-haze-fill::before { + content: "\f2a6"; +} + +.bi-cloud-haze::before { + content: "\f2a7"; +} + +.bi-cloud-haze2-fill::before { + content: "\f2a8"; +} + +.bi-cloud-lightning-fill::before { + content: "\f2a9"; +} + +.bi-cloud-lightning-rain-fill::before { + content: "\f2aa"; +} + +.bi-cloud-lightning-rain::before { + content: "\f2ab"; +} + +.bi-cloud-lightning::before { + content: "\f2ac"; +} + +.bi-cloud-minus-fill::before { + content: "\f2ad"; +} + +.bi-cloud-minus::before { + content: "\f2ae"; +} + +.bi-cloud-moon-fill::before { + content: "\f2af"; +} + +.bi-cloud-moon::before { + content: "\f2b0"; +} + +.bi-cloud-plus-fill::before { + content: "\f2b1"; +} + +.bi-cloud-plus::before { + content: "\f2b2"; +} + +.bi-cloud-rain-fill::before { + content: "\f2b3"; +} + +.bi-cloud-rain-heavy-fill::before { + content: "\f2b4"; +} + +.bi-cloud-rain-heavy::before { + content: "\f2b5"; +} + +.bi-cloud-rain::before { + content: "\f2b6"; +} + +.bi-cloud-slash-fill::before { + content: "\f2b7"; +} + +.bi-cloud-slash::before { + content: "\f2b8"; +} + +.bi-cloud-sleet-fill::before { + content: "\f2b9"; +} + +.bi-cloud-sleet::before { + content: "\f2ba"; +} + +.bi-cloud-snow-fill::before { + content: "\f2bb"; +} + +.bi-cloud-snow::before { + content: "\f2bc"; +} + +.bi-cloud-sun-fill::before { + content: "\f2bd"; +} + +.bi-cloud-sun::before { + content: "\f2be"; +} + +.bi-cloud-upload-fill::before { + content: "\f2bf"; +} + +.bi-cloud-upload::before { + content: "\f2c0"; +} + +.bi-cloud::before { + content: "\f2c1"; +} + +.bi-clouds-fill::before { + content: "\f2c2"; +} + +.bi-clouds::before { + content: "\f2c3"; +} + +.bi-cloudy-fill::before { + content: "\f2c4"; +} + +.bi-cloudy::before { + content: "\f2c5"; +} + +.bi-code-slash::before { + content: "\f2c6"; +} + +.bi-code-square::before { + content: "\f2c7"; +} + +.bi-code::before { + content: "\f2c8"; +} + +.bi-collection-fill::before { + content: "\f2c9"; +} + +.bi-collection-play-fill::before { + content: "\f2ca"; +} + +.bi-collection-play::before { + content: "\f2cb"; +} + +.bi-collection::before { + content: "\f2cc"; +} + +.bi-columns-gap::before { + content: "\f2cd"; +} + +.bi-columns::before { + content: "\f2ce"; +} + +.bi-command::before { + content: "\f2cf"; +} + +.bi-compass-fill::before { + content: "\f2d0"; +} + +.bi-compass::before { + content: "\f2d1"; +} + +.bi-cone-striped::before { + content: "\f2d2"; +} + +.bi-cone::before { + content: "\f2d3"; +} + +.bi-controller::before { + content: "\f2d4"; +} + +.bi-cpu-fill::before { + content: "\f2d5"; +} + +.bi-cpu::before { + content: "\f2d6"; +} + +.bi-credit-card-2-back-fill::before { + content: "\f2d7"; +} + +.bi-credit-card-2-back::before { + content: "\f2d8"; +} + +.bi-credit-card-2-front-fill::before { + content: "\f2d9"; +} + +.bi-credit-card-2-front::before { + content: "\f2da"; +} + +.bi-credit-card-fill::before { + content: "\f2db"; +} + +.bi-credit-card::before { + content: "\f2dc"; +} + +.bi-crop::before { + content: "\f2dd"; +} + +.bi-cup-fill::before { + content: "\f2de"; +} + +.bi-cup-straw::before { + content: "\f2df"; +} + +.bi-cup::before { + content: "\f2e0"; +} + +.bi-cursor-fill::before { + content: "\f2e1"; +} + +.bi-cursor-text::before { + content: "\f2e2"; +} + +.bi-cursor::before { + content: "\f2e3"; +} + +.bi-dash-circle-dotted::before { + content: "\f2e4"; +} + +.bi-dash-circle-fill::before { + content: "\f2e5"; +} + +.bi-dash-circle::before { + content: "\f2e6"; +} + +.bi-dash-square-dotted::before { + content: "\f2e7"; +} + +.bi-dash-square-fill::before { + content: "\f2e8"; +} + +.bi-dash-square::before { + content: "\f2e9"; +} + +.bi-dash::before { + content: "\f2ea"; +} + +.bi-diagram-2-fill::before { + content: "\f2eb"; +} + +.bi-diagram-2::before { + content: "\f2ec"; +} + +.bi-diagram-3-fill::before { + content: "\f2ed"; +} + +.bi-diagram-3::before { + content: "\f2ee"; +} + +.bi-diamond-fill::before { + content: "\f2ef"; +} + +.bi-diamond-half::before { + content: "\f2f0"; +} + +.bi-diamond::before { + content: "\f2f1"; +} + +.bi-dice-1-fill::before { + content: "\f2f2"; +} + +.bi-dice-1::before { + content: "\f2f3"; +} + +.bi-dice-2-fill::before { + content: "\f2f4"; +} + +.bi-dice-2::before { + content: "\f2f5"; +} + +.bi-dice-3-fill::before { + content: "\f2f6"; +} + +.bi-dice-3::before { + content: "\f2f7"; +} + +.bi-dice-4-fill::before { + content: "\f2f8"; +} + +.bi-dice-4::before { + content: "\f2f9"; +} + +.bi-dice-5-fill::before { + content: "\f2fa"; +} + +.bi-dice-5::before { + content: "\f2fb"; +} + +.bi-dice-6-fill::before { + content: "\f2fc"; +} + +.bi-dice-6::before { + content: "\f2fd"; +} + +.bi-disc-fill::before { + content: "\f2fe"; +} + +.bi-disc::before { + content: "\f2ff"; +} + +.bi-discord::before { + content: "\f300"; +} + +.bi-display-fill::before { + content: "\f301"; +} + +.bi-display::before { + content: "\f302"; +} + +.bi-distribute-horizontal::before { + content: "\f303"; +} + +.bi-distribute-vertical::before { + content: "\f304"; +} + +.bi-door-closed-fill::before { + content: "\f305"; +} + +.bi-door-closed::before { + content: "\f306"; +} + +.bi-door-open-fill::before { + content: "\f307"; +} + +.bi-door-open::before { + content: "\f308"; +} + +.bi-dot::before { + content: "\f309"; +} + +.bi-download::before { + content: "\f30a"; +} + +.bi-droplet-fill::before { + content: "\f30b"; +} + +.bi-droplet-half::before { + content: "\f30c"; +} + +.bi-droplet::before { + content: "\f30d"; +} + +.bi-earbuds::before { + content: "\f30e"; +} + +.bi-easel-fill::before { + content: "\f30f"; +} + +.bi-easel::before { + content: "\f310"; +} + +.bi-egg-fill::before { + content: "\f311"; +} + +.bi-egg-fried::before { + content: "\f312"; +} + +.bi-egg::before { + content: "\f313"; +} + +.bi-eject-fill::before { + content: "\f314"; +} + +.bi-eject::before { + content: "\f315"; +} + +.bi-emoji-angry-fill::before { + content: "\f316"; +} + +.bi-emoji-angry::before { + content: "\f317"; +} + +.bi-emoji-dizzy-fill::before { + content: "\f318"; +} + +.bi-emoji-dizzy::before { + content: "\f319"; +} + +.bi-emoji-expressionless-fill::before { + content: "\f31a"; +} + +.bi-emoji-expressionless::before { + content: "\f31b"; +} + +.bi-emoji-frown-fill::before { + content: "\f31c"; +} + +.bi-emoji-frown::before { + content: "\f31d"; +} + +.bi-emoji-heart-eyes-fill::before { + content: "\f31e"; +} + +.bi-emoji-heart-eyes::before { + content: "\f31f"; +} + +.bi-emoji-laughing-fill::before { + content: "\f320"; +} + +.bi-emoji-laughing::before { + content: "\f321"; +} + +.bi-emoji-neutral-fill::before { + content: "\f322"; +} + +.bi-emoji-neutral::before { + content: "\f323"; +} + +.bi-emoji-smile-fill::before { + content: "\f324"; +} + +.bi-emoji-smile-upside-down-fill::before { + content: "\f325"; +} + +.bi-emoji-smile-upside-down::before { + content: "\f326"; +} + +.bi-emoji-smile::before { + content: "\f327"; +} + +.bi-emoji-sunglasses-fill::before { + content: "\f328"; +} + +.bi-emoji-sunglasses::before { + content: "\f329"; +} + +.bi-emoji-wink-fill::before { + content: "\f32a"; +} + +.bi-emoji-wink::before { + content: "\f32b"; +} + +.bi-envelope-fill::before { + content: "\f32c"; +} + +.bi-envelope-open-fill::before { + content: "\f32d"; +} + +.bi-envelope-open::before { + content: "\f32e"; +} + +.bi-envelope::before { + content: "\f32f"; +} + +.bi-eraser-fill::before { + content: "\f330"; +} + +.bi-eraser::before { + content: "\f331"; +} + +.bi-exclamation-circle-fill::before { + content: "\f332"; +} + +.bi-exclamation-circle::before { + content: "\f333"; +} + +.bi-exclamation-diamond-fill::before { + content: "\f334"; +} + +.bi-exclamation-diamond::before { + content: "\f335"; +} + +.bi-exclamation-octagon-fill::before { + content: "\f336"; +} + +.bi-exclamation-octagon::before { + content: "\f337"; +} + +.bi-exclamation-square-fill::before { + content: "\f338"; +} + +.bi-exclamation-square::before { + content: "\f339"; +} + +.bi-exclamation-triangle-fill::before { + content: "\f33a"; +} + +.bi-exclamation-triangle::before { + content: "\f33b"; +} + +.bi-exclamation::before { + content: "\f33c"; +} + +.bi-exclude::before { + content: "\f33d"; +} + +.bi-eye-fill::before { + content: "\f33e"; +} + +.bi-eye-slash-fill::before { + content: "\f33f"; +} + +.bi-eye-slash::before { + content: "\f340"; +} + +.bi-eye::before { + content: "\f341"; +} + +.bi-eyedropper::before { + content: "\f342"; +} + +.bi-eyeglasses::before { + content: "\f343"; +} + +.bi-facebook::before { + content: "\f344"; +} + +.bi-file-arrow-down-fill::before { + content: "\f345"; +} + +.bi-file-arrow-down::before { + content: "\f346"; +} + +.bi-file-arrow-up-fill::before { + content: "\f347"; +} + +.bi-file-arrow-up::before { + content: "\f348"; +} + +.bi-file-bar-graph-fill::before { + content: "\f349"; +} + +.bi-file-bar-graph::before { + content: "\f34a"; +} + +.bi-file-binary-fill::before { + content: "\f34b"; +} + +.bi-file-binary::before { + content: "\f34c"; +} + +.bi-file-break-fill::before { + content: "\f34d"; +} + +.bi-file-break::before { + content: "\f34e"; +} + +.bi-file-check-fill::before { + content: "\f34f"; +} + +.bi-file-check::before { + content: "\f350"; +} + +.bi-file-code-fill::before { + content: "\f351"; +} + +.bi-file-code::before { + content: "\f352"; +} + +.bi-file-diff-fill::before { + content: "\f353"; +} + +.bi-file-diff::before { + content: "\f354"; +} + +.bi-file-earmark-arrow-down-fill::before { + content: "\f355"; +} + +.bi-file-earmark-arrow-down::before { + content: "\f356"; +} + +.bi-file-earmark-arrow-up-fill::before { + content: "\f357"; +} + +.bi-file-earmark-arrow-up::before { + content: "\f358"; +} + +.bi-file-earmark-bar-graph-fill::before { + content: "\f359"; +} + +.bi-file-earmark-bar-graph::before { + content: "\f35a"; +} + +.bi-file-earmark-binary-fill::before { + content: "\f35b"; +} + +.bi-file-earmark-binary::before { + content: "\f35c"; +} + +.bi-file-earmark-break-fill::before { + content: "\f35d"; +} + +.bi-file-earmark-break::before { + content: "\f35e"; +} + +.bi-file-earmark-check-fill::before { + content: "\f35f"; +} + +.bi-file-earmark-check::before { + content: "\f360"; +} + +.bi-file-earmark-code-fill::before { + content: "\f361"; +} + +.bi-file-earmark-code::before { + content: "\f362"; +} + +.bi-file-earmark-diff-fill::before { + content: "\f363"; +} + +.bi-file-earmark-diff::before { + content: "\f364"; +} + +.bi-file-earmark-easel-fill::before { + content: "\f365"; +} + +.bi-file-earmark-easel::before { + content: "\f366"; +} + +.bi-file-earmark-excel-fill::before { + content: "\f367"; +} + +.bi-file-earmark-excel::before { + content: "\f368"; +} + +.bi-file-earmark-fill::before { + content: "\f369"; +} + +.bi-file-earmark-font-fill::before { + content: "\f36a"; +} + +.bi-file-earmark-font::before { + content: "\f36b"; +} + +.bi-file-earmark-image-fill::before { + content: "\f36c"; +} + +.bi-file-earmark-image::before { + content: "\f36d"; +} + +.bi-file-earmark-lock-fill::before { + content: "\f36e"; +} + +.bi-file-earmark-lock::before { + content: "\f36f"; +} + +.bi-file-earmark-lock2-fill::before { + content: "\f370"; +} + +.bi-file-earmark-lock2::before { + content: "\f371"; +} + +.bi-file-earmark-medical-fill::before { + content: "\f372"; +} + +.bi-file-earmark-medical::before { + content: "\f373"; +} + +.bi-file-earmark-minus-fill::before { + content: "\f374"; +} + +.bi-file-earmark-minus::before { + content: "\f375"; +} + +.bi-file-earmark-music-fill::before { + content: "\f376"; +} + +.bi-file-earmark-music::before { + content: "\f377"; +} + +.bi-file-earmark-person-fill::before { + content: "\f378"; +} + +.bi-file-earmark-person::before { + content: "\f379"; +} + +.bi-file-earmark-play-fill::before { + content: "\f37a"; +} + +.bi-file-earmark-play::before { + content: "\f37b"; +} + +.bi-file-earmark-plus-fill::before { + content: "\f37c"; +} + +.bi-file-earmark-plus::before { + content: "\f37d"; +} + +.bi-file-earmark-post-fill::before { + content: "\f37e"; +} + +.bi-file-earmark-post::before { + content: "\f37f"; +} + +.bi-file-earmark-ppt-fill::before { + content: "\f380"; +} + +.bi-file-earmark-ppt::before { + content: "\f381"; +} + +.bi-file-earmark-richtext-fill::before { + content: "\f382"; +} + +.bi-file-earmark-richtext::before { + content: "\f383"; +} + +.bi-file-earmark-ruled-fill::before { + content: "\f384"; +} + +.bi-file-earmark-ruled::before { + content: "\f385"; +} + +.bi-file-earmark-slides-fill::before { + content: "\f386"; +} + +.bi-file-earmark-slides::before { + content: "\f387"; +} + +.bi-file-earmark-spreadsheet-fill::before { + content: "\f388"; +} + +.bi-file-earmark-spreadsheet::before { + content: "\f389"; +} + +.bi-file-earmark-text-fill::before { + content: "\f38a"; +} + +.bi-file-earmark-text::before { + content: "\f38b"; +} + +.bi-file-earmark-word-fill::before { + content: "\f38c"; +} + +.bi-file-earmark-word::before { + content: "\f38d"; +} + +.bi-file-earmark-x-fill::before { + content: "\f38e"; +} + +.bi-file-earmark-x::before { + content: "\f38f"; +} + +.bi-file-earmark-zip-fill::before { + content: "\f390"; +} + +.bi-file-earmark-zip::before { + content: "\f391"; +} + +.bi-file-earmark::before { + content: "\f392"; +} + +.bi-file-easel-fill::before { + content: "\f393"; +} + +.bi-file-easel::before { + content: "\f394"; +} + +.bi-file-excel-fill::before { + content: "\f395"; +} + +.bi-file-excel::before { + content: "\f396"; +} + +.bi-file-fill::before { + content: "\f397"; +} + +.bi-file-font-fill::before { + content: "\f398"; +} + +.bi-file-font::before { + content: "\f399"; +} + +.bi-file-image-fill::before { + content: "\f39a"; +} + +.bi-file-image::before { + content: "\f39b"; +} + +.bi-file-lock-fill::before { + content: "\f39c"; +} + +.bi-file-lock::before { + content: "\f39d"; +} + +.bi-file-lock2-fill::before { + content: "\f39e"; +} + +.bi-file-lock2::before { + content: "\f39f"; +} + +.bi-file-medical-fill::before { + content: "\f3a0"; +} + +.bi-file-medical::before { + content: "\f3a1"; +} + +.bi-file-minus-fill::before { + content: "\f3a2"; +} + +.bi-file-minus::before { + content: "\f3a3"; +} + +.bi-file-music-fill::before { + content: "\f3a4"; +} + +.bi-file-music::before { + content: "\f3a5"; +} + +.bi-file-person-fill::before { + content: "\f3a6"; +} + +.bi-file-person::before { + content: "\f3a7"; +} + +.bi-file-play-fill::before { + content: "\f3a8"; +} + +.bi-file-play::before { + content: "\f3a9"; +} + +.bi-file-plus-fill::before { + content: "\f3aa"; +} + +.bi-file-plus::before { + content: "\f3ab"; +} + +.bi-file-post-fill::before { + content: "\f3ac"; +} + +.bi-file-post::before { + content: "\f3ad"; +} + +.bi-file-ppt-fill::before { + content: "\f3ae"; +} + +.bi-file-ppt::before { + content: "\f3af"; +} + +.bi-file-richtext-fill::before { + content: "\f3b0"; +} + +.bi-file-richtext::before { + content: "\f3b1"; +} + +.bi-file-ruled-fill::before { + content: "\f3b2"; +} + +.bi-file-ruled::before { + content: "\f3b3"; +} + +.bi-file-slides-fill::before { + content: "\f3b4"; +} + +.bi-file-slides::before { + content: "\f3b5"; +} + +.bi-file-spreadsheet-fill::before { + content: "\f3b6"; +} + +.bi-file-spreadsheet::before { + content: "\f3b7"; +} + +.bi-file-text-fill::before { + content: "\f3b8"; +} + +.bi-file-text::before { + content: "\f3b9"; +} + +.bi-file-word-fill::before { + content: "\f3ba"; +} + +.bi-file-word::before { + content: "\f3bb"; +} + +.bi-file-x-fill::before { + content: "\f3bc"; +} + +.bi-file-x::before { + content: "\f3bd"; +} + +.bi-file-zip-fill::before { + content: "\f3be"; +} + +.bi-file-zip::before { + content: "\f3bf"; +} + +.bi-file::before { + content: "\f3c0"; +} + +.bi-files-alt::before { + content: "\f3c1"; +} + +.bi-files::before { + content: "\f3c2"; +} + +.bi-film::before { + content: "\f3c3"; +} + +.bi-filter-circle-fill::before { + content: "\f3c4"; +} + +.bi-filter-circle::before { + content: "\f3c5"; +} + +.bi-filter-left::before { + content: "\f3c6"; +} + +.bi-filter-right::before { + content: "\f3c7"; +} + +.bi-filter-square-fill::before { + content: "\f3c8"; +} + +.bi-filter-square::before { + content: "\f3c9"; +} + +.bi-filter::before { + content: "\f3ca"; +} + +.bi-flag-fill::before { + content: "\f3cb"; +} + +.bi-flag::before { + content: "\f3cc"; +} + +.bi-flower1::before { + content: "\f3cd"; +} + +.bi-flower2::before { + content: "\f3ce"; +} + +.bi-flower3::before { + content: "\f3cf"; +} + +.bi-folder-check::before { + content: "\f3d0"; +} + +.bi-folder-fill::before { + content: "\f3d1"; +} + +.bi-folder-minus::before { + content: "\f3d2"; +} + +.bi-folder-plus::before { + content: "\f3d3"; +} + +.bi-folder-symlink-fill::before { + content: "\f3d4"; +} + +.bi-folder-symlink::before { + content: "\f3d5"; +} + +.bi-folder-x::before { + content: "\f3d6"; +} + +.bi-folder::before { + content: "\f3d7"; +} + +.bi-folder2-open::before { + content: "\f3d8"; +} + +.bi-folder2::before { + content: "\f3d9"; +} + +.bi-fonts::before { + content: "\f3da"; +} + +.bi-forward-fill::before { + content: "\f3db"; +} + +.bi-forward::before { + content: "\f3dc"; +} + +.bi-front::before { + content: "\f3dd"; +} + +.bi-fullscreen-exit::before { + content: "\f3de"; +} + +.bi-fullscreen::before { + content: "\f3df"; +} + +.bi-funnel-fill::before { + content: "\f3e0"; +} + +.bi-funnel::before { + content: "\f3e1"; +} + +.bi-gear-fill::before { + content: "\f3e2"; +} + +.bi-gear-wide-connected::before { + content: "\f3e3"; +} + +.bi-gear-wide::before { + content: "\f3e4"; +} + +.bi-gear::before { + content: "\f3e5"; +} + +.bi-gem::before { + content: "\f3e6"; +} + +.bi-geo-alt-fill::before { + content: "\f3e7"; +} + +.bi-geo-alt::before { + content: "\f3e8"; +} + +.bi-geo-fill::before { + content: "\f3e9"; +} + +.bi-geo::before { + content: "\f3ea"; +} + +.bi-gift-fill::before { + content: "\f3eb"; +} + +.bi-gift::before { + content: "\f3ec"; +} + +.bi-github::before { + content: "\f3ed"; +} + +.bi-globe::before { + content: "\f3ee"; +} + +.bi-globe2::before { + content: "\f3ef"; +} + +.bi-google::before { + content: "\f3f0"; +} + +.bi-graph-down::before { + content: "\f3f1"; +} + +.bi-graph-up::before { + content: "\f3f2"; +} + +.bi-grid-1x2-fill::before { + content: "\f3f3"; +} + +.bi-grid-1x2::before { + content: "\f3f4"; +} + +.bi-grid-3x2-gap-fill::before { + content: "\f3f5"; +} + +.bi-grid-3x2-gap::before { + content: "\f3f6"; +} + +.bi-grid-3x2::before { + content: "\f3f7"; +} + +.bi-grid-3x3-gap-fill::before { + content: "\f3f8"; +} + +.bi-grid-3x3-gap::before { + content: "\f3f9"; +} + +.bi-grid-3x3::before { + content: "\f3fa"; +} + +.bi-grid-fill::before { + content: "\f3fb"; +} + +.bi-grid::before { + content: "\f3fc"; +} + +.bi-grip-horizontal::before { + content: "\f3fd"; +} + +.bi-grip-vertical::before { + content: "\f3fe"; +} + +.bi-hammer::before { + content: "\f3ff"; +} + +.bi-hand-index-fill::before { + content: "\f400"; +} + +.bi-hand-index-thumb-fill::before { + content: "\f401"; +} + +.bi-hand-index-thumb::before { + content: "\f402"; +} + +.bi-hand-index::before { + content: "\f403"; +} + +.bi-hand-thumbs-down-fill::before { + content: "\f404"; +} + +.bi-hand-thumbs-down::before { + content: "\f405"; +} + +.bi-hand-thumbs-up-fill::before { + content: "\f406"; +} + +.bi-hand-thumbs-up::before { + content: "\f407"; +} + +.bi-handbag-fill::before { + content: "\f408"; +} + +.bi-handbag::before { + content: "\f409"; +} + +.bi-hash::before { + content: "\f40a"; +} + +.bi-hdd-fill::before { + content: "\f40b"; +} + +.bi-hdd-network-fill::before { + content: "\f40c"; +} + +.bi-hdd-network::before { + content: "\f40d"; +} + +.bi-hdd-rack-fill::before { + content: "\f40e"; +} + +.bi-hdd-rack::before { + content: "\f40f"; +} + +.bi-hdd-stack-fill::before { + content: "\f410"; +} + +.bi-hdd-stack::before { + content: "\f411"; +} + +.bi-hdd::before { + content: "\f412"; +} + +.bi-headphones::before { + content: "\f413"; +} + +.bi-headset::before { + content: "\f414"; +} + +.bi-heart-fill::before { + content: "\f415"; +} + +.bi-heart-half::before { + content: "\f416"; +} + +.bi-heart::before { + content: "\f417"; +} + +.bi-heptagon-fill::before { + content: "\f418"; +} + +.bi-heptagon-half::before { + content: "\f419"; +} + +.bi-heptagon::before { + content: "\f41a"; +} + +.bi-hexagon-fill::before { + content: "\f41b"; +} + +.bi-hexagon-half::before { + content: "\f41c"; +} + +.bi-hexagon::before { + content: "\f41d"; +} + +.bi-hourglass-bottom::before { + content: "\f41e"; +} + +.bi-hourglass-split::before { + content: "\f41f"; +} + +.bi-hourglass-top::before { + content: "\f420"; +} + +.bi-hourglass::before { + content: "\f421"; +} + +.bi-house-door-fill::before { + content: "\f422"; +} + +.bi-house-door::before { + content: "\f423"; +} + +.bi-house-fill::before { + content: "\f424"; +} + +.bi-house::before { + content: "\f425"; +} + +.bi-hr::before { + content: "\f426"; +} + +.bi-hurricane::before { + content: "\f427"; +} + +.bi-image-alt::before { + content: "\f428"; +} + +.bi-image-fill::before { + content: "\f429"; +} + +.bi-image::before { + content: "\f42a"; +} + +.bi-images::before { + content: "\f42b"; +} + +.bi-inbox-fill::before { + content: "\f42c"; +} + +.bi-inbox::before { + content: "\f42d"; +} + +.bi-inboxes-fill::before { + content: "\f42e"; +} + +.bi-inboxes::before { + content: "\f42f"; +} + +.bi-info-circle-fill::before { + content: "\f430"; +} + +.bi-info-circle::before { + content: "\f431"; +} + +.bi-info-square-fill::before { + content: "\f432"; +} + +.bi-info-square::before { + content: "\f433"; +} + +.bi-info::before { + content: "\f434"; +} + +.bi-input-cursor-text::before { + content: "\f435"; +} + +.bi-input-cursor::before { + content: "\f436"; +} + +.bi-instagram::before { + content: "\f437"; +} + +.bi-intersect::before { + content: "\f438"; +} + +.bi-journal-album::before { + content: "\f439"; +} + +.bi-journal-arrow-down::before { + content: "\f43a"; +} + +.bi-journal-arrow-up::before { + content: "\f43b"; +} + +.bi-journal-bookmark-fill::before { + content: "\f43c"; +} + +.bi-journal-bookmark::before { + content: "\f43d"; +} + +.bi-journal-check::before { + content: "\f43e"; +} + +.bi-journal-code::before { + content: "\f43f"; +} + +.bi-journal-medical::before { + content: "\f440"; +} + +.bi-journal-minus::before { + content: "\f441"; +} + +.bi-journal-plus::before { + content: "\f442"; +} + +.bi-journal-richtext::before { + content: "\f443"; +} + +.bi-journal-text::before { + content: "\f444"; +} + +.bi-journal-x::before { + content: "\f445"; +} + +.bi-journal::before { + content: "\f446"; +} + +.bi-journals::before { + content: "\f447"; +} + +.bi-joystick::before { + content: "\f448"; +} + +.bi-justify-left::before { + content: "\f449"; +} + +.bi-justify-right::before { + content: "\f44a"; +} + +.bi-justify::before { + content: "\f44b"; +} + +.bi-kanban-fill::before { + content: "\f44c"; +} + +.bi-kanban::before { + content: "\f44d"; +} + +.bi-key-fill::before { + content: "\f44e"; +} + +.bi-key::before { + content: "\f44f"; +} + +.bi-keyboard-fill::before { + content: "\f450"; +} + +.bi-keyboard::before { + content: "\f451"; +} + +.bi-ladder::before { + content: "\f452"; +} + +.bi-lamp-fill::before { + content: "\f453"; +} + +.bi-lamp::before { + content: "\f454"; +} + +.bi-laptop-fill::before { + content: "\f455"; +} + +.bi-laptop::before { + content: "\f456"; +} + +.bi-layer-backward::before { + content: "\f457"; +} + +.bi-layer-forward::before { + content: "\f458"; +} + +.bi-layers-fill::before { + content: "\f459"; +} + +.bi-layers-half::before { + content: "\f45a"; +} + +.bi-layers::before { + content: "\f45b"; +} + +.bi-layout-sidebar-inset-reverse::before { + content: "\f45c"; +} + +.bi-layout-sidebar-inset::before { + content: "\f45d"; +} + +.bi-layout-sidebar-reverse::before { + content: "\f45e"; +} + +.bi-layout-sidebar::before { + content: "\f45f"; +} + +.bi-layout-split::before { + content: "\f460"; +} + +.bi-layout-text-sidebar-reverse::before { + content: "\f461"; +} + +.bi-layout-text-sidebar::before { + content: "\f462"; +} + +.bi-layout-text-window-reverse::before { + content: "\f463"; +} + +.bi-layout-text-window::before { + content: "\f464"; +} + +.bi-layout-three-columns::before { + content: "\f465"; +} + +.bi-layout-wtf::before { + content: "\f466"; +} + +.bi-life-preserver::before { + content: "\f467"; +} + +.bi-lightbulb-fill::before { + content: "\f468"; +} + +.bi-lightbulb-off-fill::before { + content: "\f469"; +} + +.bi-lightbulb-off::before { + content: "\f46a"; +} + +.bi-lightbulb::before { + content: "\f46b"; +} + +.bi-lightning-charge-fill::before { + content: "\f46c"; +} + +.bi-lightning-charge::before { + content: "\f46d"; +} + +.bi-lightning-fill::before { + content: "\f46e"; +} + +.bi-lightning::before { + content: "\f46f"; +} + +.bi-link-45deg::before { + content: "\f470"; +} + +.bi-link::before { + content: "\f471"; +} + +.bi-linkedin::before { + content: "\f472"; +} + +.bi-list-check::before { + content: "\f473"; +} + +.bi-list-nested::before { + content: "\f474"; +} + +.bi-list-ol::before { + content: "\f475"; +} + +.bi-list-stars::before { + content: "\f476"; +} + +.bi-list-task::before { + content: "\f477"; +} + +.bi-list-ul::before { + content: "\f478"; +} + +.bi-list::before { + content: "\f479"; +} + +.bi-lock-fill::before { + content: "\f47a"; +} + +.bi-lock::before { + content: "\f47b"; +} + +.bi-mailbox::before { + content: "\f47c"; +} + +.bi-mailbox2::before { + content: "\f47d"; +} + +.bi-map-fill::before { + content: "\f47e"; +} + +.bi-map::before { + content: "\f47f"; +} + +.bi-markdown-fill::before { + content: "\f480"; +} + +.bi-markdown::before { + content: "\f481"; +} + +.bi-mask::before { + content: "\f482"; +} + +.bi-megaphone-fill::before { + content: "\f483"; +} + +.bi-megaphone::before { + content: "\f484"; +} + +.bi-menu-app-fill::before { + content: "\f485"; +} + +.bi-menu-app::before { + content: "\f486"; +} + +.bi-menu-button-fill::before { + content: "\f487"; +} + +.bi-menu-button-wide-fill::before { + content: "\f488"; +} + +.bi-menu-button-wide::before { + content: "\f489"; +} + +.bi-menu-button::before { + content: "\f48a"; +} + +.bi-menu-down::before { + content: "\f48b"; +} + +.bi-menu-up::before { + content: "\f48c"; +} + +.bi-mic-fill::before { + content: "\f48d"; +} + +.bi-mic-mute-fill::before { + content: "\f48e"; +} + +.bi-mic-mute::before { + content: "\f48f"; +} + +.bi-mic::before { + content: "\f490"; +} + +.bi-minecart-loaded::before { + content: "\f491"; +} + +.bi-minecart::before { + content: "\f492"; +} + +.bi-moisture::before { + content: "\f493"; +} + +.bi-moon-fill::before { + content: "\f494"; +} + +.bi-moon-stars-fill::before { + content: "\f495"; +} + +.bi-moon-stars::before { + content: "\f496"; +} + +.bi-moon::before { + content: "\f497"; +} + +.bi-mouse-fill::before { + content: "\f498"; +} + +.bi-mouse::before { + content: "\f499"; +} + +.bi-mouse2-fill::before { + content: "\f49a"; +} + +.bi-mouse2::before { + content: "\f49b"; +} + +.bi-mouse3-fill::before { + content: "\f49c"; +} + +.bi-mouse3::before { + content: "\f49d"; +} + +.bi-music-note-beamed::before { + content: "\f49e"; +} + +.bi-music-note-list::before { + content: "\f49f"; +} + +.bi-music-note::before { + content: "\f4a0"; +} + +.bi-music-player-fill::before { + content: "\f4a1"; +} + +.bi-music-player::before { + content: "\f4a2"; +} + +.bi-newspaper::before { + content: "\f4a3"; +} + +.bi-node-minus-fill::before { + content: "\f4a4"; +} + +.bi-node-minus::before { + content: "\f4a5"; +} + +.bi-node-plus-fill::before { + content: "\f4a6"; +} + +.bi-node-plus::before { + content: "\f4a7"; +} + +.bi-nut-fill::before { + content: "\f4a8"; +} + +.bi-nut::before { + content: "\f4a9"; +} + +.bi-octagon-fill::before { + content: "\f4aa"; +} + +.bi-octagon-half::before { + content: "\f4ab"; +} + +.bi-octagon::before { + content: "\f4ac"; +} + +.bi-option::before { + content: "\f4ad"; +} + +.bi-outlet::before { + content: "\f4ae"; +} + +.bi-paint-bucket::before { + content: "\f4af"; +} + +.bi-palette-fill::before { + content: "\f4b0"; +} + +.bi-palette::before { + content: "\f4b1"; +} + +.bi-palette2::before { + content: "\f4b2"; +} + +.bi-paperclip::before { + content: "\f4b3"; +} + +.bi-paragraph::before { + content: "\f4b4"; +} + +.bi-patch-check-fill::before { + content: "\f4b5"; +} + +.bi-patch-check::before { + content: "\f4b6"; +} + +.bi-patch-exclamation-fill::before { + content: "\f4b7"; +} + +.bi-patch-exclamation::before { + content: "\f4b8"; +} + +.bi-patch-minus-fill::before { + content: "\f4b9"; +} + +.bi-patch-minus::before { + content: "\f4ba"; +} + +.bi-patch-plus-fill::before { + content: "\f4bb"; +} + +.bi-patch-plus::before { + content: "\f4bc"; +} + +.bi-patch-question-fill::before { + content: "\f4bd"; +} + +.bi-patch-question::before { + content: "\f4be"; +} + +.bi-pause-btn-fill::before { + content: "\f4bf"; +} + +.bi-pause-btn::before { + content: "\f4c0"; +} + +.bi-pause-circle-fill::before { + content: "\f4c1"; +} + +.bi-pause-circle::before { + content: "\f4c2"; +} + +.bi-pause-fill::before { + content: "\f4c3"; +} + +.bi-pause::before { + content: "\f4c4"; +} + +.bi-peace-fill::before { + content: "\f4c5"; +} + +.bi-peace::before { + content: "\f4c6"; +} + +.bi-pen-fill::before { + content: "\f4c7"; +} + +.bi-pen::before { + content: "\f4c8"; +} + +.bi-pencil-fill::before { + content: "\f4c9"; +} + +.bi-pencil-square::before { + content: "\f4ca"; +} + +.bi-pencil::before { + content: "\f4cb"; +} + +.bi-pentagon-fill::before { + content: "\f4cc"; +} + +.bi-pentagon-half::before { + content: "\f4cd"; +} + +.bi-pentagon::before { + content: "\f4ce"; +} + +.bi-people-fill::before { + content: "\f4cf"; +} + +.bi-people::before { + content: "\f4d0"; +} + +.bi-percent::before { + content: "\f4d1"; +} + +.bi-person-badge-fill::before { + content: "\f4d2"; +} + +.bi-person-badge::before { + content: "\f4d3"; +} + +.bi-person-bounding-box::before { + content: "\f4d4"; +} + +.bi-person-check-fill::before { + content: "\f4d5"; +} + +.bi-person-check::before { + content: "\f4d6"; +} + +.bi-person-circle::before { + content: "\f4d7"; +} + +.bi-person-dash-fill::before { + content: "\f4d8"; +} + +.bi-person-dash::before { + content: "\f4d9"; +} + +.bi-person-fill::before { + content: "\f4da"; +} + +.bi-person-lines-fill::before { + content: "\f4db"; +} + +.bi-person-plus-fill::before { + content: "\f4dc"; +} + +.bi-person-plus::before { + content: "\f4dd"; +} + +.bi-person-square::before { + content: "\f4de"; +} + +.bi-person-x-fill::before { + content: "\f4df"; +} + +.bi-person-x::before { + content: "\f4e0"; +} + +.bi-person::before { + content: "\f4e1"; +} + +.bi-phone-fill::before { + content: "\f4e2"; +} + +.bi-phone-landscape-fill::before { + content: "\f4e3"; +} + +.bi-phone-landscape::before { + content: "\f4e4"; +} + +.bi-phone-vibrate-fill::before { + content: "\f4e5"; +} + +.bi-phone-vibrate::before { + content: "\f4e6"; +} + +.bi-phone::before { + content: "\f4e7"; +} + +.bi-pie-chart-fill::before { + content: "\f4e8"; +} + +.bi-pie-chart::before { + content: "\f4e9"; +} + +.bi-pin-angle-fill::before { + content: "\f4ea"; +} + +.bi-pin-angle::before { + content: "\f4eb"; +} + +.bi-pin-fill::before { + content: "\f4ec"; +} + +.bi-pin::before { + content: "\f4ed"; +} + +.bi-pip-fill::before { + content: "\f4ee"; +} + +.bi-pip::before { + content: "\f4ef"; +} + +.bi-play-btn-fill::before { + content: "\f4f0"; +} + +.bi-play-btn::before { + content: "\f4f1"; +} + +.bi-play-circle-fill::before { + content: "\f4f2"; +} + +.bi-play-circle::before { + content: "\f4f3"; +} + +.bi-play-fill::before { + content: "\f4f4"; +} + +.bi-play::before { + content: "\f4f5"; +} + +.bi-plug-fill::before { + content: "\f4f6"; +} + +.bi-plug::before { + content: "\f4f7"; +} + +.bi-plus-circle-dotted::before { + content: "\f4f8"; +} + +.bi-plus-circle-fill::before { + content: "\f4f9"; +} + +.bi-plus-circle::before { + content: "\f4fa"; +} + +.bi-plus-square-dotted::before { + content: "\f4fb"; +} + +.bi-plus-square-fill::before { + content: "\f4fc"; +} + +.bi-plus-square::before { + content: "\f4fd"; +} + +.bi-plus::before { + content: "\f4fe"; +} + +.bi-power::before { + content: "\f4ff"; +} + +.bi-printer-fill::before { + content: "\f500"; +} + +.bi-printer::before { + content: "\f501"; +} + +.bi-puzzle-fill::before { + content: "\f502"; +} + +.bi-puzzle::before { + content: "\f503"; +} + +.bi-question-circle-fill::before { + content: "\f504"; +} + +.bi-question-circle::before { + content: "\f505"; +} + +.bi-question-diamond-fill::before { + content: "\f506"; +} + +.bi-question-diamond::before { + content: "\f507"; +} + +.bi-question-octagon-fill::before { + content: "\f508"; +} + +.bi-question-octagon::before { + content: "\f509"; +} + +.bi-question-square-fill::before { + content: "\f50a"; +} + +.bi-question-square::before { + content: "\f50b"; +} + +.bi-question::before { + content: "\f50c"; +} + +.bi-rainbow::before { + content: "\f50d"; +} + +.bi-receipt-cutoff::before { + content: "\f50e"; +} + +.bi-receipt::before { + content: "\f50f"; +} + +.bi-reception-0::before { + content: "\f510"; +} + +.bi-reception-1::before { + content: "\f511"; +} + +.bi-reception-2::before { + content: "\f512"; +} + +.bi-reception-3::before { + content: "\f513"; +} + +.bi-reception-4::before { + content: "\f514"; +} + +.bi-record-btn-fill::before { + content: "\f515"; +} + +.bi-record-btn::before { + content: "\f516"; +} + +.bi-record-circle-fill::before { + content: "\f517"; +} + +.bi-record-circle::before { + content: "\f518"; +} + +.bi-record-fill::before { + content: "\f519"; +} + +.bi-record::before { + content: "\f51a"; +} + +.bi-record2-fill::before { + content: "\f51b"; +} + +.bi-record2::before { + content: "\f51c"; +} + +.bi-reply-all-fill::before { + content: "\f51d"; +} + +.bi-reply-all::before { + content: "\f51e"; +} + +.bi-reply-fill::before { + content: "\f51f"; +} + +.bi-reply::before { + content: "\f520"; +} + +.bi-rss-fill::before { + content: "\f521"; +} + +.bi-rss::before { + content: "\f522"; +} + +.bi-rulers::before { + content: "\f523"; +} + +.bi-save-fill::before { + content: "\f524"; +} + +.bi-save::before { + content: "\f525"; +} + +.bi-save2-fill::before { + content: "\f526"; +} + +.bi-save2::before { + content: "\f527"; +} + +.bi-scissors::before { + content: "\f528"; +} + +.bi-screwdriver::before { + content: "\f529"; +} + +.bi-search::before { + content: "\f52a"; +} + +.bi-segmented-nav::before { + content: "\f52b"; +} + +.bi-server::before { + content: "\f52c"; +} + +.bi-share-fill::before { + content: "\f52d"; +} + +.bi-share::before { + content: "\f52e"; +} + +.bi-shield-check::before { + content: "\f52f"; +} + +.bi-shield-exclamation::before { + content: "\f530"; +} + +.bi-shield-fill-check::before { + content: "\f531"; +} + +.bi-shield-fill-exclamation::before { + content: "\f532"; +} + +.bi-shield-fill-minus::before { + content: "\f533"; +} + +.bi-shield-fill-plus::before { + content: "\f534"; +} + +.bi-shield-fill-x::before { + content: "\f535"; +} + +.bi-shield-fill::before { + content: "\f536"; +} + +.bi-shield-lock-fill::before { + content: "\f537"; +} + +.bi-shield-lock::before { + content: "\f538"; +} + +.bi-shield-minus::before { + content: "\f539"; +} + +.bi-shield-plus::before { + content: "\f53a"; +} + +.bi-shield-shaded::before { + content: "\f53b"; +} + +.bi-shield-slash-fill::before { + content: "\f53c"; +} + +.bi-shield-slash::before { + content: "\f53d"; +} + +.bi-shield-x::before { + content: "\f53e"; +} + +.bi-shield::before { + content: "\f53f"; +} + +.bi-shift-fill::before { + content: "\f540"; +} + +.bi-shift::before { + content: "\f541"; +} + +.bi-shop-window::before { + content: "\f542"; +} + +.bi-shop::before { + content: "\f543"; +} + +.bi-shuffle::before { + content: "\f544"; +} + +.bi-signpost-2-fill::before { + content: "\f545"; +} + +.bi-signpost-2::before { + content: "\f546"; +} + +.bi-signpost-fill::before { + content: "\f547"; +} + +.bi-signpost-split-fill::before { + content: "\f548"; +} + +.bi-signpost-split::before { + content: "\f549"; +} + +.bi-signpost::before { + content: "\f54a"; +} + +.bi-sim-fill::before { + content: "\f54b"; +} + +.bi-sim::before { + content: "\f54c"; +} + +.bi-skip-backward-btn-fill::before { + content: "\f54d"; +} + +.bi-skip-backward-btn::before { + content: "\f54e"; +} + +.bi-skip-backward-circle-fill::before { + content: "\f54f"; +} + +.bi-skip-backward-circle::before { + content: "\f550"; +} + +.bi-skip-backward-fill::before { + content: "\f551"; +} + +.bi-skip-backward::before { + content: "\f552"; +} + +.bi-skip-end-btn-fill::before { + content: "\f553"; +} + +.bi-skip-end-btn::before { + content: "\f554"; +} + +.bi-skip-end-circle-fill::before { + content: "\f555"; +} + +.bi-skip-end-circle::before { + content: "\f556"; +} + +.bi-skip-end-fill::before { + content: "\f557"; +} + +.bi-skip-end::before { + content: "\f558"; +} + +.bi-skip-forward-btn-fill::before { + content: "\f559"; +} + +.bi-skip-forward-btn::before { + content: "\f55a"; +} + +.bi-skip-forward-circle-fill::before { + content: "\f55b"; +} + +.bi-skip-forward-circle::before { + content: "\f55c"; +} + +.bi-skip-forward-fill::before { + content: "\f55d"; +} + +.bi-skip-forward::before { + content: "\f55e"; +} + +.bi-skip-start-btn-fill::before { + content: "\f55f"; +} + +.bi-skip-start-btn::before { + content: "\f560"; +} + +.bi-skip-start-circle-fill::before { + content: "\f561"; +} + +.bi-skip-start-circle::before { + content: "\f562"; +} + +.bi-skip-start-fill::before { + content: "\f563"; +} + +.bi-skip-start::before { + content: "\f564"; +} + +.bi-slack::before { + content: "\f565"; +} + +.bi-slash-circle-fill::before { + content: "\f566"; +} + +.bi-slash-circle::before { + content: "\f567"; +} + +.bi-slash-square-fill::before { + content: "\f568"; +} + +.bi-slash-square::before { + content: "\f569"; +} + +.bi-slash::before { + content: "\f56a"; +} + +.bi-sliders::before { + content: "\f56b"; +} + +.bi-smartwatch::before { + content: "\f56c"; +} + +.bi-snow::before { + content: "\f56d"; +} + +.bi-snow2::before { + content: "\f56e"; +} + +.bi-snow3::before { + content: "\f56f"; +} + +.bi-sort-alpha-down-alt::before { + content: "\f570"; +} + +.bi-sort-alpha-down::before { + content: "\f571"; +} + +.bi-sort-alpha-up-alt::before { + content: "\f572"; +} + +.bi-sort-alpha-up::before { + content: "\f573"; +} + +.bi-sort-down-alt::before { + content: "\f574"; +} + +.bi-sort-down::before { + content: "\f575"; +} + +.bi-sort-numeric-down-alt::before { + content: "\f576"; +} + +.bi-sort-numeric-down::before { + content: "\f577"; +} + +.bi-sort-numeric-up-alt::before { + content: "\f578"; +} + +.bi-sort-numeric-up::before { + content: "\f579"; +} + +.bi-sort-up-alt::before { + content: "\f57a"; +} + +.bi-sort-up::before { + content: "\f57b"; +} + +.bi-soundwave::before { + content: "\f57c"; +} + +.bi-speaker-fill::before { + content: "\f57d"; +} + +.bi-speaker::before { + content: "\f57e"; +} + +.bi-speedometer::before { + content: "\f57f"; +} + +.bi-speedometer2::before { + content: "\f580"; +} + +.bi-spellcheck::before { + content: "\f581"; +} + +.bi-square-fill::before { + content: "\f582"; +} + +.bi-square-half::before { + content: "\f583"; +} + +.bi-square::before { + content: "\f584"; +} + +.bi-stack::before { + content: "\f585"; +} + +.bi-star-fill::before { + content: "\f586"; +} + +.bi-star-half::before { + content: "\f587"; +} + +.bi-star::before { + content: "\f588"; +} + +.bi-stars::before { + content: "\f589"; +} + +.bi-stickies-fill::before { + content: "\f58a"; +} + +.bi-stickies::before { + content: "\f58b"; +} + +.bi-sticky-fill::before { + content: "\f58c"; +} + +.bi-sticky::before { + content: "\f58d"; +} + +.bi-stop-btn-fill::before { + content: "\f58e"; +} + +.bi-stop-btn::before { + content: "\f58f"; +} + +.bi-stop-circle-fill::before { + content: "\f590"; +} + +.bi-stop-circle::before { + content: "\f591"; +} + +.bi-stop-fill::before { + content: "\f592"; +} + +.bi-stop::before { + content: "\f593"; +} + +.bi-stoplights-fill::before { + content: "\f594"; +} + +.bi-stoplights::before { + content: "\f595"; +} + +.bi-stopwatch-fill::before { + content: "\f596"; +} + +.bi-stopwatch::before { + content: "\f597"; +} + +.bi-subtract::before { + content: "\f598"; +} + +.bi-suit-club-fill::before { + content: "\f599"; +} + +.bi-suit-club::before { + content: "\f59a"; +} + +.bi-suit-diamond-fill::before { + content: "\f59b"; +} + +.bi-suit-diamond::before { + content: "\f59c"; +} + +.bi-suit-heart-fill::before { + content: "\f59d"; +} + +.bi-suit-heart::before { + content: "\f59e"; +} + +.bi-suit-spade-fill::before { + content: "\f59f"; +} + +.bi-suit-spade::before { + content: "\f5a0"; +} + +.bi-sun-fill::before { + content: "\f5a1"; +} + +.bi-sun::before { + content: "\f5a2"; +} + +.bi-sunglasses::before { + content: "\f5a3"; +} + +.bi-sunrise-fill::before { + content: "\f5a4"; +} + +.bi-sunrise::before { + content: "\f5a5"; +} + +.bi-sunset-fill::before { + content: "\f5a6"; +} + +.bi-sunset::before { + content: "\f5a7"; +} + +.bi-symmetry-horizontal::before { + content: "\f5a8"; +} + +.bi-symmetry-vertical::before { + content: "\f5a9"; +} + +.bi-table::before { + content: "\f5aa"; +} + +.bi-tablet-fill::before { + content: "\f5ab"; +} + +.bi-tablet-landscape-fill::before { + content: "\f5ac"; +} + +.bi-tablet-landscape::before { + content: "\f5ad"; +} + +.bi-tablet::before { + content: "\f5ae"; +} + +.bi-tag-fill::before { + content: "\f5af"; +} + +.bi-tag::before { + content: "\f5b0"; +} + +.bi-tags-fill::before { + content: "\f5b1"; +} + +.bi-tags::before { + content: "\f5b2"; +} + +.bi-telegram::before { + content: "\f5b3"; +} + +.bi-telephone-fill::before { + content: "\f5b4"; +} + +.bi-telephone-forward-fill::before { + content: "\f5b5"; +} + +.bi-telephone-forward::before { + content: "\f5b6"; +} + +.bi-telephone-inbound-fill::before { + content: "\f5b7"; +} + +.bi-telephone-inbound::before { + content: "\f5b8"; +} + +.bi-telephone-minus-fill::before { + content: "\f5b9"; +} + +.bi-telephone-minus::before { + content: "\f5ba"; +} + +.bi-telephone-outbound-fill::before { + content: "\f5bb"; +} + +.bi-telephone-outbound::before { + content: "\f5bc"; +} + +.bi-telephone-plus-fill::before { + content: "\f5bd"; +} + +.bi-telephone-plus::before { + content: "\f5be"; +} + +.bi-telephone-x-fill::before { + content: "\f5bf"; +} + +.bi-telephone-x::before { + content: "\f5c0"; +} + +.bi-telephone::before { + content: "\f5c1"; +} + +.bi-terminal-fill::before { + content: "\f5c2"; +} + +.bi-terminal::before { + content: "\f5c3"; +} + +.bi-text-center::before { + content: "\f5c4"; +} + +.bi-text-indent-left::before { + content: "\f5c5"; +} + +.bi-text-indent-right::before { + content: "\f5c6"; +} + +.bi-text-left::before { + content: "\f5c7"; +} + +.bi-text-paragraph::before { + content: "\f5c8"; +} + +.bi-text-right::before { + content: "\f5c9"; +} + +.bi-textarea-resize::before { + content: "\f5ca"; +} + +.bi-textarea-t::before { + content: "\f5cb"; +} + +.bi-textarea::before { + content: "\f5cc"; +} + +.bi-thermometer-half::before { + content: "\f5cd"; +} + +.bi-thermometer-high::before { + content: "\f5ce"; +} + +.bi-thermometer-low::before { + content: "\f5cf"; +} + +.bi-thermometer-snow::before { + content: "\f5d0"; +} + +.bi-thermometer-sun::before { + content: "\f5d1"; +} + +.bi-thermometer::before { + content: "\f5d2"; +} + +.bi-three-dots-vertical::before { + content: "\f5d3"; +} + +.bi-three-dots::before { + content: "\f5d4"; +} + +.bi-toggle-off::before { + content: "\f5d5"; +} + +.bi-toggle-on::before { + content: "\f5d6"; +} + +.bi-toggle2-off::before { + content: "\f5d7"; +} + +.bi-toggle2-on::before { + content: "\f5d8"; +} + +.bi-toggles::before { + content: "\f5d9"; +} + +.bi-toggles2::before { + content: "\f5da"; +} + +.bi-tools::before { + content: "\f5db"; +} + +.bi-tornado::before { + content: "\f5dc"; +} + +.bi-trash-fill::before { + content: "\f5dd"; +} + +.bi-trash::before { + content: "\f5de"; +} + +.bi-trash2-fill::before { + content: "\f5df"; +} + +.bi-trash2::before { + content: "\f5e0"; +} + +.bi-tree-fill::before { + content: "\f5e1"; +} + +.bi-tree::before { + content: "\f5e2"; +} + +.bi-triangle-fill::before { + content: "\f5e3"; +} + +.bi-triangle-half::before { + content: "\f5e4"; +} + +.bi-triangle::before { + content: "\f5e5"; +} + +.bi-trophy-fill::before { + content: "\f5e6"; +} + +.bi-trophy::before { + content: "\f5e7"; +} + +.bi-tropical-storm::before { + content: "\f5e8"; +} + +.bi-truck-flatbed::before { + content: "\f5e9"; +} + +.bi-truck::before { + content: "\f5ea"; +} + +.bi-tsunami::before { + content: "\f5eb"; +} + +.bi-tv-fill::before { + content: "\f5ec"; +} + +.bi-tv::before { + content: "\f5ed"; +} + +.bi-twitch::before { + content: "\f5ee"; +} + +.bi-twitter::before { + content: "\f5ef"; +} + +.bi-type-bold::before { + content: "\f5f0"; +} + +.bi-type-h1::before { + content: "\f5f1"; +} + +.bi-type-h2::before { + content: "\f5f2"; +} + +.bi-type-h3::before { + content: "\f5f3"; +} + +.bi-type-italic::before { + content: "\f5f4"; +} + +.bi-type-strikethrough::before { + content: "\f5f5"; +} + +.bi-type-underline::before { + content: "\f5f6"; +} + +.bi-type::before { + content: "\f5f7"; +} + +.bi-ui-checks-grid::before { + content: "\f5f8"; +} + +.bi-ui-checks::before { + content: "\f5f9"; +} + +.bi-ui-radios-grid::before { + content: "\f5fa"; +} + +.bi-ui-radios::before { + content: "\f5fb"; +} + +.bi-umbrella-fill::before { + content: "\f5fc"; +} + +.bi-umbrella::before { + content: "\f5fd"; +} + +.bi-union::before { + content: "\f5fe"; +} + +.bi-unlock-fill::before { + content: "\f5ff"; +} + +.bi-unlock::before { + content: "\f600"; +} + +.bi-upc-scan::before { + content: "\f601"; +} + +.bi-upc::before { + content: "\f602"; +} + +.bi-upload::before { + content: "\f603"; +} + +.bi-vector-pen::before { + content: "\f604"; +} + +.bi-view-list::before { + content: "\f605"; +} + +.bi-view-stacked::before { + content: "\f606"; +} + +.bi-vinyl-fill::before { + content: "\f607"; +} + +.bi-vinyl::before { + content: "\f608"; +} + +.bi-voicemail::before { + content: "\f609"; +} + +.bi-volume-down-fill::before { + content: "\f60a"; +} + +.bi-volume-down::before { + content: "\f60b"; +} + +.bi-volume-mute-fill::before { + content: "\f60c"; +} + +.bi-volume-mute::before { + content: "\f60d"; +} + +.bi-volume-off-fill::before { + content: "\f60e"; +} + +.bi-volume-off::before { + content: "\f60f"; +} + +.bi-volume-up-fill::before { + content: "\f610"; +} + +.bi-volume-up::before { + content: "\f611"; +} + +.bi-vr::before { + content: "\f612"; +} + +.bi-wallet-fill::before { + content: "\f613"; +} + +.bi-wallet::before { + content: "\f614"; +} + +.bi-wallet2::before { + content: "\f615"; +} + +.bi-watch::before { + content: "\f616"; +} + +.bi-water::before { + content: "\f617"; +} + +.bi-whatsapp::before { + content: "\f618"; +} + +.bi-wifi-1::before { + content: "\f619"; +} + +.bi-wifi-2::before { + content: "\f61a"; +} + +.bi-wifi-off::before { + content: "\f61b"; +} + +.bi-wifi::before { + content: "\f61c"; +} + +.bi-wind::before { + content: "\f61d"; +} + +.bi-window-dock::before { + content: "\f61e"; +} + +.bi-window-sidebar::before { + content: "\f61f"; +} + +.bi-window::before { + content: "\f620"; +} + +.bi-wrench::before { + content: "\f621"; +} + +.bi-x-circle-fill::before { + content: "\f622"; +} + +.bi-x-circle::before { + content: "\f623"; +} + +.bi-x-diamond-fill::before { + content: "\f624"; +} + +.bi-x-diamond::before { + content: "\f625"; +} + +.bi-x-octagon-fill::before { + content: "\f626"; +} + +.bi-x-octagon::before { + content: "\f627"; +} + +.bi-x-square-fill::before { + content: "\f628"; +} + +.bi-x-square::before { + content: "\f629"; +} + +.bi-x::before { + content: "\f62a"; +} + +.bi-youtube::before { + content: "\f62b"; +} + +.bi-zoom-in::before { + content: "\f62c"; +} + +.bi-zoom-out::before { + content: "\f62d"; +} + +.bi-bank::before { + content: "\f62e"; +} + +.bi-bank2::before { + content: "\f62f"; +} + +.bi-bell-slash-fill::before { + content: "\f630"; +} + +.bi-bell-slash::before { + content: "\f631"; +} + +.bi-cash-coin::before { + content: "\f632"; +} + +.bi-check-lg::before { + content: "\f633"; +} + +.bi-coin::before { + content: "\f634"; +} + +.bi-currency-bitcoin::before { + content: "\f635"; +} + +.bi-currency-dollar::before { + content: "\f636"; +} + +.bi-currency-euro::before { + content: "\f637"; +} + +.bi-currency-exchange::before { + content: "\f638"; +} + +.bi-currency-pound::before { + content: "\f639"; +} + +.bi-currency-yen::before { + content: "\f63a"; +} + +.bi-dash-lg::before { + content: "\f63b"; +} + +.bi-exclamation-lg::before { + content: "\f63c"; +} + +.bi-file-earmark-pdf-fill::before { + content: "\f63d"; +} + +.bi-file-earmark-pdf::before { + content: "\f63e"; +} + +.bi-file-pdf-fill::before { + content: "\f63f"; +} + +.bi-file-pdf::before { + content: "\f640"; +} + +.bi-gender-ambiguous::before { + content: "\f641"; +} + +.bi-gender-female::before { + content: "\f642"; +} + +.bi-gender-male::before { + content: "\f643"; +} + +.bi-gender-trans::before { + content: "\f644"; +} + +.bi-headset-vr::before { + content: "\f645"; +} + +.bi-info-lg::before { + content: "\f646"; +} + +.bi-mastodon::before { + content: "\f647"; +} + +.bi-messenger::before { + content: "\f648"; +} + +.bi-piggy-bank-fill::before { + content: "\f649"; +} + +.bi-piggy-bank::before { + content: "\f64a"; +} + +.bi-pin-map-fill::before { + content: "\f64b"; +} + +.bi-pin-map::before { + content: "\f64c"; +} + +.bi-plus-lg::before { + content: "\f64d"; +} + +.bi-question-lg::before { + content: "\f64e"; +} + +.bi-recycle::before { + content: "\f64f"; +} + +.bi-reddit::before { + content: "\f650"; +} + +.bi-safe-fill::before { + content: "\f651"; +} + +.bi-safe2-fill::before { + content: "\f652"; +} + +.bi-safe2::before { + content: "\f653"; +} + +.bi-sd-card-fill::before { + content: "\f654"; +} + +.bi-sd-card::before { + content: "\f655"; +} + +.bi-skype::before { + content: "\f656"; +} + +.bi-slash-lg::before { + content: "\f657"; +} + +.bi-translate::before { + content: "\f658"; +} + +.bi-x-lg::before { + content: "\f659"; +} + +.bi-safe::before { + content: "\f65a"; +} + +.bi-apple::before { + content: "\f65b"; +} + +.bi-microsoft::before { + content: "\f65d"; +} + +.bi-windows::before { + content: "\f65e"; +} + +.bi-behance::before { + content: "\f65c"; +} + +.bi-dribbble::before { + content: "\f65f"; +} + +.bi-line::before { + content: "\f660"; +} + +.bi-medium::before { + content: "\f661"; +} + +.bi-paypal::before { + content: "\f662"; +} + +.bi-pinterest::before { + content: "\f663"; +} + +.bi-signal::before { + content: "\f664"; +} + +.bi-snapchat::before { + content: "\f665"; +} + +.bi-spotify::before { + content: "\f666"; +} + +.bi-stack-overflow::before { + content: "\f667"; +} + +.bi-strava::before { + content: "\f668"; +} + +.bi-wordpress::before { + content: "\f669"; +} + +.bi-vimeo::before { + content: "\f66a"; +} + +.bi-activity::before { + content: "\f66b"; +} + +.bi-easel2-fill::before { + content: "\f66c"; +} + +.bi-easel2::before { + content: "\f66d"; +} + +.bi-easel3-fill::before { + content: "\f66e"; +} + +.bi-easel3::before { + content: "\f66f"; +} + +.bi-fan::before { + content: "\f670"; +} + +.bi-fingerprint::before { + content: "\f671"; +} + +.bi-graph-down-arrow::before { + content: "\f672"; +} + +.bi-graph-up-arrow::before { + content: "\f673"; +} + +.bi-hypnotize::before { + content: "\f674"; +} + +.bi-magic::before { + content: "\f675"; +} + +.bi-person-rolodex::before { + content: "\f676"; +} + +.bi-person-video::before { + content: "\f677"; +} + +.bi-person-video2::before { + content: "\f678"; +} + +.bi-person-video3::before { + content: "\f679"; +} + +.bi-person-workspace::before { + content: "\f67a"; +} + +.bi-radioactive::before { + content: "\f67b"; +} + +.bi-webcam-fill::before { + content: "\f67c"; +} + +.bi-webcam::before { + content: "\f67d"; +} + +.bi-yin-yang::before { + content: "\f67e"; +} + +.bi-bandaid-fill::before { + content: "\f680"; +} + +.bi-bandaid::before { + content: "\f681"; +} + +.bi-bluetooth::before { + content: "\f682"; +} + +.bi-body-text::before { + content: "\f683"; +} + +.bi-boombox::before { + content: "\f684"; +} + +.bi-boxes::before { + content: "\f685"; +} + +.bi-dpad-fill::before { + content: "\f686"; +} + +.bi-dpad::before { + content: "\f687"; +} + +.bi-ear-fill::before { + content: "\f688"; +} + +.bi-ear::before { + content: "\f689"; +} + +.bi-envelope-check-fill::before { + content: "\f68b"; +} + +.bi-envelope-check::before { + content: "\f68c"; +} + +.bi-envelope-dash-fill::before { + content: "\f68e"; +} + +.bi-envelope-dash::before { + content: "\f68f"; +} + +.bi-envelope-exclamation-fill::before { + content: "\f691"; +} + +.bi-envelope-exclamation::before { + content: "\f692"; +} + +.bi-envelope-plus-fill::before { + content: "\f693"; +} + +.bi-envelope-plus::before { + content: "\f694"; +} + +.bi-envelope-slash-fill::before { + content: "\f696"; +} + +.bi-envelope-slash::before { + content: "\f697"; +} + +.bi-envelope-x-fill::before { + content: "\f699"; +} + +.bi-envelope-x::before { + content: "\f69a"; +} + +.bi-explicit-fill::before { + content: "\f69b"; +} + +.bi-explicit::before { + content: "\f69c"; +} + +.bi-git::before { + content: "\f69d"; +} + +.bi-infinity::before { + content: "\f69e"; +} + +.bi-list-columns-reverse::before { + content: "\f69f"; +} + +.bi-list-columns::before { + content: "\f6a0"; +} + +.bi-meta::before { + content: "\f6a1"; +} + +.bi-nintendo-switch::before { + content: "\f6a4"; +} + +.bi-pc-display-horizontal::before { + content: "\f6a5"; +} + +.bi-pc-display::before { + content: "\f6a6"; +} + +.bi-pc-horizontal::before { + content: "\f6a7"; +} + +.bi-pc::before { + content: "\f6a8"; +} + +.bi-playstation::before { + content: "\f6a9"; +} + +.bi-plus-slash-minus::before { + content: "\f6aa"; +} + +.bi-projector-fill::before { + content: "\f6ab"; +} + +.bi-projector::before { + content: "\f6ac"; +} + +.bi-qr-code-scan::before { + content: "\f6ad"; +} + +.bi-qr-code::before { + content: "\f6ae"; +} + +.bi-quora::before { + content: "\f6af"; +} + +.bi-quote::before { + content: "\f6b0"; +} + +.bi-robot::before { + content: "\f6b1"; +} + +.bi-send-check-fill::before { + content: "\f6b2"; +} + +.bi-send-check::before { + content: "\f6b3"; +} + +.bi-send-dash-fill::before { + content: "\f6b4"; +} + +.bi-send-dash::before { + content: "\f6b5"; +} + +.bi-send-exclamation-fill::before { + content: "\f6b7"; +} + +.bi-send-exclamation::before { + content: "\f6b8"; +} + +.bi-send-fill::before { + content: "\f6b9"; +} + +.bi-send-plus-fill::before { + content: "\f6ba"; +} + +.bi-send-plus::before { + content: "\f6bb"; +} + +.bi-send-slash-fill::before { + content: "\f6bc"; +} + +.bi-send-slash::before { + content: "\f6bd"; +} + +.bi-send-x-fill::before { + content: "\f6be"; +} + +.bi-send-x::before { + content: "\f6bf"; +} + +.bi-send::before { + content: "\f6c0"; +} + +.bi-steam::before { + content: "\f6c1"; +} + +.bi-terminal-dash::before { + content: "\f6c3"; +} + +.bi-terminal-plus::before { + content: "\f6c4"; +} + +.bi-terminal-split::before { + content: "\f6c5"; +} + +.bi-ticket-detailed-fill::before { + content: "\f6c6"; +} + +.bi-ticket-detailed::before { + content: "\f6c7"; +} + +.bi-ticket-fill::before { + content: "\f6c8"; +} + +.bi-ticket-perforated-fill::before { + content: "\f6c9"; +} + +.bi-ticket-perforated::before { + content: "\f6ca"; +} + +.bi-ticket::before { + content: "\f6cb"; +} + +.bi-tiktok::before { + content: "\f6cc"; +} + +.bi-window-dash::before { + content: "\f6cd"; +} + +.bi-window-desktop::before { + content: "\f6ce"; +} + +.bi-window-fullscreen::before { + content: "\f6cf"; +} + +.bi-window-plus::before { + content: "\f6d0"; +} + +.bi-window-split::before { + content: "\f6d1"; +} + +.bi-window-stack::before { + content: "\f6d2"; +} + +.bi-window-x::before { + content: "\f6d3"; +} + +.bi-xbox::before { + content: "\f6d4"; +} + +.bi-ethernet::before { + content: "\f6d5"; +} + +.bi-hdmi-fill::before { + content: "\f6d6"; +} + +.bi-hdmi::before { + content: "\f6d7"; +} + +.bi-usb-c-fill::before { + content: "\f6d8"; +} + +.bi-usb-c::before { + content: "\f6d9"; +} + +.bi-usb-fill::before { + content: "\f6da"; +} + +.bi-usb-plug-fill::before { + content: "\f6db"; +} + +.bi-usb-plug::before { + content: "\f6dc"; +} + +.bi-usb-symbol::before { + content: "\f6dd"; +} + +.bi-usb::before { + content: "\f6de"; +} + +.bi-boombox-fill::before { + content: "\f6df"; +} + +.bi-displayport::before { + content: "\f6e1"; +} + +.bi-gpu-card::before { + content: "\f6e2"; +} + +.bi-memory::before { + content: "\f6e3"; +} + +.bi-modem-fill::before { + content: "\f6e4"; +} + +.bi-modem::before { + content: "\f6e5"; +} + +.bi-motherboard-fill::before { + content: "\f6e6"; +} + +.bi-motherboard::before { + content: "\f6e7"; +} + +.bi-optical-audio-fill::before { + content: "\f6e8"; +} + +.bi-optical-audio::before { + content: "\f6e9"; +} + +.bi-pci-card::before { + content: "\f6ea"; +} + +.bi-router-fill::before { + content: "\f6eb"; +} + +.bi-router::before { + content: "\f6ec"; +} + +.bi-thunderbolt-fill::before { + content: "\f6ef"; +} + +.bi-thunderbolt::before { + content: "\f6f0"; +} + +.bi-usb-drive-fill::before { + content: "\f6f1"; +} + +.bi-usb-drive::before { + content: "\f6f2"; +} + +.bi-usb-micro-fill::before { + content: "\f6f3"; +} + +.bi-usb-micro::before { + content: "\f6f4"; +} + +.bi-usb-mini-fill::before { + content: "\f6f5"; +} + +.bi-usb-mini::before { + content: "\f6f6"; +} + +.bi-cloud-haze2::before { + content: "\f6f7"; +} + +.bi-device-hdd-fill::before { + content: "\f6f8"; +} + +.bi-device-hdd::before { + content: "\f6f9"; +} + +.bi-device-ssd-fill::before { + content: "\f6fa"; +} + +.bi-device-ssd::before { + content: "\f6fb"; +} + +.bi-displayport-fill::before { + content: "\f6fc"; +} + +.bi-mortarboard-fill::before { + content: "\f6fd"; +} + +.bi-mortarboard::before { + content: "\f6fe"; +} + +.bi-terminal-x::before { + content: "\f6ff"; +} + +.bi-arrow-through-heart-fill::before { + content: "\f700"; +} + +.bi-arrow-through-heart::before { + content: "\f701"; +} + +.bi-badge-sd-fill::before { + content: "\f702"; +} + +.bi-badge-sd::before { + content: "\f703"; +} + +.bi-bag-heart-fill::before { + content: "\f704"; +} + +.bi-bag-heart::before { + content: "\f705"; +} + +.bi-balloon-fill::before { + content: "\f706"; +} + +.bi-balloon-heart-fill::before { + content: "\f707"; +} + +.bi-balloon-heart::before { + content: "\f708"; +} + +.bi-balloon::before { + content: "\f709"; +} + +.bi-box2-fill::before { + content: "\f70a"; +} + +.bi-box2-heart-fill::before { + content: "\f70b"; +} + +.bi-box2-heart::before { + content: "\f70c"; +} + +.bi-box2::before { + content: "\f70d"; +} + +.bi-braces-asterisk::before { + content: "\f70e"; +} + +.bi-calendar-heart-fill::before { + content: "\f70f"; +} + +.bi-calendar-heart::before { + content: "\f710"; +} + +.bi-calendar2-heart-fill::before { + content: "\f711"; +} + +.bi-calendar2-heart::before { + content: "\f712"; +} + +.bi-chat-heart-fill::before { + content: "\f713"; +} + +.bi-chat-heart::before { + content: "\f714"; +} + +.bi-chat-left-heart-fill::before { + content: "\f715"; +} + +.bi-chat-left-heart::before { + content: "\f716"; +} + +.bi-chat-right-heart-fill::before { + content: "\f717"; +} + +.bi-chat-right-heart::before { + content: "\f718"; +} + +.bi-chat-square-heart-fill::before { + content: "\f719"; +} + +.bi-chat-square-heart::before { + content: "\f71a"; +} + +.bi-clipboard-check-fill::before { + content: "\f71b"; +} + +.bi-clipboard-data-fill::before { + content: "\f71c"; +} + +.bi-clipboard-fill::before { + content: "\f71d"; +} + +.bi-clipboard-heart-fill::before { + content: "\f71e"; +} + +.bi-clipboard-heart::before { + content: "\f71f"; +} + +.bi-clipboard-minus-fill::before { + content: "\f720"; +} + +.bi-clipboard-plus-fill::before { + content: "\f721"; +} + +.bi-clipboard-pulse::before { + content: "\f722"; +} + +.bi-clipboard-x-fill::before { + content: "\f723"; +} + +.bi-clipboard2-check-fill::before { + content: "\f724"; +} + +.bi-clipboard2-check::before { + content: "\f725"; +} + +.bi-clipboard2-data-fill::before { + content: "\f726"; +} + +.bi-clipboard2-data::before { + content: "\f727"; +} + +.bi-clipboard2-fill::before { + content: "\f728"; +} + +.bi-clipboard2-heart-fill::before { + content: "\f729"; +} + +.bi-clipboard2-heart::before { + content: "\f72a"; +} + +.bi-clipboard2-minus-fill::before { + content: "\f72b"; +} + +.bi-clipboard2-minus::before { + content: "\f72c"; +} + +.bi-clipboard2-plus-fill::before { + content: "\f72d"; +} + +.bi-clipboard2-plus::before { + content: "\f72e"; +} + +.bi-clipboard2-pulse-fill::before { + content: "\f72f"; +} + +.bi-clipboard2-pulse::before { + content: "\f730"; +} + +.bi-clipboard2-x-fill::before { + content: "\f731"; +} + +.bi-clipboard2-x::before { + content: "\f732"; +} + +.bi-clipboard2::before { + content: "\f733"; +} + +.bi-emoji-kiss-fill::before { + content: "\f734"; +} + +.bi-emoji-kiss::before { + content: "\f735"; +} + +.bi-envelope-heart-fill::before { + content: "\f736"; +} + +.bi-envelope-heart::before { + content: "\f737"; +} + +.bi-envelope-open-heart-fill::before { + content: "\f738"; +} + +.bi-envelope-open-heart::before { + content: "\f739"; +} + +.bi-envelope-paper-fill::before { + content: "\f73a"; +} + +.bi-envelope-paper-heart-fill::before { + content: "\f73b"; +} + +.bi-envelope-paper-heart::before { + content: "\f73c"; +} + +.bi-envelope-paper::before { + content: "\f73d"; +} + +.bi-filetype-aac::before { + content: "\f73e"; +} + +.bi-filetype-ai::before { + content: "\f73f"; +} + +.bi-filetype-bmp::before { + content: "\f740"; +} + +.bi-filetype-cs::before { + content: "\f741"; +} + +.bi-filetype-css::before { + content: "\f742"; +} + +.bi-filetype-csv::before { + content: "\f743"; +} + +.bi-filetype-doc::before { + content: "\f744"; +} + +.bi-filetype-docx::before { + content: "\f745"; +} + +.bi-filetype-exe::before { + content: "\f746"; +} + +.bi-filetype-gif::before { + content: "\f747"; +} + +.bi-filetype-heic::before { + content: "\f748"; +} + +.bi-filetype-html::before { + content: "\f749"; +} + +.bi-filetype-java::before { + content: "\f74a"; +} + +.bi-filetype-jpg::before { + content: "\f74b"; +} + +.bi-filetype-js::before { + content: "\f74c"; +} + +.bi-filetype-jsx::before { + content: "\f74d"; +} + +.bi-filetype-key::before { + content: "\f74e"; +} + +.bi-filetype-m4p::before { + content: "\f74f"; +} + +.bi-filetype-md::before { + content: "\f750"; +} + +.bi-filetype-mdx::before { + content: "\f751"; +} + +.bi-filetype-mov::before { + content: "\f752"; +} + +.bi-filetype-mp3::before { + content: "\f753"; +} + +.bi-filetype-mp4::before { + content: "\f754"; +} + +.bi-filetype-otf::before { + content: "\f755"; +} + +.bi-filetype-pdf::before { + content: "\f756"; +} + +.bi-filetype-php::before { + content: "\f757"; +} + +.bi-filetype-png::before { + content: "\f758"; +} + +.bi-filetype-ppt::before { + content: "\f75a"; +} + +.bi-filetype-psd::before { + content: "\f75b"; +} + +.bi-filetype-py::before { + content: "\f75c"; +} + +.bi-filetype-raw::before { + content: "\f75d"; +} + +.bi-filetype-rb::before { + content: "\f75e"; +} + +.bi-filetype-sass::before { + content: "\f75f"; +} + +.bi-filetype-scss::before { + content: "\f760"; +} + +.bi-filetype-sh::before { + content: "\f761"; +} + +.bi-filetype-svg::before { + content: "\f762"; +} + +.bi-filetype-tiff::before { + content: "\f763"; +} + +.bi-filetype-tsx::before { + content: "\f764"; +} + +.bi-filetype-ttf::before { + content: "\f765"; +} + +.bi-filetype-txt::before { + content: "\f766"; +} + +.bi-filetype-wav::before { + content: "\f767"; +} + +.bi-filetype-woff::before { + content: "\f768"; +} + +.bi-filetype-xls::before { + content: "\f76a"; +} + +.bi-filetype-xml::before { + content: "\f76b"; +} + +.bi-filetype-yml::before { + content: "\f76c"; +} + +.bi-heart-arrow::before { + content: "\f76d"; +} + +.bi-heart-pulse-fill::before { + content: "\f76e"; +} + +.bi-heart-pulse::before { + content: "\f76f"; +} + +.bi-heartbreak-fill::before { + content: "\f770"; +} + +.bi-heartbreak::before { + content: "\f771"; +} + +.bi-hearts::before { + content: "\f772"; +} + +.bi-hospital-fill::before { + content: "\f773"; +} + +.bi-hospital::before { + content: "\f774"; +} + +.bi-house-heart-fill::before { + content: "\f775"; +} + +.bi-house-heart::before { + content: "\f776"; +} + +.bi-incognito::before { + content: "\f777"; +} + +.bi-magnet-fill::before { + content: "\f778"; +} + +.bi-magnet::before { + content: "\f779"; +} + +.bi-person-heart::before { + content: "\f77a"; +} + +.bi-person-hearts::before { + content: "\f77b"; +} + +.bi-phone-flip::before { + content: "\f77c"; +} + +.bi-plugin::before { + content: "\f77d"; +} + +.bi-postage-fill::before { + content: "\f77e"; +} + +.bi-postage-heart-fill::before { + content: "\f77f"; +} + +.bi-postage-heart::before { + content: "\f780"; +} + +.bi-postage::before { + content: "\f781"; +} + +.bi-postcard-fill::before { + content: "\f782"; +} + +.bi-postcard-heart-fill::before { + content: "\f783"; +} + +.bi-postcard-heart::before { + content: "\f784"; +} + +.bi-postcard::before { + content: "\f785"; +} + +.bi-search-heart-fill::before { + content: "\f786"; +} + +.bi-search-heart::before { + content: "\f787"; +} + +.bi-sliders2-vertical::before { + content: "\f788"; +} + +.bi-sliders2::before { + content: "\f789"; +} + +.bi-trash3-fill::before { + content: "\f78a"; +} + +.bi-trash3::before { + content: "\f78b"; +} + +.bi-valentine::before { + content: "\f78c"; +} + +.bi-valentine2::before { + content: "\f78d"; +} + +.bi-wrench-adjustable-circle-fill::before { + content: "\f78e"; +} + +.bi-wrench-adjustable-circle::before { + content: "\f78f"; +} + +.bi-wrench-adjustable::before { + content: "\f790"; +} + +.bi-filetype-json::before { + content: "\f791"; +} + +.bi-filetype-pptx::before { + content: "\f792"; +} + +.bi-filetype-xlsx::before { + content: "\f793"; +} + +.bi-1-circle-fill::before { + content: "\f796"; +} + +.bi-1-circle::before { + content: "\f797"; +} + +.bi-1-square-fill::before { + content: "\f798"; +} + +.bi-1-square::before { + content: "\f799"; +} + +.bi-2-circle-fill::before { + content: "\f79c"; +} + +.bi-2-circle::before { + content: "\f79d"; +} + +.bi-2-square-fill::before { + content: "\f79e"; +} + +.bi-2-square::before { + content: "\f79f"; +} + +.bi-3-circle-fill::before { + content: "\f7a2"; +} + +.bi-3-circle::before { + content: "\f7a3"; +} + +.bi-3-square-fill::before { + content: "\f7a4"; +} + +.bi-3-square::before { + content: "\f7a5"; +} + +.bi-4-circle-fill::before { + content: "\f7a8"; +} + +.bi-4-circle::before { + content: "\f7a9"; +} + +.bi-4-square-fill::before { + content: "\f7aa"; +} + +.bi-4-square::before { + content: "\f7ab"; +} + +.bi-5-circle-fill::before { + content: "\f7ae"; +} + +.bi-5-circle::before { + content: "\f7af"; +} + +.bi-5-square-fill::before { + content: "\f7b0"; +} + +.bi-5-square::before { + content: "\f7b1"; +} + +.bi-6-circle-fill::before { + content: "\f7b4"; +} + +.bi-6-circle::before { + content: "\f7b5"; +} + +.bi-6-square-fill::before { + content: "\f7b6"; +} + +.bi-6-square::before { + content: "\f7b7"; +} + +.bi-7-circle-fill::before { + content: "\f7ba"; +} + +.bi-7-circle::before { + content: "\f7bb"; +} + +.bi-7-square-fill::before { + content: "\f7bc"; +} + +.bi-7-square::before { + content: "\f7bd"; +} + +.bi-8-circle-fill::before { + content: "\f7c0"; +} + +.bi-8-circle::before { + content: "\f7c1"; +} + +.bi-8-square-fill::before { + content: "\f7c2"; +} + +.bi-8-square::before { + content: "\f7c3"; +} + +.bi-9-circle-fill::before { + content: "\f7c6"; +} + +.bi-9-circle::before { + content: "\f7c7"; +} + +.bi-9-square-fill::before { + content: "\f7c8"; +} + +.bi-9-square::before { + content: "\f7c9"; +} + +.bi-airplane-engines-fill::before { + content: "\f7ca"; +} + +.bi-airplane-engines::before { + content: "\f7cb"; +} + +.bi-airplane-fill::before { + content: "\f7cc"; +} + +.bi-airplane::before { + content: "\f7cd"; +} + +.bi-alexa::before { + content: "\f7ce"; +} + +.bi-alipay::before { + content: "\f7cf"; +} + +.bi-android::before { + content: "\f7d0"; +} + +.bi-android2::before { + content: "\f7d1"; +} + +.bi-box-fill::before { + content: "\f7d2"; +} + +.bi-box-seam-fill::before { + content: "\f7d3"; +} + +.bi-browser-chrome::before { + content: "\f7d4"; +} + +.bi-browser-edge::before { + content: "\f7d5"; +} + +.bi-browser-firefox::before { + content: "\f7d6"; +} + +.bi-browser-safari::before { + content: "\f7d7"; +} + +.bi-c-circle-fill::before { + content: "\f7da"; +} + +.bi-c-circle::before { + content: "\f7db"; +} + +.bi-c-square-fill::before { + content: "\f7dc"; +} + +.bi-c-square::before { + content: "\f7dd"; +} + +.bi-capsule-pill::before { + content: "\f7de"; +} + +.bi-capsule::before { + content: "\f7df"; +} + +.bi-car-front-fill::before { + content: "\f7e0"; +} + +.bi-car-front::before { + content: "\f7e1"; +} + +.bi-cassette-fill::before { + content: "\f7e2"; +} + +.bi-cassette::before { + content: "\f7e3"; +} + +.bi-cc-circle-fill::before { + content: "\f7e6"; +} + +.bi-cc-circle::before { + content: "\f7e7"; +} + +.bi-cc-square-fill::before { + content: "\f7e8"; +} + +.bi-cc-square::before { + content: "\f7e9"; +} + +.bi-cup-hot-fill::before { + content: "\f7ea"; +} + +.bi-cup-hot::before { + content: "\f7eb"; +} + +.bi-currency-rupee::before { + content: "\f7ec"; +} + +.bi-dropbox::before { + content: "\f7ed"; +} + +.bi-escape::before { + content: "\f7ee"; +} + +.bi-fast-forward-btn-fill::before { + content: "\f7ef"; +} + +.bi-fast-forward-btn::before { + content: "\f7f0"; +} + +.bi-fast-forward-circle-fill::before { + content: "\f7f1"; +} + +.bi-fast-forward-circle::before { + content: "\f7f2"; +} + +.bi-fast-forward-fill::before { + content: "\f7f3"; +} + +.bi-fast-forward::before { + content: "\f7f4"; +} + +.bi-filetype-sql::before { + content: "\f7f5"; +} + +.bi-fire::before { + content: "\f7f6"; +} + +.bi-google-play::before { + content: "\f7f7"; +} + +.bi-h-circle-fill::before { + content: "\f7fa"; +} + +.bi-h-circle::before { + content: "\f7fb"; +} + +.bi-h-square-fill::before { + content: "\f7fc"; +} + +.bi-h-square::before { + content: "\f7fd"; +} + +.bi-indent::before { + content: "\f7fe"; +} + +.bi-lungs-fill::before { + content: "\f7ff"; +} + +.bi-lungs::before { + content: "\f800"; +} + +.bi-microsoft-teams::before { + content: "\f801"; +} + +.bi-p-circle-fill::before { + content: "\f804"; +} + +.bi-p-circle::before { + content: "\f805"; +} + +.bi-p-square-fill::before { + content: "\f806"; +} + +.bi-p-square::before { + content: "\f807"; +} + +.bi-pass-fill::before { + content: "\f808"; +} + +.bi-pass::before { + content: "\f809"; +} + +.bi-prescription::before { + content: "\f80a"; +} + +.bi-prescription2::before { + content: "\f80b"; +} + +.bi-r-circle-fill::before { + content: "\f80e"; +} + +.bi-r-circle::before { + content: "\f80f"; +} + +.bi-r-square-fill::before { + content: "\f810"; +} + +.bi-r-square::before { + content: "\f811"; +} + +.bi-repeat-1::before { + content: "\f812"; +} + +.bi-repeat::before { + content: "\f813"; +} + +.bi-rewind-btn-fill::before { + content: "\f814"; +} + +.bi-rewind-btn::before { + content: "\f815"; +} + +.bi-rewind-circle-fill::before { + content: "\f816"; +} + +.bi-rewind-circle::before { + content: "\f817"; +} + +.bi-rewind-fill::before { + content: "\f818"; +} + +.bi-rewind::before { + content: "\f819"; +} + +.bi-train-freight-front-fill::before { + content: "\f81a"; +} + +.bi-train-freight-front::before { + content: "\f81b"; +} + +.bi-train-front-fill::before { + content: "\f81c"; +} + +.bi-train-front::before { + content: "\f81d"; +} + +.bi-train-lightrail-front-fill::before { + content: "\f81e"; +} + +.bi-train-lightrail-front::before { + content: "\f81f"; +} + +.bi-truck-front-fill::before { + content: "\f820"; +} + +.bi-truck-front::before { + content: "\f821"; +} + +.bi-ubuntu::before { + content: "\f822"; +} + +.bi-unindent::before { + content: "\f823"; +} + +.bi-unity::before { + content: "\f824"; +} + +.bi-universal-access-circle::before { + content: "\f825"; +} + +.bi-universal-access::before { + content: "\f826"; +} + +.bi-virus::before { + content: "\f827"; +} + +.bi-virus2::before { + content: "\f828"; +} + +.bi-wechat::before { + content: "\f829"; +} + +.bi-yelp::before { + content: "\f82a"; +} + +.bi-sign-stop-fill::before { + content: "\f82b"; +} + +.bi-sign-stop-lights-fill::before { + content: "\f82c"; +} + +.bi-sign-stop-lights::before { + content: "\f82d"; +} + +.bi-sign-stop::before { + content: "\f82e"; +} + +.bi-sign-turn-left-fill::before { + content: "\f82f"; +} + +.bi-sign-turn-left::before { + content: "\f830"; +} + +.bi-sign-turn-right-fill::before { + content: "\f831"; +} + +.bi-sign-turn-right::before { + content: "\f832"; +} + +.bi-sign-turn-slight-left-fill::before { + content: "\f833"; +} + +.bi-sign-turn-slight-left::before { + content: "\f834"; +} + +.bi-sign-turn-slight-right-fill::before { + content: "\f835"; +} + +.bi-sign-turn-slight-right::before { + content: "\f836"; +} + +.bi-sign-yield-fill::before { + content: "\f837"; +} + +.bi-sign-yield::before { + content: "\f838"; +} + +.bi-ev-station-fill::before { + content: "\f839"; +} + +.bi-ev-station::before { + content: "\f83a"; +} + +.bi-fuel-pump-diesel-fill::before { + content: "\f83b"; +} + +.bi-fuel-pump-diesel::before { + content: "\f83c"; +} + +.bi-fuel-pump-fill::before { + content: "\f83d"; +} + +.bi-fuel-pump::before { + content: "\f83e"; +} + +.bi-0-circle-fill::before { + content: "\f83f"; +} + +.bi-0-circle::before { + content: "\f840"; +} + +.bi-0-square-fill::before { + content: "\f841"; +} + +.bi-0-square::before { + content: "\f842"; +} + +.bi-rocket-fill::before { + content: "\f843"; +} + +.bi-rocket-takeoff-fill::before { + content: "\f844"; +} + +.bi-rocket-takeoff::before { + content: "\f845"; +} + +.bi-rocket::before { + content: "\f846"; +} + +.bi-stripe::before { + content: "\f847"; +} + +.bi-subscript::before { + content: "\f848"; +} + +.bi-superscript::before { + content: "\f849"; +} + +.bi-trello::before { + content: "\f84a"; +} + +.bi-envelope-at-fill::before { + content: "\f84b"; +} + +.bi-envelope-at::before { + content: "\f84c"; +} + +.bi-regex::before { + content: "\f84d"; +} + +.bi-text-wrap::before { + content: "\f84e"; +} + +.bi-sign-dead-end-fill::before { + content: "\f84f"; +} + +.bi-sign-dead-end::before { + content: "\f850"; +} + +.bi-sign-do-not-enter-fill::before { + content: "\f851"; +} + +.bi-sign-do-not-enter::before { + content: "\f852"; +} + +.bi-sign-intersection-fill::before { + content: "\f853"; +} + +.bi-sign-intersection-side-fill::before { + content: "\f854"; +} + +.bi-sign-intersection-side::before { + content: "\f855"; +} + +.bi-sign-intersection-t-fill::before { + content: "\f856"; +} + +.bi-sign-intersection-t::before { + content: "\f857"; +} + +.bi-sign-intersection-y-fill::before { + content: "\f858"; +} + +.bi-sign-intersection-y::before { + content: "\f859"; +} + +.bi-sign-intersection::before { + content: "\f85a"; +} + +.bi-sign-merge-left-fill::before { + content: "\f85b"; +} + +.bi-sign-merge-left::before { + content: "\f85c"; +} + +.bi-sign-merge-right-fill::before { + content: "\f85d"; +} + +.bi-sign-merge-right::before { + content: "\f85e"; +} + +.bi-sign-no-left-turn-fill::before { + content: "\f85f"; +} + +.bi-sign-no-left-turn::before { + content: "\f860"; +} + +.bi-sign-no-parking-fill::before { + content: "\f861"; +} + +.bi-sign-no-parking::before { + content: "\f862"; +} + +.bi-sign-no-right-turn-fill::before { + content: "\f863"; +} + +.bi-sign-no-right-turn::before { + content: "\f864"; +} + +.bi-sign-railroad-fill::before { + content: "\f865"; +} + +.bi-sign-railroad::before { + content: "\f866"; +} + +.bi-building-add::before { + content: "\f867"; +} + +.bi-building-check::before { + content: "\f868"; +} + +.bi-building-dash::before { + content: "\f869"; +} + +.bi-building-down::before { + content: "\f86a"; +} + +.bi-building-exclamation::before { + content: "\f86b"; +} + +.bi-building-fill-add::before { + content: "\f86c"; +} + +.bi-building-fill-check::before { + content: "\f86d"; +} + +.bi-building-fill-dash::before { + content: "\f86e"; +} + +.bi-building-fill-down::before { + content: "\f86f"; +} + +.bi-building-fill-exclamation::before { + content: "\f870"; +} + +.bi-building-fill-gear::before { + content: "\f871"; +} + +.bi-building-fill-lock::before { + content: "\f872"; +} + +.bi-building-fill-slash::before { + content: "\f873"; +} + +.bi-building-fill-up::before { + content: "\f874"; +} + +.bi-building-fill-x::before { + content: "\f875"; +} + +.bi-building-fill::before { + content: "\f876"; +} + +.bi-building-gear::before { + content: "\f877"; +} + +.bi-building-lock::before { + content: "\f878"; +} + +.bi-building-slash::before { + content: "\f879"; +} + +.bi-building-up::before { + content: "\f87a"; +} + +.bi-building-x::before { + content: "\f87b"; +} + +.bi-buildings-fill::before { + content: "\f87c"; +} + +.bi-buildings::before { + content: "\f87d"; +} + +.bi-bus-front-fill::before { + content: "\f87e"; +} + +.bi-bus-front::before { + content: "\f87f"; +} + +.bi-ev-front-fill::before { + content: "\f880"; +} + +.bi-ev-front::before { + content: "\f881"; +} + +.bi-globe-americas::before { + content: "\f882"; +} + +.bi-globe-asia-australia::before { + content: "\f883"; +} + +.bi-globe-central-south-asia::before { + content: "\f884"; +} + +.bi-globe-europe-africa::before { + content: "\f885"; +} + +.bi-house-add-fill::before { + content: "\f886"; +} + +.bi-house-add::before { + content: "\f887"; +} + +.bi-house-check-fill::before { + content: "\f888"; +} + +.bi-house-check::before { + content: "\f889"; +} + +.bi-house-dash-fill::before { + content: "\f88a"; +} + +.bi-house-dash::before { + content: "\f88b"; +} + +.bi-house-down-fill::before { + content: "\f88c"; +} + +.bi-house-down::before { + content: "\f88d"; +} + +.bi-house-exclamation-fill::before { + content: "\f88e"; +} + +.bi-house-exclamation::before { + content: "\f88f"; +} + +.bi-house-gear-fill::before { + content: "\f890"; +} + +.bi-house-gear::before { + content: "\f891"; +} + +.bi-house-lock-fill::before { + content: "\f892"; +} + +.bi-house-lock::before { + content: "\f893"; +} + +.bi-house-slash-fill::before { + content: "\f894"; +} + +.bi-house-slash::before { + content: "\f895"; +} + +.bi-house-up-fill::before { + content: "\f896"; +} + +.bi-house-up::before { + content: "\f897"; +} + +.bi-house-x-fill::before { + content: "\f898"; +} + +.bi-house-x::before { + content: "\f899"; +} + +.bi-person-add::before { + content: "\f89a"; +} + +.bi-person-down::before { + content: "\f89b"; +} + +.bi-person-exclamation::before { + content: "\f89c"; +} + +.bi-person-fill-add::before { + content: "\f89d"; +} + +.bi-person-fill-check::before { + content: "\f89e"; +} + +.bi-person-fill-dash::before { + content: "\f89f"; +} + +.bi-person-fill-down::before { + content: "\f8a0"; +} + +.bi-person-fill-exclamation::before { + content: "\f8a1"; +} + +.bi-person-fill-gear::before { + content: "\f8a2"; +} + +.bi-person-fill-lock::before { + content: "\f8a3"; +} + +.bi-person-fill-slash::before { + content: "\f8a4"; +} + +.bi-person-fill-up::before { + content: "\f8a5"; +} + +.bi-person-fill-x::before { + content: "\f8a6"; +} + +.bi-person-gear::before { + content: "\f8a7"; +} + +.bi-person-lock::before { + content: "\f8a8"; +} + +.bi-person-slash::before { + content: "\f8a9"; +} + +.bi-person-up::before { + content: "\f8aa"; +} + +.bi-scooter::before { + content: "\f8ab"; +} + +.bi-taxi-front-fill::before { + content: "\f8ac"; +} + +.bi-taxi-front::before { + content: "\f8ad"; +} + +.bi-amd::before { + content: "\f8ae"; +} + +.bi-database-add::before { + content: "\f8af"; +} + +.bi-database-check::before { + content: "\f8b0"; +} + +.bi-database-dash::before { + content: "\f8b1"; +} + +.bi-database-down::before { + content: "\f8b2"; +} + +.bi-database-exclamation::before { + content: "\f8b3"; +} + +.bi-database-fill-add::before { + content: "\f8b4"; +} + +.bi-database-fill-check::before { + content: "\f8b5"; +} + +.bi-database-fill-dash::before { + content: "\f8b6"; +} + +.bi-database-fill-down::before { + content: "\f8b7"; +} + +.bi-database-fill-exclamation::before { + content: "\f8b8"; +} + +.bi-database-fill-gear::before { + content: "\f8b9"; +} + +.bi-database-fill-lock::before { + content: "\f8ba"; +} + +.bi-database-fill-slash::before { + content: "\f8bb"; +} + +.bi-database-fill-up::before { + content: "\f8bc"; +} + +.bi-database-fill-x::before { + content: "\f8bd"; +} + +.bi-database-fill::before { + content: "\f8be"; +} + +.bi-database-gear::before { + content: "\f8bf"; +} + +.bi-database-lock::before { + content: "\f8c0"; +} + +.bi-database-slash::before { + content: "\f8c1"; +} + +.bi-database-up::before { + content: "\f8c2"; +} + +.bi-database-x::before { + content: "\f8c3"; +} + +.bi-database::before { + content: "\f8c4"; +} + +.bi-houses-fill::before { + content: "\f8c5"; +} + +.bi-houses::before { + content: "\f8c6"; +} + +.bi-nvidia::before { + content: "\f8c7"; +} + +.bi-person-vcard-fill::before { + content: "\f8c8"; +} + +.bi-person-vcard::before { + content: "\f8c9"; +} + +.bi-sina-weibo::before { + content: "\f8ca"; +} + +.bi-tencent-qq::before { + content: "\f8cb"; +} + +.bi-wikipedia::before { + content: "\f8cc"; +} + +.bi-alphabet-uppercase::before { + content: "\f2a5"; +} + +.bi-alphabet::before { + content: "\f68a"; +} + +.bi-amazon::before { + content: "\f68d"; +} + +.bi-arrows-collapse-vertical::before { + content: "\f690"; +} + +.bi-arrows-expand-vertical::before { + content: "\f695"; +} + +.bi-arrows-vertical::before { + content: "\f698"; +} + +.bi-arrows::before { + content: "\f6a2"; +} + +.bi-ban-fill::before { + content: "\f6a3"; +} + +.bi-ban::before { + content: "\f6b6"; +} + +.bi-bing::before { + content: "\f6c2"; +} + +.bi-cake::before { + content: "\f6e0"; +} + +.bi-cake2::before { + content: "\f6ed"; +} + +.bi-cookie::before { + content: "\f6ee"; +} + +.bi-copy::before { + content: "\f759"; +} + +.bi-crosshair::before { + content: "\f769"; +} + +.bi-crosshair2::before { + content: "\f794"; +} + +.bi-emoji-astonished-fill::before { + content: "\f795"; +} + +.bi-emoji-astonished::before { + content: "\f79a"; +} + +.bi-emoji-grimace-fill::before { + content: "\f79b"; +} + +.bi-emoji-grimace::before { + content: "\f7a0"; +} + +.bi-emoji-grin-fill::before { + content: "\f7a1"; +} + +.bi-emoji-grin::before { + content: "\f7a6"; +} + +.bi-emoji-surprise-fill::before { + content: "\f7a7"; +} + +.bi-emoji-surprise::before { + content: "\f7ac"; +} + +.bi-emoji-tear-fill::before { + content: "\f7ad"; +} + +.bi-emoji-tear::before { + content: "\f7b2"; +} + +.bi-envelope-arrow-down-fill::before { + content: "\f7b3"; +} + +.bi-envelope-arrow-down::before { + content: "\f7b8"; +} + +.bi-envelope-arrow-up-fill::before { + content: "\f7b9"; +} + +.bi-envelope-arrow-up::before { + content: "\f7be"; +} + +.bi-feather::before { + content: "\f7bf"; +} + +.bi-feather2::before { + content: "\f7c4"; +} + +.bi-floppy-fill::before { + content: "\f7c5"; +} + +.bi-floppy::before { + content: "\f7d8"; +} + +.bi-floppy2-fill::before { + content: "\f7d9"; +} + +.bi-floppy2::before { + content: "\f7e4"; +} + +.bi-gitlab::before { + content: "\f7e5"; +} + +.bi-highlighter::before { + content: "\f7f8"; +} + +.bi-marker-tip::before { + content: "\f802"; +} + +.bi-nvme-fill::before { + content: "\f803"; +} + +.bi-nvme::before { + content: "\f80c"; +} + +.bi-opencollective::before { + content: "\f80d"; +} + +.bi-pci-card-network::before { + content: "\f8cd"; +} + +.bi-pci-card-sound::before { + content: "\f8ce"; +} + +.bi-radar::before { + content: "\f8cf"; +} + +.bi-send-arrow-down-fill::before { + content: "\f8d0"; +} + +.bi-send-arrow-down::before { + content: "\f8d1"; +} + +.bi-send-arrow-up-fill::before { + content: "\f8d2"; +} + +.bi-send-arrow-up::before { + content: "\f8d3"; +} + +.bi-sim-slash-fill::before { + content: "\f8d4"; +} + +.bi-sim-slash::before { + content: "\f8d5"; +} + +.bi-sourceforge::before { + content: "\f8d6"; +} + +.bi-substack::before { + content: "\f8d7"; +} + +.bi-threads-fill::before { + content: "\f8d8"; +} + +.bi-threads::before { + content: "\f8d9"; +} + +.bi-transparency::before { + content: "\f8da"; +} + +.bi-twitter-x::before { + content: "\f8db"; +} + +.bi-type-h4::before { + content: "\f8dc"; +} + +.bi-type-h5::before { + content: "\f8dd"; +} + +.bi-type-h6::before { + content: "\f8de"; +} + +.bi-backpack-fill::before { + content: "\f8df"; +} + +.bi-backpack::before { + content: "\f8e0"; +} + +.bi-backpack2-fill::before { + content: "\f8e1"; +} + +.bi-backpack2::before { + content: "\f8e2"; +} + +.bi-backpack3-fill::before { + content: "\f8e3"; +} + +.bi-backpack3::before { + content: "\f8e4"; +} + +.bi-backpack4-fill::before { + content: "\f8e5"; +} + +.bi-backpack4::before { + content: "\f8e6"; +} + +.bi-brilliance::before { + content: "\f8e7"; +} + +.bi-cake-fill::before { + content: "\f8e8"; +} + +.bi-cake2-fill::before { + content: "\f8e9"; +} + +.bi-duffle-fill::before { + content: "\f8ea"; +} + +.bi-duffle::before { + content: "\f8eb"; +} + +.bi-exposure::before { + content: "\f8ec"; +} + +.bi-gender-neuter::before { + content: "\f8ed"; +} + +.bi-highlights::before { + content: "\f8ee"; +} + +.bi-luggage-fill::before { + content: "\f8ef"; +} + +.bi-luggage::before { + content: "\f8f0"; +} + +.bi-mailbox-flag::before { + content: "\f8f1"; +} + +.bi-mailbox2-flag::before { + content: "\f8f2"; +} + +.bi-noise-reduction::before { + content: "\f8f3"; +} + +.bi-passport-fill::before { + content: "\f8f4"; +} + +.bi-passport::before { + content: "\f8f5"; +} + +.bi-person-arms-up::before { + content: "\f8f6"; +} + +.bi-person-raised-hand::before { + content: "\f8f7"; +} + +.bi-person-standing-dress::before { + content: "\f8f8"; +} + +.bi-person-standing::before { + content: "\f8f9"; +} + +.bi-person-walking::before { + content: "\f8fa"; +} + +.bi-person-wheelchair::before { + content: "\f8fb"; +} + +.bi-shadows::before { + content: "\f8fc"; +} + +.bi-suitcase-fill::before { + content: "\f8fd"; +} + +.bi-suitcase-lg-fill::before { + content: "\f8fe"; +} + +.bi-suitcase-lg::before { + content: "\f8ff"; +} + +.bi-suitcase::before { + content: "豈"; +} + +.bi-suitcase2-fill::before { + content: "更"; +} + +.bi-suitcase2::before { + content: "車"; +} + +.bi-vignette::before { + content: "賈"; +} + +.bi-bluesky::before { + content: "\f7f9"; +} + +.bi-tux::before { + content: "滑"; +} + +.bi-beaker-fill::before { + content: "串"; +} + +.bi-beaker::before { + content: "句"; +} + +.bi-flask-fill::before { + content: "龜"; +} + +.bi-flask-florence-fill::before { + content: "龜"; +} + +.bi-flask-florence::before { + content: "契"; +} + +.bi-flask::before { + content: "金"; +} + +.bi-leaf-fill::before { + content: "喇"; +} + +.bi-leaf::before { + content: "奈"; +} + +.bi-measuring-cup-fill::before { + content: "懶"; +} + +.bi-measuring-cup::before { + content: "癩"; +} + +.bi-unlock2-fill::before { + content: "羅"; +} + +.bi-unlock2::before { + content: "蘿"; +} + +.bi-battery-low::before { + content: "螺"; +} + +.bi-anthropic::before { + content: "裸"; +} + +.bi-apple-music::before { + content: "邏"; +} + +.bi-claude::before { + content: "樂"; +} + +.bi-openai::before { + content: "洛"; +} + +.bi-perplexity::before { + content: "烙"; +} + +.bi-css::before { + content: "珞"; +} + +.bi-javascript::before { + content: "落"; +} + +.bi-typescript::before { + content: "酪"; +} + +.bi-fork-knife::before { + content: "駱"; +} + +.bi-globe-americas-fill::before { + content: "亂"; +} + +.bi-globe-asia-australia-fill::before { + content: "卵"; +} + +.bi-globe-central-south-asia-fill::before { + content: "欄"; +} + +.bi-globe-europe-africa-fill::before { + content: "爛"; +} + +:root { + --dt-row-selected: 13, 110, 253; + --dt-row-selected-text: 255, 255, 255; + --dt-row-selected-link: 9, 10, 11; + --dt-row-stripe: 0, 0, 0; + --dt-row-hover: 0, 0, 0; + --dt-column-ordering: 0, 0, 0; + --dt-html-background: white; +} + +:root.dark { + --dt-html-background: rgb(33, 37, 41); +} + +table.dataTable td.dt-control { + text-align: center; + cursor: pointer; +} + +table.dataTable td.dt-control:before { + display: inline-block; + color: rgba(0, 0, 0, 0.5); + content: "▶"; +} + +table.dataTable tr.dt-hasChild td.dt-control:before { + content: "▼"; +} + +html.dark table.dataTable td.dt-control:before, +:root[data-bs-theme=dark] table.dataTable td.dt-control:before { + color: rgba(255, 255, 255, 0.5); +} + +html.dark table.dataTable tr.dt-hasChild td.dt-control:before, +:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before { + color: rgba(255, 255, 255, 0.5); +} + +:root { + --dt-row-selected: 13, 110, 253; + --dt-row-selected-text: 255, 255, 255; + --dt-row-selected-link: 9, 10, 11; + --dt-row-stripe: 0, 0, 0; + --dt-row-hover: 0, 0, 0; + --dt-column-ordering: 0, 0, 0; + --dt-html-background: white; +} + +:root.dark { + --dt-html-background: rgb(33, 37, 41); +} + +table.dataTable td.dt-control { + text-align: center; + cursor: pointer; +} + +table.dataTable td.dt-control:before { + display: inline-block; + color: rgba(0, 0, 0, 0.5); + content: "▶"; +} + +table.dataTable tr.dt-hasChild td.dt-control:before { + content: "▼"; +} + +html.dark table.dataTable td.dt-control:before, +:root[data-bs-theme=dark] table.dataTable td.dt-control:before { + color: rgba(255, 255, 255, 0.5); +} + +html.dark table.dataTable tr.dt-hasChild td.dt-control:before, +:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before { + color: rgba(255, 255, 255, 0.5); +} + +table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled, +table.dataTable thead > tr > td.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting_asc_disabled, +table.dataTable thead > tr > td.sorting_desc_disabled { + cursor: pointer; + position: relative; + padding-right: 26px; +} + +table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting:before, +table.dataTable thead > tr > td.sorting:after, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_asc:after, +table.dataTable thead > tr > td.sorting_desc:before, +table.dataTable thead > tr > td.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_asc_disabled:after, +table.dataTable thead > tr > td.sorting_desc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:after { + position: absolute; + display: block; + opacity: 0.125; + right: 10px; + line-height: 9px; + font-size: 0.8em; +} + +table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before, +table.dataTable thead > tr > td.sorting:before, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_desc:before, +table.dataTable thead > tr > td.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:before { + bottom: 50%; + content: "▲"; + content: "▲"/""; +} + +table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting:after, +table.dataTable thead > tr > td.sorting_asc:after, +table.dataTable thead > tr > td.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc_disabled:after, +table.dataTable thead > tr > td.sorting_desc_disabled:after { + top: 50%; + content: "▼"; + content: "▼"/""; +} + +table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_desc:after { + opacity: 0.6; +} + +table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting_asc_disabled:before { + display: none; +} + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; +} + +div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after, +div.dataTables_scrollBody > table.dataTable > thead > tr > td:before, +div.dataTables_scrollBody > table.dataTable > thead > tr > td:after { + display: none; +} + +div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 2px; + z-index: 10; +} + +div.dataTables_processing > div:last-child { + position: relative; + width: 80px; + height: 15px; + margin: 1em auto; +} + +div.dataTables_processing > div:last-child > div { + position: absolute; + top: 0; + width: 13px; + height: 13px; + border-radius: 50%; + background: rgb(13, 110, 253); + background: rgb(var(--dt-row-selected)); + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} + +div.dataTables_processing > div:last-child > div:nth-child(1) { + left: 8px; + animation: datatables-loader-1 0.6s infinite; +} + +div.dataTables_processing > div:last-child > div:nth-child(2) { + left: 8px; + animation: datatables-loader-2 0.6s infinite; +} + +div.dataTables_processing > div:last-child > div:nth-child(3) { + left: 32px; + animation: datatables-loader-2 0.6s infinite; +} + +div.dataTables_processing > div:last-child > div:nth-child(4) { + left: 56px; + animation: datatables-loader-3 0.6s infinite; +} + +@keyframes datatables-loader-1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes datatables-loader-3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} +@keyframes datatables-loader-2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(24px, 0); + } +} +table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; +} + +table.dataTable th.dt-left, +table.dataTable td.dt-left { + text-align: left; +} + +table.dataTable th.dt-center, +table.dataTable td.dt-center, +table.dataTable td.dataTables_empty { + text-align: center; +} + +table.dataTable th.dt-right, +table.dataTable td.dt-right { + text-align: right; +} + +table.dataTable th.dt-justify, +table.dataTable td.dt-justify { + text-align: justify; +} + +table.dataTable th.dt-nowrap, +table.dataTable td.dt-nowrap { + white-space: nowrap; +} + +table.dataTable thead th, +table.dataTable thead td, +table.dataTable tfoot th, +table.dataTable tfoot td { + text-align: left; +} + +table.dataTable thead th.dt-head-left, +table.dataTable thead td.dt-head-left, +table.dataTable tfoot th.dt-head-left, +table.dataTable tfoot td.dt-head-left { + text-align: left; +} + +table.dataTable thead th.dt-head-center, +table.dataTable thead td.dt-head-center, +table.dataTable tfoot th.dt-head-center, +table.dataTable tfoot td.dt-head-center { + text-align: center; +} + +table.dataTable thead th.dt-head-right, +table.dataTable thead td.dt-head-right, +table.dataTable tfoot th.dt-head-right, +table.dataTable tfoot td.dt-head-right { + text-align: right; +} + +table.dataTable thead th.dt-head-justify, +table.dataTable thead td.dt-head-justify, +table.dataTable tfoot th.dt-head-justify, +table.dataTable tfoot td.dt-head-justify { + text-align: justify; +} + +table.dataTable thead th.dt-head-nowrap, +table.dataTable thead td.dt-head-nowrap, +table.dataTable tfoot th.dt-head-nowrap, +table.dataTable tfoot td.dt-head-nowrap { + white-space: nowrap; +} + +table.dataTable tbody th.dt-body-left, +table.dataTable tbody td.dt-body-left { + text-align: left; +} + +table.dataTable tbody th.dt-body-center, +table.dataTable tbody td.dt-body-center { + text-align: center; +} + +table.dataTable tbody th.dt-body-right, +table.dataTable tbody td.dt-body-right { + text-align: right; +} + +table.dataTable tbody th.dt-body-justify, +table.dataTable tbody td.dt-body-justify { + text-align: justify; +} + +table.dataTable tbody th.dt-body-nowrap, +table.dataTable tbody td.dt-body-nowrap { + white-space: nowrap; +} + +/* + * Table styles + */ +table.dataTable { + width: 100%; + margin: 0 auto; + clear: both; + border-collapse: separate; + border-spacing: 0; + /* + * Header and footer styles + */ + /* + * Body styles + */ +} + +table.dataTable thead th, +table.dataTable tfoot th { + font-weight: bold; +} + +table.dataTable > thead > tr > th, +table.dataTable > thead > tr > td { + padding: 10px; +} + +table.dataTable > thead > tr > th:active, +table.dataTable > thead > tr > td:active { + outline: none; +} + +table.dataTable > tfoot > tr > th, +table.dataTable > tfoot > tr > td { + padding: 10px 10px 6px 10px; +} + +table.dataTable tbody tr { + background-color: transparent; +} + +table.dataTable tbody tr.selected > * { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.9); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.9); + color: rgb(255, 255, 255); + color: rgb(var(--dt-row-selected-text)); +} + +table.dataTable tbody tr.selected a { + color: rgb(9, 10, 11); + color: rgb(var(--dt-row-selected-link)); +} + +table.dataTable tbody th, +table.dataTable tbody td { + padding: 8px 10px; +} + +table.dataTable.row-border > tbody > tr > th, +table.dataTable.row-border > tbody > tr > td, table.dataTable.display > tbody > tr > th, +table.dataTable.display > tbody > tr > td { + border-top: 1px solid rgba(0, 0, 0, 0.15); +} + +table.dataTable.row-border > tbody > tr:first-child > th, +table.dataTable.row-border > tbody > tr:first-child > td, table.dataTable.display > tbody > tr:first-child > th, +table.dataTable.display > tbody > tr:first-child > td { + border-top: none; +} + +table.dataTable.row-border > tbody > tr.selected + tr.selected > td, table.dataTable.display > tbody > tr.selected + tr.selected > td { + border-top-color: rgba(13, 110, 253, 0.65); + border-top-color: rgba(var(--dt-row-selected), 0.65); +} + +table.dataTable.cell-border > tbody > tr > th, +table.dataTable.cell-border > tbody > tr > td { + border-top: 1px solid rgba(0, 0, 0, 0.15); + border-right: 1px solid rgba(0, 0, 0, 0.15); +} + +table.dataTable.cell-border > tbody > tr > th:first-child, +table.dataTable.cell-border > tbody > tr > td:first-child { + border-left: 1px solid rgba(0, 0, 0, 0.15); +} + +table.dataTable.cell-border > tbody > tr:first-child > th, +table.dataTable.cell-border > tbody > tr:first-child > td { + border-top: none; +} + +table.dataTable.stripe > tbody > tr.odd > *, table.dataTable.display > tbody > tr.odd > * { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.023); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-stripe), 0.023); +} + +table.dataTable.stripe > tbody > tr.odd.selected > *, table.dataTable.display > tbody > tr.odd.selected > * { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.923); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923); +} + +table.dataTable.hover > tbody > tr:hover > *, table.dataTable.display > tbody > tr:hover > * { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.035); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.035); +} + +table.dataTable.hover > tbody > tr.selected:hover > *, table.dataTable.display > tbody > tr.selected:hover > * { + box-shadow: inset 0 0 0 9999px #0d6efd !important; + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 1) !important; +} + +table.dataTable.order-column > tbody tr > .sorting_1, +table.dataTable.order-column > tbody tr > .sorting_2, +table.dataTable.order-column > tbody tr > .sorting_3, table.dataTable.display > tbody tr > .sorting_1, +table.dataTable.display > tbody tr > .sorting_2, +table.dataTable.display > tbody tr > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.019); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.019); +} + +table.dataTable.order-column > tbody tr.selected > .sorting_1, +table.dataTable.order-column > tbody tr.selected > .sorting_2, +table.dataTable.order-column > tbody tr.selected > .sorting_3, table.dataTable.display > tbody tr.selected > .sorting_1, +table.dataTable.display > tbody tr.selected > .sorting_2, +table.dataTable.display > tbody tr.selected > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.919); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919); +} + +table.dataTable.display > tbody > tr.odd > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.054); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.054); +} + +table.dataTable.display > tbody > tr.odd > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.047); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.047); +} + +table.dataTable.display > tbody > tr.odd > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.039); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.039); +} + +table.dataTable.display > tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.954); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.954); +} + +table.dataTable.display > tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.947); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.947); +} + +table.dataTable.display > tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.939); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.939); +} + +table.dataTable.display > tbody > tr.even > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.019); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.019); +} + +table.dataTable.display > tbody > tr.even > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.011); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.011); +} + +table.dataTable.display > tbody > tr.even > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.003); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.003); +} + +table.dataTable.display > tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.919); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919); +} + +table.dataTable.display > tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.911); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.911); +} + +table.dataTable.display > tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.903); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.903); +} + +table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.082); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.082); +} + +table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.074); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.074); +} + +table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.062); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.062); +} + +table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.982); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.982); +} + +table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.974); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.974); +} + +table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.962); + box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.962); +} + +table.dataTable.no-footer { + border-bottom: 1px solid rgba(0, 0, 0, 0.3); +} + +table.dataTable.compact thead th, +table.dataTable.compact thead td, +table.dataTable.compact tfoot th, +table.dataTable.compact tfoot td, +table.dataTable.compact tbody th, +table.dataTable.compact tbody td { + padding: 4px; +} + +table.dataTable th, +table.dataTable td { + box-sizing: content-box; +} + +/* + * Control feature layout + */ +.dataTables_wrapper { + position: relative; + clear: both; +} + +.dataTables_wrapper .dataTables_length { + float: left; +} + +.dataTables_wrapper .dataTables_length select { + border: 1px solid #aaa; + border-radius: 3px; + padding: 5px; + background-color: transparent; + color: inherit; + padding: 4px; +} + +.dataTables_wrapper .dataTables_filter { + float: right; + text-align: right; +} + +.dataTables_wrapper .dataTables_filter input { + border: 1px solid #aaa; + border-radius: 3px; + padding: 5px; + background-color: transparent; + color: inherit; + margin-left: 3px; +} + +.dataTables_wrapper .dataTables_info { + clear: both; + float: left; + padding-top: 0.755em; +} + +.dataTables_wrapper .dataTables_paginate { + float: right; + text-align: right; + padding-top: 0.25em; +} + +.dataTables_wrapper .dataTables_paginate .paginate_button { + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em 1em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + color: inherit !important; + border: 1px solid transparent; + border-radius: 2px; + background: transparent; +} + +.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: inherit !important; + border: 1px solid rgba(0, 0, 0, 0.3); + background-color: rgba(0, 0, 0, 0.05); /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* FF3.6+ */ /* IE10+ */ /* Opera 11.10+ */ + background: linear-gradient(to bottom, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* W3C */ +} + +.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { + cursor: default; + color: #666 !important; + border: 1px solid transparent; + background: transparent; + box-shadow: none; +} + +.dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: white !important; + border: 1px solid #111; + background-color: #111; /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* FF3.6+ */ /* IE10+ */ /* Opera 11.10+ */ + background: linear-gradient(to bottom, #585858 0%, #111 100%); /* W3C */ +} + +.dataTables_wrapper .dataTables_paginate .paginate_button:active { + outline: none; + background-color: #0c0c0c; /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* FF3.6+ */ /* IE10+ */ /* Opera 11.10+ */ + background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); /* W3C */ + box-shadow: inset 0 0 3px #111; +} + +.dataTables_wrapper .dataTables_paginate .ellipsis { + padding: 0 1em; +} + +.dataTables_wrapper .dataTables_length, +.dataTables_wrapper .dataTables_filter, +.dataTables_wrapper .dataTables_info, +.dataTables_wrapper .dataTables_processing, +.dataTables_wrapper .dataTables_paginate { + color: inherit; +} + +.dataTables_wrapper .dataTables_scroll { + clear: both; +} + +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody { + -webkit-overflow-scrolling: touch; +} + +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td { + vertical-align: middle; +} + +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing { + height: 0; + overflow: hidden; + margin: 0 !important; + padding: 0 !important; +} + +.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid rgba(0, 0, 0, 0.3); +} + +.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable, +.dataTables_wrapper.no-footer div.dataTables_scrollBody > table { + border-bottom: none; +} + +.dataTables_wrapper:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; +} + +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_paginate { + float: none; + text-align: center; + } + .dataTables_wrapper .dataTables_paginate { + margin-top: 0.5em; + } +} +@media screen and (max-width: 640px) { + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter { + float: none; + text-align: center; + } + .dataTables_wrapper .dataTables_filter { + margin-top: 0.5em; + } +} +html.dark { + --dt-row-hover: 255, 255, 255; + --dt-row-stripe: 255, 255, 255; + --dt-column-ordering: 255, 255, 255; +} + +html.dark table.dataTable > thead > tr > th:active, +html.dark table.dataTable > thead > tr > td:active { + outline: none; +} + +html.dark table.dataTable.row-border > tbody > tr > th, +html.dark table.dataTable.row-border > tbody > tr > td, html.dark table.dataTable.display > tbody > tr > th, +html.dark table.dataTable.display > tbody > tr > td { + border-top: 1px solid rgb(64, 67, 70); +} + +html.dark table.dataTable.row-border > tbody > tr.selected + tr.selected > td, html.dark table.dataTable.display > tbody > tr.selected + tr.selected > td { + border-top-color: rgba(13, 110, 253, 0.65); + border-top-color: rgba(var(--dt-row-selected), 0.65); +} + +html.dark table.dataTable.cell-border > tbody > tr > th, +html.dark table.dataTable.cell-border > tbody > tr > td { + border-top: 1px solid rgb(64, 67, 70); + border-right: 1px solid rgb(64, 67, 70); +} + +html.dark table.dataTable.cell-border > tbody > tr > th:first-child, +html.dark table.dataTable.cell-border > tbody > tr > td:first-child { + border-left: 1px solid rgb(64, 67, 70); +} + +html.dark .dataTables_wrapper .dataTables_filter input, +html.dark .dataTables_wrapper .dataTables_length select { + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: var(--dt-html-background); +} + +html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current, html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + border: 1px solid rgb(89, 91, 94); + background: rgba(255, 255, 255, 0.15); +} + +html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { + color: #666 !important; +} + +html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:hover { + border: 1px solid rgb(53, 53, 53); + background: rgb(53, 53, 53); +} + +html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:active { + background: #3a3a3a; +} + +table.dataTable thead th div.DataTables_sort_wrapper { + position: relative; +} + +table.dataTable thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: -18px; +} + +table.dataTable thead th.ui-state-default, +table.dataTable tfoot th.ui-state-default { + border-left-width: 0; +} + +table.dataTable thead th.ui-state-default:first-child, +table.dataTable tfoot th.ui-state-default:first-child { + border-left-width: 1px; +} + +/* + * Control feature layout + */ +.dataTables_wrapper .dataTables_paginate .fg-button { + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + border: 1px solid transparent; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:active { + outline: none; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.dataTables_wrapper .ui-widget-header { + font-weight: normal; +} + +.dataTables_wrapper .ui-toolbar { + padding: 8px; +} + +.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: none; +} + +.dataTables_wrapper .dataTables_length, +.dataTables_wrapper .dataTables_filter, +.dataTables_wrapper .dataTables_info, +.dataTables_wrapper .dataTables_processing, +.dataTables_wrapper .dataTables_paginate { + color: inherit; +} /*! * Datepicker for Bootstrap v1.10.1 (https://github.com/uxsolutions/bootstrap-datepicker) * * Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0) - */.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{left:0;padding:4px;top:0}.datepicker-dropdown:before{border-bottom:7px solid rgba(0,0,0,.2);border-left:7px solid transparent;border-right:7px solid transparent}.datepicker-dropdown:after,.datepicker-dropdown:before{border-top:0;content:"";display:inline-block;position:absolute}.datepicker-dropdown:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{border-bottom:0;border-top:7px solid rgba(0,0,0,.15);bottom:-7px}.datepicker-dropdown.datepicker-orient-top:after{border-bottom:0;border-top:6px solid #fff;bottom:-6px}.datepicker table{-webkit-touch-callout:none;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{border:none;border-radius:4px;height:30px;text-align:center;width:30px}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:none;color:#777;cursor:default}.datepicker table tr td.highlighted{background-color:#d9edf7;border-color:#85c5e5;border-radius:0;color:#000}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{background-color:#afd9ee;border-color:#298fc2;color:#000}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active,.datepicker table tr td.highlighted:hover{background-color:#afd9ee;border-color:#52addb;color:#000}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{background-color:#91cbe8;border-color:#298fc2;color:#000}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{background-color:#ffdb99;border-color:#ffb733;color:#000}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{background-color:#ffc966;border-color:#b37400;color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover{background-color:#ffc966;border-color:#f59e00;color:#000}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{background-color:#ffbc42;border-color:#b37400;color:#000}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{background-color:#eee;border-color:#bbb;border-radius:0;color:#000}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{background-color:#d5d5d5;border-color:#7c7c7c;color:#000}.datepicker table tr td.range.active,.datepicker table tr td.range:active,.datepicker table tr td.range:hover{background-color:#d5d5d5;border-color:#9d9d9d;color:#000}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{background-color:#c3c3c3;border-color:#7c7c7c;color:#000}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{background-color:#e4eef3;border-color:#9dc1d3;color:#000}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{background-color:#c1d7e3;border-color:#4b88a6;color:#000}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active,.datepicker table tr td.range.highlighted:hover{background-color:#c1d7e3;border-color:#73a6c0;color:#000}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{background-color:#a8c8d8;border-color:#4b88a6;color:#000}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{background-color:#f7ca77;border-color:#f1a417;color:#000}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{background-color:#f4b747;border-color:#815608;color:#000}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover{background-color:#f4b747;border-color:#bf800c;color:#000}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{background-color:#f2aa25;border-color:#815608;color:#000}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{background-color:#777;border-color:#555;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{background-color:#5e5e5e;border-color:#161616;color:#fff}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover{background-color:#5e5e5e;border-color:#373737;color:#fff}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{background-color:#4c4c4c;border-color:#161616;color:#fff}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{background-color:#337ab7;border-color:#2e6da4;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{background-color:#286090;border-color:#122b40;color:#fff}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:hover{background-color:#286090;border-color:#204d74;color:#fff}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{background-color:#204d74;border-color:#122b40;color:#fff}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{border-radius:4px;cursor:pointer;display:block;float:left;height:54px;line-height:54px;margin:1%;width:23%}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:none;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#337ab7;border-color:#2e6da4;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{background-color:#286090;border-color:#122b40;color:#fff}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover{background-color:#286090;border-color:#204d74;color:#fff}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{background-color:#204d74;border-color:#122b40;color:#fff}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;padding:0 2px 0 5px;vertical-align:middle;width:12px}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{border-width:1px 0;line-height:1.42857143;margin-left:-5px;margin-right:-5px;min-width:16px;padding:4px 5px;width:auto}.datepicker.dropdown-menu{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);color:#333;display:none;float:left;font-size:13px;left:0;line-height:1.42857143;list-style:none;min-width:160px;position:absolute;top:100%;z-index:1000}.datepicker.datepicker-inline td,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.dropdown-menu th{padding:0 5px}.status-icon{font-size:1.1rem}.toast{width:350px}#toastContainer{--header-color-light:#6c757d;--text-color-light:#212529;--header-bg-color-light:hsla(0,0%,100%,.85);--body-bg-color-light:hsla(0,0%,100%,.85);--header-color-dark:#f8f9fa;--text-color-dark:#f8f9fa;--header-bg-color-dark:rgba(30,40,45,.85);--body-bg-color-dark:rgba(30,40,45,.85);max-height:100vh;overflow-y:scroll;scrollbar-width:none;z-index:1060}#toastContainer::-webkit-scrollbar{display:none}#toastContainer .toast{margin:.8rem}@media only screen and (max-width:576px){#toastContainer{bottom:auto!important;left:0!important;top:0!important;transform:none!important;width:100%}#toastContainer .toast{margin:.8rem auto}}@media (prefers-color-scheme:dark){.toast,.toast-header,.toast-header .close{color:var(--text-color-dark)}.toast{background-color:var(--body-bg-color-dark)}.toast-header{background-color:var(--header-bg-color-dark)}}.top-0{top:0!important}.top-50{top:50%!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.left-50{left:50%!important}.right-0{right:0!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important} -.ui-datepicker{z-index:1100!important}:root{--jumbotron-padding-y:7.5rem}.jumbotron{background-color:#fff;margin-bottom:0;padding-bottom:var(--jumbotron-padding-y);padding-top:var(--jumbotron-padding-y)}@media (min-width:768px){.jumbotron{padding-bottom:calc(var(--jumbotron-padding-y)*2);padding-top:calc(var(--jumbotron-padding-y)*2)}}.jumbotron p:last-child{margin-bottom:0}.jumbotron-heading{font-weight:300}.jumbotron .container{max-width:40rem}.headerYSpace{padding-bottom:var(--jumbotron-padding-y)}.ui-button{padding:0}a{color:#000;outline:none;text-decoration:none}a:hover{text-decoration:underline}.menuNavBar li{display:inline-flex}.customRadioBtnGroup .notActive{background-color:#fff;color:#3276b1}.dt-buttons{display:inline;padding-left:5px}.dataTableHeaderButtons{border-radius:2px;padding:2px 4px}.dataTableRowButton{margin-right:3px}textarea.orderItemComment{width:50em} + */ +.datepicker { + border-radius: 4px; + direction: ltr; +} + +.datepicker-inline { + width: 220px; +} + +.datepicker-rtl { + direction: rtl; +} + +.datepicker-rtl.dropdown-menu { + left: auto; +} + +.datepicker-rtl table tr td span { + float: right; +} + +.datepicker-dropdown { + top: 0; + left: 0; + padding: 4px; +} + +.datepicker-dropdown:before { + content: ""; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid rgba(0, 0, 0, 0.15); + border-top: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} + +.datepicker-dropdown:after { + content: ""; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-top: 0; + position: absolute; +} + +.datepicker-dropdown.datepicker-orient-left:before { + left: 6px; +} + +.datepicker-dropdown.datepicker-orient-left:after { + left: 7px; +} + +.datepicker-dropdown.datepicker-orient-right:before { + right: 6px; +} + +.datepicker-dropdown.datepicker-orient-right:after { + right: 7px; +} + +.datepicker-dropdown.datepicker-orient-bottom:before { + top: -7px; +} + +.datepicker-dropdown.datepicker-orient-bottom:after { + top: -6px; +} + +.datepicker-dropdown.datepicker-orient-top:before { + bottom: -7px; + border-bottom: 0; + border-top: 7px solid rgba(0, 0, 0, 0.15); +} + +.datepicker-dropdown.datepicker-orient-top:after { + bottom: -6px; + border-bottom: 0; + border-top: 6px solid #fff; +} + +.datepicker table { + margin: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.datepicker table tr td, +.datepicker table tr th { + text-align: center; + width: 30px; + height: 30px; + border-radius: 4px; + border: none; +} + +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} + +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #777777; +} + +.datepicker table tr td.day:hover, +.datepicker table tr td.focused { + background: #eeeeee; + cursor: pointer; +} + +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #777777; + cursor: default; +} + +.datepicker table tr td.highlighted { + color: #000; + background-color: #d9edf7; + border-color: #85c5e5; + border-radius: 0; +} + +.datepicker table tr td.highlighted:focus, +.datepicker table tr td.highlighted.focus { + color: #000; + background-color: #afd9ee; + border-color: #298fc2; +} + +.datepicker table tr td.highlighted:hover { + color: #000; + background-color: #afd9ee; + border-color: #52addb; +} + +.datepicker table tr td.highlighted:active, +.datepicker table tr td.highlighted.active { + color: #000; + background-color: #afd9ee; + border-color: #52addb; +} + +.datepicker table tr td.highlighted:active:hover, +.datepicker table tr td.highlighted.active:hover, +.datepicker table tr td.highlighted:active:focus, +.datepicker table tr td.highlighted.active:focus, +.datepicker table tr td.highlighted:active.focus, +.datepicker table tr td.highlighted.active.focus { + color: #000; + background-color: #91cbe8; + border-color: #298fc2; +} + +.datepicker table tr td.highlighted.disabled:hover, +.datepicker table tr td.highlighted[disabled]:hover, +fieldset[disabled] .datepicker table tr td.highlighted:hover, +.datepicker table tr td.highlighted.disabled:focus, +.datepicker table tr td.highlighted[disabled]:focus, +fieldset[disabled] .datepicker table tr td.highlighted:focus, +.datepicker table tr td.highlighted.disabled.focus, +.datepicker table tr td.highlighted[disabled].focus, +fieldset[disabled] .datepicker table tr td.highlighted.focus { + background-color: #d9edf7; + border-color: #85c5e5; +} + +.datepicker table tr td.highlighted.focused { + background: #afd9ee; +} + +.datepicker table tr td.highlighted.disabled, +.datepicker table tr td.highlighted.disabled:active { + background: #d9edf7; + color: #777777; +} + +.datepicker table tr td.today { + color: #000; + background-color: #ffdb99; + border-color: #ffb733; +} + +.datepicker table tr td.today:focus, +.datepicker table tr td.today.focus { + color: #000; + background-color: #ffc966; + border-color: #b37400; +} + +.datepicker table tr td.today:hover { + color: #000; + background-color: #ffc966; + border-color: #f59e00; +} + +.datepicker table tr td.today:active, +.datepicker table tr td.today.active { + color: #000; + background-color: #ffc966; + border-color: #f59e00; +} + +.datepicker table tr td.today:active:hover, +.datepicker table tr td.today.active:hover, +.datepicker table tr td.today:active:focus, +.datepicker table tr td.today.active:focus, +.datepicker table tr td.today:active.focus, +.datepicker table tr td.today.active.focus { + color: #000; + background-color: #ffbc42; + border-color: #b37400; +} + +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today[disabled]:hover, +fieldset[disabled] .datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled:focus, +.datepicker table tr td.today[disabled]:focus, +fieldset[disabled] .datepicker table tr td.today:focus, +.datepicker table tr td.today.disabled.focus, +.datepicker table tr td.today[disabled].focus, +fieldset[disabled] .datepicker table tr td.today.focus { + background-color: #ffdb99; + border-color: #ffb733; +} + +.datepicker table tr td.today.focused { + background: #ffc966; +} + +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:active { + background: #ffdb99; + color: #777777; +} + +.datepicker table tr td.range { + color: #000; + background-color: #eeeeee; + border-color: #bbbbbb; + border-radius: 0; +} + +.datepicker table tr td.range:focus, +.datepicker table tr td.range.focus { + color: #000; + background-color: #d5d5d5; + border-color: #7c7c7c; +} + +.datepicker table tr td.range:hover { + color: #000; + background-color: #d5d5d5; + border-color: #9d9d9d; +} + +.datepicker table tr td.range:active, +.datepicker table tr td.range.active { + color: #000; + background-color: #d5d5d5; + border-color: #9d9d9d; +} + +.datepicker table tr td.range:active:hover, +.datepicker table tr td.range.active:hover, +.datepicker table tr td.range:active:focus, +.datepicker table tr td.range.active:focus, +.datepicker table tr td.range:active.focus, +.datepicker table tr td.range.active.focus { + color: #000; + background-color: #c3c3c3; + border-color: #7c7c7c; +} + +.datepicker table tr td.range.disabled:hover, +.datepicker table tr td.range[disabled]:hover, +fieldset[disabled] .datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled:focus, +.datepicker table tr td.range[disabled]:focus, +fieldset[disabled] .datepicker table tr td.range:focus, +.datepicker table tr td.range.disabled.focus, +.datepicker table tr td.range[disabled].focus, +fieldset[disabled] .datepicker table tr td.range.focus { + background-color: #eeeeee; + border-color: #bbbbbb; +} + +.datepicker table tr td.range.focused { + background: #d5d5d5; +} + +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:active { + background: #eeeeee; + color: #777777; +} + +.datepicker table tr td.range.highlighted { + color: #000; + background-color: #e4eef3; + border-color: #9dc1d3; +} + +.datepicker table tr td.range.highlighted:focus, +.datepicker table tr td.range.highlighted.focus { + color: #000; + background-color: #c1d7e3; + border-color: #4b88a6; +} + +.datepicker table tr td.range.highlighted:hover { + color: #000; + background-color: #c1d7e3; + border-color: #73a6c0; +} + +.datepicker table tr td.range.highlighted:active, +.datepicker table tr td.range.highlighted.active { + color: #000; + background-color: #c1d7e3; + border-color: #73a6c0; +} + +.datepicker table tr td.range.highlighted:active:hover, +.datepicker table tr td.range.highlighted.active:hover, +.datepicker table tr td.range.highlighted:active:focus, +.datepicker table tr td.range.highlighted.active:focus, +.datepicker table tr td.range.highlighted:active.focus, +.datepicker table tr td.range.highlighted.active.focus { + color: #000; + background-color: #a8c8d8; + border-color: #4b88a6; +} + +.datepicker table tr td.range.highlighted.disabled:hover, +.datepicker table tr td.range.highlighted[disabled]:hover, +fieldset[disabled] .datepicker table tr td.range.highlighted:hover, +.datepicker table tr td.range.highlighted.disabled:focus, +.datepicker table tr td.range.highlighted[disabled]:focus, +fieldset[disabled] .datepicker table tr td.range.highlighted:focus, +.datepicker table tr td.range.highlighted.disabled.focus, +.datepicker table tr td.range.highlighted[disabled].focus, +fieldset[disabled] .datepicker table tr td.range.highlighted.focus { + background-color: #e4eef3; + border-color: #9dc1d3; +} + +.datepicker table tr td.range.highlighted.focused { + background: #c1d7e3; +} + +.datepicker table tr td.range.highlighted.disabled, +.datepicker table tr td.range.highlighted.disabled:active { + background: #e4eef3; + color: #777777; +} + +.datepicker table tr td.range.today { + color: #000; + background-color: #f7ca77; + border-color: #f1a417; +} + +.datepicker table tr td.range.today:focus, +.datepicker table tr td.range.today.focus { + color: #000; + background-color: #f4b747; + border-color: #815608; +} + +.datepicker table tr td.range.today:hover { + color: #000; + background-color: #f4b747; + border-color: #bf800c; +} + +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today.active { + color: #000; + background-color: #f4b747; + border-color: #bf800c; +} + +.datepicker table tr td.range.today:active:hover, +.datepicker table tr td.range.today.active:hover, +.datepicker table tr td.range.today:active:focus, +.datepicker table tr td.range.today.active:focus, +.datepicker table tr td.range.today:active.focus, +.datepicker table tr td.range.today.active.focus { + color: #000; + background-color: #f2aa25; + border-color: #815608; +} + +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today[disabled]:hover, +fieldset[disabled] .datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled:focus, +.datepicker table tr td.range.today[disabled]:focus, +fieldset[disabled] .datepicker table tr td.range.today:focus, +.datepicker table tr td.range.today.disabled.focus, +.datepicker table tr td.range.today[disabled].focus, +fieldset[disabled] .datepicker table tr td.range.today.focus { + background-color: #f7ca77; + border-color: #f1a417; +} + +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:active { + background: #f7ca77; + color: #777777; +} + +.datepicker table tr td.selected, +.datepicker table tr td.selected.highlighted { + color: #fff; + background-color: #777777; + border-color: #555555; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.datepicker table tr td.selected:focus, +.datepicker table tr td.selected.highlighted:focus, +.datepicker table tr td.selected.focus, +.datepicker table tr td.selected.highlighted.focus { + color: #fff; + background-color: #5e5e5e; + border-color: #161616; +} + +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.highlighted:hover { + color: #fff; + background-color: #5e5e5e; + border-color: #373737; +} + +.datepicker table tr td.selected:active, +.datepicker table tr td.selected.highlighted:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected.highlighted.active { + color: #fff; + background-color: #5e5e5e; + border-color: #373737; +} + +.datepicker table tr td.selected:active:hover, +.datepicker table tr td.selected.highlighted:active:hover, +.datepicker table tr td.selected.active:hover, +.datepicker table tr td.selected.highlighted.active:hover, +.datepicker table tr td.selected:active:focus, +.datepicker table tr td.selected.highlighted:active:focus, +.datepicker table tr td.selected.active:focus, +.datepicker table tr td.selected.highlighted.active:focus, +.datepicker table tr td.selected:active.focus, +.datepicker table tr td.selected.highlighted:active.focus, +.datepicker table tr td.selected.active.focus, +.datepicker table tr td.selected.highlighted.active.focus { + color: #fff; + background-color: #4c4c4c; + border-color: #161616; +} + +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.highlighted.disabled:hover, +.datepicker table tr td.selected[disabled]:hover, +.datepicker table tr td.selected.highlighted[disabled]:hover, +fieldset[disabled] .datepicker table tr td.selected:hover, +fieldset[disabled] .datepicker table tr td.selected.highlighted:hover, +.datepicker table tr td.selected.disabled:focus, +.datepicker table tr td.selected.highlighted.disabled:focus, +.datepicker table tr td.selected[disabled]:focus, +.datepicker table tr td.selected.highlighted[disabled]:focus, +fieldset[disabled] .datepicker table tr td.selected:focus, +fieldset[disabled] .datepicker table tr td.selected.highlighted:focus, +.datepicker table tr td.selected.disabled.focus, +.datepicker table tr td.selected.highlighted.disabled.focus, +.datepicker table tr td.selected[disabled].focus, +.datepicker table tr td.selected.highlighted[disabled].focus, +fieldset[disabled] .datepicker table tr td.selected.focus, +fieldset[disabled] .datepicker table tr td.selected.highlighted.focus { + background-color: #777777; + border-color: #555555; +} + +.datepicker table tr td.active, +.datepicker table tr td.active.highlighted { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.datepicker table tr td.active:focus, +.datepicker table tr td.active.highlighted:focus, +.datepicker table tr td.active.focus, +.datepicker table tr td.active.highlighted.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} + +.datepicker table tr td.active:hover, +.datepicker table tr td.active.highlighted:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.datepicker table tr td.active:active, +.datepicker table tr td.active.highlighted:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active.highlighted.active { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.datepicker table tr td.active:active:hover, +.datepicker table tr td.active.highlighted:active:hover, +.datepicker table tr td.active.active:hover, +.datepicker table tr td.active.highlighted.active:hover, +.datepicker table tr td.active:active:focus, +.datepicker table tr td.active.highlighted:active:focus, +.datepicker table tr td.active.active:focus, +.datepicker table tr td.active.highlighted.active:focus, +.datepicker table tr td.active:active.focus, +.datepicker table tr td.active.highlighted:active.focus, +.datepicker table tr td.active.active.focus, +.datepicker table tr td.active.highlighted.active.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} + +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.highlighted.disabled:hover, +.datepicker table tr td.active[disabled]:hover, +.datepicker table tr td.active.highlighted[disabled]:hover, +fieldset[disabled] .datepicker table tr td.active:hover, +fieldset[disabled] .datepicker table tr td.active.highlighted:hover, +.datepicker table tr td.active.disabled:focus, +.datepicker table tr td.active.highlighted.disabled:focus, +.datepicker table tr td.active[disabled]:focus, +.datepicker table tr td.active.highlighted[disabled]:focus, +fieldset[disabled] .datepicker table tr td.active:focus, +fieldset[disabled] .datepicker table tr td.active.highlighted:focus, +.datepicker table tr td.active.disabled.focus, +.datepicker table tr td.active.highlighted.disabled.focus, +.datepicker table tr td.active[disabled].focus, +.datepicker table tr td.active.highlighted[disabled].focus, +fieldset[disabled] .datepicker table tr td.active.focus, +fieldset[disabled] .datepicker table tr td.active.highlighted.focus { + background-color: #337ab7; + border-color: #2e6da4; +} + +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + border-radius: 4px; +} + +.datepicker table tr td span:hover, +.datepicker table tr td span.focused { + background: #eeeeee; +} + +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #777777; + cursor: default; +} + +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.datepicker table tr td span.active:focus, +.datepicker table tr td span.active:hover:focus, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active.focus, +.datepicker table tr td span.active:hover.focus, +.datepicker table tr td span.active.disabled.focus, +.datepicker table tr td span.active.disabled:hover.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} + +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.datepicker table tr td span.active:active:hover, +.datepicker table tr td span.active:hover:active:hover, +.datepicker table tr td span.active.disabled:active:hover, +.datepicker table tr td span.active.disabled:hover:active:hover, +.datepicker table tr td span.active.active:hover, +.datepicker table tr td span.active:hover.active:hover, +.datepicker table tr td span.active.disabled.active:hover, +.datepicker table tr td span.active.disabled:hover.active:hover, +.datepicker table tr td span.active:active:focus, +.datepicker table tr td span.active:hover:active:focus, +.datepicker table tr td span.active.disabled:active:focus, +.datepicker table tr td span.active.disabled:hover:active:focus, +.datepicker table tr td span.active.active:focus, +.datepicker table tr td span.active:hover.active:focus, +.datepicker table tr td span.active.disabled.active:focus, +.datepicker table tr td span.active.disabled:hover.active:focus, +.datepicker table tr td span.active:active.focus, +.datepicker table tr td span.active:hover:active.focus, +.datepicker table tr td span.active.disabled:active.focus, +.datepicker table tr td span.active.disabled:hover:active.focus, +.datepicker table tr td span.active.active.focus, +.datepicker table tr td span.active:hover.active.focus, +.datepicker table tr td span.active.disabled.active.focus, +.datepicker table tr td span.active.disabled:hover.active.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} + +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active:hover.disabled:hover, +.datepicker table tr td span.active.disabled.disabled:hover, +.datepicker table tr td span.active.disabled:hover.disabled:hover, +.datepicker table tr td span.active[disabled]:hover, +.datepicker table tr td span.active:hover[disabled]:hover, +.datepicker table tr td span.active.disabled[disabled]:hover, +.datepicker table tr td span.active.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td span.active:hover, +fieldset[disabled] .datepicker table tr td span.active:hover:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active:hover.disabled:focus, +.datepicker table tr td span.active.disabled.disabled:focus, +.datepicker table tr td span.active.disabled:hover.disabled:focus, +.datepicker table tr td span.active[disabled]:focus, +.datepicker table tr td span.active:hover[disabled]:focus, +.datepicker table tr td span.active.disabled[disabled]:focus, +.datepicker table tr td span.active.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td span.active:focus, +fieldset[disabled] .datepicker table tr td span.active:hover:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active.disabled.focus, +.datepicker table tr td span.active:hover.disabled.focus, +.datepicker table tr td span.active.disabled.disabled.focus, +.datepicker table tr td span.active.disabled:hover.disabled.focus, +.datepicker table tr td span.active[disabled].focus, +.datepicker table tr td span.active:hover[disabled].focus, +.datepicker table tr td span.active.disabled[disabled].focus, +.datepicker table tr td span.active.disabled:hover[disabled].focus, +fieldset[disabled] .datepicker table tr td span.active.focus, +fieldset[disabled] .datepicker table tr td span.active:hover.focus, +fieldset[disabled] .datepicker table tr td span.active.disabled.focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus { + background-color: #337ab7; + border-color: #2e6da4; +} + +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #777777; +} + +.datepicker .datepicker-switch { + width: 145px; +} + +.datepicker .datepicker-switch, +.datepicker .prev, +.datepicker .next, +.datepicker tfoot tr th { + cursor: pointer; +} + +.datepicker .datepicker-switch:hover, +.datepicker .prev:hover, +.datepicker .next:hover, +.datepicker tfoot tr th:hover { + background: #eeeeee; +} + +.datepicker .prev.disabled, +.datepicker .next.disabled { + visibility: hidden; +} + +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} + +.input-group.date .input-group-addon { + cursor: pointer; +} + +.input-daterange { + width: 100%; +} + +.input-daterange input { + text-align: center; +} + +.input-daterange input:first-child { + border-radius: 3px 0 0 3px; +} + +.input-daterange input:last-child { + border-radius: 0 3px 3px 0; +} + +.input-daterange .input-group-addon { + width: auto; + min-width: 16px; + padding: 4px 5px; + line-height: 1.42857143; + border-width: 1px 0; + margin-left: -5px; + margin-right: -5px; +} + +.datepicker.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + list-style: none; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + color: #333333; + font-size: 13px; + line-height: 1.42857143; +} + +.datepicker.dropdown-menu th, +.datepicker.datepicker-inline th, +.datepicker.dropdown-menu td, +.datepicker.datepicker-inline td { + padding: 0px 5px; +} + + +.status-icon { + font-size: 1.1rem; +} + +.toast { + width: 350px; +} + +#toastContainer { + --header-color-light:#6c757d; + --text-color-light:#212529; + --header-bg-color-light:rgba(255, 255, 255, .85); + --body-bg-color-light:rgba(255, 255, 255, .85); + --header-color-dark:#f8f9fa; + --text-color-dark:#f8f9fa; + --header-bg-color-dark:rgba(30, 40, 45, .85); + --body-bg-color-dark:rgba(30, 40, 45, .85); + max-height: 100vh; + overflow-y: scroll; + scrollbar-width: none; + z-index: 1060; +} + +#toastContainer::-webkit-scrollbar { + display: none; +} + +#toastContainer .toast { + margin: 0.8rem; +} + +@media only screen and (max-width: 576px) { + #toastContainer { + width: 100%; + top: 0 !important; + bottom: auto !important; + left: 0 !important; + transform: none !important; + } + #toastContainer .toast { + margin: 0.8rem auto; + } +} +@media (prefers-color-scheme: dark) { + .toast, .toast-header, .toast-header .close { + color: var(--text-color-dark); + } + .toast { + background-color: var(--body-bg-color-dark); + } + .toast-header { + background-color: var(--header-bg-color-dark); + } +} +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.left-0 { + left: 0 !important; +} + +.left-50 { + left: 50% !important; +} + +.right-0 { + right: 0 !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + + +.ui-datepicker{ + z-index: 1100 !important; +} + +:root { + --jumbotron-padding-y: 7.5rem; +} + +.jumbotron { + padding-top: var(--jumbotron-padding-y); + padding-bottom: var(--jumbotron-padding-y); + margin-bottom: 0; + background-color: #fff; +} +@media (min-width: 768px) { + .jumbotron { + padding-top: calc(var(--jumbotron-padding-y) * 2); + padding-bottom: calc(var(--jumbotron-padding-y) * 2); + } +} + +.jumbotron p:last-child { + margin-bottom: 0; +} + +.jumbotron-heading { + font-weight: 300; +} + +.jumbotron .container { + max-width: 40rem; +} +.headerYSpace{ + padding-bottom: var(--jumbotron-padding-y); +} +.mainContent{ + +} + +.ui-button{ + padding: 0; +} +a{ + text-decoration: none; + color: black; + outline: none; +} +a:hover { + text-decoration: underline; +} + +.menuNavBar li{ + display: inline-flex; +} + + +.customRadioBtnGroup .notActive{ + color: #3276b1; + background-color: #fff; +} + +.dt-buttons{ + display: inline; + padding-left: 5px; +} + +.dataTableHeaderButtons{ + border-radius: 2px; + padding: 2px 4px 2px 4px; +} + +.dataTableRowButton{ + margin-right: 3px; +} + +textarea.orderItemComment{ + width: 50em; +} -/*# sourceMappingURL=app.css.map*/ \ No newline at end of file diff --git a/public/images/icons/ico_timetable1.png b/public/images/icons/ico_timetable1.png new file mode 100644 index 0000000000000000000000000000000000000000..b916eeaa96c9d0aaf34082fbbbbc29cf90e2aa30 GIT binary patch literal 104244 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

Q;^FRC`6%>Ajv_3Rv=yLi;bEOmXc2=?Vv6G?lM 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⁣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 literal 0 HcmV?d00001 diff --git a/public/images/icons/ico_timetable3.png b/public/images/icons/ico_timetable3.png new file mode 100644 index 0000000000000000000000000000000000000000..5af729eb2369122ac3472980ff9ce72451a2ba48 GIT binary patch literal 82127 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 z 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

HPf+m$#*{)^d9|KhQ( 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 zb0))return;c--}$(".statusError").removeClass("highlightedErrorRow"),$(".priceListTableWrapper").scrollTop($($(".statusError")[c]).position().top),$($(".statusError")[c]).addClass("highlightedErrorRow")}),$(".priceListForm .buttonNextError").off("click"),$(".priceListForm .buttonNextError").on("click",function(){if(null==c)c=0;else{if(!(c tbody").empty(),$(".containerFileUpload").removeClass("d-none"))},this.clickNewPriceListCallBack=function(){i.initViewDetails()},this.clickNewPriceList=function(){APP.loadMainContent(a.URL.create,i.clickNewPriceListCallBack)},this.datatableRowActionButtonClick=function(t){var o=$(t[0].currentTarget),i=$(r).DataTable().row(o.parents("tr")),c=i.data(),l={},d=a.URL.destroy.replace("%id%",c.id);l._token=$("input[name=_token]").val(),$.ajax({url:d,data:l,method:"DELETE",success:function success(t){1==t.success&&i.remove().draw()}})},this.initViewList=function(t){debug("listview inicialization"),r=a.containerCssSelector+" .dataTable";var o=$(r+" thead th").length;APP.setOpts({datatableActionButtonClickCallBack:i.clickNewPriceList,datatableRowActionButtonClickCallBack:i.datatableRowActionButtonClick}),APP.dataTablePriceList=$(r).DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:a.URL.getDataTableContent,columnDefs:[{targets:o-1,render:function render(t,o,a){return APP.datatableAddRowTrashButton(0,arguments)}}],buttons:{buttons:["excel","pdf",{extend:"print",title:"title custom text",messageTop:"Message On Top",autoPrint:!0},{text:"Új felvitele",className:"btn btn-success newItem",attr:{data:"newItem"},init:function init(t,o,a){$(o).removeClass("ui-button")},action:function action(t,o,a,i){APP.datatableActionButtonClickCallBack(arguments)}}]},columns:[{data:"id"},{data:"supplierName"},{data:"available"},{data:"created_at"},{data:"note"},null],stateSave:!0,drawCallback:function drawCallback(t){APP.datatableAddRowAction(r)}})},this.initViewDetails=function(t){$(a.containerCssSelector+" .datePickerClick").off("click"),$(a.containerCssSelector+" .datePickerClick").on("click",function(){$(a.containerCssSelector+" .datePicker").datepicker("show")}),$(a.containerCssSelector+" .datePicker").datepicker({dateFormat:"yy-mm-dd",onSelect:function onSelect(t){console.log(t),$(".selectedDateText").text(t.replaceAll("-",".")),$('input[name="availableDate"]').val(t)}}),$(a.containerCssSelector+" .buttonNewUpload").off("click"),$(a.containerCssSelector+" .buttonNewUpload").on("click",function(){i.selectedUploadFileToggle()}),$(a.containerCssSelector+" .buttonUpload").off("click"),$(a.containerCssSelector+" .buttonUpload").on("click",function(){console.log("------------------"),i.selectedUploadFileToggle();var t=new FormData($(".priceListForm")[0]);if($(".supplierSelect").val().length<1)Toast.create({title:"Hiba!",message:"Adjon meg beszállítót!",status:TOAST_STATUS.DANGER,timeout:1e4});else{var o=$("#inputGroupPriceListFile");console.log(o[0].files.length<1),!a.testFileMod&&(console.log(o[0].files.length<1),o[0].files.length<1)?Toast.create({title:"Hiba!",message:"Vállaszon ki fájlt!",status:TOAST_STATUS.DANGER,timeout:1e4}):(t.append(o.attr("name"),o[0].files[0]),i.selectedUploadFileToggle(o),$.ajax({url:a.URL.store,data:t,type:"POST",contentType:!1,processData:!1,beforeSend:function beforeSend(){},success:function success(t){console.log(t),1==t.success&&i.processCheckedPriceListResponse(t)},error:function error(t){console.log(t.responseJSON),i.selectedUploadFileToggle(),ajaxErrorFieldHandler(t.responseJSON.error)}}))}}),$(a.containerCssSelector+" .buttonFinalization").on("click",function(){var t=new FormData($(".priceListForm")[0]),o=$("#inputGroupPriceListFile");t.append(o.attr("name"),o[0].files[0]),t.append("finalization",1),$.ajax({url:a.URL.store,data:t,type:"POST",contentType:!1,processData:!1,beforeSend:function beforeSend(){},success:function success(t){console.log(t),t.success&&($(".priceListTable tbody tr").remove(),$(".uploadStatusRow >.canFinish").hide(),$(".uploadStatusRow").addClass("d-none"),$(".priceListTable tbody").append(' Árlistát elmentettük.'))},error:function error(t){console.log(t.responseJSON),ajaxErrorFieldHandler(t.responseJSON.error)}})})},this.init=function(t){console.log("PriceListAdmin init called"),$.extend(a,t),console.log("Opt extended"),console.log(a),console.log("call list view Init"),i.initViewList(t)},this.getOpts=function(){return a};var d=!1;this.processCheckedPriceListResponse=function(t){d=!1,i.processCheckedPriceListResponseRows(t.rows),d?($(".uploadStatusRow >.canFinish").hide(),$(".uploadStatusRow >.canFinishError").show(),i.initErrorNavigationButton()):($(".uploadStatusRow >.canFinish").show(),$(".uploadStatusRow >.canFinishError").hide()),$(".uploadStatusRow").removeClass("d-none"),$(".containerUploadedSpinner").addClass("d-none")},this.processCheckedPriceListResponseRows=function(t){for(var o in console.log("processingRows"),t){var a=t[o],r=a.originalData;r.rowNum=a.rowNum;var c=$('template[data-name="priceListTableRow"]').html(),l=Mustache.render(c,r);$(".priceListTable tbody").append(l),$("tr[data-rownum="+a.rowNum+"]").addClass("status"+$.ucFirst(a.status)),i.processResponseRowErrors(a.error,a.rowNum),a.changed&&i.processResponseRowChanged(a.changed,a.rowNum)}},this.processResponseRowChanged=function(t,o){if(!(t.length<1)){console.log(t);var a=$("tr[data-rownum="+o+"]");for(var i in t){var r=a.find('td[data-pointer="'+i+'"]');r.addClass("bg-primary");var c=$(document.createElement("span")).text(t[i].old).addClass("fieldChanged");r.append(c)}}},this.processResponseRowErrors=function(t,o){if(!(t.length<1)&&(console.log(t),d=!0,void 0!==t.fields)){var a=$("tr[data-rownum="+o+"]");for(var i in t.fields){var r=a.find('td[data-pointer="'+i+'"]');r.addClass("bg-danger");var c=$(document.createElement("span")).text(t.fields[i]).addClass("fieldError");r.append(c)}}}},window.PriceListProfitCenterAdmin=function(t){var o={token:null,containerCssSelector:".containerPriceListProfitCenter",testMode:!1,URL:{getDataTableContent:"",getProductGroupHTML:"",index:"",show:"",edit:"",create:"",store:"",update:"",destroy:""},dataTable:{orderDirective:[1,"asc"]},onAfterInitViewDetails:function onAfterInitViewDetails(){}},a=this;this.construct=function(t,a){console.log("PriceListProfitCenterAdmin constructor called"),$.extend(o,t)},this.getOpts=function(){return o};var i={supplier:"",profitCenter:"",deliveryDate:""};this.checkRefreshPossible=function(){console.log("check need parameter");var t=!0;$.each(i,function(o,a){""===a&&(t=!1)}),t&&(a.refreshDatatable(),a.refreshProductGroup(),a.setDatatableHeaderText(""))},this.setDatatableHeaderText=function(t){$(".tableHeaderText").text(t)},this.getTreePathName=function(t){var o="",a=$(t).parents("li").toArray();for(var i in a.shift(),a.reverse(),a)$(a[i]).children("a.categoryItem").length>0&&(o+=$(a[i]).children("a.categoryItem").text()+"/");return o+=$(t).text()},this.bindProductGroupItem=function(){$(".sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable").off("click"),$(".sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable").on("click",function(){var t=$(this).data("id");r=t,a.setDatatableHeaderText(a.getTreePathName(this)),a.refreshDatatable()})},this.refreshProductGroup=function(){var t={supplierId:i.supplier,deliveryDate:i.deliveryDate},r=o.URL.getProductGroupHTML;$.ajax({url:r,data:t,type:"GET",contentType:!1,processData:!0,beforeSend:function beforeSend(){},success:function success(t){$(".sidebar-menu .productGroup").find("ul").html(t),a.bindProductGroupItem()},error:function error(t){ajaxErrorFieldHandler(t.responseJSON.error)}})},this.refreshDatatable=function(){$(".dataTableOrderProductSelect").DataTable().ajax.reload()},this.changePriceListProfitCenterParameter=function(t,o){void 0===o&&(o=$(this));var c=o.attr("name");"supplier"==c&&(r=null);var l="";"SELECT"==o.get(0).nodeName?o.select2("data").length>0&&(l=o.select2("data")[0].id):l=o.val(),i[c]!=l&&(i[c]=l,a.checkRefreshPossible())},this.init=function(t){$.extend(o,t);var i=o.containerCssSelector;$(i+" .datePickerClick").click(function(){$(i+" .datePicker").datepicker("show")}),$(".supplierSelect").on("change",a.changePriceListProfitCenterParameter),$(".profitCenterSelect").on("change",a.changePriceListProfitCenterParameter),$(".supplierSelect").select2({maximumSelectionLength:1}),$(".profitCenterSelect").select2({maximumSelectionLength:1}),$(i+" .datePicker").datepicker({dateFormat:"yy-mm-dd",minDate:new Date,onSelect:function onSelect(t,o){$(i+" .selectedDateText").text(t),$(".deliveryDatePlace").text(t.replaceAll("-",".")+"."),$(i+' input[name="deliveryDate"]').val(t),a.changePriceListProfitCenterParameter(null,$(o.input))}}),a.getDatatables(""),$(".dataTableOrderProductSelect").on("draw.dt",a.productSelectDataTableDrawDT).dataTable()},this.productSelectDataTableDrawDT=function(t){$('td:contains("*")').html(''),$("td.details-control").removeClass("details-control")};var r=null;this.getDatatables=function(t){return $(".dataTableOrderProductSelect").DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:{url:o.URL.getDataTableContent,data:function data(t){t.supplierId=i.supplier,t.profitCenterId=i.profitCenter,t.deliveryDate=i.deliveryDate,t.groupId=r}},buttons:{buttons:[]},columnDefs:APP.OrderModule.productSelectDataTableColumnDefs(),columns:APP.OrderModule.productSelectDataTableColumn(),order:[[1,"asc"]]})}},(()=>{function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _createForOfIteratorHelper(t,o){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,o){if(t){if("string"==typeof t)return _arrayLikeToArray(t,o);var a={}.toString.call(t).slice(8,-1);return"Object"===a&&t.constructor&&(a=t.constructor.name),"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,o):void 0}}(t))||o&&t&&"number"==typeof t.length){a&&(t=a);var i=0,r=function F(){};return{s:r,n:function n(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function e(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,l=!0,d=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();return l=t.done,t},e:function e(t){d=!0,c=t},f:function f(){try{l||null==a.return||a.return()}finally{if(d)throw c}}}}function _arrayLikeToArray(t,o){(null==o||o>t.length)&&(o=t.length);for(var a=0,i=Array(o);a0&&void 0!==arguments[0]?arguments[0]:{};debug("listview inicialization"),dataTableCSSSelector=a.containerCssSelector+" .dataTable";var o=$(dataTableCSSSelector+" thead th").length;APP.setOpts({datatableRowActionButtonClickCallBack:i.datatableRowActionButtonClick});var r=a.dataTable.orderDirective;void 0!==t.orderDirective&&(r=t.orderDirective),$(dataTableCSSSelector).DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:a.URL.getDataTableContent,serverSide:!0,columnDefs:[{targets:o-1,orderable:!1,render:function render(t,o,a){return APP.datatableAddRowEditButton(0,arguments)}},{targets:1,render:function render(t,o,a){return"sort"===o?t.latinise():t}}],buttons:{buttons:["excel","pdf",{extend:"print",title:"title custom text",messageTop:"Message On Top",autoPrint:!0}]},columns:[{data:"id"},{data:"name"},{data:"hooreycaId"},{data:"productGroup"},{data:"supplierName"},{data:"price"},{data:"created_at"},null],order:r,stateSave:!0,drawCallback:function drawCallback(t){APP.datatableAddRowAction(dataTableCSSSelector)}}),debug("listview end")},this.initViewList=function(){debug("initViewSearch inicialization 1"),i.container.find("select.supplierSelect, select.profitCenterSelect, select.productGroupSelect, select.producerSelect, select.hooreycaNamesSelect, select.specialOfferSelect").select2(),i.container.find("select.productSelect").select2({placeholder:"...",allowClear:!0,ajax:{url:a.URL.getProductSearch,dataType:"json",data:function data(t){return{term:t.term||"",page:t.page||1,supplierId:i.container.find("select.supplierSelect").val()}},cache:!0}}),i.container.find(".datePickerFrom, .datePickerTo").datepicker({dateFormat:"yy-mm-dd",onSelect:function onSelect(t,o){debug(this),debug(o.input)}}),i.container.find(".datePickerClick").click(function(){debug($(this).data("action")),i.container.find('input[name="'+$(this).data("action")+'"]').datepicker("show")});var t=i.container.find(".FormSendButton");t.off("click"),t.on("click",function(){debug("FormSendButton click"),i.loadingResultContainer(),i.requestProducts()}),i.setVisibleFilters("Product"),debug("initViewSearch end")},this.loadingResultContainer=function(){debug("clearResultContainer"),debug(i.resultContainer),i.hideResultContainer(),i.container.find(".containerLoading").show()},this.hideResultContainer=function(){debug("hide containerResult"),debug(i.resultContainer),i.resultContainer.hide()},this.showResultContainer=function(){i.container.find(".containerLoading").hide(),i.resultContainer.show()},this.init=function(t,o){if(console.log("ProductAdmin init"),$.extend(a,t),a.testMode)return i.testMode();o&&(i.Product=o),i.dataTable=null,i.container=$(a.containerCssSelector),i.resultContainer=$(a.resultContainerSelector),i.initViewList()},this.initViewDetails=function(t,o){debug("**call initViewDetails ");var r=a.containerCssSelector+" .productForm";if(i.Product.picture){console.log("*****//////////////////****************"),console.log(i.Product.picture),console.log(r);var c=i.Product.picture.PublicUrl+"/"+i.Product.picture.filename;console.log(c),console.log($(r+" img.imageProduct")),$(r+" img.imageProduct").attr("src",c)}i.Product.specification&&(console.log("*****//////////////////****************"),console.log(i.Product.specification),i.Product.specification.PublicUrl,i.Product.specification.filename,i.addAttachment(i.Product.specification));var l=$(r+" button.FormSaveButton");l.off("click"),l.on("click",i.clickSaveButton)},this.addAttachment=function(t){console.log(t);var o=a.containerCssSelector+" .productForm";t.rowNum=1;var i=new Date(t.updated_at);i=i.toLocaleString("hu-HU",{}),t.date=i,t.link=t.PublicUrl+"/"+t.filename;var r=$('template[data-name="productAttachmentTableRow"]').html(),c=Mustache.render(r,t);$(o+" .attachmentTable tbody").append(c),Toast.enableTimers(!1),Toast.create({title:"Fájl hozzáadva!",message:t.original_filename+" fájl hozzáadva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.setVisibleFilters=function(t){for(var o in console.log("setVisibleFilters"),console.log(a.filters[t]),console.log(i.container),$(i.container).find('div[class*="filter"]').hide(),a.filters[t]){var r=a.filters[t][o];debug(r),console.log($(i.container).find(".filter_"+r)),$(i.container).find(".filter_"+r).show()}},this.c=function(t){console.log("c called"),console.log(t),console.log(i.container),console.log(i.container.find("form")),console.log(i.container.find(t))},this.formDataToDataObjectAPICall=function(t){console.log(t),console.log(i.container),console.log(i.container.find(t)),console.log(i.container.find("form")),console.log(i.container.find("form"+t)[0]);var o=new FormData(i.container.find("form"+t)[0]);return $.each(o.getAll("supplier"),function(t,a){o.append("suppliers[]",a)}),o.delete("supplier"),$.each(o.getAll("profitCenter"),function(t,a){o.append("profitCenters[]",a)}),o.delete("profitCenter"),$.each(o.getAll("productGroup"),function(t,a){o.append("productGroups[]",a)}),o.delete("productGroup"),$.each(o.getAll("product"),function(t,a){o.append("products[]",a)}),o.delete("product"),$.each(o.getAll("producer"),function(t,a){o.append("producers[]",a)}),o.delete("producer"),$.each(o.getAll("hooreycaName"),function(t,a){o.append("hooreycaNames[]",a)}),o.delete("hooreycaName"),o},this.getAjaxDataJson=function(){var t=i.formDataToDataObjectAPICall(".ProductListForm");console.log("======================");var o,a=_createForOfIteratorHelper(t.entries());try{for(a.s();!(o=a.n()).done;){var r=o.value;console.log(r[0]+", "+r[1])}}catch(t){a.e(t)}finally{a.f()}var c={};return t.forEach(function(t,o){Reflect.has(c,o)?(Array.isArray(c[o])||(c[o]=[c[o]]),c[o].push(t)):c[o]=t}),JSON.stringify(c)},this.requestProducts=function(){var t=a.URL.getDataTableContent;debug(t),ajaxDataJson=i.getAjaxDataJson(),console.log(ajaxDataJson),dataTableCSSSelector=a.containerCssSelector+" .dataTable",console.log(dataTableCSSSelector);var o=$(dataTableCSSSelector+" thead th").length;APP.setOpts({datatableRowActionButtonClickCallBack:i.datatableRowActionButtonClick});var r=a.dataTable.orderDirective;i.dataTable?(console.log("XXXXXXXXXXXXXXXXXXXX van Datatable"),i.dataTable.draw()):(console.log("XXXXXXXXXXXXXXXXXXXX Nincs Datatable"),i.dataTable=$(dataTableCSSSelector).DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:{url:a.URL.getDataTableContent,data:function data(t){return console.log("---******----"),console.log(APP.ProductAdmin.getAjaxDataJson()),$.extend({},t,{ajaxData:APP.ProductAdmin.getAjaxDataJson})},type:"GET"},serverSide:!0,columnDefs:[{targets:o-1,orderable:!1,render:function render(t,o,a){return APP.datatableAddRowEditButton(0,arguments)}},{targets:1,render:function render(t,o,a){return"sort"===o?t.latinise():t}}],buttons:{buttons:["excel","pdf",{extend:"print",title:"title custom text",messageTop:"Message On Top",autoPrint:!0}]},columns:[{data:"id"},{data:"name"},{data:"hooreycaId"},{data:"productGroup"},{data:"supplierName"},{data:"price"},{data:"created_at"},null],order:r,stateSave:!0,drawCallback:function drawCallback(t){APP.datatableAddRowAction(dataTableCSSSelector),i.showResultContainer(),console.log("drawCallback")}}))},this.processResponse=function(){},this.clickSaveButton=function(t){debug("Save clicked");var o=a.containerCssSelector+" .productForm";if(t.preventDefault(),!1===$(o)[0].checkValidity())return console.log("validaton false"),void t.stopPropagation();console.log("validaton ok");var r=i.formDataToDataObjectAPICall(".productForm"),c=a.URL.store,l="POST";i.Product.id&&(c=a.URL.update.replace("%id%",i.Product.id),r.append("_method","PUT")),debug(l),debug(r),$.ajax({url:c,data:r,type:l,contentType:!1,processData:!1,headers:{"X-CSRF-TOKEN":a.token},success:function success(t){debug(t),1==t.success&&(a.dataTable.orderDirective=[0,"desc"],Toast.create({title:"Sikeres rögzítés!",message:r.get("name")+" nevű termék elmentve",status:TOAST_STATUS.SUCCESS,timeout:5e3}))}})}}})(),(()=>{function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _defineProperties(t,o){for(var a=0;a0||!0===$(this).data("required"))&&$(this).addClass("is-invalid")},oncomplete:function oncomplete(){$(this).removeClass("is-invalid"),$(this).addClass("is-valid")},oncleared:function oncleared(){console.log("cleared"),$(this).removeClass("is-invalid")}}),$(l+" button.FormSaveButton").off("click"),$(l+" button.FormSaveButton").on("click",i.clickSaveButton),debug("**end initViewDetails ")},this.setDetailsViewData=function(){debug("setDetailsViewData");var t=a.containerCssSelector+" .profitCenterForm";$.each(["name","hooreycaId","nameId","email","postCode","city","street","phone","mobil"],function(){void 0!==i.ProfitCenter[this]&&$(t+" input[name="+this+"]").val(i.ProfitCenter[this])}),void 0!==i.ProfitCenter.note&&$(t+" textarea[name=note]").val(i.ProfitCenter.note),$(t+" *[data-toggle=canSee][data-title="+i.ProfitCenter.canSee+"]").click(),$(t+" *[data-toggle=hooreycaDataActive][data-title="+i.ProfitCenter.hooreycaDataActive+"]").click(),void 0!==i.ProfitCenter.logoFile&&i.ProfitCenter.logoFile&&$(t+" img.imageLogo").attr("src",i.ProfitCenter.logoFile),$(t+" *[data-toggle=addressEqual][data-title="+i.ProfitCenter.addressEqual+"]").click(),$(t+" *[data-toggle=multiAddress][data-title="+i.ProfitCenter.multiAddress+"]").click();var o=[];$.each(i.ProfitCenter.suppliers,function(){o.push(this.name)}),$.each(o,function(){$('input[value="'+$.escapeSelector(this)+'"]').prop("checked",!0)})},this.resetContactTable=function(){$(l+" .contactTable tbody tr").remove(),i.renderContact()},this.renderContact=function(){var t=1;console.log("renderingContacts"),$.each(i.ProfitCenter.getData("contact"),function(){this.rowNum=t;var o=$('template[data-name="profitCenterContactTableRow"]').html(),a=Mustache.render(o,this);$(".contactTable tbody").append(a),t++}),i.bindContactClickAction()},this.bindContactClickAction=function(){$(".contactTable .buttonDelete").unbind("click"),$(".contactTable .buttonDelete").bind("click",i.contactDeleteClick),$(".contactTable .buttonEdit").unbind("click"),$(".contactTable .buttonEdit").bind("click",i.contactEditClick)},this.contactDeleteClick=function(t){var o=$(this).closest("tr"),a=o.find("input[name=contactId]").val();console.log(a),i.ProfitCenter.contact=i.ProfitCenter.contact.filter(function(t,o,i){return t.id!==1*a}),console.log(i.ProfitCenter.contact),o.remove(),i.resetContactTable()},this.getContactPopupWorkflow=function(){return r},this.setContactPopupWorkflow=function(t){r=t},this.contactEditClick=function(t){console.log(this);var o=$(this).closest("tr").find("input[name=contactId]").val();console.log(o),i.setContactPopupWorkflow("edit"),APP.ContactPopUp.loadData(o)},this.contactAction=function(t){console.log("nah most kellene meg valamit csinalni."),"new"==i.getContactPopupWorkflow()?i.addContact(t):"edit"==i.getContactPopupWorkflow()&&i.editContact(t.id,t)},this.addContact=function(t){i.ProfitCenter.contact.push(t),t.rowNum=i.ProfitCenter.contact.length;var o=$('template[data-name="profitCenterContactTableRow"]').html(),a=Mustache.render(o,t);$(l+" .contactTable tbody").append(a),i.bindContactClickAction(),Toast.enableTimers(!1),Toast.create({title:"Kapcsolat tartó hozzáadva!",message:t.name+" nevű kapocsolattartó hozzáadva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.editContact=function(t,o){var a=[];$.each(i.ProfitCenter.getData("contact"),function(i){this.id==t?a.push(o):a.push(this)}),i.ProfitCenter.contact=a,i.resetContactTable(),Toast.create({title:"Kapcsolat adatai módosítva!",message:o.name+" nevű kapocsolattartó módosítva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.resetAddressTable=function(){$(l+" .addressTable tbody tr").remove(),i.renderAddress()},this.renderAddress=function(){var t=1;console.log("renderingAddress"),$.each(i.ProfitCenter.getData("address"),function(){var o=this;o.rowNum=t;var a=$('template[data-name="profitCenterAddressTableRow"]').html();debug(o);var i=Mustache.render(a,o);$(".addressTable tbody").append(i),t++}),i.bindAddressClickAction()},this.bindAddressClickAction=function(){$(".addressTable .buttonDelete").unbind("click"),$(".addressTable .buttonDelete").bind("click",i.addressDeleteClick),$(".addressTable .buttonEdit").unbind("click"),$(".addressTable .buttonEdit").bind("click",i.addressEditClick)},this.addressDeleteClick=function(t){var o=$(this).closest("tr"),a=o.find('input[name="addressId[]"]').val();console.log(a),i.ProfitCenter.address=i.ProfitCenter.address.filter(function(t,o,i){if(t.id!=a)return!0}),console.log(i.ProfitCenter.address),o.remove(),i.resetAddressTable()},this.getAddressPopupWorkflow=function(){return c},this.setAddressPopupWorkflow=function(t){c=t},this.addressEditClick=function(t){console.log(this);var o=$(this).closest("tr").find('input[name="addressId[]"]').val();console.log(o),i.setAddressPopupWorkflow("edit"),APP.AddressPopUp.loadData(o)},this.addressAction=function(t){console.log("nah most kellene meg valamit csinalni."),"new"==i.getAddressPopupWorkflow()?i.addAddress(t):"edit"==i.getAddressPopupWorkflow()&&i.editAddress(t.id,t)},this.addAddress=function(t){i.ProfitCenter.address.push(t),t.rowNum=i.ProfitCenter.address.length;var o=$('template[data-name="profitCenterAddressTableRow"]').html(),a=Mustache.render(o,t);$(l+" .addressTable tbody").append(a),i.bindAddressClickAction(),Toast.enableTimers(!1),Toast.create({title:"Cím hozzáadva!",message:t.street+" hozzáadva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.editAddress=function(t,o){var a=[];$.each(i.ProfitCenter.getData("address"),function(i){this.id==t?a.push(o):a.push(this)}),i.ProfitCenter.address=a,i.resetAddressTable(),Toast.create({title:"cím adatai módosítva!",message:o.street+" módosítva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.initViewList=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};debug("listview inicialization"),d=a.containerCssSelector+" .dataTable";var o=$(d+" thead th").length;APP.setOpts({datatableActionButtonClickCallBack:i.clickNew,datatableRowActionButtonClickCallBack:i.datatableRowActionButtonClick});var r=a.dataTable.orderDirective;void 0!==t.orderDirective&&(r=t.orderDirective),$(d).DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:a.URL.getDataTableContent,columnDefs:[{targets:o-1,render:function render(t,o,a){var i=APP.datatableAddRowTrashButton(0,arguments);return i+=APP.datatableAddRowEditButton(0,arguments)}},{targets:1,render:function render(t,o,a){return"sort"===o?t.latinise():t}}],buttons:{buttons:["excel","pdf",{extend:"print",title:"title custom text",messageTop:"Message On Top",autoPrint:!0},{text:"Új felvitele",className:"btn btn-success newItem",attr:{data:"newItem"},init:function init(t,o,a){$(o).removeClass("ui-button")},action:function action(t,o,a,i){APP.datatableActionButtonClickCallBack(arguments)}}]},columns:[{data:"id"},{data:"name"},{data:"hooreycaId"},{data:"nameId"},{data:"created_at"},null],order:r,drawCallback:function drawCallback(t){APP.datatableAddRowAction(d)}}),debug("listview end")},this.datatableRowActionButtonClick=function(t){debug("datatableRowActionButtonClick");var o=$(t[0].currentTarget),a=$(d).DataTable().row(o.parents("tr")).data(),r="datatableRowAction"+o.data("buttontype").capitalize();if("function"==typeof i[r])return i[r](a,o)},this.datatableRowActionEdit=function(t,o){console.log("datatableRowActionEdit Called");var r=a.URL.edit.replace("%id%",t.id);APP.loadMainContent(r,i.initViewDetails),console.log("datatableRowActionEdit End")},this.datatableRowActionDelete=function(t,o){console.log("datatableRowActionDelete Called");var i=$(d).DataTable().row(o.parents("tr")),r={},c=a.URL.destroy.replace("%id%",t.id);r._token=$("input[name=_token]").val(),$.ajax({url:c,data:r,method:"DELETE",success:function success(t){1==t.success&&i.remove().draw()}})},this.clickSaveButton=function(t){if(debug("Save clicked"),t.preventDefault(),debug(l),debug($(l)),!1===$(l)[0].checkValidity())return console.log("validaton false"),$(l).addClass("was-validated"),$(l)[0].reportValidity(),Toast.create({title:"Validációs hiba!",message:"Kérjük, töltse ki a kötelező mezőket!",status:TOAST_STATUS.DANGER,timeout:5e3}),void t.stopPropagation();console.log("validaton ok"),$(l).removeClass("was-validated");var o=i.formDataToDataObjectAPICall(l),r=a.URL.store;i.ProfitCenter.id&&(r=a.URL.update.replace("%id%",i.ProfitCenter.id),o.append("_method","PUT")),console.table(Object.fromEntries(o)),$.ajax({url:r,data:o,type:"POST",contentType:!1,processData:!1,headers:{"X-CSRF-TOKEN":$('input[name="_token"]').val()},success:function success(t){debug(t),1==t.success&&(a.dataTable.orderDirective=[0,"desc"],Toast.create({title:"Sikeres rögzítés!",message:o.get("name")+" nevű profitcenter elmentve",status:TOAST_STATUS.SUCCESS,timeout:5e3}),APP.loadMainContent(a.URL.index+"?init=0",i.initViewList))}})},this.formDataToDataObjectAPICall=function(t){var o=new FormData($(t)[0]);return $.each(o.getAll("contactId"),function(t,a){o.append("contactId[]",a)}),o.append("_token",$("input[name=_token]").val()),$(t+" input[data-inputmask]").each(function(){var t=$(this).attr("name");o.get(t)&&o.set(t,o.get(t).replace(/[_ ]+$/g,""))}),$.each(o.getAll("supplier"),function(t,a){o.append("supplier[]",a)}),o},this.construct(t,o)}})(),(()=>{function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _defineProperties(t,o){for(var a=0;a0||!0===$(this).data("required"))&&$(this).addClass("is-invalid")},oncomplete:function oncomplete(){$(this).removeClass("is-invalid"),$(this).addClass("is-valid")},oncleared:function oncleared(){console.log("cleared"),$(this).removeClass("is-invalid")}}),$("form.supplierForm button.FormSaveButton").off("click"),$("form.supplierForm button.FormSaveButton").on("click",r.clickSaveButton),r.setDetailsViewData(),$(".productCategorySelect").select2(),$(".serviceSelect").select2({tags:!0,createTag:function createTag(t){var o=$.trim(t.term);return""===o?null:{id:o,text:o,newTag:!0}}}),$("input[name=logoFile]").change(function(){setImageFromLocal(this,a.containerCssSelector+" .imageLogo")}),$("form.supplierForm .profitCenterSelectCheckboxAll").off("click"),$("form.supplierForm .profitCenterSelectCheckboxAll").on("click",function(){$("form.supplierForm input.profitCenterSelectCheckbox").prop("checked",$(this).is(":checked"))}),r.renderAttachment(),r.initFileAttachmentFeature(),debug("**end initViewDetails ")},this.selectedUploadFileToggle=function(t){t?($(".containerFileUpload").addClass("d-none"),t[0].files[0]&&$(".containerUploadedFileName").text(t[0].files[0].name),$(".containerFileUploadStarted").removeClass("d-none"),$(".containerUploadedSpinner").removeClass("d-none")):($(".containerUploadedFileName").text(""),$(".custom-file-label.selected").text(""),$(".containerFileUploadStarted").addClass("d-none"),$(".uploadStatusRow").addClass("d-none"),$(".containerFileUpload").removeClass("d-none"))},this.initFileAttachmentFeature=function(){console.log("-------initFileAttachmentFeature-----------"),r.Supplier.id&&($(".containerFileUpload").removeClass("d-none"),$(".containerFileUploadNone").addClass("d-none")),$(a.containerCssSelector+" .buttonUpload").off("click"),$(a.containerCssSelector+" .buttonUpload").on("click",function(){console.group("-------buttonUpload-----------");var t=$("#inputGroupAttacheFile");if(t[0].files.length<1)Toast.create({title:"Hiba!",message:"Vállaszon ki fájlt!",status:TOAST_STATUS.DANGER,timeout:1e4});else{console.log($(a.containerCssSelector).find("form.supplierForm")[0]);var o=new FormData($(a.containerCssSelector).find("form.supplierForm")[0]);o.append(t.attr("name"),t[0].files[0]),r.selectedUploadFileToggle(t);var i=a.URL.attachFile.replace("%id%",r.Supplier.id);console.groupEnd(),$.ajax({url:i,data:o,type:"POST",contentType:!1,processData:!1,beforeSend:function beforeSend(){},success:function success(t){console.log(t),1==t.success&&(r.addAttachment(t.data.attachment),r.selectedUploadFileToggle())},error:function error(t){console.log(t.responseJSON),r.selectedUploadFileToggle(),ajaxErrorFieldHandler(t.responseJSON.error)}})}})},this.clickNew=function(){debug("clickNew"),APP.loadMainContent(a.URL.create,r.clickNewCallBack)},this.clickNewCallBack=function(){debug("callbackNew"),r.Supplier=new window.Supplier,r.initViewDetails()},this.datatableRowActionEdit=function(t,o){console.log("datatableRowActionEdit Called");var i=a.URL.edit.replace("%id%",t.id);APP.loadMainContent(i,r.initViewDetails),console.log("datatableRowActionEdit End")},this.clickOrderDeleteConfirmed=function(t){debug("clickSupplierDeleteConfirmed"),debug(t),debug(t.data),$("#dialogModal").modal("hide");var o={};o._token=a.token;var i=a.URL.destroy.replace("%id%",t.data.id);o._token=$("input[name=_token]").val(),console.log(i),console.log(o);var c=$(dataTableCSSSelector).DataTable().row(r.dadatatableRowActionCallerNode.parents("tr"));$.ajax({url:i,data:o,method:"DELETE",success:function success(t){1==t.success&&(c.remove().draw(),r.dadatatableRowActionCallerNode=!1)}})},this.datatableRowActionDelete=function(t,o){console.log("datatableRowActionDelete Called"),r.dadatatableRowActionCallerNode=o,$("#dialogModal").on("show.bs.modal",function(o){var a=$(this);a.find(".modal-title").text("Megerősítés "),a.find(".modal-body").text("Biztosan törli a beszállítót?"),a.find(".buttonYes").off("click"),a.find(".buttonYes").on("click",{id:t.id},r.clickOrderDeleteConfirmed)}),$("#dialogModal").modal("show")},this.datatableRowActionButtonClick=function(t){debug("datatableRowActionButtonClick");var o=$(t[0].currentTarget),a=$(dataTableCSSSelector).DataTable().row(o.parents("tr")).data(),i="datatableRowAction"+o.data("buttontype").capitalize();if("function"==typeof r[i])return r[i](a,o)},this.initViewList=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};debug("listview inicialization"),dataTableCSSSelector=a.containerCssSelector+" .dataTable";var o=$(dataTableCSSSelector+" thead th").length;APP.setOpts({datatableActionButtonClickCallBack:r.clickNew,datatableRowActionButtonClickCallBack:r.datatableRowActionButtonClick});var i=a.dataTable.orderDirective;void 0!==t.orderDirective&&(i=t.orderDirective),$(dataTableCSSSelector).DataTable({language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},ajax:a.URL.getDataTableContent,columnDefs:[{targets:o-1,render:function render(t,o,a){var i=APP.datatableAddRowTrashButton(0,arguments);return i+=APP.datatableAddRowEditButton(0,arguments)}},{targets:1,render:function render(t,o,a){return"sort"===o?t.latinise():t}}],buttons:{buttons:["excel","pdf",{extend:"print",title:"title custom text",messageTop:"Message On Top",autoPrint:!0},{text:"Új felvitele",className:"btn btn-success newItem",attr:{data:"newItem"},init:function init(t,o,a){$(o).removeClass("ui-button")},action:function action(t,o,a,i){APP.datatableActionButtonClickCallBack(arguments)}}]},columns:[{data:"id"},{data:"name"},{data:"hooreycaId"},{data:"nameId"},{data:"created_at"},null],order:i,stateSave:!0,drawCallback:function drawCallback(t){APP.datatableAddRowAction(dataTableCSSSelector)}}),debug("listview end")},this.autofillDetails=function(){debug("nyeresre allunk");var t=getRandomInt(9999);$("input[name=name]").val("Beszalító"+t),$("input[name=hooreycaId]").val("hb"+t),$("input[name=nameId]").val("be"+t),$("input[name=orderEmail]").val("kapcsolat"+t+"@beszallito.hu"),$("input[name=orderEmail2]").val("informacio"+t+"@beszallito.hu"),$("input[name=address]").val("8989 Supplier utca "+t),$("input[name=mailingAddress]").val("8989 Postai út"+t),$("input[name=phone]").val("+36301234567"),$("input[name=fax]").val("36308889999"),$("input[name=customerServicePhone]").val("+36761234444"),$("textarea[name=note]").val("Megjegyzem "+t)},this.testMode=function(){console.debug("!!!!testmode !!!!"),r.Supplier=new window.Supplier({contact:[{id:2},{id:3}]}),a.onAfterInitViewDetails=r.autofillDetails,APP.loadMainContent(a.URL.create,r.initViewDetails)},this.init=function(t,o){if($.extend(a,t),a.testMode)return r.testMode();o&&(r.Supplier=o),r.initViewList()},this.renderAttachment=function(){var t=1;console.log("renderingAttachment"),$.each(r.Supplier.getData("attachment"),function(){var o=this;o.rowNum=t,date=new Date(o.created_at),o.date=date.toLocaleString(),o.link=o.PublicUrl+"/"+o.filename;var a=$('template[data-name="supplierAttachmentTableRow"]').html(),i=Mustache.render(a,o);$(".attachmentTable tbody").append(i),t++}),r.bindAttachmentClickAction()},this.addAttachment=function(t){console.log(t);var o=a.containerCssSelector+" .supplierForm";r.Supplier.attachment.push(t),t.rowNum=r.Supplier.attachment.length;var i=$('template[data-name="supplierAttachmentTableRow"]').html(),c=Mustache.render(i,t);$(o+" .attachmentTable tbody").append(c),r.bindContactClickAction(),Toast.enableTimers(!1),Toast.create({title:"Fájl hozzáadva!",message:t.original_filename+" fájl hozzáadva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.resetContactTable=function(){$(".contactTable tbody tr").remove(),r.renderContact()},this.renderContact=function(){var t=1;console.log("renderingContacts"),$.each(r.Supplier.getData("contact"),function(){this.rowNum=t;var o=$('template[data-name="supplierContactTableRow"]').html(),a=Mustache.render(o,this);$(".contactTable tbody").append(a),t++}),r.bindContactClickAction()},this.bindContactClickAction=function(){var t=$(".contactTable .buttonDelete");t.unbind("click"),t.bind("click",r.contactDeleteClick),(t=$(".contactTable .buttonEdit")).unbind("click"),t.bind("click",r.contactEditClick)},this.bindAttachmentClickAction=function(){var t=$(".attachmentTable .buttonDelete");t.unbind("click"),t.bind("click",r.attachmentDeleteClick)},this.attachmentDeleteClick=function(t){var o=$(this).closest("tr").find("input[name=attachmentId]").val(),i=a.URL.detachFile.replace("%id%",r.Supplier.id),c={};c._token=$('input[name="_token"]').val(),c.attachemntId=o,$.ajax({url:i,data:c,type:"POST",beforeSend:function beforeSend(){},success:function success(t){console.log(t),1==t.success&&(r.Supplier.attachment=r.Supplier.attachment.filter(function(o,a,i){return o.id!==1*t.data.attachment.id}),r.resetAttachmentTable())},error:function error(t){console.log(t.responseJSON),r.selectedUploadFileToggle(),ajaxErrorFieldHandler(t.responseJSON.error)}})},this.resetAttachmentTable=function(){$(".attachmentTable tbody tr").remove(),r.renderAttachment()},this.contactDeleteClick=function(t){var o=$(this).closest("tr"),a=o.find("input[name=contactId]").val();r.Supplier.contact=r.Supplier.contact.filter(function(t,o,i){return t.id!==1*a}),o.remove(),r.resetContactTable()},r.getContactPopupWorkflow=function(){return c},r.setContactPopupWorkflow=function(t){c=t},this.contactEditClick=function(t){var o=$(this).closest("tr").find("input[name=contactId]").val();r.setContactPopupWorkflow("edit"),APP.ContactPopUp.loadData(o)},this.getSupplier=function(){return r.Supplier},this.contactAction=function(t){console.log("nah most kellene meg valamit csinalni."),"new"==r.getContactPopupWorkflow()?r.addContact(t):"edit"==r.getContactPopupWorkflow()&&r.editContact(t.id,t)},this.editContact=function(t,o){var a=[];$.each(r.Supplier.getData("contact"),function(i){this.id==t?a.push(o):a.push(this)}),r.Supplier.contact=a,r.resetContactTable(),Toast.create({title:"Kapcsolat adatai módosítva!",message:o.name+" nevű kapcsolattartó módosítva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.addContact=function(t){r.Supplier.contact.push(t),t.rowNum=r.Supplier.contact.length;var o=$('template[data-name="supplierContactTableRow"]').html(),a=Mustache.render(o,t);$(".contactTable tbody").append(a),r.bindContactClickAction(),Toast.enableTimers(!1),Toast.create({title:"Kapcsolattartó hozzáadva!",message:t.name+" nevű kapcsolattartó hozzáadva",status:TOAST_STATUS.SUCCESS,timeout:5e3})},this.construct(t,o)}})(); -//# sourceMappingURL=admin.js.map \ No newline at end of file +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./resources/js/admin/dashboard.js" +/*!*****************************************!*\ + !*** ./resources/js/admin/dashboard.js ***! + \*****************************************/ +() { + +eval("{window.Dashboard = function () {\n var Opts = {\n active: false,\n containerCssSelector: \".dashboard\",\n testFileMod: false,\n isAdmin: false,\n URL: {\n create: '',\n store: '',\n getDataTableContent: '',\n destroy: ''\n }\n };\n var root = this;\n /*\r\n * Constructor\r\n */\n this.construct = function (options) {\n debug('Dashboard constructor called');\n $.extend(Opts, options);\n };\n this.getOpts = function () {\n return Opts;\n };\n this.init = function (options) {\n console.log('Dashboard init called');\n $.extend(Opts, options);\n /*\r\n APP.setOpts({\r\n afterLoadMainContent:root.initEditor,\r\n })\r\n */\n /*\r\n Init list view\r\n */\n root.initEditorButtons();\n };\n this.initEditorButtons = function () {\n $('.DashboardEditable button.edit').off('click');\n $('.DashboardEditable button.edit').on('click', function () {\n root.initEditor();\n $('.btnGroupEdit').toggleClass('d-none');\n $('.btnGroupModify').toggleClass('d-none');\n });\n $('.DashboardEditable button.btnSave').off('click');\n $('.DashboardEditable button.btnSave').on('click', function () {\n /*$('.btnGroupEdit').toggleClass('d-none');\r\n $('.btnGroupModify').toggleClass('d-none');\r\n */\n root.saveCustomContent();\n //tinymce.activeEditor.isDirty() //true when modified\n });\n $('.DashboardEditable button.btnCancel').off('click');\n $('.DashboardEditable button.btnCancel').on('click', function () {\n $('.btnGroupEdit').toggleClass('d-none');\n $('.btnGroupModify').toggleClass('d-none');\n root.removeEditor();\n });\n };\n this.saveCustomContent = function () {\n var ajaxData = new FormData($('.dashboardForm')[0]);\n ajaxData.append('stored_data', tinymce.activeEditor.getContent());\n var ajaxUrl = Opts.URL.update.replace('%id%', $('div.dashboardCustomContent').data('id'));\n ajaxData.append('_method', 'PUT');\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n type: 'POST',\n contentType: false,\n processData: false,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n Toast.create({\n title: \"Siekeres mentés!\",\n message: 'Új tartalom elmentve.',\n status: TOAST_STATUS.INFO,\n timeout: 5000\n });\n },\n error: function error(data) {\n console.log(data.responseJSON);\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n };\n this.loadTinymce = function () {\n $.getScript('https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js', function () {\n root.initEditor();\n });\n };\n this.removeEditor = function (options) {\n if (typeof tinymce !== \"undefined\") {\n tinymce.remove();\n }\n };\n this.initEditor = function (options) {\n if (typeof tinymce === \"undefined\") {\n root.loadTinymce();\n return;\n }\n tinymce.init({\n selector: 'div.dashboardCustomContent',\n // Replace this CSS selector to match the placeholder element for TinyMCE\n language: 'hu_HU',\n plugins: 'code table lists',\n toolbar: ' undo redo | formatselect| bold italic | alignleft aligncenter alignright | indent outdent | bullist numlist | code | table'\n\n /*\r\n toolbar: 'customInsertButton | undo redo | formatselect| bold italic | alignleft aligncenter alignright | indent outdent | bullist numlist | code | table',\r\n setup: function (editor) {\r\n editor.ui.registry.addButton('customInsertButton', {\r\n text: 'My Button',\r\n onAction: function (_) {\r\n editor.insertContent(' It\\'s my button! ');\r\n }});\r\n }\r\n */\n });\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3aW5kb3ciLCJEYXNoYm9hcmQiLCJPcHRzIiwiYWN0aXZlIiwiY29udGFpbmVyQ3NzU2VsZWN0b3IiLCJ0ZXN0RmlsZU1vZCIsImlzQWRtaW4iLCJVUkwiLCJjcmVhdGUiLCJzdG9yZSIsImdldERhdGFUYWJsZUNvbnRlbnQiLCJkZXN0cm95Iiwicm9vdCIsImNvbnN0cnVjdCIsIm9wdGlvbnMiLCJkZWJ1ZyIsIiQiLCJleHRlbmQiLCJnZXRPcHRzIiwiaW5pdCIsImNvbnNvbGUiLCJsb2ciLCJpbml0RWRpdG9yQnV0dG9ucyIsIm9mZiIsIm9uIiwiaW5pdEVkaXRvciIsInRvZ2dsZUNsYXNzIiwic2F2ZUN1c3RvbUNvbnRlbnQiLCJyZW1vdmVFZGl0b3IiLCJhamF4RGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwidGlueW1jZSIsImFjdGl2ZUVkaXRvciIsImdldENvbnRlbnQiLCJhamF4VXJsIiwidXBkYXRlIiwicmVwbGFjZSIsImRhdGEiLCJhamF4IiwidXJsIiwidHlwZSIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJiZWZvcmVTZW5kIiwic3VjY2VzcyIsIlRvYXN0IiwidGl0bGUiLCJtZXNzYWdlIiwic3RhdHVzIiwiVE9BU1RfU1RBVFVTIiwiSU5GTyIsInRpbWVvdXQiLCJlcnJvciIsInJlc3BvbnNlSlNPTiIsImFqYXhFcnJvckZpZWxkSGFuZGxlciIsImxvYWRUaW55bWNlIiwiZ2V0U2NyaXB0IiwicmVtb3ZlIiwic2VsZWN0b3IiLCJsYW5ndWFnZSIsInBsdWdpbnMiLCJ0b29sYmFyIl0sInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9hZG1pbi9kYXNoYm9hcmQuanM/ZTBkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuRGFzaGJvYXJkPWZ1bmN0aW9uICgpIHtcclxuICAgIGxldCBPcHRzID0ge1xyXG4gICAgICAgIGFjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgY29udGFpbmVyQ3NzU2VsZWN0b3I6XCIuZGFzaGJvYXJkXCIsXHJcbiAgICAgICAgdGVzdEZpbGVNb2Q6ZmFsc2UsXHJcbiAgICAgICAgaXNBZG1pbjpmYWxzZSxcclxuICAgICAgICBVUkw6e1xyXG4gICAgICAgICAgICBjcmVhdGU6JycsXHJcbiAgICAgICAgICAgIHN0b3JlOicnLFxyXG4gICAgICAgICAgICBnZXREYXRhVGFibGVDb250ZW50OicnLFxyXG4gICAgICAgICAgICBkZXN0cm95OicnLFxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBsZXQgcm9vdCA9IHRoaXM7XHJcbiAgICAvKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqL1xyXG4gICAgdGhpcy5jb25zdHJ1Y3QgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gICAgICAgIGRlYnVnKCdEYXNoYm9hcmQgY29uc3RydWN0b3IgY2FsbGVkJyk7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRPcHRzPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnRGFzaGJvYXJkIGluaXQgY2FsbGVkJyk7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbi8qXHJcbiAgICAgICAgQVBQLnNldE9wdHMoe1xyXG4gICAgICAgICAgICBhZnRlckxvYWRNYWluQ29udGVudDpyb290LmluaXRFZGl0b3IsXHJcbiAgICAgICAgfSlcclxuKi9cclxuICAgICAgICAvKlxyXG4gICAgICAgIEluaXQgbGlzdCB2aWV3XHJcbiAgICAgICAgKi9cclxuICAgICAgICByb290LmluaXRFZGl0b3JCdXR0b25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0RWRpdG9yQnV0dG9ucz1mdW5jdGlvbiAoKXtcclxuICAgICAgICAkKCcuRGFzaGJvYXJkRWRpdGFibGUgYnV0dG9uLmVkaXQnKS5vZmYoJ2NsaWNrJyk7XHJcbiAgICAgICAgJCgnLkRhc2hib2FyZEVkaXRhYmxlIGJ1dHRvbi5lZGl0Jykub24oJ2NsaWNrJyxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgcm9vdC5pbml0RWRpdG9yKCk7XHJcbiAgICAgICAgICAgICQoJy5idG5Hcm91cEVkaXQnKS50b2dnbGVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICQoJy5idG5Hcm91cE1vZGlmeScpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJCgnLkRhc2hib2FyZEVkaXRhYmxlIGJ1dHRvbi5idG5TYXZlJykub2ZmKCdjbGljaycpO1xyXG4gICAgICAgICQoJy5EYXNoYm9hcmRFZGl0YWJsZSBidXR0b24uYnRuU2F2ZScpLm9uKCdjbGljaycsZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIC8qJCgnLmJ0bkdyb3VwRWRpdCcpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgJCgnLmJ0bkdyb3VwTW9kaWZ5JykudG9nZ2xlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICByb290LnNhdmVDdXN0b21Db250ZW50KCk7XHJcbiAgICAgICAgICAgIC8vdGlueW1jZS5hY3RpdmVFZGl0b3IuaXNEaXJ0eSgpIC8vdHJ1ZSB3aGVuIG1vZGlmaWVkXHJcbiAgICAgICAgfSk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgJCgnLkRhc2hib2FyZEVkaXRhYmxlIGJ1dHRvbi5idG5DYW5jZWwnKS5vZmYoJ2NsaWNrJyk7XHJcbiAgICAgICAgJCgnLkRhc2hib2FyZEVkaXRhYmxlIGJ1dHRvbi5idG5DYW5jZWwnKS5vbignY2xpY2snLGZ1bmN0aW9uICgpe1xyXG5cclxuICAgICAgICAgICAgJCgnLmJ0bkdyb3VwRWRpdCcpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgJCgnLmJ0bkdyb3VwTW9kaWZ5JykudG9nZ2xlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICByb290LnJlbW92ZUVkaXRvcigpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNhdmVDdXN0b21Db250ZW50PWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIGxldCBhamF4RGF0YT0gbmV3IEZvcm1EYXRhKCQoJy5kYXNoYm9hcmRGb3JtJylbMF0pO1xyXG4gICAgICAgIGFqYXhEYXRhLmFwcGVuZCgnc3RvcmVkX2RhdGEnLHRpbnltY2UuYWN0aXZlRWRpdG9yLmdldENvbnRlbnQoKSk7XHJcbiAgICAgICAgbGV0IGFqYXhVcmw9T3B0cy5VUkwudXBkYXRlLnJlcGxhY2UoJyVpZCUnLCQoJ2Rpdi5kYXNoYm9hcmRDdXN0b21Db250ZW50JykuZGF0YSgnaWQnKSk7XHJcbiAgICAgICAgYWpheERhdGEuYXBwZW5kKCdfbWV0aG9kJywnUFVUJyk7XHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOmFqYXhVcmwsXHJcbiAgICAgICAgICAgIGRhdGE6YWpheERhdGEsXHJcbiAgICAgICAgICAgIHR5cGU6J1BPU1QnLFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTpmYWxzZSxcclxuICAgICAgICAgICAgcHJvY2Vzc0RhdGE6IGZhbHNlLFxyXG4gICAgICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcIlNpZWtlcmVzIG1lbnTDqXMhXCIsIG1lc3NhZ2U6ICfDmmogdGFydGFsb20gZWxtZW50dmUuJywgc3RhdHVzOiBUT0FTVF9TVEFUVVMuSU5GTywgdGltZW91dDogNTAwMCB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEucmVzcG9uc2VKU09OKTtcclxuICAgICAgICAgICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcihkYXRhLnJlc3BvbnNlSlNPTi5lcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRUaW55bWNlPSBmdW5jdGlvbiAoKXtcclxuICAgICAgICAkLmdldFNjcmlwdCgnaHR0cHM6Ly9jZG4udGlueS5jbG91ZC8xL25vLWFwaS1rZXkvdGlueW1jZS81L3RpbnltY2UubWluLmpzJyxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICByb290LmluaXRFZGl0b3IoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVtb3ZlRWRpdG9yID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICAgICAgICBpZih0eXBlb2YgdGlueW1jZSE9PVwidW5kZWZpbmVkXCIpe1xyXG4gICAgICAgICAgICB0aW55bWNlLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaW5pdEVkaXRvciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcblxyXG4gICAgICAgIGlmKHR5cGVvZiB0aW55bWNlPT09XCJ1bmRlZmluZWRcIil7XHJcbiAgICAgICAgICAgIHJvb3QubG9hZFRpbnltY2UoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGlueW1jZS5pbml0KHtcclxuICAgICAgICAgICAgc2VsZWN0b3I6ICdkaXYuZGFzaGJvYXJkQ3VzdG9tQ29udGVudCcsIC8vIFJlcGxhY2UgdGhpcyBDU1Mgc2VsZWN0b3IgdG8gbWF0Y2ggdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQgZm9yIFRpbnlNQ0VcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICdodV9IVScsXHJcbiAgICAgICAgICAgIHBsdWdpbnM6ICdjb2RlIHRhYmxlIGxpc3RzJyxcclxuICAgICAgICAgICAgdG9vbGJhcjogJyB1bmRvIHJlZG8gfCBmb3JtYXRzZWxlY3R8IGJvbGQgaXRhbGljIHwgYWxpZ25sZWZ0IGFsaWduY2VudGVyIGFsaWducmlnaHQgfCBpbmRlbnQgb3V0ZGVudCB8IGJ1bGxpc3QgbnVtbGlzdCB8IGNvZGUgfCB0YWJsZScsXHJcblxyXG4vKlxyXG4gICAgICAgICAgICB0b29sYmFyOiAnY3VzdG9tSW5zZXJ0QnV0dG9uIHwgdW5kbyByZWRvIHwgZm9ybWF0c2VsZWN0fCBib2xkIGl0YWxpYyB8IGFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0IHwgaW5kZW50IG91dGRlbnQgfCBidWxsaXN0IG51bWxpc3QgfCBjb2RlIHwgdGFibGUnLFxyXG4gICAgICAgICAgICBzZXR1cDogZnVuY3Rpb24gKGVkaXRvcikge1xyXG4gICAgICAgICAgICAgICAgZWRpdG9yLnVpLnJlZ2lzdHJ5LmFkZEJ1dHRvbignY3VzdG9tSW5zZXJ0QnV0dG9uJywge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdNeSBCdXR0b24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiBmdW5jdGlvbiAoXykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IuaW5zZXJ0Q29udGVudCgnJm5ic3A7PHN0cm9uZz5JdFxcJ3MgbXkgYnV0dG9uITwvc3Ryb25nPiZuYnNwOycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19KTtcclxuICAgICAgICAgICAgfVxyXG4qL1xyXG5cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufTtcclxuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxTQUFTLEdBQUMsWUFBWTtFQUN6QixJQUFJQyxJQUFJLEdBQUc7SUFDUEMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsb0JBQW9CLEVBQUMsWUFBWTtJQUNqQ0MsV0FBVyxFQUFDLEtBQUs7SUFD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UUFBUTtNQUNiWSxJQUFJLEVBQUMsTUFBTTtNQUNYQyxXQUFXLEVBQUMsS0FBSztNQUNqQkMsV0FBVyxFQUFFLEtBQUs7TUFDbEJDLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFBLEVBQWEsQ0FFdkIsQ0FBQztNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBV1AsSUFBSSxFQUFFO1FBQ3BCUSxLQUFLLENBQUN0QyxNQUFNLENBQUM7VUFBRXVDLEtBQUssRUFBRSxrQkFBa0I7VUFBRUMsT0FBTyxFQUFFLHVCQUF1QjtVQUFFQyxNQUFNLEVBQUVDLFlBQVksQ0FBQ0MsSUFBSTtVQUFFQyxPQUFPLEVBQUU7UUFBSyxDQUFDLENBQUM7TUFDM0gsQ0FBQztNQUNEQyxLQUFLLEVBQUUsU0FBUEEsS0FBS0EsQ0FBV2YsSUFBSSxFQUFFO1FBQ2xCbEIsT0FBTyxDQUFDQyxHQUFHLENBQUNpQixJQUFJLENBQUNnQixZQUFZLENBQUM7UUFDOUJDLHFCQUFxQixDQUFDakIsSUFBSSxDQUFDZ0IsWUFBWSxDQUFDRCxLQUFLLENBQUM7TUFDbEQ7SUFDSixDQUFDLENBQUM7RUFFTixDQUFDO0VBRUQsSUFBSSxDQUFDRyxXQUFXLEdBQUUsWUFBVztJQUN6QnhDLENBQUMsQ0FBQ3lDLFNBQVMsQ0FBQyw4REFBOEQsRUFBQyxZQUFXO01BQ25GN0MsSUFBSSxDQUFDYSxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUM7RUFDTixDQUFDO0VBQ0QsSUFBSSxDQUFDRyxZQUFZLEdBQUcsVUFBVWQsT0FBTyxFQUFFO0lBQ25DLElBQUcsT0FBT2tCLE9BQU8sS0FBRyxXQUFXLEVBQUM7TUFDNUJBLE9BQU8sQ0FBQzBCLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCO0VBQ0osQ0FBQztFQUNELElBQUksQ0FBQ2pDLFVBQVUsR0FBRyxVQUFVWCxPQUFPLEVBQUU7SUFFakMsSUFBRyxPQUFPa0IsT0FBTyxLQUFHLFdBQVcsRUFBQztNQUM1QnBCLElBQUksQ0FBQzRDLFdBQVcsQ0FBQyxDQUFDO01BQ2xCO0lBQ0o7SUFFQXhCLE9BQU8sQ0FBQ2IsSUFBSSxDQUFDO01BQ1R3QyxRQUFRLEVBQUUsNEJBQTRCO01BQUU7TUFDeENDLFFBQVEsRUFBRSxPQUFPO01BQ2pCQyxPQUFPLEVBQUUsa0JBQWtCO01BQzNCQyxPQUFPLEVBQUU7O01BRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBRVEsQ0FBQyxDQUFDO0VBQ04sQ0FBQztBQUNMLENBQUMiLCJpZ25vcmVMaXN0IjpbXSwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL2FkbWluL2Rhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/admin/dashboard.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/admin/priceList.js" +/*!*****************************************!*\ + !*** ./resources/js/admin/priceList.js ***! + \*****************************************/ +() { + +eval("{window.PriceListAdmin = function (options, ProfitCenterItem) {\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n var Opts = {\n active: false,\n containerCssSelector: \".priceListForm\",\n testFileMod: false,\n URL: {\n create: '',\n store: '',\n getDataTableContent: '',\n destroy: ''\n }\n };\n var PriceList = {};\n var root = this;\n var dataTableCSSSelector = null;\n\n /*\r\n * Constructor\r\n */\n this.construct = function (options) {\n debug('PriceListAdmin constructor called');\n $.extend(Opts, options);\n };\n var errorRowPointer = null;\n var errorRowCount = 0;\n this.initErrorNavigationButton = function () {\n errorRowCount = $('.statusError').length;\n errorRowPointer = null;\n $('.priceListForm .buttonPrevError .buttonNextError').off('click');\n $('.priceListForm .buttonPrevError').on('click', function () {\n if (errorRowPointer == null) {\n errorRowPointer = 0;\n } else {\n if (errorRowPointer > 0) {\n errorRowPointer--;\n } else {\n return;\n }\n }\n $('.statusError').removeClass('highlightedErrorRow');\n $('.priceListTableWrapper').scrollTop($($('.statusError')[errorRowPointer]).position().top);\n $($('.statusError')[errorRowPointer]).addClass('highlightedErrorRow');\n });\n $('.priceListForm .buttonNextError').off('click');\n $('.priceListForm .buttonNextError').on('click', function () {\n if (errorRowPointer == null) {\n errorRowPointer = 0;\n } else {\n if (errorRowPointer < errorRowCount - 1) {\n errorRowPointer++;\n } else {\n return;\n }\n }\n $('.statusError').removeClass('highlightedErrorRow');\n $('.priceListTableWrapper').scrollTop($($('.statusError')[errorRowPointer]).position().top);\n $($('.statusError')[errorRowPointer]).addClass('highlightedErrorRow');\n });\n };\n this.selectedUploadFileToggle = function (fileInput) {\n /*\r\n console.log(fileInput.attr('name'));\r\n console.log(fileInput[0].files[0]);\r\n console.log(fileInput[0].files[0].name);\r\n */\n if (fileInput) {\n $('.containerFileUpload').addClass('d-none');\n if (fileInput[0].files[0]) {\n $('.containerUploadedFileName').text(fileInput[0].files[0].name);\n }\n $('.containerFileUploadStarted').removeClass('d-none');\n $('.containerUploadedSpinner').removeClass('d-none');\n } else {\n $('.containerUploadedFileName').text('');\n $('.containerFileUploadStarted').addClass('d-none');\n $('.uploadStatusRow').addClass('d-none');\n $('.priceListTable > tbody').empty();\n $('.containerFileUpload').removeClass('d-none');\n }\n };\n this.clickNewPriceListCallBack = function () {\n root.initViewDetails();\n };\n this.clickNewPriceList = function () {\n APP.loadMainContent(Opts.URL.create, root.clickNewPriceListCallBack);\n };\n this.datatableRowActionButtonClick = function (event) {\n var node = $(event[0].currentTarget);\n var row = $(dataTableCSSSelector).DataTable().row(node.parents('tr'));\n var rowData = row.data();\n //_token\n var ajaxData = {};\n var ajaxUrl = Opts.URL.destroy.replace('%id%', rowData.id);\n ajaxData._token = $('input[name=_token]').val();\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n method: \"DELETE\",\n success: function success(data) {\n if (data.success == true) {\n row.remove().draw();\n }\n }\n });\n /*\r\n */\n };\n this.initViewList = function (options) {\n debug('listview inicialization');\n dataTableCSSSelector = Opts.containerCssSelector + ' .dataTable'; //\n\n var colNum = $(dataTableCSSSelector + ' thead th').length; //buttons insert position need\n APP.setOpts({\n datatableActionButtonClickCallBack: root.clickNewPriceList,\n datatableRowActionButtonClickCallBack: root.datatableRowActionButtonClick\n });\n APP.dataTablePriceList = $(dataTableCSSSelector).DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": Opts.URL.getDataTableContent,\n \"columnDefs\": [{\n \"targets\": colNum - 1,\n \"render\": function render(data, type, row) {\n var buttons = APP.datatableAddRowTrashButton(0, arguments);\n //buttons+=APP.datatableAddRowEditButton(0,arguments);\n return buttons;\n }\n }\n //{ \"visible\": false, \"targets\": [ 0 ] }\n ],\n buttons: {\n buttons: [\n //'createState', 'savedStates',\n 'excel', 'pdf', {\n extend: 'print',\n //text: 'Print current page',\n 'title': 'title custom text',\n 'messageTop': 'Message On Top',\n autoPrint: true\n }, /**/\n\n {\n text: 'Új felvitele',\n className: 'btn btn-success newItem',\n attr: {\n /*\r\n data:{\r\n a:1,\r\n b:2\r\n }\r\n */\n 'data': 'newItem'\n },\n init: function init(api, node, config) {\n $(node).removeClass('ui-button');\n },\n action: function action(e, dt, node, config) {\n APP.datatableActionButtonClickCallBack(arguments);\n /* console.log(e);\r\n console.log(dt);\r\n console.log(node);\r\n console.log(config);*/\n }\n }]\n },\n \"columns\": [{\n \"data\": \"id\"\n }, {\n \"data\": \"supplierName\"\n }, {\n \"data\": \"available\"\n }, {\n \"data\": \"created_at\"\n }, {\n \"data\": \"note\"\n }, null],\n \"stateSave\": true,\n \"drawCallback\": function drawCallback(settings) {\n APP.datatableAddRowAction(dataTableCSSSelector);\n }\n });\n };\n this.initViewDetails = function (options) {\n $(Opts.containerCssSelector + ' .datePickerClick').off('click');\n $(Opts.containerCssSelector + ' .datePickerClick').on('click', function () {\n $(Opts.containerCssSelector + ' .datePicker').datepicker('show');\n });\n $(Opts.containerCssSelector + ' .datePicker').datepicker({\n dateFormat: 'yy-mm-dd',\n onSelect: function onSelect(dateText) {\n console.log(dateText);\n $('.selectedDateText').text(dateText.replaceAll('-', '.'));\n $('input[name=\"availableDate\"]').val(dateText);\n }\n });\n $(Opts.containerCssSelector + ' .buttonNewUpload').off('click');\n $(Opts.containerCssSelector + ' .buttonNewUpload').on('click', function () {\n root.selectedUploadFileToggle();\n });\n $(Opts.containerCssSelector + ' .buttonUpload').off('click');\n $(Opts.containerCssSelector + ' .buttonUpload').on('click', function () {\n console.log('------------------');\n root.selectedUploadFileToggle();\n var data = new FormData($('.priceListForm')[0]);\n if ($('.supplierSelect').val().length < 1) {\n Toast.create({\n title: \"Hiba!\",\n message: 'Adjon meg beszállítót!',\n status: TOAST_STATUS.DANGER,\n timeout: 10000\n });\n return;\n }\n var fileInput = $('#inputGroupPriceListFile');\n console.log(fileInput[0].files.length < 1);\n\n /* teszteles miatt kikapcsolva a fajl ellenorzes\r\n */\n if (!Opts.testFileMod) {\n console.log(fileInput[0].files.length < 1);\n if (fileInput[0].files.length < 1) {\n Toast.create({\n title: \"Hiba!\",\n message: 'Vállaszon ki fájlt!',\n status: TOAST_STATUS.DANGER,\n timeout: 10000\n });\n return;\n }\n }\n data.append(fileInput.attr('name'), fileInput[0].files[0]);\n root.selectedUploadFileToggle(fileInput);\n $.ajax({\n url: Opts.URL.store,\n data: data,\n type: 'POST',\n contentType: false,\n processData: false,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n console.log(data);\n if (data.success == true) {\n root.processCheckedPriceListResponse(data);\n }\n },\n error: function error(data) {\n console.log(data.responseJSON);\n root.selectedUploadFileToggle();\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n });\n $(Opts.containerCssSelector + ' .buttonFinalization').on('click', function () {\n var data = new FormData($('.priceListForm')[0]);\n var fileInput = $('#inputGroupPriceListFile');\n data.append(fileInput.attr('name'), fileInput[0].files[0]);\n data.append('finalization', 1);\n $.ajax({\n url: Opts.URL.store,\n data: data,\n type: 'POST',\n contentType: false,\n processData: false,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n console.log(data);\n if (data.success) {\n $('.priceListTable tbody tr').remove();\n $('.uploadStatusRow >.canFinish').hide();\n $('.uploadStatusRow').addClass('d-none');\n $('.priceListTable tbody').append(' Árlistát elmentettük.');\n }\n /*\r\n if(data.success==1){\r\n root.processCheckedPriceListResponse(data);\r\n }\r\n */\n },\n error: function error(data) {\n console.log(data.responseJSON);\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n });\n };\n this.init = function (options) {\n console.log('PriceListAdmin init called');\n $.extend(Opts, options);\n console.log('Opt extended');\n console.log(Opts);\n /*\r\n Init list view\r\n */\n console.log('call list view Init');\n root.initViewList(options);\n };\n this.getOpts = function () {\n return Opts;\n };\n var priceListHasError = false;\n this.processCheckedPriceListResponse = function (responseData) {\n priceListHasError = false;\n root.processCheckedPriceListResponseRows(responseData.rows);\n if (priceListHasError) {\n $('.uploadStatusRow >.canFinish').hide();\n $('.uploadStatusRow >.canFinishError').show();\n root.initErrorNavigationButton();\n } else {\n $('.uploadStatusRow >.canFinish').show();\n $('.uploadStatusRow >.canFinishError').hide();\n }\n $('.uploadStatusRow').removeClass('d-none');\n $('.containerUploadedSpinner').addClass('d-none');\n };\n this.processCheckedPriceListResponseRows = function (responseRowsData) {\n console.log('processingRows');\n for (var key in responseRowsData) {\n var rowData = responseRowsData[key];\n var templateData = rowData.originalData;\n templateData.rowNum = rowData.rowNum;\n var template = $('template[data-name=\"priceListTableRow\"]').html();\n var render = Mustache.render(template, templateData);\n $('.priceListTable tbody').append(render);\n $('tr[data-rownum=' + rowData.rowNum + ']').addClass('status' + $.ucFirst(rowData.status));\n root.processResponseRowErrors(rowData.error, rowData.rowNum);\n if (rowData.changed) {\n root.processResponseRowChanged(rowData.changed, rowData.rowNum);\n }\n }\n };\n this.processResponseRowChanged = function (changedArray, rowNum) {\n if (changedArray.length < 1) {\n return;\n }\n console.log(changedArray);\n //fields error resz\n var trNode = $('tr[data-rownum=' + rowNum + ']');\n for (var key in changedArray) {\n var tdNode = trNode.find('td[data-pointer=\"' + key + '\"]');\n tdNode.addClass('bg-primary');\n var changedTxtNode = $(document.createElement(\"span\")).text(changedArray[key].old).addClass('fieldChanged');\n tdNode.append(changedTxtNode);\n }\n };\n this.processResponseRowErrors = function (errorArray, rowNum) {\n if (errorArray.length < 1) {\n return;\n }\n //general error resz\n console.log(errorArray);\n priceListHasError = true;\n\n //fields error resz\n if (typeof errorArray.fields == 'undefined') {\n return;\n }\n var trNode = $('tr[data-rownum=' + rowNum + ']');\n for (var key in errorArray.fields) {\n var tdNode = trNode.find('td[data-pointer=\"' + key + '\"]');\n tdNode.addClass('bg-danger');\n var errorTxtNode = $(document.createElement(\"span\")).text(errorArray.fields[key]).addClass('fieldError');\n tdNode.append(errorTxtNode);\n }\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3aW5kb3ciLCJQcmljZUxpc3RBZG1pbiIsIm9wdGlvbnMiLCJQcm9maXRDZW50ZXJJdGVtIiwiT3B0cyIsImFjdGl2ZSIsImNvbnRhaW5lckNzc1NlbGVjdG9yIiwidGVzdEZpbGVNb2QiLCJVUkwiLCJjcmVhdGUiLCJzdG9yZSIsImdldERhdGFUYWJsZUNvbnRlbnQiLCJkZXN0cm95IiwiUHJpY2VMaXN0Iiwicm9vdCIsImRhdGFUYWJsZUNTU1NlbGVjdG9yIiwiY29uc3RydWN0IiwiZGVidWciLCIkIiwiZXh0ZW5kIiwiZXJyb3JSb3dQb2ludGVyIiwiZXJyb3JSb3dDb3VudCIsImluaXRFcnJvck5hdmlnYXRpb25CdXR0b24iLCJsZW5ndGgiLCJvZmYiLCJvbiIsInJlbW92ZUNsYXNzIiwic2Nyb2xsVG9wIiwicG9zaXRpb24iLCJ0b3AiLCJhZGRDbGFzcyIsInNlbGVjdGVkVXBsb2FkRmlsZVRvZ2dsZSIsImZpbGVJbnB1dCIsImZpbGVzIiwidGV4dCIsIm5hbWUiLCJlbXB0eSIsImNsaWNrTmV3UHJpY2VMaXN0Q2FsbEJhY2siLCJpbml0Vmlld0RldGFpbHMiLCJjbGlja05ld1ByaWNlTGlzdCIsIkFQUCIsImxvYWRNYWluQ29udGVudCIsImRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrIiwiZXZlbnQiLCJub2RlIiwiY3VycmVudFRhcmdldCIsInJvdyIsIkRhdGFUYWJsZSIsInBhcmVudHMiLCJyb3dEYXRhIiwiZGF0YSIsImFqYXhEYXRhIiwiYWpheFVybCIsInJlcGxhY2UiLCJpZCIsIl90b2tlbiIsInZhbCIsImFqYXgiLCJ1cmwiLCJtZXRob2QiLCJzdWNjZXNzIiwicmVtb3ZlIiwiZHJhdyIsImluaXRWaWV3TGlzdCIsImNvbE51bSIsInNldE9wdHMiLCJkYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrIiwiZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayIsImRhdGFUYWJsZVByaWNlTGlzdCIsImxhbmd1YWdlIiwicmVuZGVyIiwidHlwZSIsImJ1dHRvbnMiLCJkYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbiIsImFyZ3VtZW50cyIsImF1dG9QcmludCIsImNsYXNzTmFtZSIsImF0dHIiLCJpbml0IiwiYXBpIiwiY29uZmlnIiwiYWN0aW9uIiwiZSIsImR0IiwiZHJhd0NhbGxiYWNrIiwic2V0dGluZ3MiLCJkYXRhdGFibGVBZGRSb3dBY3Rpb24iLCJkYXRlcGlja2VyIiwiZGF0ZUZvcm1hdCIsIm9uU2VsZWN0IiwiZGF0ZVRleHQiLCJjb25zb2xlIiwibG9nIiwicmVwbGFjZUFsbCIsIkZvcm1EYXRhIiwiVG9hc3QiLCJ0aXRsZSIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJUT0FTVF9TVEFUVVMiLCJEQU5HRVIiLCJ0aW1lb3V0IiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJwcm9jZXNzRGF0YSIsImJlZm9yZVNlbmQiLCJwcm9jZXNzQ2hlY2tlZFByaWNlTGlzdFJlc3BvbnNlIiwiZXJyb3IiLCJyZXNwb25zZUpTT04iLCJhamF4RXJyb3JGaWVsZEhhbmRsZXIiLCJoaWRlIiwiZ2V0T3B0cyIsInByaWNlTGlzdEhhc0Vycm9yIiwicmVzcG9uc2VEYXRhIiwicHJvY2Vzc0NoZWNrZWRQcmljZUxpc3RSZXNwb25zZVJvd3MiLCJyb3dzIiwic2hvdyIsInJlc3BvbnNlUm93c0RhdGEiLCJrZXkiLCJ0ZW1wbGF0ZURhdGEiLCJvcmlnaW5hbERhdGEiLCJyb3dOdW0iLCJ0ZW1wbGF0ZSIsImh0bWwiLCJNdXN0YWNoZSIsInVjRmlyc3QiLCJwcm9jZXNzUmVzcG9uc2VSb3dFcnJvcnMiLCJjaGFuZ2VkIiwicHJvY2Vzc1Jlc3BvbnNlUm93Q2hhbmdlZCIsImNoYW5nZWRBcnJheSIsInRyTm9kZSIsInRkTm9kZSIsImZpbmQiLCJjaGFuZ2VkVHh0Tm9kZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIm9sZCIsImVycm9yQXJyYXkiLCJmaWVsZHMiLCJlcnJvclR4dE5vZGUiXSwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FkbWluL3ByaWNlTGlzdC5qcz9jYWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5QcmljZUxpc3RBZG1pbj1mdW5jdGlvbiAob3B0aW9ucyxQcm9maXRDZW50ZXJJdGVtKSB7XHJcbiAgICAvKlxyXG4gICAgICogVmFyaWFibGVzIGFjY2Vzc2libGVcclxuICAgICAqIGluIHRoZSBjbGFzc1xyXG4gICAgICovXHJcbiAgICBsZXQgT3B0cyA9IHtcclxuICAgICAgICBhY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIGNvbnRhaW5lckNzc1NlbGVjdG9yOlwiLnByaWNlTGlzdEZvcm1cIixcclxuICAgICAgICB0ZXN0RmlsZU1vZDpmYWxzZSxcclxuICAgICAgICBVUkw6e1xyXG4gICAgICAgICAgICBjcmVhdGU6JycsXHJcbiAgICAgICAgICAgIHN0b3JlOicnLFxyXG4gICAgICAgICAgICBnZXREYXRhVGFibGVDb250ZW50OicnLFxyXG4gICAgICAgICAgICBkZXN0cm95OicnLFxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBsZXQgUHJpY2VMaXN0ID0ge307XHJcbiAgICBsZXQgcm9vdCA9IHRoaXM7XHJcbiAgICBsZXQgZGF0YVRhYmxlQ1NTU2VsZWN0b3I9bnVsbDtcclxuXHJcblxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICovXHJcbiAgICB0aGlzLmNvbnN0cnVjdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgICAgICAgZGVidWcoJ1ByaWNlTGlzdEFkbWluIGNvbnN0cnVjdG9yIGNhbGxlZCcpO1xyXG4gICAgICAgICQuZXh0ZW5kKE9wdHMsIG9wdGlvbnMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgZXJyb3JSb3dQb2ludGVyPW51bGw7XHJcbiAgICBsZXQgZXJyb3JSb3dDb3VudD0wO1xyXG5cclxuICAgIHRoaXMuaW5pdEVycm9yTmF2aWdhdGlvbkJ1dHRvbj1mdW5jdGlvbiAoKXtcclxuXHJcbiAgICAgICAgZXJyb3JSb3dDb3VudD0kKCcuc3RhdHVzRXJyb3InKS5sZW5ndGg7XHJcbiAgICAgICAgZXJyb3JSb3dQb2ludGVyPW51bGw7XHJcbiAgICAgICAgJCgnLnByaWNlTGlzdEZvcm0gLmJ1dHRvblByZXZFcnJvciAuYnV0dG9uTmV4dEVycm9yJykub2ZmKCdjbGljaycpXHJcbiAgICAgICAgJCgnLnByaWNlTGlzdEZvcm0gLmJ1dHRvblByZXZFcnJvcicpLm9uKCdjbGljaycsZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIGlmKGVycm9yUm93UG9pbnRlcj09bnVsbCl7XHJcbiAgICAgICAgICAgICAgICBlcnJvclJvd1BvaW50ZXI9MDtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJvclJvd1BvaW50ZXI+MCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JSb3dQb2ludGVyLS07XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtyZXR1cm47fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQoJy5zdGF0dXNFcnJvcicpLnJlbW92ZUNsYXNzKCdoaWdobGlnaHRlZEVycm9yUm93Jyk7XHJcbiAgICAgICAgICAgICQoJy5wcmljZUxpc3RUYWJsZVdyYXBwZXInKS5zY3JvbGxUb3AoJCgkKCcuc3RhdHVzRXJyb3InKVtlcnJvclJvd1BvaW50ZXJdKS5wb3NpdGlvbigpLnRvcCk7XHJcbiAgICAgICAgICAgICQoJCgnLnN0YXR1c0Vycm9yJylbZXJyb3JSb3dQb2ludGVyXSkuYWRkQ2xhc3MoJ2hpZ2hsaWdodGVkRXJyb3JSb3cnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAkKCcucHJpY2VMaXN0Rm9ybSAuYnV0dG9uTmV4dEVycm9yJykub2ZmKCdjbGljaycpO1xyXG4gICAgICAgICQoJy5wcmljZUxpc3RGb3JtIC5idXR0b25OZXh0RXJyb3InKS5vbignY2xpY2snLGZ1bmN0aW9uICgpe1xyXG4gICAgICAgICAgICBpZihlcnJvclJvd1BvaW50ZXI9PW51bGwpe1xyXG4gICAgICAgICAgICAgICAgZXJyb3JSb3dQb2ludGVyPTA7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyb3JSb3dQb2ludGVyPGVycm9yUm93Q291bnQtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JSb3dQb2ludGVyKys7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtyZXR1cm47fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQoJy5zdGF0dXNFcnJvcicpLnJlbW92ZUNsYXNzKCdoaWdobGlnaHRlZEVycm9yUm93Jyk7XHJcbiAgICAgICAgICAgICQoJy5wcmljZUxpc3RUYWJsZVdyYXBwZXInKS5zY3JvbGxUb3AoJCgkKCcuc3RhdHVzRXJyb3InKVtlcnJvclJvd1BvaW50ZXJdKS5wb3NpdGlvbigpLnRvcCk7XHJcbiAgICAgICAgICAgICQoJCgnLnN0YXR1c0Vycm9yJylbZXJyb3JSb3dQb2ludGVyXSkuYWRkQ2xhc3MoJ2hpZ2hsaWdodGVkRXJyb3JSb3cnKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFVwbG9hZEZpbGVUb2dnbGU9ZnVuY3Rpb24gKGZpbGVJbnB1dCl7XHJcbiAgICAgICAgLypcclxuICAgICAgICBjb25zb2xlLmxvZyhmaWxlSW5wdXQuYXR0cignbmFtZScpKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhmaWxlSW5wdXRbMF0uZmlsZXNbMF0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGZpbGVJbnB1dFswXS5maWxlc1swXS5uYW1lKTtcclxuICAgICAgICAqL1xyXG4gICAgICAgIGlmKGZpbGVJbnB1dCl7XHJcbiAgICAgICAgICAgICQoJy5jb250YWluZXJGaWxlVXBsb2FkJykuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICBpZihmaWxlSW5wdXRbMF0uZmlsZXNbMF0pe1xyXG4gICAgICAgICAgICAgICAgJCgnLmNvbnRhaW5lclVwbG9hZGVkRmlsZU5hbWUnKS50ZXh0KGZpbGVJbnB1dFswXS5maWxlc1swXS5uYW1lKTtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJCgnLmNvbnRhaW5lckZpbGVVcGxvYWRTdGFydGVkJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAkKCcuY29udGFpbmVyVXBsb2FkZWRTcGlubmVyJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAkKCcuY29udGFpbmVyVXBsb2FkZWRGaWxlTmFtZScpLnRleHQoJycpO1xyXG4gICAgICAgICAgICAkKCcuY29udGFpbmVyRmlsZVVwbG9hZFN0YXJ0ZWQnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICQoJy51cGxvYWRTdGF0dXNSb3cnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcblxyXG4gICAgICAgICAgICAkKCcucHJpY2VMaXN0VGFibGUgPiB0Ym9keScpLmVtcHR5KCk7XHJcbiAgICAgICAgICAgICQoJy5jb250YWluZXJGaWxlVXBsb2FkJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsaWNrTmV3UHJpY2VMaXN0Q2FsbEJhY2s9ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJvb3QuaW5pdFZpZXdEZXRhaWxzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsaWNrTmV3UHJpY2VMaXN0PWZ1bmN0aW9uKCl7XHJcbiAgICAgICAgQVBQLmxvYWRNYWluQ29udGVudChPcHRzLlVSTC5jcmVhdGUscm9vdC5jbGlja05ld1ByaWNlTGlzdENhbGxCYWNrKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2s9ZnVuY3Rpb24oZXZlbnQpe1xyXG4gICAgICAgIGxldCBub2RlPSQoZXZlbnRbMF0uY3VycmVudFRhcmdldCk7XHJcbiAgICAgICAgbGV0IHJvdz0kKGRhdGFUYWJsZUNTU1NlbGVjdG9yKS5EYXRhVGFibGUoKS5yb3cobm9kZS5wYXJlbnRzKCd0cicpKTtcclxuICAgICAgICBsZXQgcm93RGF0YT1yb3cuZGF0YSgpO1xyXG4gICAgICAgIC8vX3Rva2VuXHJcbiAgICAgICAgbGV0IGFqYXhEYXRhPXt9O1xyXG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmRlc3Ryb3kucmVwbGFjZSgnJWlkJScscm93RGF0YS5pZCk7XHJcbiAgICAgICAgYWpheERhdGEuX3Rva2VuPSQoJ2lucHV0W25hbWU9X3Rva2VuXScpLnZhbCgpO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDphamF4VXJsLFxyXG4gICAgICAgICAgICBkYXRhOmFqYXhEYXRhLFxyXG4gICAgICAgICAgICBtZXRob2Q6XCJERUxFVEVcIixcclxuICAgICAgICAgICAgc3VjY2VzczpmdW5jdGlvbiAoZGF0YSl7XHJcbiAgICAgICAgICAgICAgICBpZihkYXRhLnN1Y2Nlc3M9PXRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJvdy5yZW1vdmUoKS5kcmF3KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgIH0pO1xyXG4vKlxyXG4qL1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0Vmlld0xpc3QgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gICAgICAgIGRlYnVnKCdsaXN0dmlldyBpbmljaWFsaXphdGlvbicpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNTU1NlbGVjdG9yPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuZGF0YVRhYmxlJzsgLy9cclxuXHJcbiAgICAgICAgbGV0IGNvbE51bT0kKGRhdGFUYWJsZUNTU1NlbGVjdG9yKycgdGhlYWQgdGgnKS5sZW5ndGg7IC8vYnV0dG9ucyBpbnNlcnQgcG9zaXRpb24gbmVlZFxyXG4gICAgICAgIEFQUC5zZXRPcHRzKHtcclxuICAgICAgICAgICAgZGF0YXRhYmxlQWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjazpyb290LmNsaWNrTmV3UHJpY2VMaXN0LFxyXG4gICAgICAgICAgICBkYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrOnJvb3QuZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2ssXHJcblxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgICBBUFAuZGF0YVRhYmxlUHJpY2VMaXN0PSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgge1xyXG4gICAgICAgICAgICBsYW5ndWFnZToge1xyXG4gICAgICAgICAgICAgICAgdXJsOiAnLy9jZG4uZGF0YXRhYmxlcy5uZXQvcGx1Zy1pbnMvMS4xMC4yNC9pMThuL0h1bmdhcmlhbi5qc29uJ1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy9cImFqYXhcIjogXCJ7e2Fzc2V0KCdleGFwbWxlMi5qc29uJyl9fVwiLFxyXG4gICAgICAgICAgICBcImFqYXhcIjogT3B0cy5VUkwuZ2V0RGF0YVRhYmxlQ29udGVudCxcclxuICAgICAgICAgICAgXCJjb2x1bW5EZWZzXCI6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBcInRhcmdldHNcIjogY29sTnVtLTEsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJyZW5kZXJcIjogZnVuY3Rpb24gKCBkYXRhLCB0eXBlLCByb3cgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBidXR0b25zPUFQUC5kYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbigwLGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vYnV0dG9ucys9QVBQLmRhdGF0YWJsZUFkZFJvd0VkaXRCdXR0b24oMCxhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnV0dG9ucztcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIC8veyBcInZpc2libGVcIjogZmFsc2UsICBcInRhcmdldHNcIjogWyAwIF0gfVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBidXR0b25zOntcclxuXHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgLy8nY3JlYXRlU3RhdGUnLCAnc2F2ZWRTdGF0ZXMnLFxyXG4gICAgICAgICAgICAgICAgICAgICdleGNlbCcsJ3BkZicsXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRlbmQ6ICdwcmludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGV4dDogJ1ByaW50IGN1cnJlbnQgcGFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZSc6ICd0aXRsZSBjdXN0b20gdGV4dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlVG9wJzogJ01lc3NhZ2UgT24gVG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b1ByaW50OiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAvKiovXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ8OaaiBmZWx2aXRlbGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLXN1Y2Nlc3MgbmV3SXRlbScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHI6e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYToxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOjJcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzonbmV3SXRlbSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdDogZnVuY3Rpb24oYXBpLCBub2RlLCBjb25maWcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQobm9kZSkucmVtb3ZlQ2xhc3MoJ3VpLWJ1dHRvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24gKCBlLCBkdCwgbm9kZSwgY29uZmlnICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBQLmRhdGF0YWJsZUFjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2soYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGR0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb25maWcpOyovXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBcImNvbHVtbnNcIjogW1xyXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJpZFwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcInN1cHBsaWVyTmFtZVwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImF2YWlsYWJsZVwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImNyZWF0ZWRfYXRcIiB9LFxyXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJub3RlXCIgfSxcclxuICAgICAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIFwic3RhdGVTYXZlXCI6IHRydWUsXHJcbiAgICAgICAgICAgIFwiZHJhd0NhbGxiYWNrXCI6IGZ1bmN0aW9uKCBzZXR0aW5ncyApIHtcclxuICAgICAgICAgICAgICAgIEFQUC5kYXRhdGFibGVBZGRSb3dBY3Rpb24oZGF0YVRhYmxlQ1NTU2VsZWN0b3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSApO1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0Vmlld0RldGFpbHMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gICAgICAgICQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5kYXRlUGlja2VyQ2xpY2snKS5vZmYoJ2NsaWNrJyk7XHJcbiAgICAgICAgJChPcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLmRhdGVQaWNrZXJDbGljaycpLm9uKCdjbGljaycsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgJChPcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLmRhdGVQaWNrZXInKS5kYXRlcGlja2VyKCdzaG93Jyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5kYXRlUGlja2VyJykuZGF0ZXBpY2tlcih7XHJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6ICd5eS1tbS1kZCcsXHJcbiAgICAgICAgICAgIG9uU2VsZWN0OmZ1bmN0aW9uIChkYXRlVGV4dCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAkKCcuc2VsZWN0ZWREYXRlVGV4dCcpLnRleHQoZGF0ZVRleHQucmVwbGFjZUFsbCgnLScsJy4nKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT1cImF2YWlsYWJsZURhdGVcIl0nKS52YWwoZGF0ZVRleHQpO1xyXG5cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5idXR0b25OZXdVcGxvYWQnKS5vZmYoJ2NsaWNrJyk7XHJcbiAgICAgICAgJChPcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLmJ1dHRvbk5ld1VwbG9hZCcpLm9uKCdjbGljaycsZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIHJvb3Quc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChPcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLmJ1dHRvblVwbG9hZCcpLm9mZignY2xpY2snKTtcclxuICAgICAgICAkKE9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuYnV0dG9uVXBsb2FkJykub24oJ2NsaWNrJyxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJy0tLS0tLS0tLS0tLS0tLS0tLScpO1xyXG4gICAgICAgICAgICByb290LnNlbGVjdGVkVXBsb2FkRmlsZVRvZ2dsZSgpO1xyXG5cclxuICAgICAgICAgICAgbGV0IGRhdGE9IG5ldyBGb3JtRGF0YSgkKCcucHJpY2VMaXN0Rm9ybScpWzBdKTtcclxuICAgICAgICAgICAgaWYoJCgnLnN1cHBsaWVyU2VsZWN0JykudmFsKCkubGVuZ3RoPDEpe1xyXG4gICAgICAgICAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiSGliYSFcIiwgbWVzc2FnZTogJ0Fkam9uIG1lZyBiZXN6w6FsbMOtdMOzdCEnLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5EQU5HRVIsIHRpbWVvdXQ6IDEwMDAwIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBmaWxlSW5wdXQ9JCgnI2lucHV0R3JvdXBQcmljZUxpc3RGaWxlJyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGZpbGVJbnB1dFswXS5maWxlcy5sZW5ndGg8MSk7XHJcblxyXG4gICAgICAgICAgICAvKiB0ZXN6dGVsZXMgbWlhdHQga2lrYXBjc29sdmEgYSBmYWpsIGVsbGVub3J6ZXNcclxuICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYoIU9wdHMudGVzdEZpbGVNb2Qpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsZUlucHV0WzBdLmZpbGVzLmxlbmd0aDwxKTtcclxuICAgICAgICAgICAgICAgIGlmKGZpbGVJbnB1dFswXS5maWxlcy5sZW5ndGg8MSl7XHJcbiAgICAgICAgICAgICAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiSGliYSFcIiwgbWVzc2FnZTogJ1bDoWxsYXN6b24ga2kgZsOhamx0IScsIHN0YXR1czogVE9BU1RfU1RBVFVTLkRBTkdFUiwgdGltZW91dDogMTAwMDAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkYXRhLmFwcGVuZChmaWxlSW5wdXQuYXR0cignbmFtZScpLGZpbGVJbnB1dFswXS5maWxlc1swXSk7XHJcbiAgICAgICAgICAgIHJvb3Quc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlKGZpbGVJbnB1dCk7XHJcblxyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOk9wdHMuVVJMLnN0b3JlLFxyXG4gICAgICAgICAgICAgICAgZGF0YTpkYXRhLFxyXG4gICAgICAgICAgICAgICAgdHlwZTonUE9TVCcsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTpmYWxzZSxcclxuICAgICAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5zdWNjZXNzPT10cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdC5wcm9jZXNzQ2hlY2tlZFByaWNlTGlzdFJlc3BvbnNlKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEucmVzcG9uc2VKU09OKTtcclxuICAgICAgICAgICAgICAgICAgICByb290LnNlbGVjdGVkVXBsb2FkRmlsZVRvZ2dsZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcihkYXRhLnJlc3BvbnNlSlNPTi5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5idXR0b25GaW5hbGl6YXRpb24nKS5vbignY2xpY2snLGZ1bmN0aW9uICgpe1xyXG4gICAgICAgICAgICBsZXQgZGF0YT0gbmV3IEZvcm1EYXRhKCQoJy5wcmljZUxpc3RGb3JtJylbMF0pO1xyXG4gICAgICAgICAgICBsZXQgZmlsZUlucHV0PSQoJyNpbnB1dEdyb3VwUHJpY2VMaXN0RmlsZScpO1xyXG4gICAgICAgICAgICBkYXRhLmFwcGVuZChmaWxlSW5wdXQuYXR0cignbmFtZScpLGZpbGVJbnB1dFswXS5maWxlc1swXSk7XHJcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKCdmaW5hbGl6YXRpb24nLDEpO1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOk9wdHMuVVJMLnN0b3JlLFxyXG4gICAgICAgICAgICAgICAgZGF0YTpkYXRhLFxyXG4gICAgICAgICAgICAgICAgdHlwZTonUE9TVCcsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTpmYWxzZSxcclxuICAgICAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5zdWNjZXNzKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnByaWNlTGlzdFRhYmxlIHRib2R5IHRyJykucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy51cGxvYWRTdGF0dXNSb3cgPi5jYW5GaW5pc2gnKS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy51cGxvYWRTdGF0dXNSb3cnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5wcmljZUxpc3RUYWJsZSB0Ym9keScpLmFwcGVuZCgnPHRyPjx0ZCBjb2xzcGFuPVwiOTlcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsnICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgZm9udC1zaXplOiAyZW07XCI+IMOBcmxpc3TDoXQgZWxtZW50ZXR0w7xrLjwvdGQ+PC90cj4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnN1Y2Nlc3M9PTEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByb290LnByb2Nlc3NDaGVja2VkUHJpY2VMaXN0UmVzcG9uc2UoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5yZXNwb25zZUpTT04pO1xyXG4gICAgICAgICAgICAgICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcihkYXRhLnJlc3BvbnNlSlNPTi5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1ByaWNlTGlzdEFkbWluIGluaXQgY2FsbGVkJyk7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ09wdCBleHRlbmRlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKE9wdHMpO1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgSW5pdCBsaXN0IHZpZXdcclxuICAgICAgICAqL1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWxsIGxpc3QgdmlldyBJbml0Jyk7XHJcbiAgICAgICAgcm9vdC5pbml0Vmlld0xpc3Qob3B0aW9ucyk7XHJcblxyXG5cclxuICAgIH1cclxuICAgIHRoaXMuZ2V0T3B0cz1mdW5jdGlvbiAoKXtcclxuICAgICAgICByZXR1cm4gT3B0cztcclxuICAgIH1cclxuICAgIGxldCBwcmljZUxpc3RIYXNFcnJvcj1mYWxzZTtcclxuXHJcbiAgICB0aGlzLnByb2Nlc3NDaGVja2VkUHJpY2VMaXN0UmVzcG9uc2U9ZnVuY3Rpb24gKHJlc3BvbnNlRGF0YSl7XHJcbiAgICAgICAgcHJpY2VMaXN0SGFzRXJyb3I9ZmFsc2U7XHJcbiAgICAgICAgcm9vdC5wcm9jZXNzQ2hlY2tlZFByaWNlTGlzdFJlc3BvbnNlUm93cyhyZXNwb25zZURhdGEucm93cyk7XHJcbiAgICAgICAgaWYocHJpY2VMaXN0SGFzRXJyb3Ipe1xyXG4gICAgICAgICAgICAkKCcudXBsb2FkU3RhdHVzUm93ID4uY2FuRmluaXNoJykuaGlkZSgpO1xyXG4gICAgICAgICAgICAkKCcudXBsb2FkU3RhdHVzUm93ID4uY2FuRmluaXNoRXJyb3InKS5zaG93KCk7XHJcbiAgICAgICAgICAgIHJvb3QuaW5pdEVycm9yTmF2aWdhdGlvbkJ1dHRvbigpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAkKCcudXBsb2FkU3RhdHVzUm93ID4uY2FuRmluaXNoJykuc2hvdygpO1xyXG4gICAgICAgICAgICAkKCcudXBsb2FkU3RhdHVzUm93ID4uY2FuRmluaXNoRXJyb3InKS5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoJy51cGxvYWRTdGF0dXNSb3cnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgJCgnLmNvbnRhaW5lclVwbG9hZGVkU3Bpbm5lcicpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByb2Nlc3NDaGVja2VkUHJpY2VMaXN0UmVzcG9uc2VSb3dzPWZ1bmN0aW9uIChyZXNwb25zZVJvd3NEYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZygncHJvY2Vzc2luZ1Jvd3MnKTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcmVzcG9uc2VSb3dzRGF0YSkge1xyXG4gICAgICAgICAgICBsZXQgcm93RGF0YT1yZXNwb25zZVJvd3NEYXRhW2tleV07XHJcbiAgICAgICAgICAgIGxldCB0ZW1wbGF0ZURhdGE9cm93RGF0YS5vcmlnaW5hbERhdGE7XHJcbiAgICAgICAgICAgIHRlbXBsYXRlRGF0YS5yb3dOdW09cm93RGF0YS5yb3dOdW07XHJcbiAgICAgICAgICAgIGxldCB0ZW1wbGF0ZT0kKCd0ZW1wbGF0ZVtkYXRhLW5hbWU9XCJwcmljZUxpc3RUYWJsZVJvd1wiXScpLmh0bWwoKVxyXG4gICAgICAgICAgICBsZXQgcmVuZGVyPU11c3RhY2hlLnJlbmRlcih0ZW1wbGF0ZSx0ZW1wbGF0ZURhdGEpO1xyXG4gICAgICAgICAgICAkKCcucHJpY2VMaXN0VGFibGUgdGJvZHknKS5hcHBlbmQocmVuZGVyKTtcclxuICAgICAgICAgICAgJCgndHJbZGF0YS1yb3dudW09Jytyb3dEYXRhLnJvd051bSsnXScpLmFkZENsYXNzKCdzdGF0dXMnKyQudWNGaXJzdChyb3dEYXRhLnN0YXR1cykpO1xyXG4gICAgICAgICAgICByb290LnByb2Nlc3NSZXNwb25zZVJvd0Vycm9ycyhyb3dEYXRhLmVycm9yLHJvd0RhdGEucm93TnVtKTtcclxuICAgICAgICAgICAgaWYocm93RGF0YS5jaGFuZ2VkKXtcclxuICAgICAgICAgICAgICAgIHJvb3QucHJvY2Vzc1Jlc3BvbnNlUm93Q2hhbmdlZChyb3dEYXRhLmNoYW5nZWQscm93RGF0YS5yb3dOdW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9jZXNzUmVzcG9uc2VSb3dDaGFuZ2VkPWZ1bmN0aW9uIChjaGFuZ2VkQXJyYXkscm93TnVtKXtcclxuICAgICAgICBpZihjaGFuZ2VkQXJyYXkubGVuZ3RoPDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYW5nZWRBcnJheSk7XHJcbiAgICAgICAgLy9maWVsZHMgZXJyb3IgcmVzelxyXG4gICAgICAgIGxldCB0ck5vZGU9JCgndHJbZGF0YS1yb3dudW09Jytyb3dOdW0rJ10nKTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gY2hhbmdlZEFycmF5KSB7XHJcbiAgICAgICAgICAgIGxldCB0ZE5vZGU9dHJOb2RlLmZpbmQoJ3RkW2RhdGEtcG9pbnRlcj1cIicra2V5KydcIl0nKTtcclxuICAgICAgICAgICAgdGROb2RlLmFkZENsYXNzKCdiZy1wcmltYXJ5Jyk7XHJcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkVHh0Tm9kZT0kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpKS50ZXh0KGNoYW5nZWRBcnJheVtrZXldLm9sZCkuYWRkQ2xhc3MoJ2ZpZWxkQ2hhbmdlZCcpO1xyXG4gICAgICAgICAgICB0ZE5vZGUuYXBwZW5kKGNoYW5nZWRUeHROb2RlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9jZXNzUmVzcG9uc2VSb3dFcnJvcnM9ZnVuY3Rpb24gKGVycm9yQXJyYXkscm93TnVtKXtcclxuICAgICAgICBpZihlcnJvckFycmF5Lmxlbmd0aDwxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL2dlbmVyYWwgZXJyb3IgcmVzelxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yQXJyYXkpO1xyXG4gICAgICAgIHByaWNlTGlzdEhhc0Vycm9yID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy9maWVsZHMgZXJyb3IgcmVzelxyXG4gICAgICAgIGlmKHR5cGVvZiBlcnJvckFycmF5LmZpZWxkcyA9PSd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdHJOb2RlPSQoJ3RyW2RhdGEtcm93bnVtPScrcm93TnVtKyddJyk7XHJcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGVycm9yQXJyYXkuZmllbGRzKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZE5vZGU9dHJOb2RlLmZpbmQoJ3RkW2RhdGEtcG9pbnRlcj1cIicra2V5KydcIl0nKTtcclxuICAgICAgICAgICAgdGROb2RlLmFkZENsYXNzKCdiZy1kYW5nZXInKTtcclxuICAgICAgICAgICAgbGV0IGVycm9yVHh0Tm9kZT0kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpKS50ZXh0KGVycm9yQXJyYXkuZmllbGRzW2tleV0pLmFkZENsYXNzKCdmaWVsZEVycm9yJyk7XHJcbiAgICAgICAgICAgIHRkTm9kZS5hcHBlbmQoZXJyb3JUeHROb2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsY0FBYyxHQUFDLFVBQVVDLE9BQU8sRUFBQ0MsZ0JBQWdCLEVBQUU7RUFDdEQ7QUFDSjtBQUNBO0FBQ0E7RUFDSSxJQUFJQyxJQUFJLEdBQUc7SUFDUEMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsb0JBQW9CLEVBQUMsZ0JBQWdCO0lBQ3JDQyxXQUFXLEVBQUMsS0FBSztJQUNqQkMsR0FBRyxFQUFDO01BQ0FDLE1BQU0sRUFBQyxFQUFFO01BQ1RDLEtBQUssRUFBQyxFQUFFO01BQ1JDLG1CQUFtQixFQUFDLEVBQUU7TUFDdEJDLE9BQU8sRUFBQztJQUNaO0VBQ0osQ0FBQztFQUNELElBQUlDLFNBQVMsR0FBRyxDQUFDLENBQUM7RUFDbEIsSUFBSUMsSUFBSSxHQUFHLElBQUk7RUFDZixJQUFJQyxvQkFBb0IsR0FBQyxJQUFJOztFQUk3QjtBQUNKO0FBQ0E7RUFDSSxJQUFJLENBQUNDLFNBQVMsR0FBRyxVQUFVZCxPQUFPLEVBQUU7SUFDaENlLEtBQUssQ0FBQyxt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\n//# sourceURL=webpack-internal:///./resources/js/admin/priceList.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/admin/priceListProfitCenter.js" +/*!*****************************************************!*\ + !*** ./resources/js/admin/priceListProfitCenter.js ***! + \*****************************************************/ +() { + +eval("{window.PriceListProfitCenterAdmin = function (options) {\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n var Opts = {\n token: null,\n containerCssSelector: '.containerPriceListProfitCenter',\n testMode: false,\n URL: {\n getDataTableContent: '',\n getProductGroupHTML: '',\n index: '',\n show: '',\n edit: '',\n create: '',\n store: '',\n update: '',\n destroy: ''\n },\n dataTable: {\n orderDirective: [1, 'asc']\n },\n onAfterInitViewDetails: function onAfterInitViewDetails() {}\n };\n var root = this;\n /*\r\n * Constructor\r\n */\n this.construct = function (options, SupplierItem) {\n console.log('PriceListProfitCenterAdmin constructor called');\n $.extend(Opts, options);\n };\n this.getOpts = function () {\n return Opts;\n };\n var changeParameter = {\n supplier: '',\n profitCenter: '',\n deliveryDate: ''\n /*\r\n supplier:26,\r\n profitCenter:49,\r\n deliveryDate:'2023-09-10',\r\n */\n };\n this.checkRefreshPossible = function () {\n console.log('check need parameter');\n var needRefresh = true;\n $.each(changeParameter, function (name, data) {\n if (data === '') {\n needRefresh = false;\n }\n });\n if (needRefresh) {\n root.refreshDatatable();\n root.refreshProductGroup();\n root.setDatatableHeaderText('');\n }\n };\n this.setDatatableHeaderText = function (text) {\n $('.tableHeaderText').text(text);\n };\n this.getTreePathName = function (node) {\n var res = '';\n var items = $(node).parents('li').toArray();\n items.shift();\n items.reverse();\n for (var item in items) {\n if ($(items[item]).children('a.categoryItem').length > 0) {\n res += $(items[item]).children('a.categoryItem').text() + '/';\n }\n }\n res += $(node).text();\n return res;\n };\n this.bindProductGroupItem = function () {\n $('.sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable').off('click');\n $('.sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable').on('click', function () {\n var groupId = $(this).data('id');\n selectedProductGroup = groupId;\n root.setDatatableHeaderText(root.getTreePathName(this));\n /*\r\n console.log(groupId);\r\n console.log(root.getTreePathName(this));\r\n */\n root.refreshDatatable();\n });\n };\n this.refreshProductGroup = function () {\n var ajaxData = {\n 'supplierId': changeParameter.supplier,\n 'deliveryDate': changeParameter.deliveryDate\n };\n var ajaxUrl = Opts.URL.getProductGroupHTML;\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n type: 'GET',\n contentType: false,\n processData: true,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n $('.sidebar-menu .productGroup').find('ul').html(data);\n root.bindProductGroupItem();\n },\n error: function error(data) {\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n };\n this.refreshDatatable = function () {\n $('.dataTableOrderProductSelect').DataTable().ajax.reload();\n };\n this.changePriceListProfitCenterParameter = function (e, obj) {\n if (typeof obj == 'undefined') {\n obj = $(this);\n }\n var objName = obj.attr(\"name\");\n if (objName == 'supplier') {\n selectedProductGroup = null;\n }\n var data = '';\n if (obj.get(0).nodeName == 'SELECT') {\n if (obj.select2('data').length > 0) {\n data = obj.select2('data')[0].id;\n }\n ;\n } else {\n data = obj.val();\n }\n if (changeParameter[objName] != data) {\n changeParameter[objName] = data;\n root.checkRefreshPossible();\n }\n };\n this.init = function (options) {\n $.extend(Opts, options);\n var CSSSelectorForm = Opts.containerCssSelector;\n $(CSSSelectorForm + ' .datePickerClick').click(function () {\n $(CSSSelectorForm + ' .datePicker').datepicker('show');\n });\n $('.supplierSelect').on('change', root.changePriceListProfitCenterParameter);\n $('.profitCenterSelect').on('change', root.changePriceListProfitCenterParameter);\n\n //$('input[name=\"deliveryDate\"]').on('change',changePriceListProfitCenterParameter);\n\n $(\".supplierSelect\").select2({\n maximumSelectionLength: 1\n });\n /*\r\n */\n $(\".profitCenterSelect\").select2({\n maximumSelectionLength: 1\n });\n $(CSSSelectorForm + ' .datePicker').datepicker({\n dateFormat: 'yy-mm-dd',\n minDate: new Date(),\n onSelect: function onSelect(dateText, obj) {\n $(CSSSelectorForm + ' .selectedDateText').text(dateText);\n $('.deliveryDatePlace').text(dateText.replaceAll('-', '.') + '.');\n $(CSSSelectorForm + ' input[name=\"deliveryDate\"]').val(dateText);\n root.changePriceListProfitCenterParameter(null, $(obj.input));\n }\n });\n //root.initViewList();\n var table = root.getDatatables('');\n $('.dataTableOrderProductSelect').on('draw.dt', root.productSelectDataTableDrawDT).dataTable();\n /*\r\n /!*\r\n ----------------------------------------------------------\r\n Add event listener for opening and closing details\r\n *!/\r\n $('.dataTableOrderProductSelect tbody').on('click', 'td.details-control', function () {\r\n let tr = $(this).closest('tr');\r\n let row = table.row( tr );\r\n if ( row.child.isShown() ) {\r\n // This row is already open - close it\r\n row.child.hide();\r\n tr.removeClass('shown');\r\n }\r\n else {\r\n // Open this row\r\n row.child( root.productSelectDatatablesRowFormatter(row.data()) ).show();\r\n tr.addClass('shown');\r\n root.bindProductDetailsAction();\r\n }\r\n } );*/\n };\n this.productSelectDataTableDrawDT = function (e) {\n //debug( 'Table draw complete: '+new Date().getTime() );\n\n $('td:contains(\"*\")').html('');\n $('td.details-control').removeClass('details-control');\n };\n var selectedProductGroup = null;\n this.getDatatables = function (orderType) {\n var table = $('.dataTableOrderProductSelect').DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": {\n url: Opts.URL.getDataTableContent,\n data: function data(_data) {\n /*\r\n data.searchStr=dataTableSearchStr;\r\n data.krel=dataTableSearchKrel;\r\n data.groupId=selectedProductGroup;\r\n */\n _data.supplierId = changeParameter.supplier;\n _data.profitCenterId = changeParameter.profitCenter;\n _data.deliveryDate = changeParameter.deliveryDate;\n _data.groupId = selectedProductGroup;\n }\n },\n buttons: {\n buttons: []\n },\n \"columnDefs\": APP.OrderModule.productSelectDataTableColumnDefs(),\n \"columns\": APP.OrderModule.productSelectDataTableColumn(),\n \"order\": [[1, 'asc']]\n });\n return table;\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3aW5kb3ciLCJQcmljZUxpc3RQcm9maXRDZW50ZXJBZG1pbiIsIm9wdGlvbnMiLCJPcHRzIiwidG9rZW4iLCJjb250YWluZXJDc3NTZWxlY3RvciIsInRlc3RNb2RlIiwiVVJMIiwiZ2V0RGF0YVRhYmxlQ29udGVudCIsImdldFByb2R1Y3RHcm91cEhUTUwiLCJpbmRleCIsInNob3ciLCJlZGl0IiwiY3JlYXRlIiwic3RvcmUiLCJ1cGRhdGUiLCJkZXN0cm95IiwiZGF0YVRhYmxlIiwib3JkZXJEaXJlY3RpdmUiLCJvbkFmdGVySW5pdFZpZXdEZXRhaWxzIiwicm9vdCIsImNvbnN0cnVjdCIsIlN1cHBsaWVySXRlbSIsImNvbnNvbGUiLCJsb2ciLCIkIiwiZXh0ZW5kIiwiZ2V0T3B0cyIsImNoYW5nZVBhcmFtZXRlciIsInN1cHBsaWVyIiwicHJvZml0Q2VudGVyIiwiZGVsaXZlcnlEYXRlIiwiY2hlY2tSZWZyZXNoUG9zc2libGUiLCJuZWVkUmVmcmVzaCIsImVhY2giLCJuYW1lIiwiZGF0YSIsInJlZnJlc2hEYXRhdGFibGUiLCJyZWZyZXNoUHJvZHVjdEdyb3VwIiwic2V0RGF0YXRhYmxlSGVhZGVyVGV4dCIsInRleHQiLCJnZXRUcmVlUGF0aE5hbWUiLCJub2RlIiwicmVzIiwiaXRlbXMiLCJwYXJlbnRzIiwidG9BcnJheSIsInNoaWZ0IiwicmV2ZXJzZSIsIml0ZW0iLCJjaGlsZHJlbiIsImxlbmd0aCIsImJpbmRQcm9kdWN0R3JvdXBJdGVtIiwib2ZmIiwib24iLCJncm91cElkIiwic2VsZWN0ZWRQcm9kdWN0R3JvdXAiLCJhamF4RGF0YSIsImFqYXhVcmwiLCJhamF4IiwidXJsIiwidHlwZSIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJiZWZvcmVTZW5kIiwic3VjY2VzcyIsImZpbmQiLCJodG1sIiwiZXJyb3IiLCJhamF4RXJyb3JGaWVsZEhhbmRsZXIiLCJyZXNwb25zZUpTT04iLCJEYXRhVGFibGUiLCJyZWxvYWQiLCJjaGFuZ2VQcmljZUxpc3RQcm9maXRDZW50ZXJQYXJhbWV0ZXIiLCJlIiwib2JqIiwib2JqTmFtZSIsImF0dHIiLCJnZXQiLCJub2RlTmFtZSIsInNlbGVjdDIiLCJpZCIsInZhbCIsImluaXQiLCJDU1NTZWxlY3RvckZvcm0iLCJjbGljayIsImRhdGVwaWNrZXIiLCJtYXhpbXVtU2VsZWN0aW9uTGVuZ3RoIiwiZGF0ZUZvcm1hdCIsIm1pbkRhdGUiLCJEYXRlIiwib25TZWxlY3QiLCJkYXRlVGV4dCIsInJlcGxhY2VBbGwiLCJpbnB1dCIsInRhYmxlIiwiZ2V0RGF0YXRhYmxlcyIsInByb2R1Y3RTZWxlY3REYXRhVGFibGVEcmF3RFQiLCJyZW1vdmVDbGFzcyIsIm9yZGVyVHlwZSIsImxhbmd1YWdlIiwic3VwcGxpZXJJZCIsInByb2ZpdENlbnRlcklkIiwiYnV0dG9ucyIsIkFQUCIsIk9yZGVyTW9kdWxlIiwicHJvZHVjdFNlbGVjdERhdGFUYWJsZUNvbHVtbkRlZnMiLCJwcm9kdWN0U2VsZWN0RGF0YVRhYmxlQ29sdW1uIl0sInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9hZG1pbi9wcmljZUxpc3RQcm9maXRDZW50ZXIuanM/MWNiYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuUHJpY2VMaXN0UHJvZml0Q2VudGVyQWRtaW49ZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICAgIC8qXHJcbiAgICAgKiBWYXJpYWJsZXMgYWNjZXNzaWJsZVxyXG4gICAgICogaW4gdGhlIGNsYXNzXHJcbiAgICAgKi9cclxuICAgIGxldCBPcHRzID0ge1xyXG4gICAgICAgIHRva2VuOiBudWxsLFxyXG4gICAgICAgIGNvbnRhaW5lckNzc1NlbGVjdG9yOiAnLmNvbnRhaW5lclByaWNlTGlzdFByb2ZpdENlbnRlcicsXHJcbiAgICAgICAgdGVzdE1vZGU6IGZhbHNlLFxyXG4gICAgICAgIFVSTDoge1xyXG4gICAgICAgICAgICBnZXREYXRhVGFibGVDb250ZW50OiAnJyxcclxuICAgICAgICAgICAgZ2V0UHJvZHVjdEdyb3VwSFRNTDogJycsXHJcbiAgICAgICAgICAgIGluZGV4OiAnJyxcclxuICAgICAgICAgICAgc2hvdzogJycsXHJcbiAgICAgICAgICAgIGVkaXQ6ICcnLFxyXG4gICAgICAgICAgICBjcmVhdGU6ICcnLFxyXG4gICAgICAgICAgICBzdG9yZTogJycsXHJcbiAgICAgICAgICAgIHVwZGF0ZTogJycsXHJcbiAgICAgICAgICAgIGRlc3Ryb3k6ICcnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YVRhYmxlOiB7XHJcbiAgICAgICAgICAgIG9yZGVyRGlyZWN0aXZlOiBbMSwgJ2FzYyddXHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFmdGVySW5pdFZpZXdEZXRhaWxzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGxldCByb290ID0gdGhpcztcclxuICAgIC8qXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICovXHJcbiAgICB0aGlzLmNvbnN0cnVjdCA9IGZ1bmN0aW9uIChvcHRpb25zLCBTdXBwbGllckl0ZW0pIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnUHJpY2VMaXN0UHJvZml0Q2VudGVyQWRtaW4gY29uc3RydWN0b3IgY2FsbGVkJyk7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRPcHRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBPcHRzO1xyXG4gICAgfVxyXG4gICAgbGV0IGNoYW5nZVBhcmFtZXRlcj17XHJcbiAgICAgICAgc3VwcGxpZXI6JycsXHJcbiAgICAgICAgcHJvZml0Q2VudGVyOicnLFxyXG4gICAgICAgIGRlbGl2ZXJ5RGF0ZTonJyxcclxuICAgICAgICAvKlxyXG4gICAgICAgIHN1cHBsaWVyOjI2LFxyXG4gICAgICAgIHByb2ZpdENlbnRlcjo0OSxcclxuICAgICAgICBkZWxpdmVyeURhdGU6JzIwMjMtMDktMTAnLFxyXG4gICAgICAgICovXHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hlY2tSZWZyZXNoUG9zc2libGU9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNrIG5lZWQgcGFyYW1ldGVyJyk7XHJcbiAgICAgICAgbGV0IG5lZWRSZWZyZXNoPXRydWU7XHJcbiAgICAgICAgJC5lYWNoKGNoYW5nZVBhcmFtZXRlcixmdW5jdGlvbiAobmFtZSxkYXRhKXtcclxuICAgICAgICAgICAgaWYoZGF0YT09PScnKXtcclxuICAgICAgICAgICAgICAgIG5lZWRSZWZyZXNoPWZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYobmVlZFJlZnJlc2gpe1xyXG4gICAgICAgICAgICByb290LnJlZnJlc2hEYXRhdGFibGUoKVxyXG4gICAgICAgICAgICByb290LnJlZnJlc2hQcm9kdWN0R3JvdXAoKTtcclxuICAgICAgICAgICAgcm9vdC5zZXREYXRhdGFibGVIZWFkZXJUZXh0KCcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERhdGF0YWJsZUhlYWRlclRleHQ9ZnVuY3Rpb24odGV4dCl7XHJcbiAgICAgICAgJCgnLnRhYmxlSGVhZGVyVGV4dCcpLnRleHQodGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRUcmVlUGF0aE5hbWU9ZnVuY3Rpb24gKG5vZGUpe1xyXG4gICAgICAgIGxldCByZXM9Jyc7XHJcbiAgICAgICAgbGV0IGl0ZW1zPSQobm9kZSkucGFyZW50cygnbGknKS50b0FycmF5KCk7XHJcbiAgICAgICAgaXRlbXMuc2hpZnQoKTtcclxuICAgICAgICBpdGVtcy5yZXZlcnNlKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIGluIGl0ZW1zKSB7XHJcbiAgICAgICAgICAgIGlmKCQoaXRlbXNbaXRlbV0pLmNoaWxkcmVuKCdhLmNhdGVnb3J5SXRlbScpLmxlbmd0aD4wKXtcclxuICAgICAgICAgICAgICAgIHJlcys9JChpdGVtc1tpdGVtXSkuY2hpbGRyZW4oJ2EuY2F0ZWdvcnlJdGVtJykudGV4dCgpKycvJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcys9JChub2RlKS50ZXh0KCk7XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJpbmRQcm9kdWN0R3JvdXBJdGVtPWZ1bmN0aW9uKCl7XHJcbiAgICAgICAgJCgnLnNpZGViYXItbWVudSAuc2lkZWJhci1kcm9wZG93biAuc2lkZWJhci1zdWJtZW51IGxpIGEuY2F0ZWdvcnlJdGVtLmNsaWNrYWJsZScpLm9mZignY2xpY2snKTtcclxuICAgICAgICAkKCcuc2lkZWJhci1tZW51IC5zaWRlYmFyLWRyb3Bkb3duIC5zaWRlYmFyLXN1Ym1lbnUgbGkgYS5jYXRlZ29yeUl0ZW0uY2xpY2thYmxlJykub24oJ2NsaWNrJyxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdyb3VwSWQ9JCh0aGlzKS5kYXRhKCdpZCcpO1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9kdWN0R3JvdXA9Z3JvdXBJZDtcclxuICAgICAgICAgICAgICAgIHJvb3Quc2V0RGF0YXRhYmxlSGVhZGVyVGV4dChyb290LmdldFRyZWVQYXRoTmFtZSh0aGlzKSk7XHJcbiAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZ3JvdXBJZCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyb290LmdldFRyZWVQYXRoTmFtZSh0aGlzKSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgcm9vdC5yZWZyZXNoRGF0YXRhYmxlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZnJlc2hQcm9kdWN0R3JvdXA9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgbGV0IGFqYXhEYXRhPXtcclxuICAgICAgICAgICAgJ3N1cHBsaWVySWQnOmNoYW5nZVBhcmFtZXRlci5zdXBwbGllcixcclxuICAgICAgICAgICAgJ2RlbGl2ZXJ5RGF0ZSc6Y2hhbmdlUGFyYW1ldGVyLmRlbGl2ZXJ5RGF0ZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYWpheFVybD1PcHRzLlVSTC5nZXRQcm9kdWN0R3JvdXBIVE1MO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDphamF4VXJsLFxyXG4gICAgICAgICAgICBkYXRhOmFqYXhEYXRhLFxyXG4gICAgICAgICAgICB0eXBlOidHRVQnLFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTpmYWxzZSxcclxuICAgICAgICAgICAgcHJvY2Vzc0RhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgJCgnLnNpZGViYXItbWVudSAucHJvZHVjdEdyb3VwJykuZmluZCgndWwnKS5odG1sKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgcm9vdC5iaW5kUHJvZHVjdEdyb3VwSXRlbSgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgYWpheEVycm9yRmllbGRIYW5kbGVyKGRhdGEucmVzcG9uc2VKU09OLmVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5yZWZyZXNoRGF0YXRhYmxlPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgICQoJy5kYXRhVGFibGVPcmRlclByb2R1Y3RTZWxlY3QnKS5EYXRhVGFibGUoKS5hamF4LnJlbG9hZCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmNoYW5nZVByaWNlTGlzdFByb2ZpdENlbnRlclBhcmFtZXRlcj1mdW5jdGlvbihlLG9iail7XHJcbiAgICAgICAgaWYodHlwZW9mIG9iaiA9PSd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgb2JqPSQodGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBvYmpOYW1lPW9iai5hdHRyKFwibmFtZVwiKTtcclxuICAgICAgICBpZihvYmpOYW1lPT0nc3VwcGxpZXInKXtcclxuICAgICAgICAgICAgc2VsZWN0ZWRQcm9kdWN0R3JvdXA9bnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRhdGE9Jyc7XHJcbiAgICAgICAgaWYob2JqLmdldCgwKS5ub2RlTmFtZT09J1NFTEVDVCcpe1xyXG4gICAgICAgICAgICBpZihvYmouc2VsZWN0MignZGF0YScpLmxlbmd0aD4wKXtcclxuICAgICAgICAgICAgICAgIGRhdGE9b2JqLnNlbGVjdDIoJ2RhdGEnKVswXS5pZDtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgZGF0YT1vYmoudmFsKClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2hhbmdlUGFyYW1ldGVyW29iak5hbWVdIT1kYXRhKXtcclxuICAgICAgICAgICAgY2hhbmdlUGFyYW1ldGVyW29iak5hbWVdPWRhdGE7XHJcbiAgICAgICAgICAgIHJvb3QuY2hlY2tSZWZyZXNoUG9zc2libGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0PWZ1bmN0aW9uIChvcHRpb25zKXtcclxuICAgICAgICAkLmV4dGVuZChPcHRzLCBvcHRpb25zKTtcclxuICAgICAgICBsZXQgQ1NTU2VsZWN0b3JGb3JtPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3I7XHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuZGF0ZVBpY2tlckNsaWNrJykuY2xpY2soZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuZGF0ZVBpY2tlcicpLmRhdGVwaWNrZXIoJ3Nob3cnKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJCgnLnN1cHBsaWVyU2VsZWN0Jykub24oJ2NoYW5nZScscm9vdC5jaGFuZ2VQcmljZUxpc3RQcm9maXRDZW50ZXJQYXJhbWV0ZXIpO1xyXG4gICAgICAgICQoJy5wcm9maXRDZW50ZXJTZWxlY3QnKS5vbignY2hhbmdlJyxyb290LmNoYW5nZVByaWNlTGlzdFByb2ZpdENlbnRlclBhcmFtZXRlcik7XHJcblxyXG4gICAgICAgIC8vJCgnaW5wdXRbbmFtZT1cImRlbGl2ZXJ5RGF0ZVwiXScpLm9uKCdjaGFuZ2UnLGNoYW5nZVByaWNlTGlzdFByb2ZpdENlbnRlclBhcmFtZXRlcik7XHJcblxyXG5cclxuICAgICAgICAkKFwiLnN1cHBsaWVyU2VsZWN0XCIpLnNlbGVjdDIoe1xyXG4gICAgICAgICAgICBtYXhpbXVtU2VsZWN0aW9uTGVuZ3RoOiAxLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgKi9cclxuICAgICAgICAkKFwiLnByb2ZpdENlbnRlclNlbGVjdFwiKS5zZWxlY3QyKHtcclxuICAgICAgICAgICAgbWF4aW11bVNlbGVjdGlvbkxlbmd0aDogMSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0gKyAnIC5kYXRlUGlja2VyJykuZGF0ZXBpY2tlcih7XHJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6ICd5eS1tbS1kZCcsXHJcbiAgICAgICAgICAgIG1pbkRhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgICAgIG9uU2VsZWN0OiBmdW5jdGlvbiAoZGF0ZVRleHQsb2JqKSB7XHJcbiAgICAgICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSArICcgLnNlbGVjdGVkRGF0ZVRleHQnKS50ZXh0KGRhdGVUZXh0KTtcclxuICAgICAgICAgICAgICAgICQoJy5kZWxpdmVyeURhdGVQbGFjZScpLnRleHQoZGF0ZVRleHQucmVwbGFjZUFsbCgnLScsICcuJykgKyAnLicpO1xyXG4gICAgICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0gKyAnIGlucHV0W25hbWU9XCJkZWxpdmVyeURhdGVcIl0nKS52YWwoZGF0ZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgcm9vdC5jaGFuZ2VQcmljZUxpc3RQcm9maXRDZW50ZXJQYXJhbWV0ZXIobnVsbCwkKG9iai5pbnB1dCkpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vcm9vdC5pbml0Vmlld0xpc3QoKTtcclxuICAgICAgICBsZXQgdGFibGUgPSByb290LmdldERhdGF0YWJsZXMoJycpO1xyXG4gICAgICAgICQoJy5kYXRhVGFibGVPcmRlclByb2R1Y3RTZWxlY3QnKS5vbiggJ2RyYXcuZHQnLHJvb3QucHJvZHVjdFNlbGVjdERhdGFUYWJsZURyYXdEVCkuZGF0YVRhYmxlKCk7XHJcbiAgICAgICAgLypcclxuICAgICAgICAgIC8hKlxyXG4gICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgICAgIEFkZCBldmVudCBsaXN0ZW5lciBmb3Igb3BlbmluZyBhbmQgY2xvc2luZyBkZXRhaWxzXHJcbiAgICAgICAgICAgKiEvXHJcblxyXG4gICAgICAgICAgJCgnLmRhdGFUYWJsZU9yZGVyUHJvZHVjdFNlbGVjdCB0Ym9keScpLm9uKCdjbGljaycsICd0ZC5kZXRhaWxzLWNvbnRyb2wnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHRyID0gJCh0aGlzKS5jbG9zZXN0KCd0cicpO1xyXG4gICAgICAgICAgICAgIGxldCByb3cgPSB0YWJsZS5yb3coIHRyICk7XHJcblxyXG4gICAgICAgICAgICAgIGlmICggcm93LmNoaWxkLmlzU2hvd24oKSApIHtcclxuICAgICAgICAgICAgICAgICAgLy8gVGhpcyByb3cgaXMgYWxyZWFkeSBvcGVuIC0gY2xvc2UgaXRcclxuICAgICAgICAgICAgICAgICAgcm93LmNoaWxkLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgICAgdHIucmVtb3ZlQ2xhc3MoJ3Nob3duJyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAvLyBPcGVuIHRoaXMgcm93XHJcbiAgICAgICAgICAgICAgICAgIHJvdy5jaGlsZCggcm9vdC5wcm9kdWN0U2VsZWN0RGF0YXRhYmxlc1Jvd0Zvcm1hdHRlcihyb3cuZGF0YSgpKSApLnNob3coKTtcclxuICAgICAgICAgICAgICAgICAgdHIuYWRkQ2xhc3MoJ3Nob3duJyk7XHJcbiAgICAgICAgICAgICAgICAgIHJvb3QuYmluZFByb2R1Y3REZXRhaWxzQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSApOyovXHJcbiAgICB9XHJcbiAgICB0aGlzLnByb2R1Y3RTZWxlY3REYXRhVGFibGVEcmF3RFQ9ZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAvL2RlYnVnKCAnVGFibGUgZHJhdyBjb21wbGV0ZTogJytuZXcgRGF0ZSgpLmdldFRpbWUoKSApO1xyXG5cclxuICAgICAgICAkKCd0ZDpjb250YWlucyhcIipcIiknKS5odG1sKCc8aSBjbGFzcz1cImJpIGJpLWNoZWNrLWNpcmNsZS1maWxsXCI+PC9pPicpO1xyXG4gICAgICAgICQoJ3RkLmRldGFpbHMtY29udHJvbCcpLnJlbW92ZUNsYXNzKCdkZXRhaWxzLWNvbnRyb2wnKTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuICAgIGxldCBzZWxlY3RlZFByb2R1Y3RHcm91cD1udWxsO1xyXG5cclxuICAgIHRoaXMuZ2V0RGF0YXRhYmxlcz1mdW5jdGlvbiAob3JkZXJUeXBlKXtcclxuICAgICAgICBsZXQgdGFibGUgPSAkKCcuZGF0YVRhYmxlT3JkZXJQcm9kdWN0U2VsZWN0JykuRGF0YVRhYmxlKCB7XHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiB7XHJcbiAgICAgICAgICAgICAgICB1cmw6ICcvL2Nkbi5kYXRhdGFibGVzLm5ldC9wbHVnLWlucy8xLjEwLjI0L2kxOG4vSHVuZ2FyaWFuLmpzb24nXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvL1wiYWpheFwiOiBcInt7YXNzZXQoJ2V4YXBtbGUyLmpzb24nKX19XCIsXHJcbiAgICAgICAgICAgIFwiYWpheFwiOiB7XHJcbiAgICAgICAgICAgICAgICB1cmw6T3B0cy5VUkwuZ2V0RGF0YVRhYmxlQ29udGVudCxcclxuICAgICAgICAgICAgICAgIGRhdGE6ZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc2VhcmNoU3RyPWRhdGFUYWJsZVNlYXJjaFN0cjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmtyZWw9ZGF0YVRhYmxlU2VhcmNoS3JlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmdyb3VwSWQ9c2VsZWN0ZWRQcm9kdWN0R3JvdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICBkYXRhLnN1cHBsaWVySWQ9Y2hhbmdlUGFyYW1ldGVyLnN1cHBsaWVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHJvZml0Q2VudGVySWQ9Y2hhbmdlUGFyYW1ldGVyLnByb2ZpdENlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLmRlbGl2ZXJ5RGF0ZT1jaGFuZ2VQYXJhbWV0ZXIuZGVsaXZlcnlEYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuZ3JvdXBJZD1zZWxlY3RlZFByb2R1Y3RHcm91cDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYnV0dG9uczoge1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXCJjb2x1bW5EZWZzXCI6IEFQUC5PcmRlck1vZHVsZS5wcm9kdWN0U2VsZWN0RGF0YVRhYmxlQ29sdW1uRGVmcygpLFxyXG4gICAgICAgICAgICBcImNvbHVtbnNcIjogQVBQLk9yZGVyTW9kdWxlLnByb2R1Y3RTZWxlY3REYXRhVGFibGVDb2x1bW4oKSxcclxuICAgICAgICAgICAgXCJvcmRlclwiOiBbWzEsICdhc2MnXV0sXHJcbiAgICAgICAgfSApO1xyXG4gICAgICAgIHJldHVybiB0YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsMEJBQTBCLEdBQUMsVUFBVUMsT0FBTyxFQUFFO0VBQ2pEO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksSUFBSUMsSUFBSSxHQUFHO0lBQ1BDLEtBQUssRUFBRSxJQUFJO0lBQ1hDLG9CQUFvQixFQUFFLGlDQUFpQztJQUN2REMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsR0FBRyxFQUFFO01BQ0RDLG1CQUFtQixFQUFFLEVBQUU7TUFDdkJDLG1CQUFtQixFQUFFLEVBQUU7TUFDdkJDLEtBQUssRUFBRSxFQUFFO01BQ1RDLElBQUksRUFBRSxFQUFFO01BQ1JDLElBQUksRUFBRSxFQUFFO01BQ1JDLE1BQU0sRUFBRSxFQUFFO01BQ1ZDLEtBQUssRUFBRSxFQUFFO01BQ1RDLE1BQU0sRUFBRSxFQUFFO01BQ1ZDLE9BQU8sRUFBRTtJQUNiLENBQUM7SUFDREMsU0FBUyxFQUFFO01BQ1BDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLO0lBQzdCLENBQUM7SUFDREMsc0JBQXNCLEVBQUUsU0FBeEJBLHNCQUFzQkEsQ0FBQSxFQUFjLENBQ3BDO0VBQ0osQ0FBQztFQUNELElBQUlDLElBQUksR0FBRyxJQUFJO0VBQ2Y7QUFD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QztJQUNGO0lBQ0EsSUFBSUMsS0FBSyxHQUFHM0UsSUFBSSxDQUFDNEUsYUFBYSxDQUFDLEVBQUUsQ0FBQztJQUNsQ3ZFLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDNkIsRUFBRSxDQUFFLFNBQVMsRUFBQ2xDLElBQUksQ0FBQzZFLDRCQUE0QixDQUFDLENBQUNoRixTQUFTLENBQUMsQ0FBQztJQUM5RjtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBR0ksQ0FBQztFQUNELElBQUksQ0FBQ2dGLDRCQUE0QixHQUFDLFVBQVV2QixDQUFDLEVBQUU7SUFDM0M7O0lBRUFqRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQzBDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQztJQUNyRTFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0VBSTFELENBQUM7RUFDRCxJQUFJMUMsb0JBQW9CLEdBQUMsSUFBSTtFQUU3QixJQUFJLENBQUN3QyxhQUFhLEdBQUMsVUFBVUcsU0FBUyxFQUFDO0lBQ25DLElBQUlKLEtBQUssR0FBR3RFLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDOEMsU0FBUyxDQUFFO01BQ3JENkIsUUFBUSxFQUFFO1FBQ054QyxHQUFHLEVBQUU7TUFDVCxDQUFDO01BRUQ7TUFDQSxNQUFNLEVBQUU7UUFDSkEsR0FBRyxFQUFDekQsSUFBSSxDQUFDSSxHQUFHLENBQUNDLG1CQUFtQjtRQUNoQzRCLElBQUksRUFBQyxTQUFMQSxJQUFJQSxDQUFXQSxLQUFJLEVBQUU7VUFDakI7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7VUFDb0JBLEtBQUksQ0FBQ2lFLFVBQVUsR0FBQ3pFLGVBQWUsQ0FBQ0MsUUFBUTtVQUN4Q08sS0FBSSxDQUFDa0UsY0FBYyxHQUFDMUUsZUFBZSxDQUFDRSxZQUFZO1VBQ2hETSxLQUFJLENBQUNMLFlBQVksR0FBQ0gsZUFBZSxDQUFDRyxZQUFZO1VBQzlDSyxLQUFJLENBQUNtQixPQUFPLEdBQUNDLG9CQUFvQjtRQUNyQztNQUNKLENBQUM7TUFDRCtDLE9BQU8sRUFBRTtRQUNMQSxPQUFPLEVBQUU7TUFDYixDQUFDO01BQ0QsWUFBWSxFQUFFQyxHQUFHLENBQUNDLFdBQVcsQ0FBQ0MsZ0NBQWdDLENBQUMsQ0FBQztNQUNoRSxTQUFTLEVBQUVGLEdBQUcsQ0FBQ0MsV0FBVyxDQUFDRSw0QkFBNEIsQ0FBQyxDQUFDO01BQ3pELE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN4QixDQUFFLENBQUM7SUFDSCxPQUFPWixLQUFLO0VBQ2hCLENBQUM7QUFHTCxDQUFDIiwiaWdub3JlTGlzdCI6W10sImZpbGUiOiIuL3Jlc291cmNlcy9qcy9hZG1pbi9wcmljZUxpc3RQcm9maXRDZW50ZXIuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/admin/priceListProfitCenter.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/admin/product.js" +/*!***************************************!*\ + !*** ./resources/js/admin/product.js ***! + \***************************************/ +() { + +eval("{function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nif (typeof Product === 'undefined') {\n var _Product = /*#__PURE__*/function (_DataModel) {\n /*\n * Constructor\n */\n function _Product(data, options) {\n var _this;\n _classCallCheck(this, _Product);\n _this = _callSuper(this, _Product, [data, options]);\n if (typeof _this.contact === \"undefined\") {\n _this.contact = [];\n }\n console.log('Product constructor called');\n return _this;\n }\n _inherits(_Product, _DataModel);\n return _createClass(_Product);\n }(DataModel);\n ;\n window.Product = _Product;\n}\nwindow.ProductAdmin = function (options, ProductItem) {\n /*\n * Variables accessible\n * in the class\n */\n var Opts = {\n token: null,\n containerCssSelector: '.containerProduct',\n container: null,\n resultContainerSelector: '.containerProduct .containerResult',\n resultContainer: null,\n testMode: false,\n filters: {\n Product: {}\n },\n URL: {\n getDataTableContent: '',\n index: '',\n show: '',\n edit: '',\n create: '',\n store: '',\n update: '',\n destroy: '',\n attachFile: '',\n detachFile: ''\n },\n dataTable: {\n orderDirective: [1, 'asc']\n },\n onAfterInitViewDetails: function onAfterInitViewDetails() {}\n };\n var Product = {};\n var root = this;\n var contactPopupWorkflow = 'new';\n var dataTable = null;\n /*\n * Constructor\n */\n this.construct = function (options, ProductItem) {\n console.log('ProductAdmin constructor called');\n $.extend(Opts, options);\n if (!ProductItem) {\n console.log('Product letre kellet hozni ');\n if (!APP.Product) {\n APP.Product = new window.Product();\n }\n root.Product = APP.Product;\n }\n };\n this.getOpts = function () {\n return Opts;\n };\n this.datatableRowActionButtonClick = function (event) {\n debug('datatableRowActionButtonClick');\n var node = $(event[0].currentTarget);\n var row = $(dataTableCSSSelector).DataTable().row(node.parents('tr'));\n var rowData = row.data();\n var actionName = 'datatableRowAction' + node.data('buttontype').capitalize();\n if (typeof root[actionName] === \"function\") {\n return root[actionName](rowData, node);\n }\n };\n this.datatableRowActionEdit = function (rowData, node) {\n console.log('datatableRowActionEdit Called');\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n var ajaxUrl = Opts.URL.edit.replace('%id%', rowData.id);\n APP.loadMainContent(ajaxUrl, root.initViewDetails);\n console.log('datatableRowActionEdit End');\n };\n this.initViewListOld = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n debug('listview inicialization');\n dataTableCSSSelector = Opts.containerCssSelector + ' .dataTable'; //\n\n var colNum = $(dataTableCSSSelector + ' thead th').length; //buttons insert position need\n APP.setOpts({\n datatableRowActionButtonClickCallBack: root.datatableRowActionButtonClick\n });\n var orderDirective = Opts.dataTable.orderDirective;\n if (typeof options['orderDirective'] != 'undefined') {\n orderDirective = options['orderDirective'];\n }\n $(dataTableCSSSelector).DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": Opts.URL.getDataTableContent,\n serverSide: true,\n \"columnDefs\": [{\n \"targets\": colNum - 1,\n orderable: false,\n \"render\": function render(data, type, row) {\n var buttons = APP.datatableAddRowEditButton(0, arguments);\n return buttons;\n }\n }, {\n \"targets\": 1,\n \"render\": function render(data, type, row) {\n return type === \"sort\" ? data.latinise() : data;\n }\n }\n //{ \"visible\": false, \"targets\": [ 0 ] }\n ],\n buttons: {\n buttons: ['excel', 'pdf', {\n extend: 'print',\n //text: 'Print current page',\n 'title': 'title custom text',\n 'messageTop': 'Message On Top',\n autoPrint: true\n }]\n },\n \"columns\": [{\n \"data\": \"id\"\n }, {\n \"data\": \"name\"\n }, {\n \"data\": \"hooreycaId\"\n }, {\n \"data\": \"productGroup\"\n }, {\n \"data\": \"supplierName\"\n }, {\n \"data\": \"price\"\n }, {\n \"data\": \"created_at\"\n }, null],\n \"order\": orderDirective,\n \"stateSave\": true,\n \"drawCallback\": function drawCallback(settings) {\n APP.datatableAddRowAction(dataTableCSSSelector);\n }\n });\n debug('listview end');\n };\n this.initViewList = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n debug('initViewSearch inicialization 1');\n root.container.find('select.supplierSelect, select.profitCenterSelect, select.productGroupSelect, select.producerSelect, select.hooreycaNamesSelect, select.specialOfferSelect').select2();\n root.container.find('select.productSelect').select2({\n placeholder: '...',\n allowClear: true,\n ajax: {\n url: Opts.URL.getProductSearch,\n dataType: 'json',\n data: function data(params) {\n return {\n term: params.term || '',\n page: params.page || 1,\n supplierId: root.container.find('select.supplierSelect').val()\n };\n },\n cache: true\n }\n });\n root.container.find('.datePickerFrom, .datePickerTo').datepicker({\n dateFormat: 'yy-mm-dd',\n onSelect: function onSelect(dateText, obj) {\n debug(this);\n debug(obj.input);\n /*\n root.container.find('.selectedDateText').text(dateText);\n $('.deliveryDatePlace').text(dateText.replaceAll('-', '.') + '.');\n root.container.find(' input[name=\"deliveryDate\"]').val(dateText);\n */\n //root.changePriceListProfitCenterParameter(null,$(obj.input));\n }\n });\n root.container.find('.datePickerClick').click(function () {\n debug($(this).data('action'));\n root.container.find('input[name=\"' + $(this).data('action') + '\"]').datepicker('show');\n });\n var button = root.container.find('.FormSendButton');\n button.off('click');\n button.on('click', function () {\n debug('FormSendButton click');\n root.loadingResultContainer();\n root.requestProducts();\n });\n root.setVisibleFilters('Product');\n debug('initViewSearch end');\n };\n this.loadingResultContainer = function () {\n debug('clearResultContainer');\n debug(root.resultContainer);\n root.hideResultContainer();\n root.container.find('.containerLoading').show();\n /*\n let template=root.container.find('template[data-name=\"loading\"]').html()\n root.resultContainer.html(template);\n */\n };\n this.hideResultContainer = function () {\n debug('hide containerResult');\n debug(root.resultContainer);\n root.resultContainer.hide();\n };\n this.showResultContainer = function () {\n root.container.find('.containerLoading').hide();\n root.resultContainer.show();\n };\n this.init = function (options, ProductItem) {\n console.log('ProductAdmin init');\n $.extend(Opts, options);\n if (Opts.testMode) {\n return root.testMode();\n }\n if (ProductItem) {\n root.Product = ProductItem;\n }\n root.dataTable = null;\n root.container = $(Opts.containerCssSelector);\n root.resultContainer = $(Opts.resultContainerSelector);\n root.initViewList();\n };\n this.initViewDetails = function (options, ProductItem) {\n debug('**call initViewDetails ');\n var CSSSelectorForm = Opts.containerCssSelector + ' .productForm';\n if (root.Product.picture) {\n console.log('*****//////////////////****************');\n console.log(root.Product.picture);\n console.log(CSSSelectorForm);\n var picUrl = root.Product.picture.PublicUrl + '/' + root.Product.picture.filename;\n console.log(picUrl);\n console.log($(CSSSelectorForm + ' img.imageProduct'));\n $(CSSSelectorForm + ' img.imageProduct').attr('src', picUrl);\n }\n if (root.Product.specification) {\n console.log('*****//////////////////****************');\n console.log(root.Product.specification);\n var docUrl = root.Product.specification.PublicUrl + '/' + root.Product.specification.filename;\n root.addAttachment(root.Product.specification);\n }\n var FormSaveButton = $(CSSSelectorForm + ' button.FormSaveButton');\n FormSaveButton.off('click');\n FormSaveButton.on('click', root.clickSaveButton);\n };\n this.addAttachment = function (attachmentData) {\n console.log(attachmentData);\n var CSSSelectorForm = Opts.containerCssSelector + ' .productForm';\n //root.Supplier.attachment.push(attachmentData);\n //attachmentData.rowNum=root.Supplier.attachment.length;\n attachmentData.rowNum = 1;\n var dateStr = new Date(attachmentData.updated_at);\n dateStr = dateStr.toLocaleString('hu-HU', {});\n attachmentData.date = dateStr;\n attachmentData.link = attachmentData.PublicUrl + '/' + attachmentData.filename;\n var template = $('template[data-name=\"productAttachmentTableRow\"]').html();\n var render = Mustache.render(template, attachmentData);\n $(CSSSelectorForm + ' .attachmentTable tbody').append(render);\n //root.bindContactClickAction();\n Toast.enableTimers(false);\n Toast.create({\n title: \"Fájl hozzáadva!\",\n message: attachmentData.original_filename + \" fájl hozzáadva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.setVisibleFilters = function (type) {\n console.log('setVisibleFilters');\n console.log(Opts.filters[type]);\n console.log(root.container);\n $(root.container).find('div[class*=\"filter\"]').hide();\n for (var typeIndex in Opts.filters[type]) {\n var typeName = Opts.filters[type][typeIndex];\n debug(typeName);\n console.log($(root.container).find('.filter_' + typeName));\n $(root.container).find('.filter_' + typeName).show();\n }\n };\n this.c = function (CSSSelectorForm) {\n console.log('c called');\n console.log(CSSSelectorForm);\n console.log(root.container);\n console.log(root.container.find('form'));\n console.log(root.container.find(CSSSelectorForm));\n };\n this.formDataToDataObjectAPICall = function (CSSSelectorForm) {\n console.log(CSSSelectorForm);\n console.log(root.container);\n console.log(root.container.find(CSSSelectorForm));\n console.log(root.container.find('form'));\n console.log(root.container.find('form' + CSSSelectorForm)[0]);\n //return;\n var ajaxData = new FormData(root.container.find('form' + CSSSelectorForm)[0]);\n $.each(ajaxData.getAll('supplier'), function (key, value) {\n ajaxData.append('suppliers[]', value);\n });\n ajaxData[\"delete\"]('supplier');\n $.each(ajaxData.getAll('profitCenter'), function (key, value) {\n ajaxData.append('profitCenters[]', value);\n });\n ajaxData[\"delete\"]('profitCenter');\n $.each(ajaxData.getAll('productGroup'), function (key, value) {\n ajaxData.append('productGroups[]', value);\n });\n ajaxData[\"delete\"]('productGroup');\n $.each(ajaxData.getAll('product'), function (key, value) {\n ajaxData.append('products[]', value);\n });\n ajaxData[\"delete\"]('product');\n $.each(ajaxData.getAll('producer'), function (key, value) {\n ajaxData.append('producers[]', value);\n });\n ajaxData[\"delete\"]('producer');\n $.each(ajaxData.getAll('hooreycaName'), function (key, value) {\n ajaxData.append('hooreycaNames[]', value);\n });\n ajaxData[\"delete\"]('hooreycaName');\n\n //ajaxData.append('_token', root.container.find('input[name=_token]').val());\n\n /*\n $(CSSSelectorForm + ' input[data-inputmask]').each(function () {\n let indexKey = $(this).attr('name');\n if (ajaxData.get(indexKey)) {\n ajaxData.set(indexKey, ajaxData.get(indexKey).replace(/[_ ]+$/g, \"\"));\n }\n });\n */\n return ajaxData;\n };\n this.getAjaxDataJson = function () {\n var ajaxData = root.formDataToDataObjectAPICall('.ProductListForm');\n console.log('======================');\n var _iterator = _createForOfIteratorHelper(ajaxData.entries()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var pair = _step.value;\n console.log(pair[0] + ', ' + pair[1]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var object = {};\n ajaxData.forEach(function (value, key) {\n // Reflect.has in favor of: object.hasOwnProperty(key)\n if (!Reflect.has(object, key)) {\n object[key] = value;\n return;\n }\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n });\n var ajaxDataJson = JSON.stringify(object);\n return ajaxDataJson;\n };\n this.requestProducts = function () {\n var ajaxUrl = Opts.URL.getDataTableContent;\n var ajaxMethod = 'GET';\n //token formdataba!\n debug(ajaxUrl);\n ajaxDataJson = root.getAjaxDataJson();\n console.log(ajaxDataJson);\n dataTableCSSSelector = Opts.containerCssSelector + ' .dataTable'; //\n console.log(dataTableCSSSelector);\n var colNum = $(dataTableCSSSelector + ' thead th').length; //buttons insert position need\n APP.setOpts({\n datatableRowActionButtonClickCallBack: root.datatableRowActionButtonClick\n });\n var orderDirective = Opts.dataTable.orderDirective;\n /*\n if(typeof options['orderDirective']!='undefined'){\n orderDirective=options['orderDirective'];\n }\n */\n\n if (!root.dataTable) {\n console.log('XXXXXXXXXXXXXXXXXXXX Nincs Datatable');\n root.dataTable = $(dataTableCSSSelector).DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": {\n url: Opts.URL.getDataTableContent,\n data: function data(d) {\n console.log('---******----');\n console.log(APP.ProductAdmin.getAjaxDataJson());\n return $.extend({}, d, {\n ajaxData: APP.ProductAdmin.getAjaxDataJson\n });\n },\n type: ajaxMethod\n /*\n data: ajaxData,\n */\n },\n serverSide: true,\n \"columnDefs\": [{\n \"targets\": colNum - 1,\n orderable: false,\n \"render\": function render(data, type, row) {\n var buttons = APP.datatableAddRowEditButton(0, arguments);\n return buttons;\n }\n }, {\n \"targets\": 1,\n \"render\": function render(data, type, row) {\n return type === \"sort\" ? data.latinise() : data;\n }\n }\n //{ \"visible\": false, \"targets\": [ 0 ] }\n ],\n buttons: {\n buttons: ['excel', 'pdf', {\n extend: 'print',\n //text: 'Print current page',\n 'title': 'title custom text',\n 'messageTop': 'Message On Top',\n autoPrint: true\n }]\n },\n \"columns\": [{\n \"data\": \"id\"\n }, {\n \"data\": \"name\"\n }, {\n \"data\": \"hooreycaId\"\n }, {\n \"data\": \"productGroup\"\n }, {\n \"data\": \"supplierName\"\n }, {\n \"data\": \"price\"\n }, {\n \"data\": \"created_at\"\n }, null],\n \"order\": orderDirective,\n \"stateSave\": true,\n \"drawCallback\": function drawCallback(settings) {\n APP.datatableAddRowAction(dataTableCSSSelector);\n root.showResultContainer();\n console.log('drawCallback');\n }\n });\n } else {\n console.log('XXXXXXXXXXXXXXXXXXXX van Datatable');\n //root.dataTable.ajax.reload();\n root.dataTable.draw();\n }\n };\n this.processResponse = function () {};\n this.clickSaveButton = function (event) {\n debug('Save clicked');\n var CSSSelectorForm = Opts.containerCssSelector + ' .productForm';\n event.preventDefault();\n if ($(CSSSelectorForm)[0].checkValidity() === false) {\n console.log('validaton false');\n event.stopPropagation();\n return;\n } else {\n console.log('validaton ok');\n //do your ajax submition here\n }\n var ajaxData = root.formDataToDataObjectAPICall('.productForm');\n var ajaxUrl = Opts.URL.store;\n var ajaxMethod = \"POST\";\n if (root.Product.id) {\n ajaxUrl = Opts.URL.update.replace('%id%', root.Product.id);\n //ajaxMethod=\"PUT\";\n //ajaxData=new FormData($(CSSSelectorForm)[0]);\n ajaxData.append('_method', 'PUT');\n }\n debug(ajaxMethod);\n debug(ajaxData);\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n type: ajaxMethod,\n contentType: false,\n processData: false,\n headers: {\n //'X-CSRF-TOKEN': $('input[name=\"_token\"]').val()\n 'X-CSRF-TOKEN': Opts.token\n },\n success: function success(data) {\n debug(data);\n if (data.success == true) {\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n Opts.dataTable.orderDirective = [0, 'desc'];\n Toast.create({\n title: \"Sikeres rögzítés!\",\n message: ajaxData.get('name') + \" nevű termék elmentve\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n // APP.loadMainContent(Opts.URL.index+'?init=0',root.initViewList);\n }\n }\n });\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9kdWN0IiwiX0RhdGFNb2RlbCIsIl9Qcm9kdWN0IiwiZGF0YSIsIm9wdGlvbnMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9jYWxsU3VwZXIiLCJjb250YWN0IiwiY29uc29sZSIsImxvZyIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsIkRhdGFNb2RlbCIsIndpbmRvdyIsIlByb2R1Y3RBZG1pbiIsIlByb2R1Y3RJdGVtIiwiT3B0cyIsInRva2VuIiwiY29udGFpbmVyQ3NzU2VsZWN0b3IiLCJjb250YWluZXIiLCJyZXN1bHRDb250YWluZXJTZWxlY3RvciIsInJlc3VsdENvbnRhaW5lciIsInRlc3RNb2RlIiwiZmlsdGVycyIsIlVSTCIsImdldERhdGFUYWJsZUNvbnRlbnQiLCJpbmRleCIsInNob3ciLCJlZGl0IiwiY3JlYXRlIiwic3RvcmUiLCJ1cGRhdGUiLCJkZXN0cm95IiwiYXR0YWNoRmlsZSIsImRldGFjaEZpbGUiLCJkYXRhVGFibGUiLCJvcmRlckRpcmVjdGl2ZSIsIm9uQWZ0ZXJJbml0Vmlld0RldGFpbHMiLCJyb290IiwiY29udGFjdFBvcHVwV29ya2Zsb3ciLCJjb25zdHJ1Y3QiLCIkIiwiZXh0ZW5kIiwiQVBQIiwiZ2V0T3B0cyIsImRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrIiwiZXZlbnQiLCJkZWJ1ZyIsIm5vZGUiLCJjdXJyZW50VGFyZ2V0Iiwicm93IiwiZGF0YVRhYmxlQ1NTU2VsZWN0b3IiLCJEYXRhVGFibGUiLCJwYXJlbnRzIiwicm93RGF0YSIsImFjdGlvbk5hbWUiLCJjYXBpdGFsaXplIiwiZGF0YXRhYmxlUm93QWN0aW9uRWRpdCIsImFqYXhVcmwiLCJyZXBsYWNlIiwiaWQiLCJsb2FkTWFpbkNvbnRlbnQiLCJpbml0Vmlld0RldGFpbHMiLCJpbml0Vmlld0xpc3RPbGQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjb2xOdW0iLCJzZXRPcHRzIiwiZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayIsImxhbmd1YWdlIiwidXJsIiwic2VydmVyU2lkZSIsIm9yZGVyYWJsZSIsInJlbmRlciIsInR5cGUiLCJidXR0b25zIiwiZGF0YXRhYmxlQWRkUm93RWRpdEJ1dHRvbiIsImxhdGluaXNlIiwiYXV0b1ByaW50IiwiZHJhd0NhbGxiYWNrIiwic2V0dGluZ3MiLCJkYXRhdGFibGVBZGRSb3dBY3Rpb24iLCJpbml0Vmlld0xpc3QiLCJmaW5kIiwic2VsZWN0MiIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImFqYXgiLCJnZXRQcm9kdWN0U2VhcmNoIiwiZGF0YVR5cGUiLCJwYXJhbXMiLCJ0ZXJtIiwicGFnZSIsInN1cHBsaWVySWQiLCJ2YWwiLCJjYWNoZSIsImRhdGVwaWNrZXIiLCJkYXRlRm9ybWF0Iiwib25TZWxlY3QiLCJkYXRlVGV4dCIsIm9iaiIsImlucHV0IiwiY2xpY2siLCJidXR0b24iLCJvZmYiLCJvbiIsImxvYWRpbmdSZXN1bHRDb250YWluZXIiLCJyZXF1ZXN0UHJvZHVjdHMiLCJzZXRWaXNpYmxlRmlsdGVycyIsImhpZGVSZXN1bHRDb250YWluZXIiLCJoaWRlIiwic2hvd1Jlc3VsdENvbnRhaW5lciIsImluaXQiLCJDU1NTZWxlY3RvckZvcm0iLCJwaWN0dXJlIiwicGljVXJsIiwiUHVibGljVXJsIiwiZmlsZW5hbWUiLCJhdHRyIiwic3BlY2lmaWNhdGlvbiIsImRvY1VybCIsImFkZEF0dGFjaG1lbnQiLCJGb3JtU2F2ZUJ1dHRvbiIsImNsaWNrU2F2ZUJ1dHRvbiIsImF0dGFjaG1lbnREYXRhIiwicm93TnVtIiwiZGF0ZVN0ciIsIkRhdGUiLCJ1cGRhdGVkX2F0IiwidG9Mb2NhbGVTdHJpbmciLCJkYXRlIiwibGluayIsInRlbXBsYXRlIiwiaHRtbCIsIk11c3RhY2hlIiwiYXBwZW5kIiwiVG9hc3QiLCJlbmFibGVUaW1lcnMiLCJ0aXRsZSIsIm1lc3NhZ2UiLCJvcmlnaW5hbF9maWxlbmFtZSIsInN0YXR1cyIsIlRPQVNUX1NUQVRVUyIsIlNVQ0NFU1MiLCJ0aW1lb3V0IiwidHlwZUluZGV4IiwidHlwZU5hbWUiLCJjIiwiZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsIiwiYWpheERhdGEiLCJGb3JtRGF0YSIsImVhY2giLCJnZXRBbGwiLCJrZXkiLCJ2YWx1ZSIsImdldEFqYXhEYXRhSnNvbiIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiZW50cmllcyIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwicGFpciIsImVyciIsImUiLCJmIiwib2JqZWN0IiwiZm9yRWFjaCIsIlJlZmxlY3QiLCJoYXMiLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwiYWpheERhdGFKc29uIiwiSlNPTiIsInN0cmluZ2lmeSIsImFqYXhNZXRob2QiLCJkIiwiZHJhdyIsInByb2Nlc3NSZXNwb25zZSIsInByZXZlbnREZWZhdWx0IiwiY2hlY2tWYWxpZGl0eSIsInN0b3BQcm9wYWdhdGlvbiIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJoZWFkZXJzIiwic3VjY2VzcyIsImdldCJdLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYWRtaW4vcHJvZHVjdC5qcz85YjUyIl0sInNvdXJjZXNDb250ZW50IjpbImlmKHR5cGVvZiBQcm9kdWN0PT09J3VuZGVmaW5lZCcpe1xuICAgIGNsYXNzIFByb2R1Y3QgZXh0ZW5kcyBEYXRhTW9kZWx7XG5cbiAgICAgICAgLypcbiAgICAgICAgICogQ29uc3RydWN0b3JcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0cnVjdG9yIChkYXRhLG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHN1cGVyKGRhdGEsb3B0aW9ucylcbiAgICAgICAgICAgIGlmKHR5cGVvZiB0aGlzLmNvbnRhY3QgPT09XCJ1bmRlZmluZWRcIil7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWN0PVtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1Byb2R1Y3QgY29uc3RydWN0b3IgY2FsbGVkJyk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICB3aW5kb3cuUHJvZHVjdD1Qcm9kdWN0O1xufVxud2luZG93LlByb2R1Y3RBZG1pbj1mdW5jdGlvbiAob3B0aW9ucyxQcm9kdWN0SXRlbSkge1xuICAgIC8qXG4gICAgICogVmFyaWFibGVzIGFjY2Vzc2libGVcbiAgICAgKiBpbiB0aGUgY2xhc3NcbiAgICAgKi9cbiAgICBsZXQgT3B0cyA9IHtcbiAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgIGNvbnRhaW5lckNzc1NlbGVjdG9yOiAnLmNvbnRhaW5lclByb2R1Y3QnLFxuICAgICAgICBjb250YWluZXI6bnVsbCxcbiAgICAgICAgcmVzdWx0Q29udGFpbmVyU2VsZWN0b3I6Jy5jb250YWluZXJQcm9kdWN0IC5jb250YWluZXJSZXN1bHQnLFxuICAgICAgICByZXN1bHRDb250YWluZXI6bnVsbCxcblxuICAgICAgICB0ZXN0TW9kZTogZmFsc2UsXG4gICAgICAgIGZpbHRlcnM6e1xuICAgICAgICAgICAgUHJvZHVjdDp7fSxcbiAgICAgICAgfSxcbiAgICAgICAgVVJMOiB7XG4gICAgICAgICAgICBnZXREYXRhVGFibGVDb250ZW50OiAnJyxcbiAgICAgICAgICAgIGluZGV4OiAnJyxcbiAgICAgICAgICAgIHNob3c6ICcnLFxuICAgICAgICAgICAgZWRpdDogJycsXG4gICAgICAgICAgICBjcmVhdGU6ICcnLFxuICAgICAgICAgICAgc3RvcmU6ICcnLFxuICAgICAgICAgICAgdXBkYXRlOiAnJyxcbiAgICAgICAgICAgIGRlc3Ryb3k6ICcnLFxuICAgICAgICAgICAgYXR0YWNoRmlsZTogJycsXG4gICAgICAgICAgICBkZXRhY2hGaWxlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YVRhYmxlOiB7XG4gICAgICAgICAgICBvcmRlckRpcmVjdGl2ZTogWzEsICdhc2MnXSxcbiAgICAgICAgfSxcbiAgICAgICAgb25BZnRlckluaXRWaWV3RGV0YWlsczogZnVuY3Rpb24gKCkge1xuICAgICAgICB9XG4gICAgfTtcbiAgICBsZXQgUHJvZHVjdCA9IHt9O1xuICAgIGxldCByb290ID0gdGhpcztcbiAgICBsZXQgY29udGFjdFBvcHVwV29ya2Zsb3cgPSAnbmV3JztcbiAgICBsZXQgZGF0YVRhYmxlPW51bGw7XG4gICAgLypcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIHRoaXMuY29uc3RydWN0ID0gZnVuY3Rpb24gKG9wdGlvbnMsIFByb2R1Y3RJdGVtKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdQcm9kdWN0QWRtaW4gY29uc3RydWN0b3IgY2FsbGVkJyk7XG4gICAgICAgICQuZXh0ZW5kKE9wdHMsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIVByb2R1Y3RJdGVtKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUHJvZHVjdCBsZXRyZSBrZWxsZXQgaG96bmkgJyk7XG4gICAgICAgICAgICBpZiAoIUFQUC5Qcm9kdWN0KSB7XG4gICAgICAgICAgICAgICAgQVBQLlByb2R1Y3QgPSBuZXcgd2luZG93LlByb2R1Y3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvb3QuUHJvZHVjdCA9IEFQUC5Qcm9kdWN0O1xuICAgICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmdldE9wdHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBPcHRzO1xuICAgIH1cbiAgICB0aGlzLmRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrPWZ1bmN0aW9uIChldmVudCl7XG4gICAgICAgIGRlYnVnKCdkYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGljaycpO1xuICAgICAgICBsZXQgbm9kZT0kKGV2ZW50WzBdLmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBsZXQgcm93PSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgpLnJvdyhub2RlLnBhcmVudHMoJ3RyJykpO1xuICAgICAgICBsZXQgcm93RGF0YT1yb3cuZGF0YSgpO1xuICAgICAgICBsZXQgYWN0aW9uTmFtZT0nZGF0YXRhYmxlUm93QWN0aW9uJytub2RlLmRhdGEoJ2J1dHRvbnR5cGUnKS5jYXBpdGFsaXplKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygcm9vdFthY3Rpb25OYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcm9vdFthY3Rpb25OYW1lXShyb3dEYXRhLG5vZGUpXG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kYXRhdGFibGVSb3dBY3Rpb25FZGl0PWZ1bmN0aW9uIChyb3dEYXRhLG5vZGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2RhdGF0YWJsZVJvd0FjdGlvbkVkaXQgQ2FsbGVkJyk7XG4gICAgICAgIC8vT3B0cy5vbkFmdGVySW5pdFZpZXdEZXRhaWxzPXJvb3QuYXV0b2ZpbGxEZXRhaWxzO1xuICAgICAgICBsZXQgYWpheFVybD1PcHRzLlVSTC5lZGl0LnJlcGxhY2UoJyVpZCUnLHJvd0RhdGEuaWQpO1xuICAgICAgICBBUFAubG9hZE1haW5Db250ZW50KGFqYXhVcmwscm9vdC5pbml0Vmlld0RldGFpbHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnZGF0YXRhYmxlUm93QWN0aW9uRWRpdCBFbmQnKTtcbiAgICB9XG4gICAgdGhpcy5pbml0Vmlld0xpc3RPbGQgPSBmdW5jdGlvbiAob3B0aW9ucz17fSkge1xuICAgICAgICBkZWJ1ZygnbGlzdHZpZXcgaW5pY2lhbGl6YXRpb24nKTtcbiAgICAgICAgZGF0YVRhYmxlQ1NTU2VsZWN0b3I9T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5kYXRhVGFibGUnOyAvL1xuXG4gICAgICAgIGxldCBjb2xOdW09JChkYXRhVGFibGVDU1NTZWxlY3RvcisnIHRoZWFkIHRoJykubGVuZ3RoOyAvL2J1dHRvbnMgaW5zZXJ0IHBvc2l0aW9uIG5lZWRcbiAgICAgICAgQVBQLnNldE9wdHMoe1xuICAgICAgICAgICAgZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjazpyb290LmRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrLFxuICAgICAgICB9KVxuICAgICAgICBsZXQgb3JkZXJEaXJlY3RpdmU9T3B0cy5kYXRhVGFibGUub3JkZXJEaXJlY3RpdmU7XG4gICAgICAgIGlmKHR5cGVvZiBvcHRpb25zWydvcmRlckRpcmVjdGl2ZSddIT0ndW5kZWZpbmVkJyl7XG4gICAgICAgICAgICBvcmRlckRpcmVjdGl2ZT1vcHRpb25zWydvcmRlckRpcmVjdGl2ZSddO1xuICAgICAgICB9XG4gICAgICAgICQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IHtcbiAgICAgICAgICAgICAgICB1cmw6ICcvL2Nkbi5kYXRhdGFibGVzLm5ldC9wbHVnLWlucy8xLjEwLjI0L2kxOG4vSHVuZ2FyaWFuLmpzb24nXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvL1wiYWpheFwiOiBcInt7YXNzZXQoJ2V4YXBtbGUyLmpzb24nKX19XCIsXG4gICAgICAgICAgICBcImFqYXhcIjogT3B0cy5VUkwuZ2V0RGF0YVRhYmxlQ29udGVudCxcbiAgICAgICAgICAgIHNlcnZlclNpZGU6IHRydWUsXG4gICAgICAgICAgICBcImNvbHVtbkRlZnNcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRzXCI6IGNvbE51bS0xLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlbmRlclwiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIHJvdyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM9QVBQLmRhdGF0YWJsZUFkZFJvd0VkaXRCdXR0b24oMCxhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbnM7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidGFyZ2V0c1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICBcInJlbmRlclwiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIHJvdyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSBcInNvcnRcIiA/IGRhdGEubGF0aW5pc2UoKSA6IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAvL3sgXCJ2aXNpYmxlXCI6IGZhbHNlLCAgXCJ0YXJnZXRzXCI6IFsgMCBdIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBidXR0b25zOntcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAgICAgICAgICAgICdleGNlbCcsJ3BkZicsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZDogJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGV4dDogJ1ByaW50IGN1cnJlbnQgcGFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndGl0bGUnOiAndGl0bGUgY3VzdG9tIHRleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2VUb3AnOiAnTWVzc2FnZSBPbiBUb3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b1ByaW50OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiY29sdW1uc1wiOiBbXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJpZFwifSxcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcIm5hbWVcIiB9LFxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwiaG9vcmV5Y2FJZFwiIH0sXG4gICAgICAgICAgICAgICAge1wiZGF0YVwiOiBcInByb2R1Y3RHcm91cFwifSxcbiAgICAgICAgICAgICAgICB7XCJkYXRhXCI6IFwic3VwcGxpZXJOYW1lXCJ9LFxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwicHJpY2VcIiB9LFxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwiY3JlYXRlZF9hdFwiIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm9yZGVyXCI6IG9yZGVyRGlyZWN0aXZlLFxuICAgICAgICAgICAgXCJzdGF0ZVNhdmVcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZHJhd0NhbGxiYWNrXCI6IGZ1bmN0aW9uKCBzZXR0aW5ncyApIHtcbiAgICAgICAgICAgICAgICBBUFAuZGF0YXRhYmxlQWRkUm93QWN0aW9uKGRhdGFUYWJsZUNTU1NlbGVjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSApO1xuICAgICAgICBkZWJ1ZygnbGlzdHZpZXcgZW5kJyk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0Vmlld0xpc3Q9ZnVuY3Rpb24gKG9wdGlvbnM9e30pIHtcbiAgICAgICAgZGVidWcoJ2luaXRWaWV3U2VhcmNoIGluaWNpYWxpemF0aW9uIDEnKTtcblxuICAgICAgICByb290LmNvbnRhaW5lci5maW5kKCdzZWxlY3Quc3VwcGxpZXJTZWxlY3QsIHNlbGVjdC5wcm9maXRDZW50ZXJTZWxlY3QsIHNlbGVjdC5wcm9kdWN0R3JvdXBTZWxlY3QsIHNlbGVjdC5wcm9kdWNlclNlbGVjdCwgc2VsZWN0Lmhvb3JleWNhTmFtZXNTZWxlY3QsIHNlbGVjdC5zcGVjaWFsT2ZmZXJTZWxlY3QnKS5zZWxlY3QyKCk7XG4gICAgICAgIHJvb3QuY29udGFpbmVyLmZpbmQoJ3NlbGVjdC5wcm9kdWN0U2VsZWN0Jykuc2VsZWN0Mih7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJy4uLicsXG4gICAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLFxuICAgICAgICAgICAgYWpheDoge1xuICAgICAgICAgICAgICAgIHVybDogT3B0cy5VUkwuZ2V0UHJvZHVjdFNlYXJjaCxcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGZ1bmN0aW9uKHBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVybTogcGFyYW1zLnRlcm0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYXJhbXMucGFnZSB8fCAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwcGxpZXJJZDogcm9vdC5jb250YWluZXIuZmluZCgnc2VsZWN0LnN1cHBsaWVyU2VsZWN0JykudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNhY2hlOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByb290LmNvbnRhaW5lci5maW5kKCcuZGF0ZVBpY2tlckZyb20sIC5kYXRlUGlja2VyVG8nKS5kYXRlcGlja2VyKHtcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6ICd5eS1tbS1kZCcsXG5cbiAgICAgICAgICAgIG9uU2VsZWN0OiBmdW5jdGlvbiAoZGF0ZVRleHQsb2JqKSB7XG4gICAgICAgICAgICAgICAgZGVidWcodGhpcyk7XG4gICAgICAgICAgICAgICAgZGVidWcob2JqLmlucHV0KTtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QuY29udGFpbmVyLmZpbmQoJy5zZWxlY3RlZERhdGVUZXh0JykudGV4dChkYXRlVGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmRlbGl2ZXJ5RGF0ZVBsYWNlJykudGV4dChkYXRlVGV4dC5yZXBsYWNlQWxsKCctJywgJy4nKSArICcuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdC5jb250YWluZXIuZmluZCgnIGlucHV0W25hbWU9XCJkZWxpdmVyeURhdGVcIl0nKS52YWwoZGF0ZVRleHQpO1xuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLy9yb290LmNoYW5nZVByaWNlTGlzdFByb2ZpdENlbnRlclBhcmFtZXRlcihudWxsLCQob2JqLmlucHV0KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcm9vdC5jb250YWluZXIuZmluZCgnLmRhdGVQaWNrZXJDbGljaycpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBkZWJ1ZygkKHRoaXMpLmRhdGEoJ2FjdGlvbicpKTtcbiAgICAgICAgICAgIHJvb3QuY29udGFpbmVyLmZpbmQoJ2lucHV0W25hbWU9XCInKyQodGhpcykuZGF0YSgnYWN0aW9uJykrJ1wiXScpLmRhdGVwaWNrZXIoJ3Nob3cnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBidXR0b249cm9vdC5jb250YWluZXIuZmluZCgnLkZvcm1TZW5kQnV0dG9uJyk7XG4gICAgICAgIGJ1dHRvbi5vZmYoJ2NsaWNrJyk7XG4gICAgICAgIGJ1dHRvbi5vbignY2xpY2snLGZ1bmN0aW9uICgpe1xuICAgICAgICAgICAgZGVidWcgKCdGb3JtU2VuZEJ1dHRvbiBjbGljaycpO1xuICAgICAgICAgICAgcm9vdC5sb2FkaW5nUmVzdWx0Q29udGFpbmVyKCk7XG4gICAgICAgICAgICByb290LnJlcXVlc3RQcm9kdWN0cygpO1xuICAgICAgICB9KTtcbiAgICAgICAgcm9vdC5zZXRWaXNpYmxlRmlsdGVycygnUHJvZHVjdCcpO1xuXG4gICAgICAgIGRlYnVnKCdpbml0Vmlld1NlYXJjaCBlbmQnKTtcbiAgICB9XG5cblxuICAgIHRoaXMubG9hZGluZ1Jlc3VsdENvbnRhaW5lcj1mdW5jdGlvbiAoKXtcbiAgICAgICAgZGVidWcoJ2NsZWFyUmVzdWx0Q29udGFpbmVyJyk7XG4gICAgICAgIGRlYnVnKHJvb3QucmVzdWx0Q29udGFpbmVyKTtcbiAgICAgICAgcm9vdC5oaWRlUmVzdWx0Q29udGFpbmVyKCk7XG4gICAgICAgIHJvb3QuY29udGFpbmVyLmZpbmQoJy5jb250YWluZXJMb2FkaW5nJykuc2hvdygpO1xuICAgICAgICAvKlxuICAgICAgICBsZXQgdGVtcGxhdGU9cm9vdC5jb250YWluZXIuZmluZCgndGVtcGxhdGVbZGF0YS1uYW1lPVwibG9hZGluZ1wiXScpLmh0bWwoKVxuICAgICAgICByb290LnJlc3VsdENvbnRhaW5lci5odG1sKHRlbXBsYXRlKTtcblxuICAgICAgICAgKi9cbiAgICB9XG4gICAgdGhpcy5oaWRlUmVzdWx0Q29udGFpbmVyPWZ1bmN0aW9uICgpe1xuICAgICAgICBkZWJ1ZygnaGlkZSBjb250YWluZXJSZXN1bHQnKTtcbiAgICAgICAgZGVidWcocm9vdC5yZXN1bHRDb250YWluZXIpO1xuICAgICAgICByb290LnJlc3VsdENvbnRhaW5lci5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2hvd1Jlc3VsdENvbnRhaW5lcj1mdW5jdGlvbiAoKXtcbiAgICAgICAgcm9vdC5jb250YWluZXIuZmluZCgnLmNvbnRhaW5lckxvYWRpbmcnKS5oaWRlKCk7XG4gICAgICAgIHJvb3QucmVzdWx0Q29udGFpbmVyLnNob3coKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQ9ZnVuY3Rpb24gKG9wdGlvbnMsUHJvZHVjdEl0ZW0pe1xuICAgICAgICBjb25zb2xlLmxvZygnUHJvZHVjdEFkbWluIGluaXQnKTtcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYoT3B0cy50ZXN0TW9kZSl7XG4gICAgICAgICAgICByZXR1cm4gcm9vdC50ZXN0TW9kZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmKFByb2R1Y3RJdGVtKXtcbiAgICAgICAgICAgIHJvb3QuUHJvZHVjdD1Qcm9kdWN0SXRlbVxuICAgICAgICB9XG4gICAgICAgIHJvb3QuZGF0YVRhYmxlPW51bGw7XG4gICAgICAgIHJvb3QuY29udGFpbmVyPSQoT3B0cy5jb250YWluZXJDc3NTZWxlY3Rvcik7XG4gICAgICAgIHJvb3QucmVzdWx0Q29udGFpbmVyPSQoT3B0cy5yZXN1bHRDb250YWluZXJTZWxlY3Rvcik7XG4gICAgICAgIHJvb3QuaW5pdFZpZXdMaXN0KCk7XG4gICAgfVxuICAgIHRoaXMuaW5pdFZpZXdEZXRhaWxzPWZ1bmN0aW9uIChvcHRpb25zLFByb2R1Y3RJdGVtKXtcbiAgICAgICAgZGVidWcoJyoqY2FsbCBpbml0Vmlld0RldGFpbHMgJyk7XG4gICAgICAgIGxldCBDU1NTZWxlY3RvckZvcm09T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5wcm9kdWN0Rm9ybSc7XG4gICAgICAgIGlmKHJvb3QuUHJvZHVjdC5waWN0dXJlKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcqKioqKi8vLy8vLy8vLy8vLy8vLy8vLyoqKioqKioqKioqKioqKionKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJvb3QuUHJvZHVjdC5waWN0dXJlKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKENTU1NlbGVjdG9yRm9ybSk7XG4gICAgICAgICAgICBsZXQgcGljVXJsPXJvb3QuUHJvZHVjdC5waWN0dXJlLlB1YmxpY1VybCsnLycrcm9vdC5Qcm9kdWN0LnBpY3R1cmUuZmlsZW5hbWU7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhwaWNVcmwpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJChDU1NTZWxlY3RvckZvcm0rJyBpbWcuaW1hZ2VQcm9kdWN0JykpO1xuICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyBpbWcuaW1hZ2VQcm9kdWN0JykuYXR0cignc3JjJyxwaWNVcmwpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHJvb3QuUHJvZHVjdC5zcGVjaWZpY2F0aW9uKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcqKioqKi8vLy8vLy8vLy8vLy8vLy8vLyoqKioqKioqKioqKioqKionKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJvb3QuUHJvZHVjdC5zcGVjaWZpY2F0aW9uKTtcbiAgICAgICAgICAgIGxldCBkb2NVcmw9cm9vdC5Qcm9kdWN0LnNwZWNpZmljYXRpb24uUHVibGljVXJsKycvJytyb290LlByb2R1Y3Quc3BlY2lmaWNhdGlvbi5maWxlbmFtZTtcbiAgICAgICAgICAgIHJvb3QuYWRkQXR0YWNobWVudChyb290LlByb2R1Y3Quc3BlY2lmaWNhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IEZvcm1TYXZlQnV0dG9uPSQoQ1NTU2VsZWN0b3JGb3JtKycgYnV0dG9uLkZvcm1TYXZlQnV0dG9uJyk7XG4gICAgICAgIEZvcm1TYXZlQnV0dG9uLm9mZignY2xpY2snKTtcbiAgICAgICAgRm9ybVNhdmVCdXR0b24ub24oJ2NsaWNrJyxyb290LmNsaWNrU2F2ZUJ1dHRvbik7XG5cbiAgICB9XG5cbiAgICB0aGlzLmFkZEF0dGFjaG1lbnQ9ZnVuY3Rpb24gKGF0dGFjaG1lbnREYXRhKXtcbiAgICAgICAgY29uc29sZS5sb2coYXR0YWNobWVudERhdGEpO1xuICAgICAgICBsZXQgQ1NTU2VsZWN0b3JGb3JtPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAucHJvZHVjdEZvcm0nO1xuICAgICAgICAvL3Jvb3QuU3VwcGxpZXIuYXR0YWNobWVudC5wdXNoKGF0dGFjaG1lbnREYXRhKTtcbiAgICAgICAgLy9hdHRhY2htZW50RGF0YS5yb3dOdW09cm9vdC5TdXBwbGllci5hdHRhY2htZW50Lmxlbmd0aDtcbiAgICAgICAgYXR0YWNobWVudERhdGEucm93TnVtPTE7XG4gICAgICAgIGxldCBkYXRlU3RyPW5ldyBEYXRlKGF0dGFjaG1lbnREYXRhLnVwZGF0ZWRfYXQpO1xuICAgICAgICBkYXRlU3RyPWRhdGVTdHIudG9Mb2NhbGVTdHJpbmcoJ2h1LUhVJywge30pO1xuICAgICAgICBhdHRhY2htZW50RGF0YS5kYXRlPWRhdGVTdHI7XG4gICAgICAgIGF0dGFjaG1lbnREYXRhLmxpbms9YXR0YWNobWVudERhdGEuUHVibGljVXJsKycvJythdHRhY2htZW50RGF0YS5maWxlbmFtZTtcbiAgICAgICAgbGV0IHRlbXBsYXRlPSQoJ3RlbXBsYXRlW2RhdGEtbmFtZT1cInByb2R1Y3RBdHRhY2htZW50VGFibGVSb3dcIl0nKS5odG1sKClcbiAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsYXR0YWNobWVudERhdGEpO1xuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIC5hdHRhY2htZW50VGFibGUgdGJvZHknKS5hcHBlbmQocmVuZGVyKTtcbiAgICAgICAgLy9yb290LmJpbmRDb250YWN0Q2xpY2tBY3Rpb24oKTtcbiAgICAgICAgVG9hc3QuZW5hYmxlVGltZXJzKGZhbHNlKTtcbiAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiRsOhamwgaG96esOhYWR2YSFcIiwgbWVzc2FnZTogYXR0YWNobWVudERhdGEub3JpZ2luYWxfZmlsZW5hbWUrXCIgZsOhamwgaG96esOhYWR2YVwiLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5TVUNDRVNTLCB0aW1lb3V0OiA1MDAwIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VmlzaWJsZUZpbHRlcnM9ZnVuY3Rpb24gKHR5cGUpe1xuICAgICAgICBjb25zb2xlLmxvZygnc2V0VmlzaWJsZUZpbHRlcnMnKTtcbiAgICAgICAgY29uc29sZS5sb2coT3B0cy5maWx0ZXJzW3R5cGVdKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIpO1xuICAgICAgICAkKHJvb3QuY29udGFpbmVyKS5maW5kKCdkaXZbY2xhc3MqPVwiZmlsdGVyXCJdJykuaGlkZSgpXG4gICAgICAgIGZvciAoY29uc3QgdHlwZUluZGV4IGluIE9wdHMuZmlsdGVyc1t0eXBlXSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZU5hbWU9T3B0cy5maWx0ZXJzW3R5cGVdW3R5cGVJbmRleF07XG4gICAgICAgICAgICBkZWJ1Zyh0eXBlTmFtZSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygkKHJvb3QuY29udGFpbmVyKS5maW5kKCcuZmlsdGVyXycrdHlwZU5hbWUpKTtcbiAgICAgICAgICAgICQocm9vdC5jb250YWluZXIpLmZpbmQoJy5maWx0ZXJfJyt0eXBlTmFtZSkuc2hvdygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRoaXMuYz1mdW5jdGlvbiAoQ1NTU2VsZWN0b3JGb3JtKXtcbiAgICAgICAgY29uc29sZS5sb2coJ2MgY2FsbGVkJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKENTU1NlbGVjdG9yRm9ybSk7XG4gICAgICAgIGNvbnNvbGUubG9nKHJvb3QuY29udGFpbmVyKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIuZmluZCgnZm9ybScpKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIuZmluZChDU1NTZWxlY3RvckZvcm0pKTtcblxuICAgIH1cblxuICAgIHRoaXMuZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsID0gZnVuY3Rpb24gKENTU1NlbGVjdG9yRm9ybSkge1xuXG4gICAgICAgIGNvbnNvbGUubG9nKENTU1NlbGVjdG9yRm9ybSk7XG4gICAgICAgIGNvbnNvbGUubG9nKHJvb3QuY29udGFpbmVyKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIuZmluZChDU1NTZWxlY3RvckZvcm0pKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIuZmluZCgnZm9ybScpKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5jb250YWluZXIuZmluZCgnZm9ybScrQ1NTU2VsZWN0b3JGb3JtKVswXSk7XG4gICAgICAgIC8vcmV0dXJuO1xuICAgICAgICBsZXQgYWpheERhdGEgPSBuZXcgRm9ybURhdGEocm9vdC5jb250YWluZXIuZmluZCgnZm9ybScrQ1NTU2VsZWN0b3JGb3JtKVswXSk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ3N1cHBsaWVyJyksIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ3N1cHBsaWVyc1tdJywgdmFsdWUpO1xuICAgICAgICB9KVxuICAgICAgICBhamF4RGF0YS5kZWxldGUoJ3N1cHBsaWVyJyk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ3Byb2ZpdENlbnRlcicpLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdwcm9maXRDZW50ZXJzW10nLCB2YWx1ZSk7XG4gICAgICAgIH0pXG4gICAgICAgIGFqYXhEYXRhLmRlbGV0ZSgncHJvZml0Q2VudGVyJyk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ3Byb2R1Y3RHcm91cCcpLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdwcm9kdWN0R3JvdXBzW10nLCB2YWx1ZSk7XG4gICAgICAgIH0pXG4gICAgICAgIGFqYXhEYXRhLmRlbGV0ZSgncHJvZHVjdEdyb3VwJyk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ3Byb2R1Y3QnKSwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgIGFqYXhEYXRhLmFwcGVuZCgncHJvZHVjdHNbXScsIHZhbHVlKTtcbiAgICAgICAgfSlcbiAgICAgICAgYWpheERhdGEuZGVsZXRlKCdwcm9kdWN0Jyk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ3Byb2R1Y2VyJyksIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ3Byb2R1Y2Vyc1tdJywgdmFsdWUpO1xuICAgICAgICB9KVxuICAgICAgICBhamF4RGF0YS5kZWxldGUoJ3Byb2R1Y2VyJyk7XG4gICAgICAgICQuZWFjaChhamF4RGF0YS5nZXRBbGwoJ2hvb3JleWNhTmFtZScpLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdob29yZXljYU5hbWVzW10nLCB2YWx1ZSk7XG4gICAgICAgIH0pXG4gICAgICAgIGFqYXhEYXRhLmRlbGV0ZSgnaG9vcmV5Y2FOYW1lJyk7XG5cbiAgICAgICAgLy9hamF4RGF0YS5hcHBlbmQoJ190b2tlbicsIHJvb3QuY29udGFpbmVyLmZpbmQoJ2lucHV0W25hbWU9X3Rva2VuXScpLnZhbCgpKTtcblxuICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0gKyAnIGlucHV0W2RhdGEtaW5wdXRtYXNrXScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleEtleSA9ICQodGhpcykuYXR0cignbmFtZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhamF4RGF0YS5nZXQoaW5kZXhLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhLnNldChpbmRleEtleSwgYWpheERhdGEuZ2V0KGluZGV4S2V5KS5yZXBsYWNlKC9bXyBdKyQvZywgXCJcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWpheERhdGE7XG5cbiAgICB9XG4gICAgdGhpcy5nZXRBamF4RGF0YUpzb249ZnVuY3Rpb24oKXtcblxuICAgICAgICBsZXQgYWpheERhdGE9cm9vdC5mb3JtRGF0YVRvRGF0YU9iamVjdEFQSUNhbGwoJy5Qcm9kdWN0TGlzdEZvcm0nKTtcbiAgICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgICAgICAgZm9yIChsZXQgcGFpciBvZiBhamF4RGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHBhaXJbMF0rICcsICcgKyBwYWlyWzFdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvYmplY3QgPSB7fTtcbiAgICAgICAgYWpheERhdGEuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgLy8gUmVmbGVjdC5oYXMgaW4gZmF2b3Igb2Y6IG9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkpXG4gICAgICAgICAgICBpZighUmVmbGVjdC5oYXMob2JqZWN0LCBrZXkpKXtcbiAgICAgICAgICAgICAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKCFBcnJheS5pc0FycmF5KG9iamVjdFtrZXldKSl7XG4gICAgICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBbb2JqZWN0W2tleV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JqZWN0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgYWpheERhdGFKc29uID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0KTtcbiAgICAgICAgcmV0dXJuIGFqYXhEYXRhSnNvbjtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RQcm9kdWN0cz1mdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmdldERhdGFUYWJsZUNvbnRlbnQ7XG4gICAgICAgIGxldCBhamF4TWV0aG9kPSdHRVQnO1xuICAgICAgICAvL3Rva2VuIGZvcm1kYXRhYmEhXG4gICAgICAgIGRlYnVnKGFqYXhVcmwpO1xuXG4gICAgICAgIGFqYXhEYXRhSnNvbj1yb290LmdldEFqYXhEYXRhSnNvbigpO1xuICAgICAgICBjb25zb2xlLmxvZyhhamF4RGF0YUpzb24pO1xuXG4gICAgICAgIGRhdGFUYWJsZUNTU1NlbGVjdG9yPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuZGF0YVRhYmxlJzsgLy9cbiAgICAgICAgY29uc29sZS5sb2coZGF0YVRhYmxlQ1NTU2VsZWN0b3IgKTtcblxuICAgICAgICBsZXQgY29sTnVtPSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IrJyB0aGVhZCB0aCcpLmxlbmd0aDsgLy9idXR0b25zIGluc2VydCBwb3NpdGlvbiBuZWVkXG4gICAgICAgIEFQUC5zZXRPcHRzKHtcbiAgICAgICAgICAgIGRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2s6cm9vdC5kYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGljayxcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IG9yZGVyRGlyZWN0aXZlPU9wdHMuZGF0YVRhYmxlLm9yZGVyRGlyZWN0aXZlO1xuICAgICAgICAvKlxuICAgICAgICBpZih0eXBlb2Ygb3B0aW9uc1snb3JkZXJEaXJlY3RpdmUnXSE9J3VuZGVmaW5lZCcpe1xuICAgICAgICAgICAgb3JkZXJEaXJlY3RpdmU9b3B0aW9uc1snb3JkZXJEaXJlY3RpdmUnXTtcbiAgICAgICAgfVxuICAgICAgICAqL1xuXG4gICAgICAgIGlmKCFyb290LmRhdGFUYWJsZSl7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnWFhYWFhYWFhYWFhYWFhYWFhYWFggTmluY3MgRGF0YXRhYmxlJyk7XG4gICAgICAgICAgICByb290LmRhdGFUYWJsZT1cbiAgICAgICAgICAgICAgICAkKGRhdGFUYWJsZUNTU1NlbGVjdG9yKS5EYXRhVGFibGUoIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy8vY2RuLmRhdGF0YWJsZXMubmV0L3BsdWctaW5zLzEuMTAuMjQvaTE4bi9IdW5nYXJpYW4uanNvbidcbiAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAvL1wiYWpheFwiOiBcInt7YXNzZXQoJ2V4YXBtbGUyLmpzb24nKX19XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWpheFwiOntcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogT3B0cy5VUkwuZ2V0RGF0YVRhYmxlQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJy0tLSoqKioqKi0tLS0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhBUFAuUHJvZHVjdEFkbWluLmdldEFqYXhEYXRhSnNvbigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIGQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGE6IEFQUC5Qcm9kdWN0QWRtaW4uZ2V0QWpheERhdGFKc29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYWpheE1ldGhvZFxuICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogYWpheERhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB9ICxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyU2lkZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJjb2x1bW5EZWZzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRhcmdldHNcIjogY29sTnVtLTEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlbmRlclwiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIHJvdyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zPUFQUC5kYXRhdGFibGVBZGRSb3dFZGl0QnV0dG9uKDAsYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRzXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZW5kZXJcIjogZnVuY3Rpb24gKCBkYXRhLCB0eXBlLCByb3cgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSBcInNvcnRcIiA/IGRhdGEubGF0aW5pc2UoKSA6IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3sgXCJ2aXNpYmxlXCI6IGZhbHNlLCAgXCJ0YXJnZXRzXCI6IFsgMCBdIH1cbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uczp7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VsJywncGRmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZDogJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90ZXh0OiAnUHJpbnQgY3VycmVudCBwYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJzogJ3RpdGxlIGN1c3RvbSB0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2VUb3AnOiAnTWVzc2FnZSBPbiBUb3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvUHJpbnQ6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImNvbHVtbnNcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJpZFwifSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwibmFtZVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImhvb3JleWNhSWRcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1wiZGF0YVwiOiBcInByb2R1Y3RHcm91cFwifSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcImRhdGFcIjogXCJzdXBwbGllck5hbWVcIn0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcInByaWNlXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwiY3JlYXRlZF9hdFwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm9yZGVyXCI6IG9yZGVyRGlyZWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlU2F2ZVwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBcImRyYXdDYWxsYmFja1wiOiBmdW5jdGlvbiggc2V0dGluZ3MgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBBUFAuZGF0YXRhYmxlQWRkUm93QWN0aW9uKGRhdGFUYWJsZUNTU1NlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Quc2hvd1Jlc3VsdENvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RyYXdDYWxsYmFjaycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSApO1xuXG5cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnWFhYWFhYWFhYWFhYWFhYWFhYWFggdmFuIERhdGF0YWJsZScpO1xuICAgICAgICAgICAgLy9yb290LmRhdGFUYWJsZS5hamF4LnJlbG9hZCgpO1xuICAgICAgICAgICAgcm9vdC5kYXRhVGFibGUuZHJhdygpO1xuICAgICAgICB9XG5cblxuICAgIH1cbiAgICB0aGlzLnByb2Nlc3NSZXNwb25zZT1mdW5jdGlvbiAoKSB7XG5cbiAgICB9XG5cbiAgICB0aGlzLmNsaWNrU2F2ZUJ1dHRvbj1mdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgZGVidWcoJ1NhdmUgY2xpY2tlZCcpO1xuXG4gICAgICAgIGxldCBDU1NTZWxlY3RvckZvcm09T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5wcm9kdWN0Rm9ybSc7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICgkKENTU1NlbGVjdG9yRm9ybSlbMF0uY2hlY2tWYWxpZGl0eSgpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZhbGlkYXRvbiBmYWxzZScpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygndmFsaWRhdG9uIG9rJyk7XG4gICAgICAgICAgICAvL2RvIHlvdXIgYWpheCBzdWJtaXRpb24gaGVyZVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFqYXhEYXRhPXJvb3QuZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsKCcucHJvZHVjdEZvcm0nKTtcbiAgICAgICAgbGV0IGFqYXhVcmw9T3B0cy5VUkwuc3RvcmU7XG4gICAgICAgIGxldCBhamF4TWV0aG9kPVwiUE9TVFwiO1xuICAgICAgICBpZihyb290LlByb2R1Y3QuaWQpe1xuICAgICAgICAgICAgYWpheFVybD1PcHRzLlVSTC51cGRhdGUucmVwbGFjZSgnJWlkJScscm9vdC5Qcm9kdWN0LmlkKTtcbiAgICAgICAgICAgIC8vYWpheE1ldGhvZD1cIlBVVFwiO1xuICAgICAgICAgICAgLy9hamF4RGF0YT1uZXcgRm9ybURhdGEoJChDU1NTZWxlY3RvckZvcm0pWzBdKTtcbiAgICAgICAgICAgIGFqYXhEYXRhLmFwcGVuZCgnX21ldGhvZCcsJ1BVVCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVidWcoYWpheE1ldGhvZCk7XG4gICAgICAgIGRlYnVnKGFqYXhEYXRhKTtcblxuICAgICAgICAkLmFqYXgoe1xuICAgICAgICAgICAgdXJsOmFqYXhVcmwsXG4gICAgICAgICAgICBkYXRhOmFqYXhEYXRhLFxuICAgICAgICAgICAgdHlwZTphamF4TWV0aG9kLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ZmFsc2UsXG4gICAgICAgICAgICBwcm9jZXNzRGF0YTogZmFsc2UsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLy8nWC1DU1JGLVRPS0VOJzogJCgnaW5wdXRbbmFtZT1cIl90b2tlblwiXScpLnZhbCgpXG4gICAgICAgICAgICAgICAgJ1gtQ1NSRi1UT0tFTic6IE9wdHMudG9rZW5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHN1Y2Nlc3M6ZnVuY3Rpb24gKGRhdGEpe1xuICAgICAgICAgICAgICAgIGRlYnVnKGRhdGEpO1xuICAgICAgICAgICAgICAgIGlmKGRhdGEuc3VjY2Vzcz09dHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgIC8vT3B0cy5vbkFmdGVySW5pdFZpZXdEZXRhaWxzPXJvb3QuYXV0b2ZpbGxEZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICBPcHRzLmRhdGFUYWJsZS5vcmRlckRpcmVjdGl2ZT1bMCwgJ2Rlc2MnXTtcbiAgICAgICAgICAgICAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiU2lrZXJlcyByw7ZnesOtdMOpcyFcIiwgbWVzc2FnZTogYWpheERhdGEuZ2V0KCduYW1lJykrXCIgbmV2xbEgdGVybcOpayBlbG1lbnR2ZVwiLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5TVUNDRVNTLCB0aW1lb3V0OiA1MDAwIH0pO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICBBUFAubG9hZE1haW5Db250ZW50KE9wdHMuVVJMLmluZGV4Kyc/aW5pdD0wJyxyb290LmluaXRWaWV3TGlzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbn1cblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBRyxPQUFPQSxPQUFPLEtBQUcsV0FBVyxFQUFDO0VBQUEsSUFDdEJBLFFBQU8sMEJBQUFDLFVBQUE7SUFFVDtBQUNSO0FBQ0E7SUFDUSxTQUFBQyxTQUFhQyxJQUFJLEVBQUNDLE9BQU8sRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFBQUMsZUFBQSxPQUFBSixRQUFBO01BQ3ZCRyxLQUFBLEdBQUFFLFVBQUEsT0FBQUwsUUFBQSxHQUFNQyxJQUFJLEVBQUNDLE9BQU87TUFDbEIsSUFBRyxPQUFPQyxLQUFBLENBQUtHLE9BQU8sS0FBSSxXQUFXLEVBQUM7UUFDbENILEtBQUEsQ0FBS0csT0FBTyxHQUFDLEVBQUU7TUFDbkI7TUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsNEJBQTRCLENBQUM7TUFBQyxPQUFBTCxLQUFBO0lBQzlDO0lBQUNNLFNBQUEsQ0FB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LENBQUMsY0FBYyxDQUFDO0lBQzdELElBQUkzRixPQUFPLEdBQUMxQyxJQUFJLENBQUNRLEdBQUcsQ0FBQ00sS0FBSztJQUMxQixJQUFJb0osVUFBVSxHQUFDLE1BQU07SUFDckIsSUFBRzVJLElBQUksQ0FBQ3ZDLE9BQU8sQ0FBQzZELEVBQUUsRUFBQztNQUNmRixPQUFPLEdBQUMxQyxJQUFJLENBQUNRLEdBQUcsQ0FBQ08sTUFBTSxDQUFDNEIsT0FBTyxDQUFDLE1BQU0sRUFBQ3JCLElBQUksQ0FBQ3ZDLE9BQU8sQ0FBQzZELEVBQUUsQ0FBQztNQUN2RDtNQUNBO01BQ0EwRixRQUFRLENBQUNkLE1BQU0sQ0FBQyxTQUFTLEVBQUMsS0FBSyxDQUFDO0lBQ3BDO0lBRUF6RixLQUFLLENBQUNtSSxVQUFVLENBQUM7SUFDakJuSSxLQUFLLENBQUN1RyxRQUFRLENBQUM7SUFFZjdHLENBQUMsQ0FBQytDLElBQUksQ0FBQztNQUNIakIsR0FBRyxFQUFDYixPQUFPO01BQ1h4RCxJQUFJLEVBQUNvSixRQUFRO01BQ2IzRSxJQUFJLEVBQUN1RyxVQUFVO01BQ2ZPLFdBQVcsRUFBQyxLQUFLO01BQ2pCQyxXQUFXLEVBQUUsS0FBSztNQUNsQkMsT0FBTyxFQUFFO1FBQ0w7UUFDQSxjQUFjLEVBQUUzSyxJQUFJLENBQUNDO01BQ3pCLENBQUM7TUFFRDJLLE9BQU8sRUFBQyxTQUFSQSxPQUFPQSxDQUFXMUwsSUFBSSxFQUFDO1FBQ25CNkMsS0FBSyxDQUFDN0MsSUFBSSxDQUFDO1FBQ1gsSUFBR0EsSUFBSSxDQUFDMEwsT0FBTyxJQUFFLElBQUksRUFBQztVQUNsQjtVQUNBNUssSUFBSSxDQUFDbUIsU0FBUyxDQUFDQyxjQUFjLEdBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO1VBQ3pDcUcsS0FBSyxDQUFDNUcsTUFBTSxDQUFDO1lBQUU4RyxLQUFLLEVBQUUsbUJBQW1CO1lBQUVDLE9BQU8sRUFBRVUsUUFBUSxDQUFDdUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFDLHVCQUF1QjtZQUFFL0MsTUFBTSxFQUFFQyxZQUFZLENBQUNDLE9BQU87WUFBRUMsT0FBTyxFQUFFO1VBQUssQ0FBQyxDQUFDO1VBQ3BLO1FBQ2dCO01BQ0o7SUFDSixDQUFDLENBQUM7RUFDTixDQUFDO0FBRUwsQ0FBQyIsImlnbm9yZUxpc3QiOltdLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYWRtaW4vcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/admin/product.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/admin/profitCenter.js" +/*!********************************************!*\ + !*** ./resources/js/admin/profitCenter.js ***! + \********************************************/ +() { + +eval("{function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nif (typeof DataModelProfitCenter === 'undefined') {\n var _DataModelProfitCenter = /*#__PURE__*/function (_DataModel) {\n /*\r\n * Constructor\r\n */\n function _DataModelProfitCenter(data, options) {\n var _this;\n _classCallCheck(this, _DataModelProfitCenter);\n _this = _callSuper(this, _DataModelProfitCenter, [data, options]);\n if (typeof _this.contact === \"undefined\") {\n _this.contact = [];\n }\n if (typeof _this.address === \"undefined\") {\n _this.address = [];\n }\n console.log(_this.constructor.name + ' constructor called');\n return _this;\n }\n _inherits(_DataModelProfitCenter, _DataModel);\n return _createClass(_DataModelProfitCenter);\n }(DataModel);\n ;\n window.DataModelProfitCenter = _DataModelProfitCenter;\n}\nwindow.ProfitCenterAdmin = function (options, ProfitCenterItem) {\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n var Opts = {\n token: null,\n containerCssSelector: '.containerProfitCenter',\n testMode: false,\n URL: {\n getDataTableContent: '',\n index: '',\n show: '',\n edit: '',\n create: '',\n store: '',\n update: '',\n destroy: ''\n },\n dataTable: {\n orderDirective: [1, 'asc']\n },\n onAfterInitViewDetails: function onAfterInitViewDetails() {}\n };\n var ProfitCenter = {};\n var root = this;\n var contactPopupWorkflow = 'new';\n var addressPopupWorkflow = 'new';\n var CSSSelectorForm = '';\n var dataTableCSSSelector = '';\n /*\r\n * Constructor\r\n */\n this.construct = function (options, ProfitCenterItem) {\n console.log('ProfitCenterAdmin constructor called');\n $.extend(Opts, options);\n if (!ProfitCenterItem) {\n console.log('ProfitCentert letre kellet hozni ');\n if (!APP.ProfitCenter) {\n APP.ProfitCenter = new window.DataModelProfitCenter();\n }\n root.ProfitCenter = APP.ProfitCenter;\n }\n CSSSelectorForm = Opts.containerCssSelector + ' .profitCenterForm';\n };\n this.getOpts = function () {\n return Opts;\n };\n this.getData = function () {\n return root.ProfitCenter;\n };\n this.init = function (options, ProfitCenterItem) {\n $.extend(Opts, options);\n if (Opts.testMode) {\n return root.testMode();\n }\n if (ProfitCenterItem) {\n root.ProfitCenter = ProfitCenterItem;\n }\n root.initViewList();\n };\n this.clickNew = function () {\n debug('clickNew');\n APP.loadMainContent(Opts.URL.create, root.clickNewCallBack);\n };\n this.clickNewCallBack = function () {\n debug('callbackNew');\n root.ProfitCenter = new window.DataModelProfitCenter();\n root.initViewDetails();\n };\n this.initViewDetails = function (options, SupplierItem) {\n debug('**call initViewDetails ');\n /**\r\n * Contact Popup setup\r\n */\n if (!APP.ContactPopUp) {\n console.log('nincs APP.ContactPopUp');\n APP.ContactPopUp = new window.ContactPopUp();\n } else {\n console.log('mar van APP.ContactPopUp');\n }\n APP.ContactPopUp.init({\n active: true,\n onAfterSave: root.contactAction\n });\n root.renderContact();\n $(CSSSelectorForm + ' .buttonNewContact').bind('click', function () {\n APP.ProfitCenterAdmin.setContactPopupWorkflow('new');\n APP.ContactPopUp.clearData();\n APP.ContactPopUp.show();\n });\n /**\r\n * Address Popup setup\r\n */\n if (!APP.AddressPopUp) {\n console.log('nincs APP.AddressPopUp');\n APP.AddressPopUp = new window.AddressPopUp();\n } else {\n console.log('mar van APP.AddressPopUp');\n }\n APP.AddressPopUp.init({\n active: true,\n onAfterSave: root.addressAction\n });\n root.renderAddress();\n $(CSSSelectorForm + ' .buttonNewAddress').bind('click', function () {\n APP.ProfitCenterAdmin.setAddressPopupWorkflow('new');\n APP.AddressPopUp.clearData();\n APP.AddressPopUp.show();\n });\n /**\r\n *\r\n */\n\n $('[data-toggle=\"tooltip\"]').tooltip();\n initRadioButtons({\n onChange: function onChange(value, node) {\n debug(value);\n debug(node);\n /*\r\n if(node==='profitCenterMultiAddress'){\r\n if(value==1){\r\n $('.containerMultiAddress').removeClass('d-none');\r\n }else{\r\n $('.containerMultiAddress').addClass('d-none');\r\n }\r\n }\r\n */\n if (node === 'addressEqual') {\n if (value == 1) {\n $(CSSSelectorForm + ' .containerMultiAddress').addClass('d-none');\n $(CSSSelectorForm + ' .containerMultiAddressSwitch').addClass('d-none');\n } else {\n $(CSSSelectorForm + ' .containerMultiAddress').removeClass('d-none');\n $(CSSSelectorForm + ' .containerMultiAddressSwitch').removeClass('d-none');\n }\n }\n }\n });\n $(CSSSelectorForm + \" :input\").inputmask({\n \"onincomplete\": function onincomplete() {\n console.log($(this).data('required'));\n if ($(this).val().length > 0 || $(this).data('required') === true) {\n $(this).addClass('is-invalid');\n }\n },\n \"oncomplete\": function oncomplete() {\n $(this).removeClass('is-invalid');\n $(this).addClass('is-valid');\n },\n \"oncleared\": function oncleared() {\n console.log('cleared');\n $(this).removeClass('is-invalid');\n }\n });\n $(CSSSelectorForm + ' button.FormSaveButton').off('click');\n $(CSSSelectorForm + ' button.FormSaveButton').on('click', root.clickSaveButton);\n /*\r\n $(\"input[name=logoFile]\").change(function(){\r\n setImageFromLocal(this,Opts.containerCssSelector+' .imageLogo');\r\n });\r\n */\n\n //Opts.onAfterInitViewDetails();\n debug('**end initViewDetails ');\n };\n this.setDetailsViewData = function () {\n debug('setDetailsViewData');\n var CSSSelectorForm = Opts.containerCssSelector + ' .profitCenterForm';\n var needToSet = ['name', 'hooreycaId', 'nameId', 'email', 'postCode', 'city', 'street', 'phone', 'mobil'];\n $.each(needToSet, function () {\n // debug(this); //alapadatok beallitasanak logolasa\n if (typeof root.ProfitCenter[this] != 'undefined') {\n /* //alapadatok beallitasanak logolasa\r\n debug(root.ProfitCenter[this]);\r\n debug(CSSSelectorForm+' input[name='+this+']');\r\n debug($(CSSSelectorForm+' input[name='+this+']'));\r\n */\n $(CSSSelectorForm + ' input[name=' + this + ']').val(root.ProfitCenter[this]);\n }\n });\n if (typeof root.ProfitCenter['note'] != 'undefined') {\n $(CSSSelectorForm + ' textarea[name=note]').val(root.ProfitCenter.note);\n }\n $(CSSSelectorForm + ' *[data-toggle=canSee][data-title=' + root.ProfitCenter.canSee + ']').click();\n $(CSSSelectorForm + ' *[data-toggle=hooreycaDataActive][data-title=' + root.ProfitCenter.hooreycaDataActive + ']').click();\n if (typeof root.ProfitCenter['logoFile'] != 'undefined' && root.ProfitCenter['logoFile']) {\n $(CSSSelectorForm + ' img.imageLogo').attr('src', root.ProfitCenter['logoFile']);\n }\n $(CSSSelectorForm + ' *[data-toggle=addressEqual][data-title=' + root.ProfitCenter.addressEqual + ']').click();\n $(CSSSelectorForm + ' *[data-toggle=multiAddress][data-title=' + root.ProfitCenter.multiAddress + ']').click();\n /*debug(root.ProfitCenter.address.length);\r\n if(root.ProfitCenter.address.length>0){\r\n $(CSSSelectorForm+' *[data-toggle=addressEqual][data-title=0]').click();\r\n if(root.ProfitCenter.address.length>1){\r\n $(CSSSelectorForm+' *[data-toggle=multiAddress][data-title=1]').click();\r\n }\r\n }\r\n */\n var supplier = [];\n $.each(root.ProfitCenter.suppliers, function () {\n supplier.push(this.name);\n });\n //$(CSSSelectorForm+' .profitCenterSelect').val(profitCenter).change();\n $.each(supplier, function () {\n $('input[value=\"' + $.escapeSelector(this) + '\"]').prop(\"checked\", true);\n });\n };\n this.resetContactTable = function () {\n $(CSSSelectorForm + ' .contactTable tbody tr').remove();\n root.renderContact();\n };\n this.renderContact = function () {\n var rowNum = 1;\n console.log('renderingContacts');\n $.each(root.ProfitCenter.getData('contact'), function () {\n var contactData = this;\n contactData.rowNum = rowNum;\n var template = $('template[data-name=\"profitCenterContactTableRow\"]').html();\n var render = Mustache.render(template, contactData);\n $('.contactTable tbody').append(render);\n rowNum++;\n });\n root.bindContactClickAction();\n };\n this.bindContactClickAction = function () {\n $('.contactTable .buttonDelete').unbind('click');\n $('.contactTable .buttonDelete').bind('click', root.contactDeleteClick);\n $('.contactTable .buttonEdit').unbind('click');\n $('.contactTable .buttonEdit').bind('click', root.contactEditClick);\n };\n this.contactDeleteClick = function (event) {\n var row = $(this).closest('tr');\n var id = row.find('input[name=contactId]').val();\n console.log(id);\n root.ProfitCenter.contact = root.ProfitCenter.contact.filter(function (value, index, arr) {\n if (value.id !== id * 1) {\n return true;\n }\n return false;\n });\n console.log(root.ProfitCenter.contact);\n row.remove();\n root.resetContactTable();\n };\n this.getContactPopupWorkflow = function () {\n return contactPopupWorkflow;\n };\n this.setContactPopupWorkflow = function (status) {\n contactPopupWorkflow = status;\n };\n this.contactEditClick = function (event) {\n console.log(this);\n var row = $(this).closest('tr');\n var id = row.find('input[name=contactId]').val();\n console.log(id);\n root.setContactPopupWorkflow('edit');\n APP.ContactPopUp.loadData(id);\n };\n this.contactAction = function (contactData) {\n console.log('nah most kellene meg valamit csinalni.');\n if (root.getContactPopupWorkflow() == 'new') {\n root.addContact(contactData);\n } else if (root.getContactPopupWorkflow() == 'edit') {\n root.editContact(contactData.id, contactData);\n }\n };\n this.addContact = function (contactData) {\n /*\r\n fel kell venni a sorba\r\n */\n root.ProfitCenter.contact.push(contactData);\n contactData.rowNum = root.ProfitCenter.contact.length;\n var template = $('template[data-name=\"profitCenterContactTableRow\"]').html();\n var render = Mustache.render(template, contactData);\n $(CSSSelectorForm + ' .contactTable tbody').append(render);\n root.bindContactClickAction();\n Toast.enableTimers(false);\n Toast.create({\n title: \"Kapcsolat tartó hozzáadva!\",\n message: contactData.name + \" nevű kapocsolattartó hozzáadva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.editContact = function (id, contactData) {\n var newContacts = [];\n $.each(root.ProfitCenter.getData('contact'), function (index) {\n if (this.id == id) {\n newContacts.push(contactData);\n } else {\n newContacts.push(this);\n }\n });\n root.ProfitCenter.contact = newContacts;\n root.resetContactTable();\n Toast.create({\n title: \"Kapcsolat adatai módosítva!\",\n message: contactData.name + \" nevű kapocsolattartó módosítva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n\n /***************\r\n *\r\n * Address function\r\n *\r\n */\n this.resetAddressTable = function () {\n $(CSSSelectorForm + ' .addressTable tbody tr').remove();\n root.renderAddress();\n };\n this.renderAddress = function () {\n var rowNum = 1;\n console.log('renderingAddress');\n $.each(root.ProfitCenter.getData('address'), function () {\n var itemData = this;\n itemData.rowNum = rowNum;\n var template = $('template[data-name=\"profitCenterAddressTableRow\"]').html();\n debug(itemData);\n var render = Mustache.render(template, itemData);\n $('.addressTable tbody').append(render);\n rowNum++;\n });\n root.bindAddressClickAction();\n };\n this.bindAddressClickAction = function () {\n $('.addressTable .buttonDelete').unbind('click');\n $('.addressTable .buttonDelete').bind('click', root.addressDeleteClick);\n $('.addressTable .buttonEdit').unbind('click');\n $('.addressTable .buttonEdit').bind('click', root.addressEditClick);\n };\n this.addressDeleteClick = function (event) {\n var row = $(this).closest('tr');\n var id = row.find('input[name=\"addressId[]\"]').val();\n console.log(id);\n root.ProfitCenter.address = root.ProfitCenter.address.filter(function (value, index, arr) {\n if (value.id != id) return true;\n });\n console.log(root.ProfitCenter.address);\n row.remove();\n root.resetAddressTable();\n };\n this.getAddressPopupWorkflow = function () {\n return addressPopupWorkflow;\n };\n this.setAddressPopupWorkflow = function (status) {\n addressPopupWorkflow = status;\n };\n this.addressEditClick = function (event) {\n console.log(this);\n var row = $(this).closest('tr');\n var id = row.find('input[name=\"addressId[]\"]').val();\n console.log(id);\n root.setAddressPopupWorkflow('edit');\n APP.AddressPopUp.loadData(id);\n };\n this.addressAction = function (itemData) {\n console.log('nah most kellene meg valamit csinalni.');\n if (root.getAddressPopupWorkflow() == 'new') {\n root.addAddress(itemData);\n } else if (root.getAddressPopupWorkflow() == 'edit') {\n root.editAddress(itemData.id, itemData);\n }\n };\n this.addAddress = function (ItemData) {\n /*\r\n fel kell venni a sorba\r\n */\n root.ProfitCenter.address.push(ItemData);\n ItemData.rowNum = root.ProfitCenter.address.length;\n var template = $('template[data-name=\"profitCenterAddressTableRow\"]').html();\n var render = Mustache.render(template, ItemData);\n $(CSSSelectorForm + ' .addressTable tbody').append(render);\n root.bindAddressClickAction();\n Toast.enableTimers(false);\n Toast.create({\n title: \"Cím hozzáadva!\",\n message: ItemData.street + \" hozzáadva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.editAddress = function (id, itemData) {\n var newItem = [];\n $.each(root.ProfitCenter.getData('address'), function (index) {\n if (this.id == id) {\n newItem.push(itemData);\n } else {\n newItem.push(this);\n }\n });\n root.ProfitCenter.address = newItem;\n root.resetAddressTable();\n Toast.create({\n title: \"cím adatai módosítva!\",\n message: itemData.street + \" módosítva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.initViewList = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n debug('listview inicialization');\n dataTableCSSSelector = Opts.containerCssSelector + ' .dataTable'; //\n\n var colNum = $(dataTableCSSSelector + ' thead th').length; //buttons insert position need\n APP.setOpts({\n datatableActionButtonClickCallBack: root.clickNew,\n datatableRowActionButtonClickCallBack: root.datatableRowActionButtonClick\n });\n var orderDirective = Opts.dataTable.orderDirective;\n if (typeof options['orderDirective'] != 'undefined') {\n orderDirective = options['orderDirective'];\n }\n $(dataTableCSSSelector).DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": Opts.URL.getDataTableContent,\n \"columnDefs\": [{\n \"targets\": colNum - 1,\n \"render\": function render(data, type, row) {\n var buttons = APP.datatableAddRowTrashButton(0, arguments);\n buttons += APP.datatableAddRowEditButton(0, arguments);\n return buttons;\n }\n }, {\n \"targets\": 1,\n \"render\": function render(data, type, row) {\n return type === \"sort\" ? data.latinise() : data;\n }\n }\n //{ \"visible\": false, \"targets\": [ 0 ] }\n ],\n buttons: {\n buttons: ['excel', 'pdf', {\n extend: 'print',\n //text: 'Print current page',\n 'title': 'title custom text',\n 'messageTop': 'Message On Top',\n autoPrint: true\n }, /**/\n\n {\n text: 'Új felvitele',\n className: 'btn btn-success newItem',\n attr: {\n /*\r\n data:{\r\n a:1,\r\n b:2\r\n }\r\n */\n 'data': 'newItem'\n },\n init: function init(api, node, config) {\n $(node).removeClass('ui-button');\n },\n action: function action(e, dt, node, config) {\n APP.datatableActionButtonClickCallBack(arguments);\n /* console.log(e);\r\n console.log(dt);\r\n console.log(node);\r\n console.log(config);*/\n }\n }]\n },\n \"columns\": [{\n \"data\": \"id\"\n }, {\n \"data\": \"name\"\n }, {\n \"data\": \"hooreycaId\"\n }, {\n \"data\": \"nameId\"\n }, {\n \"data\": \"created_at\"\n }, null],\n \"order\": orderDirective,\n //\"stateSave\": true,\n \"drawCallback\": function drawCallback(settings) {\n APP.datatableAddRowAction(dataTableCSSSelector);\n }\n });\n debug('listview end');\n };\n this.datatableRowActionButtonClick = function (event) {\n debug('datatableRowActionButtonClick');\n var node = $(event[0].currentTarget);\n var row = $(dataTableCSSSelector).DataTable().row(node.parents('tr'));\n var rowData = row.data();\n var actionName = 'datatableRowAction' + node.data('buttontype').capitalize();\n if (typeof root[actionName] === \"function\") {\n return root[actionName](rowData, node);\n }\n };\n this.datatableRowActionEdit = function (rowData, node) {\n console.log('datatableRowActionEdit Called');\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n var ajaxUrl = Opts.URL.edit.replace('%id%', rowData.id);\n /*\r\n console.log(Opts.URL);\r\n console.log(ajaxUrl);\r\n */\n APP.loadMainContent(ajaxUrl, root.initViewDetails);\n console.log('datatableRowActionEdit End');\n };\n this.datatableRowActionDelete = function (rowData, node) {\n console.log('datatableRowActionDelete Called');\n var row = $(dataTableCSSSelector).DataTable().row(node.parents('tr'));\n var ajaxData = {};\n var ajaxUrl = Opts.URL.destroy.replace('%id%', rowData.id);\n ajaxData._token = $('input[name=_token]').val();\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n method: \"DELETE\",\n success: function success(data) {\n if (data.success == true) {\n row.remove().draw();\n }\n }\n });\n };\n this.clickSaveButton = function (event) {\n debug('Save clicked');\n event.preventDefault();\n debug(CSSSelectorForm);\n debug($(CSSSelectorForm));\n if ($(CSSSelectorForm)[0].checkValidity() === false) {\n console.log('validaton false');\n $(CSSSelectorForm).addClass('was-validated');\n $(CSSSelectorForm)[0].reportValidity();\n Toast.create({\n title: \"Validációs hiba!\",\n message: \"Kérjük, töltse ki a kötelező mezőket!\",\n status: TOAST_STATUS.DANGER,\n timeout: 5000\n });\n event.stopPropagation();\n return;\n } else {\n console.log('validaton ok');\n $(CSSSelectorForm).removeClass('was-validated');\n //do your ajax submition here\n }\n var ajaxData = root.formDataToDataObjectAPICall(CSSSelectorForm);\n var ajaxUrl = Opts.URL.store;\n var ajaxMethod = \"POST\";\n if (root.ProfitCenter.id) {\n ajaxUrl = Opts.URL.update.replace('%id%', root.ProfitCenter.id);\n //ajaxMethod=\"PUT\";\n //ajaxData=new FormData($(CSSSelectorForm)[0]);\n ajaxData.append('_method', 'PUT');\n }\n /*\r\n debug(ajaxUrl);\r\n debug(ajaxMethod);\r\n debug(ajaxData.entries());\r\n for (var pair of ajaxData.entries()) {\r\n console.log(pair[0]+ ', ' + pair[1]);\r\n }\r\n */\n\n console.table(Object.fromEntries(ajaxData));\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n type: ajaxMethod,\n contentType: false,\n processData: false,\n headers: {\n 'X-CSRF-TOKEN': $('input[name=\"_token\"]').val()\n },\n success: function success(data) {\n debug(data);\n if (data.success == true) {\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n Opts.dataTable.orderDirective = [0, 'desc'];\n Toast.create({\n title: \"Sikeres rögzítés!\",\n message: ajaxData.get('name') + \" nevű profitcenter elmentve\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n APP.loadMainContent(Opts.URL.index + '?init=0', root.initViewList);\n }\n }\n });\n };\n this.formDataToDataObjectAPICall = function (CSSSelectorForm) {\n var ajaxData = new FormData($(CSSSelectorForm)[0]);\n /*\r\n $.each(ajaxData.getAll('productGroup'),function(key,value){\r\n ajaxData.append('productGroup[]',value);\r\n })\r\n */\n $.each(ajaxData.getAll('contactId'), function (key, value) {\n ajaxData.append('contactId[]', value);\n });\n ajaxData.append('_token', $('input[name=_token]').val());\n $(CSSSelectorForm + ' input[data-inputmask]').each(function () {\n var indexKey = $(this).attr('name');\n if (ajaxData.get(indexKey)) {\n ajaxData.set(indexKey, ajaxData.get(indexKey).replace(/[_ ]+$/g, \"\"));\n }\n });\n $.each(ajaxData.getAll('supplier'), function (key, value) {\n ajaxData.append('supplier[]', value);\n });\n return ajaxData;\n };\n this.construct(options, ProfitCenterItem);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhTW9kZWxQcm9maXRDZW50ZXIiLCJfRGF0YU1vZGVsIiwiX0RhdGFNb2RlbFByb2ZpdENlbnRlciIsImRhdGEiLCJvcHRpb25zIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiY29udGFjdCIsImFkZHJlc3MiLCJjb25zb2xlIiwibG9nIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwiRGF0YU1vZGVsIiwid2luZG93IiwiUHJvZml0Q2VudGVyQWRtaW4iLCJQcm9maXRDZW50ZXJJdGVtIiwiT3B0cyIsInRva2VuIiwiY29udGFpbmVyQ3NzU2VsZWN0b3IiLCJ0ZXN0TW9kZSIsIlVSTCIsImdldERhdGFUYWJsZUNvbnRlbnQiLCJpbmRleCIsInNob3ciLCJlZGl0IiwiY3JlYXRlIiwic3RvcmUiLCJ1cGRhdGUiLCJkZXN0cm95IiwiZGF0YVRhYmxlIiwib3JkZXJEaXJlY3RpdmUiLCJvbkFmdGVySW5pdFZpZXdEZXRhaWxzIiwiUHJvZml0Q2VudGVyIiwicm9vdCIsImNvbnRhY3RQb3B1cFdvcmtmbG93IiwiYWRkcmVzc1BvcHVwV29ya2Zsb3ciLCJDU1NTZWxlY3RvckZvcm0iLCJkYXRhVGFibGVDU1NTZWxlY3RvciIsImNvbnN0cnVjdCIsIiQiLCJleHRlbmQiLCJBUFAiLCJnZXRPcHRzIiwiZ2V0RGF0YSIsImluaXQiLCJpbml0Vmlld0xpc3QiLCJjbGlja05ldyIsImRlYnVnIiwibG9hZE1haW5Db250ZW50IiwiY2xpY2tOZXdDYWxsQmFjayIsImluaXRWaWV3RGV0YWlscyIsIlN1cHBsaWVySXRlbSIsIkNvbnRhY3RQb3BVcCIsImFjdGl2ZSIsIm9uQWZ0ZXJTYXZlIiwiY29udGFjdEFjdGlvbiIsInJlbmRlckNvbnRhY3QiLCJiaW5kIiwic2V0Q29udGFjdFBvcHVwV29ya2Zsb3ciLCJjbGVhckRhdGEiLCJBZGRyZXNzUG9wVXAiLCJhZGRyZXNzQWN0aW9uIiwicmVuZGVyQWRkcmVzcyIsInNldEFkZHJlc3NQb3B1cFdvcmtmbG93IiwidG9vbHRpcCIsImluaXRSYWRpb0J1dHRvbnMiLCJvbkNoYW5nZSIsInZhbHVlIiwibm9kZSIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJpbnB1dG1hc2siLCJvbmluY29tcGxldGUiLCJ2YWwiLCJsZW5ndGgiLCJvbmNvbXBsZXRlIiwib25jbGVhcmVkIiwib2ZmIiwib24iLCJjbGlja1NhdmVCdXR0b24iLCJzZXREZXRhaWxzVmlld0RhdGEiLCJuZWVkVG9TZXQiLCJlYWNoIiwibm90ZSIsImNhblNlZSIsImNsaWNrIiwiaG9vcmV5Y2FEYXRhQWN0aXZlIiwiYXR0ciIsImFkZHJlc3NFcXVhbCIsIm11bHRpQWRkcmVzcyIsInN1cHBsaWVyIiwic3VwcGxpZXJzIiwicHVzaCIsImVzY2FwZVNlbGVjdG9yIiwicHJvcCIsInJlc2V0Q29udGFjdFRhYmxlIiwicmVtb3ZlIiwicm93TnVtIiwiY29udGFjdERhdGEiLCJ0ZW1wbGF0ZSIsImh0bWwiLCJyZW5kZXIiLCJNdXN0YWNoZSIsImFwcGVuZCIsImJpbmRDb250YWN0Q2xpY2tBY3Rpb24iLCJ1bmJpbmQiLCJjb250YWN0RGVsZXRlQ2xpY2siLCJjb250YWN0RWRpdENsaWNrIiwiZXZlbnQiLCJyb3ciLCJjbG9zZXN0IiwiaWQiLCJmaW5kIiwiZmlsdGVyIiwiYXJyIiwiZ2V0Q29udGFjdFBvcHVwV29ya2Zsb3ciLCJzdGF0dXMiLCJsb2FkRGF0YSIsImFkZENvbnRhY3QiLCJlZGl0Q29udGFjdCIsIlRvYXN0IiwiZW5hYmxlVGltZXJzIiwidGl0bGUiLCJtZXNzYWdlIiwiVE9BU1RfU1RBVFVTIiwiU1VDQ0VTUyIsInRpbWVvdXQiLCJuZXdDb250YWN0cyIsInJlc2V0QWRkcmVzc1RhYmxlIiwiaXRlbURhdGEiLCJiaW5kQWRkcmVzc0NsaWNrQWN0aW9uIiwiYWRkcmVzc0RlbGV0ZUNsaWNrIiwiYWRkcmVzc0VkaXRDbGljayIsImdldEFkZHJlc3NQb3B1cFdvcmtmbG93IiwiYWRkQWRkcmVzcyIsImVkaXRBZGRyZXNzIiwiSXRlbURhdGEiLCJzdHJlZXQiLCJuZXdJdGVtIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiY29sTnVtIiwic2V0T3B0cyIsImRhdGF0YWJsZUFjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2siLCJkYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrIiwiZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2siLCJEYXRhVGFibGUiLCJsYW5ndWFnZSIsInVybCIsInR5cGUiLCJidXR0b25zIiwiZGF0YXRhYmxlQWRkUm93VHJhc2hCdXR0b24iLCJkYXRhdGFibGVBZGRSb3dFZGl0QnV0dG9uIiwibGF0aW5pc2UiLCJhdXRvUHJpbnQiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwiYXBpIiwiY29uZmlnIiwiYWN0aW9uIiwiZSIsImR0IiwiZHJhd0NhbGxiYWNrIiwic2V0dGluZ3MiLCJkYXRhdGFibGVBZGRSb3dBY3Rpb24iLCJjdXJyZW50VGFyZ2V0IiwicGFyZW50cyIsInJvd0RhdGEiLCJhY3Rpb25OYW1lIiwiY2FwaXRhbGl6ZSIsImRhdGF0YWJsZVJvd0FjdGlvbkVkaXQiLCJhamF4VXJsIiwicmVwbGFjZSIsImRhdGF0YWJsZVJvd0FjdGlvbkRlbGV0ZSIsImFqYXhEYXRhIiwiX3Rva2VuIiwiYWpheCIsIm1ldGhvZCIsInN1Y2Nlc3MiLCJkcmF3IiwicHJldmVudERlZmF1bHQiLCJjaGVja1ZhbGlkaXR5IiwicmVwb3J0VmFsaWRpdHkiLCJEQU5HRVIiLCJzdG9wUHJvcGFnYXRpb24iLCJmb3JtRGF0YVRvRGF0YU9iamVjdEFQSUNhbGwiLCJhamF4TWV0aG9kIiwidGFibGUiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJoZWFkZXJzIiwiZ2V0IiwiRm9ybURhdGEiLCJnZXRBbGwiLCJrZXkiLCJpbmRleEtleSIsInNldCJdLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYWRtaW4vcHJvZml0Q2VudGVyLmpzP2NkMTUiXSwic291cmNlc0NvbnRlbnQiOlsiaWYodHlwZW9mIERhdGFNb2RlbFByb2ZpdENlbnRlcj09PSd1bmRlZmluZWQnKXtcclxuICAgIGNsYXNzIERhdGFNb2RlbFByb2ZpdENlbnRlciBleHRlbmRzIERhdGFNb2RlbHtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yIChkYXRhLG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgc3VwZXIoZGF0YSxvcHRpb25zKVxyXG4gICAgICAgICAgICBpZih0eXBlb2YgdGhpcy5jb250YWN0ID09PVwidW5kZWZpbmVkXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWN0PVtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHR5cGVvZiB0aGlzLmFkZHJlc3MgPT09XCJ1bmRlZmluZWRcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZHJlc3M9W107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jb25zdHJ1Y3Rvci5uYW1lKycgY29uc3RydWN0b3IgY2FsbGVkJyk7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICB3aW5kb3cuRGF0YU1vZGVsUHJvZml0Q2VudGVyPURhdGFNb2RlbFByb2ZpdENlbnRlcjtcclxufVxyXG5cclxud2luZG93LlByb2ZpdENlbnRlckFkbWluPWZ1bmN0aW9uIChvcHRpb25zLFByb2ZpdENlbnRlckl0ZW0pIHtcclxuICAgIC8qXHJcbiAgICAgKiBWYXJpYWJsZXMgYWNjZXNzaWJsZVxyXG4gICAgICogaW4gdGhlIGNsYXNzXHJcbiAgICAgKi9cclxuICAgIGxldCBPcHRzID0ge1xyXG4gICAgICAgIHRva2VuOiBudWxsLFxyXG4gICAgICAgIGNvbnRhaW5lckNzc1NlbGVjdG9yOiAnLmNvbnRhaW5lclByb2ZpdENlbnRlcicsXHJcbiAgICAgICAgdGVzdE1vZGU6IGZhbHNlLFxyXG4gICAgICAgIFVSTDoge1xyXG4gICAgICAgICAgICBnZXREYXRhVGFibGVDb250ZW50OiAnJyxcclxuICAgICAgICAgICAgaW5kZXg6ICcnLFxyXG4gICAgICAgICAgICBzaG93OiAnJyxcclxuICAgICAgICAgICAgZWRpdDogJycsXHJcbiAgICAgICAgICAgIGNyZWF0ZTogJycsXHJcbiAgICAgICAgICAgIHN0b3JlOiAnJyxcclxuICAgICAgICAgICAgdXBkYXRlOiAnJyxcclxuICAgICAgICAgICAgZGVzdHJveTogJycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhVGFibGU6IHtcclxuICAgICAgICAgICAgb3JkZXJEaXJlY3RpdmU6IFsxLCAnYXNjJ11cclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQWZ0ZXJJbml0Vmlld0RldGFpbHM6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgbGV0IFByb2ZpdENlbnRlciA9IHt9O1xyXG4gICAgbGV0IHJvb3QgPSB0aGlzO1xyXG4gICAgbGV0IGNvbnRhY3RQb3B1cFdvcmtmbG93ID0gJ25ldyc7XHJcbiAgICBsZXQgYWRkcmVzc1BvcHVwV29ya2Zsb3cgPSAnbmV3JztcclxuICAgIGxldCBDU1NTZWxlY3RvckZvcm09Jyc7XHJcbiAgICBsZXQgZGF0YVRhYmxlQ1NTU2VsZWN0b3I9Jyc7XHJcbiAgICAvKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqL1xyXG4gICAgdGhpcy5jb25zdHJ1Y3QgPSBmdW5jdGlvbiAob3B0aW9ucywgUHJvZml0Q2VudGVySXRlbSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdQcm9maXRDZW50ZXJBZG1pbiBjb25zdHJ1Y3RvciBjYWxsZWQnKTtcclxuICAgICAgICAkLmV4dGVuZChPcHRzLCBvcHRpb25zKTtcclxuICAgICAgICBpZiAoIVByb2ZpdENlbnRlckl0ZW0pIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1Byb2ZpdENlbnRlcnQgbGV0cmUga2VsbGV0IGhvem5pICcpO1xyXG4gICAgICAgICAgICBpZiAoIUFQUC5Qcm9maXRDZW50ZXIpIHtcclxuICAgICAgICAgICAgICAgIEFQUC5Qcm9maXRDZW50ZXIgPSBuZXcgd2luZG93LkRhdGFNb2RlbFByb2ZpdENlbnRlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJvb3QuUHJvZml0Q2VudGVyID0gQVBQLlByb2ZpdENlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgQ1NTU2VsZWN0b3JGb3JtPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAucHJvZml0Q2VudGVyRm9ybSc7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRPcHRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBPcHRzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXREYXRhPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiByb290LlByb2ZpdENlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXQ9ZnVuY3Rpb24gKG9wdGlvbnMsUHJvZml0Q2VudGVySXRlbSl7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIGlmKE9wdHMudGVzdE1vZGUpe1xyXG4gICAgICAgICAgICByZXR1cm4gcm9vdC50ZXN0TW9kZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihQcm9maXRDZW50ZXJJdGVtKXtcclxuICAgICAgICAgICAgcm9vdC5Qcm9maXRDZW50ZXI9UHJvZml0Q2VudGVySXRlbVxyXG4gICAgICAgIH1cclxuICAgICAgICByb290LmluaXRWaWV3TGlzdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGlja05ldz1mdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZGVidWcoJ2NsaWNrTmV3Jyk7XHJcbiAgICAgICAgQVBQLmxvYWRNYWluQ29udGVudChPcHRzLlVSTC5jcmVhdGUscm9vdC5jbGlja05ld0NhbGxCYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsaWNrTmV3Q2FsbEJhY2s9ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGRlYnVnKCdjYWxsYmFja05ldycpO1xyXG4gICAgICAgIHJvb3QuUHJvZml0Q2VudGVyPW5ldyB3aW5kb3cuRGF0YU1vZGVsUHJvZml0Q2VudGVyKCk7XHJcbiAgICAgICAgcm9vdC5pbml0Vmlld0RldGFpbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRWaWV3RGV0YWlscz1mdW5jdGlvbiAob3B0aW9ucyxTdXBwbGllckl0ZW0pe1xyXG4gICAgICAgIGRlYnVnKCcqKmNhbGwgaW5pdFZpZXdEZXRhaWxzICcpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbnRhY3QgUG9wdXAgc2V0dXBcclxuICAgICAgICAgKi9cclxuICAgICAgICBpZighQVBQLkNvbnRhY3RQb3BVcCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCduaW5jcyBBUFAuQ29udGFjdFBvcFVwJylcclxuICAgICAgICAgICAgQVBQLkNvbnRhY3RQb3BVcCA9IG5ldyB3aW5kb3cuQ29udGFjdFBvcFVwKCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdtYXIgdmFuICBBUFAuQ29udGFjdFBvcFVwJylcclxuICAgICAgICB9XHJcbiAgICAgICAgQVBQLkNvbnRhY3RQb3BVcC5pbml0KHtcclxuICAgICAgICAgICAgYWN0aXZlOnRydWUsXHJcbiAgICAgICAgICAgIG9uQWZ0ZXJTYXZlOnJvb3QuY29udGFjdEFjdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvb3QucmVuZGVyQ29udGFjdCgpO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLmJ1dHRvbk5ld0NvbnRhY3QnKS5iaW5kKCdjbGljaycsZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIEFQUC5Qcm9maXRDZW50ZXJBZG1pbi5zZXRDb250YWN0UG9wdXBXb3JrZmxvdygnbmV3Jyk7XHJcbiAgICAgICAgICAgIEFQUC5Db250YWN0UG9wVXAuY2xlYXJEYXRhKCk7XHJcbiAgICAgICAgICAgIEFQUC5Db250YWN0UG9wVXAuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFkZHJlc3MgUG9wdXAgc2V0dXBcclxuICAgICAgICAgKi9cclxuICAgICAgICBpZighQVBQLkFkZHJlc3NQb3BVcCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCduaW5jcyBBUFAuQWRkcmVzc1BvcFVwJylcclxuICAgICAgICAgICAgQVBQLkFkZHJlc3NQb3BVcCA9IG5ldyB3aW5kb3cuQWRkcmVzc1BvcFVwKCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdtYXIgdmFuICBBUFAuQWRkcmVzc1BvcFVwJylcclxuICAgICAgICB9XHJcbiAgICAgICAgQVBQLkFkZHJlc3NQb3BVcC5pbml0KHtcclxuICAgICAgICAgICAgYWN0aXZlOnRydWUsXHJcbiAgICAgICAgICAgIG9uQWZ0ZXJTYXZlOnJvb3QuYWRkcmVzc0FjdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvb3QucmVuZGVyQWRkcmVzcygpO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLmJ1dHRvbk5ld0FkZHJlc3MnKS5iaW5kKCdjbGljaycsZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIEFQUC5Qcm9maXRDZW50ZXJBZG1pbi5zZXRBZGRyZXNzUG9wdXBXb3JrZmxvdygnbmV3Jyk7XHJcbiAgICAgICAgICAgIEFQUC5BZGRyZXNzUG9wVXAuY2xlYXJEYXRhKCk7XHJcbiAgICAgICAgICAgIEFQUC5BZGRyZXNzUG9wVXAuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgICQoJ1tkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIl0nKS50b29sdGlwKCk7XHJcbiAgICAgICAgaW5pdFJhZGlvQnV0dG9ucyh7XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAodmFsdWUsbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgZGVidWcodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgZGVidWcobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobm9kZT09PSdwcm9maXRDZW50ZXJNdWx0aUFkZHJlc3MnKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlPT0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuY29udGFpbmVyTXVsdGlBZGRyZXNzJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmNvbnRhaW5lck11bHRpQWRkcmVzcycpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZihub2RlPT09J2FkZHJlc3NFcXVhbCcpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlPT0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuY29udGFpbmVyTXVsdGlBZGRyZXNzJykuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIC5jb250YWluZXJNdWx0aUFkZHJlc3NTd2l0Y2gnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLmNvbnRhaW5lck11bHRpQWRkcmVzcycpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuY29udGFpbmVyTXVsdGlBZGRyZXNzU3dpdGNoJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybStcIiA6aW5wdXRcIikuaW5wdXRtYXNrKHtcclxuICAgICAgICAgICAgXCJvbmluY29tcGxldGVcIjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJCh0aGlzKS5kYXRhKCdyZXF1aXJlZCcpKTtcclxuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnZhbCgpLmxlbmd0aCA+IDAgfHwgJCh0aGlzKS5kYXRhKCdyZXF1aXJlZCcpID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaXMtaW52YWxpZCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBcIm9uY29tcGxldGVcIjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnaXMtaW52YWxpZCcpO1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaXMtdmFsaWQnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXCJvbmNsZWFyZWRcIjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NsZWFyZWQnKTtcclxuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2lzLWludmFsaWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIGJ1dHRvbi5Gb3JtU2F2ZUJ1dHRvbicpLm9mZignY2xpY2snKTtcclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIGJ1dHRvbi5Gb3JtU2F2ZUJ1dHRvbicpLm9uKCdjbGljaycscm9vdC5jbGlja1NhdmVCdXR0b24pO1xyXG4vKlxyXG4gICAgICAgICQoXCJpbnB1dFtuYW1lPWxvZ29GaWxlXVwiKS5jaGFuZ2UoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgc2V0SW1hZ2VGcm9tTG9jYWwodGhpcyxPcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLmltYWdlTG9nbycpO1xyXG4gICAgICAgIH0pO1xyXG4qL1xyXG5cclxuICAgICAgICAvL09wdHMub25BZnRlckluaXRWaWV3RGV0YWlscygpO1xyXG4gICAgICAgIGRlYnVnKCcqKmVuZCBpbml0Vmlld0RldGFpbHMgJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERldGFpbHNWaWV3RGF0YT1mdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZGVidWcoJ3NldERldGFpbHNWaWV3RGF0YScpO1xyXG4gICAgICAgIGxldCBDU1NTZWxlY3RvckZvcm09T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5wcm9maXRDZW50ZXJGb3JtJztcclxuICAgICAgICBsZXQgbmVlZFRvU2V0PVtcclxuICAgICAgICAgICAgJ25hbWUnLCdob29yZXljYUlkJywnbmFtZUlkJyxcclxuICAgICAgICAgICAgJ2VtYWlsJywncG9zdENvZGUnLCdjaXR5Jywnc3RyZWV0JywncGhvbmUnLCdtb2JpbCdcclxuICAgICAgICBdO1xyXG4gICAgICAgICQuZWFjaChuZWVkVG9TZXQsZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAvLyBkZWJ1Zyh0aGlzKTsgLy9hbGFwYWRhdG9rIGJlYWxsaXRhc2FuYWsgbG9nb2xhc2FcclxuICAgICAgICAgICAgaWYodHlwZW9mIHJvb3QuUHJvZml0Q2VudGVyW3RoaXNdIT0ndW5kZWZpbmVkJyl7XHJcbi8qIC8vYWxhcGFkYXRvayBiZWFsbGl0YXNhbmFrIGxvZ29sYXNhXHJcbiAgICAgICAgICAgICAgICBkZWJ1Zyhyb290LlByb2ZpdENlbnRlclt0aGlzXSk7XHJcbiAgICAgICAgICAgICAgICBkZWJ1ZyhDU1NTZWxlY3RvckZvcm0rJyBpbnB1dFtuYW1lPScrdGhpcysnXScpO1xyXG4gICAgICAgICAgICAgICAgZGVidWcoJChDU1NTZWxlY3RvckZvcm0rJyBpbnB1dFtuYW1lPScrdGhpcysnXScpKTtcclxuKi9cclxuICAgICAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgaW5wdXRbbmFtZT0nK3RoaXMrJ10nKS52YWwocm9vdC5Qcm9maXRDZW50ZXJbdGhpc10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZih0eXBlb2Ygcm9vdC5Qcm9maXRDZW50ZXJbJ25vdGUnXSE9J3VuZGVmaW5lZCcpe1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIHRleHRhcmVhW25hbWU9bm90ZV0nKS52YWwocm9vdC5Qcm9maXRDZW50ZXIubm90ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgKltkYXRhLXRvZ2dsZT1jYW5TZWVdW2RhdGEtdGl0bGU9Jytyb290LlByb2ZpdENlbnRlci5jYW5TZWUrJ10nKS5jbGljaygpO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgKltkYXRhLXRvZ2dsZT1ob29yZXljYURhdGFBY3RpdmVdW2RhdGEtdGl0bGU9Jytyb290LlByb2ZpdENlbnRlci5ob29yZXljYURhdGFBY3RpdmUrJ10nKS5jbGljaygpO1xyXG5cclxuICAgICAgICBpZih0eXBlb2Ygcm9vdC5Qcm9maXRDZW50ZXJbJ2xvZ29GaWxlJ10hPSd1bmRlZmluZWQnICYmIChyb290LlByb2ZpdENlbnRlclsnbG9nb0ZpbGUnXSkpe1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIGltZy5pbWFnZUxvZ28nKS5hdHRyKCdzcmMnLHJvb3QuUHJvZml0Q2VudGVyWydsb2dvRmlsZSddKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgKltkYXRhLXRvZ2dsZT1hZGRyZXNzRXF1YWxdW2RhdGEtdGl0bGU9Jytyb290LlByb2ZpdENlbnRlci5hZGRyZXNzRXF1YWwrJ10nKS5jbGljaygpO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgKltkYXRhLXRvZ2dsZT1tdWx0aUFkZHJlc3NdW2RhdGEtdGl0bGU9Jytyb290LlByb2ZpdENlbnRlci5tdWx0aUFkZHJlc3MrJ10nKS5jbGljaygpO1xyXG4gICAgICAgIC8qZGVidWcocm9vdC5Qcm9maXRDZW50ZXIuYWRkcmVzcy5sZW5ndGgpO1xyXG4gICAgICAgIGlmKHJvb3QuUHJvZml0Q2VudGVyLmFkZHJlc3MubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnICpbZGF0YS10b2dnbGU9YWRkcmVzc0VxdWFsXVtkYXRhLXRpdGxlPTBdJykuY2xpY2soKTtcclxuICAgICAgICAgICAgaWYocm9vdC5Qcm9maXRDZW50ZXIuYWRkcmVzcy5sZW5ndGg+MSl7XHJcbiAgICAgICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnICpbZGF0YS10b2dnbGU9bXVsdGlBZGRyZXNzXVtkYXRhLXRpdGxlPTFdJykuY2xpY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAqL1xyXG4gICAgICAgIGxldCBzdXBwbGllcj1bXTtcclxuICAgICAgICAkLmVhY2gocm9vdC5Qcm9maXRDZW50ZXIuc3VwcGxpZXJzLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgc3VwcGxpZXIucHVzaCh0aGlzLm5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vJChDU1NTZWxlY3RvckZvcm0rJyAucHJvZml0Q2VudGVyU2VsZWN0JykudmFsKHByb2ZpdENlbnRlcikuY2hhbmdlKCk7XHJcbiAgICAgICAgJC5lYWNoKHN1cHBsaWVyLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgJCgnaW5wdXRbdmFsdWU9XCInKyQuZXNjYXBlU2VsZWN0b3IodGhpcykrJ1wiXScpLnByb3AoIFwiY2hlY2tlZFwiLCB0cnVlICk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNldENvbnRhY3RUYWJsZT1mdW5jdGlvbiAoKXtcclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIC5jb250YWN0VGFibGUgdGJvZHkgdHInKS5yZW1vdmUoKTtcclxuICAgICAgICByb290LnJlbmRlckNvbnRhY3QoKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyQ29udGFjdD1mdW5jdGlvbiAoKXtcclxuICAgICAgICBsZXQgcm93TnVtPTE7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlbmRlcmluZ0NvbnRhY3RzJyk7XHJcbiAgICAgICAgJC5lYWNoKHJvb3QuUHJvZml0Q2VudGVyLmdldERhdGEoJ2NvbnRhY3QnKSxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgbGV0IGNvbnRhY3REYXRhPXRoaXM7XHJcbiAgICAgICAgICAgIGNvbnRhY3REYXRhLnJvd051bT1yb3dOdW07XHJcbiAgICAgICAgICAgIGxldCB0ZW1wbGF0ZT0kKCd0ZW1wbGF0ZVtkYXRhLW5hbWU9XCJwcm9maXRDZW50ZXJDb250YWN0VGFibGVSb3dcIl0nKS5odG1sKClcclxuICAgICAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsY29udGFjdERhdGEpO1xyXG4gICAgICAgICAgICAkKCcuY29udGFjdFRhYmxlIHRib2R5JykuYXBwZW5kKHJlbmRlcik7XHJcbiAgICAgICAgICAgIHJvd051bSsrO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvb3QuYmluZENvbnRhY3RDbGlja0FjdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmluZENvbnRhY3RDbGlja0FjdGlvbiA9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgJCgnLmNvbnRhY3RUYWJsZSAuYnV0dG9uRGVsZXRlJykudW5iaW5kKCdjbGljaycpO1xyXG4gICAgICAgICQoJy5jb250YWN0VGFibGUgLmJ1dHRvbkRlbGV0ZScpLmJpbmQoJ2NsaWNrJyxyb290LmNvbnRhY3REZWxldGVDbGljayk7XHJcbiAgICAgICAgJCgnLmNvbnRhY3RUYWJsZSAuYnV0dG9uRWRpdCcpLnVuYmluZCgnY2xpY2snKTtcclxuICAgICAgICAkKCcuY29udGFjdFRhYmxlIC5idXR0b25FZGl0JykuYmluZCgnY2xpY2snLHJvb3QuY29udGFjdEVkaXRDbGljayk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5jb250YWN0RGVsZXRlQ2xpY2s9ZnVuY3Rpb24gKGV2ZW50KXtcclxuICAgICAgICBsZXQgcm93PSQodGhpcykuY2xvc2VzdCgndHInKTtcclxuICAgICAgICBsZXQgaWQ9cm93LmZpbmQoJ2lucHV0W25hbWU9Y29udGFjdElkXScpLnZhbCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGlkKTtcclxuICAgICAgICByb290LlByb2ZpdENlbnRlci5jb250YWN0PXJvb3QuUHJvZml0Q2VudGVyLmNvbnRhY3QuZmlsdGVyKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAodmFsdWUsaW5kZXgsYXJyKXtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pZCE9PWlkKjEpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAgdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc29sZS5sb2cocm9vdC5Qcm9maXRDZW50ZXIuY29udGFjdCk7XHJcbiAgICAgICAgcm93LnJlbW92ZSgpO1xyXG4gICAgICAgIHJvb3QucmVzZXRDb250YWN0VGFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29udGFjdFBvcHVwV29ya2Zsb3cgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRhY3RQb3B1cFdvcmtmbG93O1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDb250YWN0UG9wdXBXb3JrZmxvdyA9IGZ1bmN0aW9uIChzdGF0dXMpIHtcclxuICAgICAgICBjb250YWN0UG9wdXBXb3JrZmxvdz1zdGF0dXM7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuY29udGFjdEVkaXRDbGljaz1mdW5jdGlvbiAoZXZlbnQpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMpO1xyXG4gICAgICAgIGxldCByb3c9JCh0aGlzKS5jbG9zZXN0KCd0cicpO1xyXG4gICAgICAgIGxldCBpZD1yb3cuZmluZCgnaW5wdXRbbmFtZT1jb250YWN0SWRdJykudmFsKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coaWQpO1xyXG4gICAgICAgIHJvb3Quc2V0Q29udGFjdFBvcHVwV29ya2Zsb3coJ2VkaXQnKTtcclxuICAgICAgICBBUFAuQ29udGFjdFBvcFVwLmxvYWREYXRhKGlkKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGFjdEFjdGlvbj1mdW5jdGlvbiAoY29udGFjdERhdGEpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCduYWggbW9zdCBrZWxsZW5lIG1lZyB2YWxhbWl0IGNzaW5hbG5pLicpXHJcbiAgICAgICAgaWYocm9vdC5nZXRDb250YWN0UG9wdXBXb3JrZmxvdygpPT0nbmV3Jyl7XHJcbiAgICAgICAgICAgIHJvb3QuYWRkQ29udGFjdChjb250YWN0RGF0YSk7XHJcbiAgICAgICAgfWVsc2UgaWYocm9vdC5nZXRDb250YWN0UG9wdXBXb3JrZmxvdygpPT0nZWRpdCcpe1xyXG4gICAgICAgICAgICByb290LmVkaXRDb250YWN0KGNvbnRhY3REYXRhLmlkLGNvbnRhY3REYXRhKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFkZENvbnRhY3Q9ZnVuY3Rpb24gKGNvbnRhY3REYXRhKXtcclxuICAgICAgICAvKlxyXG4gICAgICAgIGZlbCBrZWxsIHZlbm5pIGEgc29yYmFcclxuICAgICAgICAgKi9cclxuICAgICAgICByb290LlByb2ZpdENlbnRlci5jb250YWN0LnB1c2goY29udGFjdERhdGEpO1xyXG4gICAgICAgIGNvbnRhY3REYXRhLnJvd051bT1yb290LlByb2ZpdENlbnRlci5jb250YWN0Lmxlbmd0aDtcclxuICAgICAgICBsZXQgdGVtcGxhdGU9JCgndGVtcGxhdGVbZGF0YS1uYW1lPVwicHJvZml0Q2VudGVyQ29udGFjdFRhYmxlUm93XCJdJykuaHRtbCgpXHJcbiAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsY29udGFjdERhdGEpO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLmNvbnRhY3RUYWJsZSB0Ym9keScpLmFwcGVuZChyZW5kZXIpO1xyXG4gICAgICAgIHJvb3QuYmluZENvbnRhY3RDbGlja0FjdGlvbigpO1xyXG4gICAgICAgIFRvYXN0LmVuYWJsZVRpbWVycyhmYWxzZSk7XHJcbiAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiS2FwY3NvbGF0IHRhcnTDsyBob3p6w6FhZHZhIVwiLCBtZXNzYWdlOiBjb250YWN0RGF0YS5uYW1lK1wiIG5ldsWxIGthcG9jc29sYXR0YXJ0w7MgaG96esOhYWR2YVwiLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5TVUNDRVNTLCB0aW1lb3V0OiA1MDAwIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lZGl0Q29udGFjdD1mdW5jdGlvbiAoaWQsY29udGFjdERhdGEpe1xyXG5cclxuICAgICAgICBsZXQgbmV3Q29udGFjdHM9W107XHJcbiAgICAgICAgJC5lYWNoKHJvb3QuUHJvZml0Q2VudGVyLmdldERhdGEoJ2NvbnRhY3QnKSxmdW5jdGlvbiAoaW5kZXgpe1xyXG4gICAgICAgICAgICBpZih0aGlzLmlkPT1pZCl7XHJcbiAgICAgICAgICAgICAgICBuZXdDb250YWN0cy5wdXNoKGNvbnRhY3REYXRhKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBuZXdDb250YWN0cy5wdXNoKHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcm9vdC5Qcm9maXRDZW50ZXIuY29udGFjdD1uZXdDb250YWN0cztcclxuICAgICAgICByb290LnJlc2V0Q29udGFjdFRhYmxlKCk7XHJcbiAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiS2FwY3NvbGF0IGFkYXRhaSBtw7Nkb3PDrXR2YSFcIiwgbWVzc2FnZTogY29udGFjdERhdGEubmFtZStcIiBuZXbFsSBrYXBvY3NvbGF0dGFydMOzIG3Ds2Rvc8OtdHZhXCIsIHN0YXR1czogVE9BU1RfU1RBVFVTLlNVQ0NFU1MsIHRpbWVvdXQ6IDUwMDAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKioqKioqKioqKioqKipcclxuICAgICAqXHJcbiAgICAgKiBBZGRyZXNzIGZ1bmN0aW9uXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICB0aGlzLnJlc2V0QWRkcmVzc1RhYmxlPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLmFkZHJlc3NUYWJsZSB0Ym9keSB0cicpLnJlbW92ZSgpO1xyXG4gICAgICAgIHJvb3QucmVuZGVyQWRkcmVzcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXJBZGRyZXNzPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIGxldCByb3dOdW09MTtcclxuICAgICAgICBjb25zb2xlLmxvZygncmVuZGVyaW5nQWRkcmVzcycpO1xyXG4gICAgICAgICQuZWFjaChyb290LlByb2ZpdENlbnRlci5nZXREYXRhKCdhZGRyZXNzJyksZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIGxldCBpdGVtRGF0YT10aGlzO1xyXG4gICAgICAgICAgICBpdGVtRGF0YS5yb3dOdW09cm93TnVtO1xyXG4gICAgICAgICAgICBsZXQgdGVtcGxhdGU9JCgndGVtcGxhdGVbZGF0YS1uYW1lPVwicHJvZml0Q2VudGVyQWRkcmVzc1RhYmxlUm93XCJdJykuaHRtbCgpXHJcbiAgICAgICAgICAgIGRlYnVnKGl0ZW1EYXRhKTtcclxuICAgICAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsaXRlbURhdGEpO1xyXG4gICAgICAgICAgICAkKCcuYWRkcmVzc1RhYmxlIHRib2R5JykuYXBwZW5kKHJlbmRlcik7XHJcbiAgICAgICAgICAgIHJvd051bSsrO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvb3QuYmluZEFkZHJlc3NDbGlja0FjdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmluZEFkZHJlc3NDbGlja0FjdGlvbiA9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgJCgnLmFkZHJlc3NUYWJsZSAuYnV0dG9uRGVsZXRlJykudW5iaW5kKCdjbGljaycpO1xyXG4gICAgICAgICQoJy5hZGRyZXNzVGFibGUgLmJ1dHRvbkRlbGV0ZScpLmJpbmQoJ2NsaWNrJyxyb290LmFkZHJlc3NEZWxldGVDbGljayk7XHJcbiAgICAgICAgJCgnLmFkZHJlc3NUYWJsZSAuYnV0dG9uRWRpdCcpLnVuYmluZCgnY2xpY2snKTtcclxuICAgICAgICAkKCcuYWRkcmVzc1RhYmxlIC5idXR0b25FZGl0JykuYmluZCgnY2xpY2snLHJvb3QuYWRkcmVzc0VkaXRDbGljayk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5hZGRyZXNzRGVsZXRlQ2xpY2s9ZnVuY3Rpb24gKGV2ZW50KXtcclxuICAgICAgICBsZXQgcm93PSQodGhpcykuY2xvc2VzdCgndHInKTtcclxuICAgICAgICBsZXQgaWQ9cm93LmZpbmQoJ2lucHV0W25hbWU9XCJhZGRyZXNzSWRbXVwiXScpLnZhbCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGlkKTtcclxuICAgICAgICByb290LlByb2ZpdENlbnRlci5hZGRyZXNzPXJvb3QuUHJvZml0Q2VudGVyLmFkZHJlc3MuZmlsdGVyKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAodmFsdWUsaW5kZXgsYXJyKXtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pZCE9aWQpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhyb290LlByb2ZpdENlbnRlci5hZGRyZXNzKTtcclxuICAgICAgICByb3cucmVtb3ZlKCk7XHJcbiAgICAgICAgcm9vdC5yZXNldEFkZHJlc3NUYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBZGRyZXNzUG9wdXBXb3JrZmxvdyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gYWRkcmVzc1BvcHVwV29ya2Zsb3c7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEFkZHJlc3NQb3B1cFdvcmtmbG93ID0gZnVuY3Rpb24gKHN0YXR1cykge1xyXG4gICAgICAgIGFkZHJlc3NQb3B1cFdvcmtmbG93PXN0YXR1cztcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5hZGRyZXNzRWRpdENsaWNrPWZ1bmN0aW9uIChldmVudCl7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcyk7XHJcbiAgICAgICAgbGV0IHJvdz0kKHRoaXMpLmNsb3Nlc3QoJ3RyJyk7XHJcbiAgICAgICAgbGV0IGlkPXJvdy5maW5kKCdpbnB1dFtuYW1lPVwiYWRkcmVzc0lkW11cIl0nKS52YWwoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpZCk7XHJcbiAgICAgICAgcm9vdC5zZXRBZGRyZXNzUG9wdXBXb3JrZmxvdygnZWRpdCcpO1xyXG4gICAgICAgIEFQUC5BZGRyZXNzUG9wVXAubG9hZERhdGEoaWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hZGRyZXNzQWN0aW9uPWZ1bmN0aW9uIChpdGVtRGF0YSl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ25haCBtb3N0IGtlbGxlbmUgbWVnIHZhbGFtaXQgY3NpbmFsbmkuJylcclxuICAgICAgICBpZihyb290LmdldEFkZHJlc3NQb3B1cFdvcmtmbG93KCk9PSduZXcnKXtcclxuICAgICAgICAgICAgcm9vdC5hZGRBZGRyZXNzKGl0ZW1EYXRhKTtcclxuICAgICAgICB9ZWxzZSBpZihyb290LmdldEFkZHJlc3NQb3B1cFdvcmtmbG93KCk9PSdlZGl0Jyl7XHJcbiAgICAgICAgICAgIHJvb3QuZWRpdEFkZHJlc3MoaXRlbURhdGEuaWQsaXRlbURhdGEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWRkQWRkcmVzcz1mdW5jdGlvbiAoSXRlbURhdGEpe1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgZmVsIGtlbGwgdmVubmkgYSBzb3JiYVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHJvb3QuUHJvZml0Q2VudGVyLmFkZHJlc3MucHVzaChJdGVtRGF0YSk7XHJcbiAgICAgICAgSXRlbURhdGEucm93TnVtPXJvb3QuUHJvZml0Q2VudGVyLmFkZHJlc3MubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0ZW1wbGF0ZT0kKCd0ZW1wbGF0ZVtkYXRhLW5hbWU9XCJwcm9maXRDZW50ZXJBZGRyZXNzVGFibGVSb3dcIl0nKS5odG1sKClcclxuICAgICAgICBsZXQgcmVuZGVyPU11c3RhY2hlLnJlbmRlcih0ZW1wbGF0ZSxJdGVtRGF0YSk7XHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuYWRkcmVzc1RhYmxlIHRib2R5JykuYXBwZW5kKHJlbmRlcik7XHJcbiAgICAgICAgcm9vdC5iaW5kQWRkcmVzc0NsaWNrQWN0aW9uKCk7XHJcbiAgICAgICAgVG9hc3QuZW5hYmxlVGltZXJzKGZhbHNlKTtcclxuICAgICAgICBUb2FzdC5jcmVhdGUoeyB0aXRsZTogXCJDw61tIGhvenrDoWFkdmEhXCIsIG1lc3NhZ2U6IEl0ZW1EYXRhLnN0cmVldCtcIiBob3p6w6FhZHZhXCIsIHN0YXR1czogVE9BU1RfU1RBVFVTLlNVQ0NFU1MsIHRpbWVvdXQ6IDUwMDAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVkaXRBZGRyZXNzPWZ1bmN0aW9uIChpZCxpdGVtRGF0YSl7XHJcblxyXG4gICAgICAgIGxldCBuZXdJdGVtPVtdO1xyXG4gICAgICAgICQuZWFjaChyb290LlByb2ZpdENlbnRlci5nZXREYXRhKCdhZGRyZXNzJyksZnVuY3Rpb24gKGluZGV4KXtcclxuICAgICAgICAgICAgaWYodGhpcy5pZD09aWQpe1xyXG4gICAgICAgICAgICAgICAgbmV3SXRlbS5wdXNoKGl0ZW1EYXRhKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBuZXdJdGVtLnB1c2godGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByb290LlByb2ZpdENlbnRlci5hZGRyZXNzPW5ld0l0ZW07XHJcbiAgICAgICAgcm9vdC5yZXNldEFkZHJlc3NUYWJsZSgpO1xyXG4gICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcImPDrW0gYWRhdGFpIG3Ds2Rvc8OtdHZhIVwiLCBtZXNzYWdlOiBpdGVtRGF0YS5zdHJlZXQrXCIgbcOzZG9zw610dmFcIiwgc3RhdHVzOiBUT0FTVF9TVEFUVVMuU1VDQ0VTUywgdGltZW91dDogNTAwMCB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRWaWV3TGlzdCA9IGZ1bmN0aW9uIChvcHRpb25zPXt9KSB7XHJcbiAgICAgICAgZGVidWcoJ2xpc3R2aWV3IGluaWNpYWxpemF0aW9uJyk7XHJcbiAgICAgICAgZGF0YVRhYmxlQ1NTU2VsZWN0b3I9T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5kYXRhVGFibGUnOyAvL1xyXG5cclxuICAgICAgICBsZXQgY29sTnVtPSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IrJyB0aGVhZCB0aCcpLmxlbmd0aDsgLy9idXR0b25zIGluc2VydCBwb3NpdGlvbiBuZWVkXHJcbiAgICAgICAgQVBQLnNldE9wdHMoe1xyXG4gICAgICAgICAgICBkYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrOnJvb3QuY2xpY2tOZXcsXHJcbiAgICAgICAgICAgIGRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2s6cm9vdC5kYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGljayxcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgICBsZXQgb3JkZXJEaXJlY3RpdmU9T3B0cy5kYXRhVGFibGUub3JkZXJEaXJlY3RpdmU7XHJcbiAgICAgICAgaWYodHlwZW9mIG9wdGlvbnNbJ29yZGVyRGlyZWN0aXZlJ10hPSd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgb3JkZXJEaXJlY3RpdmU9b3B0aW9uc1snb3JkZXJEaXJlY3RpdmUnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJChkYXRhVGFibGVDU1NTZWxlY3RvcikuRGF0YVRhYmxlKCB7XHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiB7XHJcbiAgICAgICAgICAgICAgICB1cmw6ICcvL2Nkbi5kYXRhdGFibGVzLm5ldC9wbHVnLWlucy8xLjEwLjI0L2kxOG4vSHVuZ2FyaWFuLmpzb24nXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvL1wiYWpheFwiOiBcInt7YXNzZXQoJ2V4YXBtbGUyLmpzb24nKX19XCIsXHJcbiAgICAgICAgICAgIFwiYWpheFwiOiBPcHRzLlVSTC5nZXREYXRhVGFibGVDb250ZW50LFxyXG4gICAgICAgICAgICBcImNvbHVtbkRlZnNcIjogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIFwidGFyZ2V0c1wiOiBjb2xOdW0tMSxcclxuICAgICAgICAgICAgICAgICAgICBcInJlbmRlclwiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIHJvdyApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ1dHRvbnM9QVBQLmRhdGF0YWJsZUFkZFJvd1RyYXNoQnV0dG9uKDAsYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9ucys9QVBQLmRhdGF0YWJsZUFkZFJvd0VkaXRCdXR0b24oMCxhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnV0dG9ucztcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBcInRhcmdldHNcIjogMSxcclxuICAgICAgICAgICAgICAgICAgICBcInJlbmRlclwiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIHJvdyApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT09IFwic29ydFwiID8gZGF0YS5sYXRpbmlzZSgpIDogZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIC8veyBcInZpc2libGVcIjogZmFsc2UsICBcInRhcmdldHNcIjogWyAwIF0gfVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBidXR0b25zOntcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAnZXhjZWwnLCdwZGYnLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kOiAncHJpbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3RleHQ6ICdQcmludCBjdXJyZW50IHBhZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGl0bGUnOiAndGl0bGUgY3VzdG9tIHRleHQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZVRvcCc6ICdNZXNzYWdlIE9uIFRvcCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9QcmludDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgLyoqL1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICfDmmogZmVsdml0ZWxlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1zdWNjZXNzIG5ld0l0ZW0nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyOntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTp7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGE6MSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjoyXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6J25ld0l0ZW0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uKGFwaSwgbm9kZSwgY29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKG5vZGUpLnJlbW92ZUNsYXNzKCd1aS1idXR0b24nKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uICggZSwgZHQsIG5vZGUsIGNvbmZpZyApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQUC5kYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrKGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29uZmlnKTsqL1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXCJjb2x1bW5zXCI6IFtcclxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwiaWRcIiB9LFxyXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJuYW1lXCIgfSxcclxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwiaG9vcmV5Y2FJZFwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcIm5hbWVJZFwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImNyZWF0ZWRfYXRcIiB9LFxyXG4gICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgXCJvcmRlclwiOiBvcmRlckRpcmVjdGl2ZSxcclxuICAgICAgICAgICAgLy9cInN0YXRlU2F2ZVwiOiB0cnVlLFxyXG4gICAgICAgICAgICBcImRyYXdDYWxsYmFja1wiOiBmdW5jdGlvbiggc2V0dGluZ3MgKSB7XHJcbiAgICAgICAgICAgICAgICBBUFAuZGF0YXRhYmxlQWRkUm93QWN0aW9uKGRhdGFUYWJsZUNTU1NlbGVjdG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gKTtcclxuICAgICAgICBkZWJ1ZygnbGlzdHZpZXcgZW5kJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrPWZ1bmN0aW9uIChldmVudCl7XHJcbiAgICAgICAgZGVidWcoJ2RhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrJyk7XHJcbiAgICAgICAgbGV0IG5vZGU9JChldmVudFswXS5jdXJyZW50VGFyZ2V0KTtcclxuICAgICAgICBsZXQgcm93PSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgpLnJvdyhub2RlLnBhcmVudHMoJ3RyJykpO1xyXG4gICAgICAgIGxldCByb3dEYXRhPXJvdy5kYXRhKCk7XHJcbiAgICAgICAgbGV0IGFjdGlvbk5hbWU9J2RhdGF0YWJsZVJvd0FjdGlvbicrbm9kZS5kYXRhKCdidXR0b250eXBlJykuY2FwaXRhbGl6ZSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygcm9vdFthY3Rpb25OYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByb290W2FjdGlvbk5hbWVdKHJvd0RhdGEsbm9kZSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGF0YWJsZVJvd0FjdGlvbkVkaXQ9ZnVuY3Rpb24gKHJvd0RhdGEsbm9kZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkYXRhdGFibGVSb3dBY3Rpb25FZGl0IENhbGxlZCcpO1xyXG4gICAgICAgIC8vT3B0cy5vbkFmdGVySW5pdFZpZXdEZXRhaWxzPXJvb3QuYXV0b2ZpbGxEZXRhaWxzO1xyXG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmVkaXQucmVwbGFjZSgnJWlkJScscm93RGF0YS5pZCk7XHJcbiAgICAgICAgLypcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKE9wdHMuVVJMKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGFqYXhVcmwpO1xyXG4gICAgICAgICovXHJcbiAgICAgICAgQVBQLmxvYWRNYWluQ29udGVudChhamF4VXJsLHJvb3QuaW5pdFZpZXdEZXRhaWxzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGF0YXRhYmxlUm93QWN0aW9uRWRpdCBFbmQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YXRhYmxlUm93QWN0aW9uRGVsZXRlPWZ1bmN0aW9uIChyb3dEYXRhLG5vZGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGF0YXRhYmxlUm93QWN0aW9uRGVsZXRlIENhbGxlZCcpO1xyXG4gICAgICAgIGxldCByb3c9JChkYXRhVGFibGVDU1NTZWxlY3RvcikuRGF0YVRhYmxlKCkucm93KG5vZGUucGFyZW50cygndHInKSk7XHJcbiAgICAgICAgbGV0IGFqYXhEYXRhPXt9O1xyXG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmRlc3Ryb3kucmVwbGFjZSgnJWlkJScscm93RGF0YS5pZCk7XHJcbiAgICAgICAgYWpheERhdGEuX3Rva2VuPSQoJ2lucHV0W25hbWU9X3Rva2VuXScpLnZhbCgpO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDphamF4VXJsLFxyXG4gICAgICAgICAgICBkYXRhOmFqYXhEYXRhLFxyXG4gICAgICAgICAgICBtZXRob2Q6XCJERUxFVEVcIixcclxuICAgICAgICAgICAgc3VjY2VzczpmdW5jdGlvbiAoZGF0YSl7XHJcbiAgICAgICAgICAgICAgICBpZihkYXRhLnN1Y2Nlc3M9PXRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJvdy5yZW1vdmUoKS5kcmF3KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGlja1NhdmVCdXR0b249ZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgZGVidWcoJ1NhdmUgY2xpY2tlZCcpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZGVidWcoQ1NTU2VsZWN0b3JGb3JtKTtcclxuICAgICAgICBkZWJ1ZygkKENTU1NlbGVjdG9yRm9ybSkpO1xyXG4gICAgICAgIGlmICgkKENTU1NlbGVjdG9yRm9ybSlbMF0uY2hlY2tWYWxpZGl0eSgpID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygndmFsaWRhdG9uIGZhbHNlJyk7XHJcbiAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKS5hZGRDbGFzcygnd2FzLXZhbGlkYXRlZCcpO1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSlbMF0ucmVwb3J0VmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiVmFsaWTDoWNpw7NzIGhpYmEhXCIsIG1lc3NhZ2U6IFwiS8OpcmrDvGssIHTDtmx0c2Uga2kgYSBrw7Z0ZWxlesWRIG1lesWRa2V0IVwiLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5EQU5HRVIsIHRpbWVvdXQ6IDUwMDAgfSk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZhbGlkYXRvbiBvaycpO1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSkucmVtb3ZlQ2xhc3MoJ3dhcy12YWxpZGF0ZWQnKTtcclxuICAgICAgICAgICAgLy9kbyB5b3VyIGFqYXggc3VibWl0aW9uIGhlcmVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGFqYXhEYXRhPXJvb3QuZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsKENTU1NlbGVjdG9yRm9ybSk7XHJcblxyXG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLnN0b3JlO1xyXG4gICAgICAgIGxldCBhamF4TWV0aG9kPVwiUE9TVFwiO1xyXG4gICAgICAgIGlmKHJvb3QuUHJvZml0Q2VudGVyLmlkKXtcclxuICAgICAgICAgICAgYWpheFVybD1PcHRzLlVSTC51cGRhdGUucmVwbGFjZSgnJWlkJScscm9vdC5Qcm9maXRDZW50ZXIuaWQpO1xyXG4gICAgICAgICAgICAvL2FqYXhNZXRob2Q9XCJQVVRcIjtcclxuICAgICAgICAgICAgLy9hamF4RGF0YT1uZXcgRm9ybURhdGEoJChDU1NTZWxlY3RvckZvcm0pWzBdKTtcclxuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdfbWV0aG9kJywnUFVUJyk7XHJcbiAgICAgICAgfVxyXG4vKlxyXG4gICAgICAgIGRlYnVnKGFqYXhVcmwpO1xyXG4gICAgICAgIGRlYnVnKGFqYXhNZXRob2QpO1xyXG4gICAgICAgIGRlYnVnKGFqYXhEYXRhLmVudHJpZXMoKSk7XHJcbiAgICAgICAgZm9yICh2YXIgcGFpciBvZiBhamF4RGF0YS5lbnRyaWVzKCkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocGFpclswXSsgJywgJyArIHBhaXJbMV0pO1xyXG4gICAgICAgIH1cclxuKi9cclxuXHJcbiAgICAgICAgY29uc29sZS50YWJsZShPYmplY3QuZnJvbUVudHJpZXMoYWpheERhdGEpKTtcclxuXHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOmFqYXhVcmwsXHJcbiAgICAgICAgICAgIGRhdGE6YWpheERhdGEsXHJcbiAgICAgICAgICAgIHR5cGU6YWpheE1ldGhvZCxcclxuICAgICAgICAgICAgY29udGVudFR5cGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgJ1gtQ1NSRi1UT0tFTic6ICQoJ2lucHV0W25hbWU9XCJfdG9rZW5cIl0nKS52YWwoKVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgc3VjY2VzczpmdW5jdGlvbiAoZGF0YSl7XHJcbiAgICAgICAgICAgICAgICBkZWJ1ZyhkYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEuc3VjY2Vzcz09dHJ1ZSl7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vT3B0cy5vbkFmdGVySW5pdFZpZXdEZXRhaWxzPXJvb3QuYXV0b2ZpbGxEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgIE9wdHMuZGF0YVRhYmxlLm9yZGVyRGlyZWN0aXZlPVswLCAnZGVzYyddO1xyXG4gICAgICAgICAgICAgICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcIlNpa2VyZXMgcsO2Z3rDrXTDqXMhXCIsIG1lc3NhZ2U6IGFqYXhEYXRhLmdldCgnbmFtZScpK1wiIG5ldsWxIHByb2ZpdGNlbnRlciBlbG1lbnR2ZVwiLCBzdGF0dXM6IFRPQVNUX1NUQVRVUy5TVUNDRVNTLCB0aW1lb3V0OiA1MDAwIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQUC5sb2FkTWFpbkNvbnRlbnQoT3B0cy5VUkwuaW5kZXgrJz9pbml0PTAnLHJvb3QuaW5pdFZpZXdMaXN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsID0gZnVuY3Rpb24gKENTU1NlbGVjdG9yRm9ybSkge1xyXG4gICAgICAgIGxldCBhamF4RGF0YT1uZXcgRm9ybURhdGEoJChDU1NTZWxlY3RvckZvcm0pWzBdKTtcclxuLypcclxuICAgICAgICAkLmVhY2goYWpheERhdGEuZ2V0QWxsKCdwcm9kdWN0R3JvdXAnKSxmdW5jdGlvbihrZXksdmFsdWUpe1xyXG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ3Byb2R1Y3RHcm91cFtdJyx2YWx1ZSk7XHJcbiAgICAgICAgfSlcclxuKi9cclxuICAgICAgICAkLmVhY2goYWpheERhdGEuZ2V0QWxsKCdjb250YWN0SWQnKSxmdW5jdGlvbihrZXksdmFsdWUpe1xyXG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ2NvbnRhY3RJZFtdJyx2YWx1ZSk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgYWpheERhdGEuYXBwZW5kKCdfdG9rZW4nLCQoJ2lucHV0W25hbWU9X3Rva2VuXScpLnZhbCgpKTtcclxuXHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyBpbnB1dFtkYXRhLWlucHV0bWFza10nKS5lYWNoKGZ1bmN0aW9uICgpe1xyXG4gICAgICAgICAgICBsZXQgaW5kZXhLZXk9JCh0aGlzKS5hdHRyKCduYW1lJyk7XHJcbiAgICAgICAgICAgIGlmKGFqYXhEYXRhLmdldChpbmRleEtleSkpe1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGEuc2V0KGluZGV4S2V5LGFqYXhEYXRhLmdldChpbmRleEtleSkucmVwbGFjZSgvW18gXSskL2csXCJcIikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJC5lYWNoKGFqYXhEYXRhLmdldEFsbCgnc3VwcGxpZXInKSxmdW5jdGlvbihrZXksdmFsdWUpe1xyXG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ3N1cHBsaWVyW10nLHZhbHVlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBhamF4RGF0YTtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0KG9wdGlvbnMsIFByb2ZpdENlbnRlckl0ZW0pO1xyXG5cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFHLE9BQU9BLHFCQUFxQixLQUFHLFdBQVcsRUFBQztFQUFBLElB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S0FBSyxFQUFFLG1CQUFtQjtZQUFFQyxPQUFPLEVBQUVtRCxRQUFRLENBQUNtQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUMsNkJBQTZCO1lBQUU3RSxNQUFNLEVBQUVRLFlBQVksQ0FBQ0MsT0FBTztZQUFFQyxPQUFPLEVBQUU7VUFBSyxDQUFDLENBQUM7VUFDdEpyRixHQUFHLENBQUNPLGVBQWUsQ0FBQ2hDLElBQUksQ0FBQ0ksR0FBRyxDQUFDRSxLQUFLLEdBQUMsU0FBUyxFQUFDVyxJQUFJLENBQUNZLFlBQVksQ0FBQztRQUNuRTtNQUNKO0lBQ0osQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELElBQUksQ0FBQzRJLDJCQUEyQixHQUFHLFVBQVVySixlQUFlLEVBQUU7SUFDMUQsSUFBSTBJLFFBQVEsR0FBQyxJQUFJb0IsUUFBUSxDQUFDM0osQ0FBQyxDQUFDSCxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ1FHLENBQUMsQ0FBQzJDLElBQUksQ0FBQzRGLFFBQVEsQ0FBQ3FCLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBQyxVQUFTQyxHQUFHLEVBQUNqSSxLQUFLLEVBQUM7TUFDbkQyRyxRQUFRLENBQUN2RSxNQUFNLENBQUMsYUFBYSxFQUFDcEMsS0FBSyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGMkcsUUFBUSxDQUFDdkUsTUFBTSxDQUFDLFFBQVEsRUFBQ2hFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDa0MsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV2RGxDLENBQUMsQ0FBQ0gsZUFBZSxHQUFDLHdCQUF3QixDQUFDLENBQUM4QyxJQUFJLENBQUMsWUFBVztNQUN4RCxJQUFJbUgsUUFBUSxHQUFDOUosQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDZ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQztNQUNqQyxJQUFHdUYsUUFBUSxDQUFDbUIsR0FBRyxDQUFDSSxRQUFRLENBQUMsRUFBQztRQUN0QnZCLFFBQVEsQ0FBQ3dCLEdBQUcsQ0FBQ0QsUUFBUSxFQUFDdkIsUUFBUSxDQUFDbUIsR0FBRyxDQUFDSSxRQUFRLENBQUMsQ0FBQ3pCLE9BQU8sQ0FBQyxTQUFTLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFDdkU7SUFDSixDQUFDLENBQUM7SUFDRnJJLENBQUMsQ0FBQzJDLElBQUksQ0FBQzRGLFFBQVEsQ0FBQ3FCLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBQyxVQUFTQyxHQUFHLEVBQUNqSSxLQUFLLEVBQUM7TUFDbEQyRyxRQUFRLENBQUN2RSxNQUFNLENBQUMsWUFBWSxFQUFDcEMsS0FBSyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUNGLE9BQU8yRyxRQUFRO0VBQ25CLENBQUM7RUFDRCxJQUFJLENBQUN4SSxTQUFTLENBQUN0QyxPQUFPLEVBQUVlLGdCQUFnQixDQUFDO0FBRTdDLENBQUMiLCJpZ25vcmVMaXN0IjpbXSwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL2FkbWluL3Byb2ZpdENlbnRlci5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/admin/profitCenter.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/admin/supplier.js" +/*!****************************************!*\ + !*** ./resources/js/admin/supplier.js ***! + \****************************************/ +() { + +eval("{function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nif (typeof Supplier === 'undefined') {\n var _Supplier = /*#__PURE__*/function (_DataModel) {\n /*\r\n * Constructor\r\n */\n function _Supplier(data, options) {\n var _this;\n _classCallCheck(this, _Supplier);\n _this = _callSuper(this, _Supplier, [data, options]);\n if (typeof _this.contact === \"undefined\") {\n _this.contact = [];\n }\n if (typeof _this.canSee === \"undefined\") {\n _this.canSee = 1;\n }\n if (typeof _this.canSeeInOrder === \"undefined\") {\n _this.canSeeInOrder = 1;\n }\n console.log('Supplier constructor called');\n return _this;\n }\n _inherits(_Supplier, _DataModel);\n return _createClass(_Supplier);\n }(DataModel);\n ;\n window.Supplier = _Supplier;\n}\nwindow.SupplierAdmin = function (options, SupplierItem) {\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n var Opts = {\n token: null,\n containerCssSelector: '.containerSupplier',\n testMode: false,\n URL: {\n getDataTableContent: '',\n index: '',\n show: '',\n edit: '',\n create: '',\n store: '',\n update: '',\n destroy: '',\n attachFile: '',\n detachFile: ''\n },\n dataTable: {\n orderDirective: [1, 'asc']\n },\n onAfterInitViewDetails: function onAfterInitViewDetails() {}\n };\n var Supplier = {};\n var root = this;\n var contactPopupWorkflow = 'new';\n /*\r\n * Constructor\r\n */\n this.construct = function (options, SupplierItem) {\n console.log('SupplierAdmin constructor called');\n $.extend(Opts, options);\n if (!SupplierItem) {\n console.log('supplier letre kellet hozni ');\n if (!APP.Supplier) {\n APP.Supplier = new window.Supplier();\n }\n root.Supplier = APP.Supplier;\n }\n };\n this.getOpts = function () {\n return Opts;\n };\n this.formDataToDataObjectAPICallOld = function (CSSSelector) {\n var data = new FormData(document.querySelector(CSSSelector));\n //let formJSON = Object.fromEntries(data.entries());\n var formJSON = {};\n data.forEach(function (value, key) {\n // Reflect.has in favor of: formJSON.hasOwnProperty(key)\n if (!Reflect.has(formJSON, key)) {\n formJSON[key] = value;\n return;\n }\n if (!Array.isArray(formJSON[key])) {\n formJSON[key] = [formJSON[key]];\n }\n formJSON[key].push(value);\n });\n $(CSSSelector + ' input[data-inputmask]').each(function () {\n if (formJSON[$(this).attr('name')]) {\n formJSON[$(this).attr('name')] = formJSON[$(this).attr('name')].replace(/[_ ]+$/g, \"\");\n }\n });\n //formJSON.productGroups=$(\".productCategorySelect\").select2().val();\n\n /*Multiselect or checkbox to array:\r\n ajaxData['productGroup']=$(\".productCategorySelect\").select2().val();\r\n formJSON.multiselectName = data.getAll('multiselectName');\r\n $.each(formJSON, function (item, value) {\r\n formJSON[$.lcFirst(item.replace('contact', ''))] = value;\r\n delete formJSON[item];\r\n });\r\n if(formJSON.phone){\r\n formJSON.phone=formJSON.phone.replaceAll('_','');\r\n }\r\n if(formJSON.email){\r\n formJSON.email=formJSON.email.replaceAll('_','');\r\n }\r\n */\n return formJSON;\n };\n this.formDataToDataObjectAPICall = function (CSSSelectorForm) {\n var ajaxData = new FormData($(CSSSelectorForm)[0]);\n $.each(ajaxData.getAll('profitCenter'), function (key, value) {\n ajaxData.append('profitCenter[]', value);\n });\n $.each(ajaxData.getAll('productGroup'), function (key, value) {\n ajaxData.append('productGroup[]', value);\n });\n $.each(ajaxData.getAll('supplierService'), function (key, value) {\n ajaxData.append('supplierService[]', value);\n });\n $.each(ajaxData.getAll('contactId'), function (key, value) {\n ajaxData.append('contactId[]', value);\n });\n ajaxData.append('_token', $('input[name=_token]').val());\n $(CSSSelectorForm + ' input[data-inputmask]').each(function () {\n var indexKey = $(this).attr('name');\n if (ajaxData.get(indexKey)) {\n ajaxData.set(indexKey, ajaxData.get(indexKey).replace(/[_ ]+$/g, \"\"));\n }\n });\n return ajaxData;\n };\n this.clickSaveButton = function (event) {\n debug('Save clicked');\n var CSSSelectorForm = Opts.containerCssSelector + ' .supplierForm';\n event.preventDefault();\n if ($(CSSSelectorForm + ' input[name=\"canSeeInOrder\"]').val() == 1 && $(CSSSelectorForm)[0].checkValidity() === false) {\n console.log('validaton false');\n $(CSSSelectorForm).addClass('was-validated');\n $(CSSSelectorForm)[0].reportValidity();\n Toast.create({\n title: \"Validációs hiba!\",\n message: \"Kérjük, töltse ki a kötelező mezőket!\",\n status: TOAST_STATUS.DANGER,\n timeout: 5000\n });\n event.stopPropagation();\n return;\n } else {\n console.log('validaton ok');\n $(CSSSelectorForm).removeClass('was-validated');\n //do your ajax submition here\n }\n var ajaxData = root.formDataToDataObjectAPICall(CSSSelectorForm);\n var ajaxUrl = Opts.URL.store;\n var ajaxMethod = \"POST\";\n if (root.Supplier.id) {\n ajaxUrl = Opts.URL.update.replace('%id%', root.Supplier.id);\n //ajaxMethod=\"PUT\";\n //ajaxData=new FormData($(CSSSelectorForm)[0]);\n ajaxData.append('_method', 'PUT');\n }\n debug(ajaxMethod);\n debug(ajaxData);\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n type: ajaxMethod,\n contentType: false,\n processData: false,\n headers: {\n 'X-CSRF-TOKEN': $('input[name=\"_token\"]').val()\n },\n success: function success(data) {\n debug('d1: Save success ');\n debug(data);\n if (data.success == true) {\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n Opts.dataTable.orderDirective = [0, 'desc'];\n Toast.create({\n title: \"Sikeres rögzítés!\",\n message: ajaxData.get('name') + \" nevű beszálllító elmentve\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n APP.loadMainContent(Opts.URL.index + '?init=0', root.initViewList);\n }\n }\n });\n };\n this.setDetailsViewData = function () {\n debug('setDetailsViewData');\n console.log(Supplier);\n var CSSSelectorForm = Opts.containerCssSelector + ' .supplierForm';\n var needToSet = ['name', 'hooreycaId', 'nameId', 'orderEmail', 'orderEmail2', 'address', 'mailingAddress', 'phone', 'fax', 'customerServicePhone', 'name22', 'openHours', 'ordersDeadline', 'minOrderValue'];\n $.each(needToSet, function () {\n if (typeof root.Supplier[this] != 'undefined') {\n $(CSSSelectorForm + ' input[name=' + this + ']').val(root.Supplier[this]);\n $(CSSSelectorForm + ' textarea[name=' + this + ']').val(root.Supplier[this]);\n }\n });\n if (typeof root.Supplier['note'] != 'undefined') {\n $(CSSSelectorForm + ' textarea[name=note]').val(root.Supplier.note);\n }\n if (typeof root.Supplier['emailAttachmentType'] != 'undefined') {\n $(CSSSelectorForm + ' input[name=emailAttachmentType][value=' + root.Supplier['emailAttachmentType'] + ']').prop('checked', true);\n }\n $(CSSSelectorForm + ' *[data-toggle=canSee][data-title=' + root.Supplier.canSee + ']').click();\n $(CSSSelectorForm + ' *[data-toggle=canSeeInOrder][data-title=' + root.Supplier.canSeeInOrder + ']').click();\n $(CSSSelectorForm + ' *[data-toggle=hooreycaDataActive][data-title=' + root.Supplier.hooreycaDataActive + ']').click();\n var productGroup = [];\n $.each(root.Supplier.product_group, function () {\n productGroup.push(this.name);\n });\n $(CSSSelectorForm + ' .productCategorySelect').val(productGroup).change();\n var service = [];\n $.each(root.Supplier.service, function () {\n service.push(this.name);\n });\n $(CSSSelectorForm + ' .serviceSelect').val(service).change();\n var profitCenter = [];\n $.each(root.Supplier.profit_center, function () {\n profitCenter.push(this.name);\n });\n //$(CSSSelectorForm+' .profitCenterSelect').val(profitCenter).change();\n //debug(profitCenter);\n $.each(profitCenter, function () {\n $('input[value=\"' + $.escapeSelector(this) + '\"]').prop(\"checked\", true);\n });\n if (typeof root.Supplier['logoFile'] != 'undefined' && root.Supplier['logoFile']) {\n $(CSSSelectorForm + ' img.imageLogo').attr('src', root.Supplier['logoFile']);\n }\n\n //debug(APP.SupplierAdmin.formDataToDataObjectAPICall('.supplierForm')['productGroup']);\n //$('[name=productGroup]').val(['Büféáru_édesipari_termékek','Tojás']).change();\n //root.setDetailsViewData();\n };\n this.initViewDetails = function (options, SupplierItem) {\n debug('**call initViewDetails ');\n if (!APP.ContactPopUp) {\n console.log('nincs APP.ContactPopUp');\n APP.ContactPopUp = new window.ContactPopUp();\n } else {\n console.log('mar van APP.ContactPopUp');\n }\n APP.ContactPopUp.init({\n active: true,\n onAfterSave: root.contactAction\n });\n root.renderContact();\n $('.supplierForm .buttonNewContact').bind('click', function () {\n APP.SupplierAdmin.setContactPopupWorkflow('new');\n APP.ContactPopUp.clearData();\n APP.ContactPopUp.show();\n });\n $('[data-toggle=\"tooltip\"]').tooltip();\n initRadioButtons();\n $(\":input\").inputmask({\n \"onincomplete\": function onincomplete() {\n console.log($(this).data('required'));\n if ($(this).val().length > 0 || $(this).data('required') === true) {\n $(this).addClass('is-invalid');\n }\n },\n \"oncomplete\": function oncomplete() {\n $(this).removeClass('is-invalid');\n $(this).addClass('is-valid');\n },\n \"oncleared\": function oncleared() {\n console.log('cleared');\n $(this).removeClass('is-invalid');\n }\n });\n $('form.supplierForm button.FormSaveButton').off('click');\n $('form.supplierForm button.FormSaveButton').on('click', root.clickSaveButton);\n root.setDetailsViewData();\n $(\".productCategorySelect\").select2();\n $(\".serviceSelect\").select2({\n tags: true,\n createTag: function createTag(params) {\n var term = $.trim(params.term);\n if (term === '') {\n return null;\n }\n return {\n id: term,\n text: term,\n newTag: true // add additional parameters\n };\n }\n });\n\n //$(\".profitCenterSelect\").select2();\n $(\"input[name=logoFile]\").change(function () {\n setImageFromLocal(this, Opts.containerCssSelector + ' .imageLogo');\n });\n $('form.supplierForm .profitCenterSelectCheckboxAll').off('click');\n $('form.supplierForm .profitCenterSelectCheckboxAll').on('click', function () {\n //console.log();\n //let checked=$(this).is(\":checked\")\n $('form.supplierForm input.profitCenterSelectCheckbox').prop('checked', $(this).is(\":checked\"));\n });\n root.renderAttachment();\n //Opts.onAfterInitViewDetails();\n root.initFileAttachmentFeature();\n debug('**end initViewDetails ');\n };\n this.selectedUploadFileToggle = function (fileInput) {\n /*\r\n console.log(fileInput.attr('name'));\r\n console.log(fileInput[0].files[0]);\r\n console.log(fileInput[0].files[0].name);\r\n */\n if (fileInput) {\n $('.containerFileUpload').addClass('d-none');\n if (fileInput[0].files[0]) {\n $('.containerUploadedFileName').text(fileInput[0].files[0].name);\n }\n $('.containerFileUploadStarted').removeClass('d-none');\n $('.containerUploadedSpinner').removeClass('d-none');\n } else {\n $('.containerUploadedFileName').text('');\n $('.custom-file-label.selected').text('');\n $('.containerFileUploadStarted').addClass('d-none');\n $('.uploadStatusRow').addClass('d-none');\n $('.containerFileUpload').removeClass('d-none');\n }\n };\n this.initFileAttachmentFeature = function () {\n console.log('-------initFileAttachmentFeature-----------');\n if (root.Supplier.id) {\n $('.containerFileUpload').removeClass('d-none');\n $('.containerFileUploadNone').addClass('d-none');\n }\n $(Opts.containerCssSelector + ' .buttonUpload').off('click');\n $(Opts.containerCssSelector + ' .buttonUpload').on('click', function () {\n console.group('-------buttonUpload-----------');\n var fileInput = $('#inputGroupAttacheFile');\n if (fileInput[0].files.length < 1) {\n Toast.create({\n title: \"Hiba!\",\n message: 'Vállaszon ki fájlt!',\n status: TOAST_STATUS.DANGER,\n timeout: 10000\n });\n return;\n }\n console.log($(Opts.containerCssSelector).find('form.supplierForm')[0]);\n var data = new FormData($(Opts.containerCssSelector).find('form.supplierForm')[0]);\n data.append(fileInput.attr('name'), fileInput[0].files[0]);\n root.selectedUploadFileToggle(fileInput);\n var ajaxUrl = Opts.URL.attachFile.replace('%id%', root.Supplier.id);\n console.groupEnd();\n $.ajax({\n url: ajaxUrl,\n data: data,\n type: 'POST',\n contentType: false,\n processData: false,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n console.log(data);\n if (data.success == true) {\n root.addAttachment(data.data.attachment);\n root.selectedUploadFileToggle();\n }\n },\n error: function error(data) {\n console.log(data.responseJSON);\n root.selectedUploadFileToggle();\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n });\n };\n this.clickNew = function () {\n debug('clickNew');\n APP.loadMainContent(Opts.URL.create, root.clickNewCallBack);\n };\n this.clickNewCallBack = function () {\n debug('callbackNew');\n root.Supplier = new window.Supplier();\n root.initViewDetails();\n };\n this.datatableRowActionEdit = function (rowData, node) {\n console.log('datatableRowActionEdit Called');\n //Opts.onAfterInitViewDetails=root.autofillDetails;\n var ajaxUrl = Opts.URL.edit.replace('%id%', rowData.id);\n APP.loadMainContent(ajaxUrl, root.initViewDetails);\n console.log('datatableRowActionEdit End');\n };\n this.clickOrderDeleteConfirmed = function (event) {\n debug('clickSupplierDeleteConfirmed');\n debug(event);\n debug(event.data);\n $('#dialogModal').modal('hide');\n var ajaxData = {};\n ajaxData._token = Opts.token;\n var ajaxUrl = Opts.URL.destroy.replace('%id%', event.data.id);\n ajaxData._token = $('input[name=_token]').val();\n console.log(ajaxUrl);\n console.log(ajaxData);\n var row = $(dataTableCSSSelector).DataTable().row(root.dadatatableRowActionCallerNode.parents('tr'));\n $.ajax({\n url: ajaxUrl,\n data: ajaxData,\n method: \"DELETE\",\n success: function success(data) {\n if (data.success == true) {\n row.remove().draw();\n root.dadatatableRowActionCallerNode = false;\n }\n }\n });\n };\n var datatableRowActionCallerNode = false;\n this.datatableRowActionDelete = function (rowData, node) {\n console.log('datatableRowActionDelete Called');\n root.dadatatableRowActionCallerNode = node;\n $('#dialogModal').on('show.bs.modal', function (event) {\n // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).\n // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.\n var modal = $(this);\n modal.find('.modal-title').text('Megerősítés ');\n modal.find('.modal-body').text('Biztosan törli a beszállítót?');\n modal.find('.buttonYes').off('click');\n modal.find('.buttonYes').on('click', {\n id: rowData.id\n }, root.clickOrderDeleteConfirmed);\n });\n $('#dialogModal').modal('show');\n };\n this.datatableRowActionButtonClick = function (event) {\n debug('datatableRowActionButtonClick');\n var node = $(event[0].currentTarget);\n var row = $(dataTableCSSSelector).DataTable().row(node.parents('tr'));\n var rowData = row.data();\n var actionName = 'datatableRowAction' + node.data('buttontype').capitalize();\n if (typeof root[actionName] === \"function\") {\n return root[actionName](rowData, node);\n }\n };\n this.initViewList = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n debug('listview inicialization');\n dataTableCSSSelector = Opts.containerCssSelector + ' .dataTable'; //\n\n var colNum = $(dataTableCSSSelector + ' thead th').length; //buttons insert position need\n APP.setOpts({\n datatableActionButtonClickCallBack: root.clickNew,\n datatableRowActionButtonClickCallBack: root.datatableRowActionButtonClick\n });\n var orderDirective = Opts.dataTable.orderDirective;\n if (typeof options['orderDirective'] != 'undefined') {\n orderDirective = options['orderDirective'];\n }\n $(dataTableCSSSelector).DataTable({\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n //\"ajax\": \"{{asset('exapmle2.json')}}\",\n \"ajax\": Opts.URL.getDataTableContent,\n \"columnDefs\": [{\n \"targets\": colNum - 1,\n \"render\": function render(data, type, row) {\n var buttons = APP.datatableAddRowTrashButton(0, arguments);\n buttons += APP.datatableAddRowEditButton(0, arguments);\n return buttons;\n }\n }, {\n \"targets\": 1,\n \"render\": function render(data, type, row) {\n return type === \"sort\" ? data.latinise() : data;\n }\n }\n //{ \"visible\": false, \"targets\": [ 0 ] }\n ],\n buttons: {\n buttons: ['excel', 'pdf', {\n extend: 'print',\n //text: 'Print current page',\n 'title': 'title custom text',\n 'messageTop': 'Message On Top',\n autoPrint: true\n }, /**/\n\n {\n text: 'Új felvitele',\n className: 'btn btn-success newItem',\n attr: {\n /*\r\n data:{\r\n a:1,\r\n b:2\r\n }\r\n */\n 'data': 'newItem'\n },\n init: function init(api, node, config) {\n $(node).removeClass('ui-button');\n },\n action: function action(e, dt, node, config) {\n APP.datatableActionButtonClickCallBack(arguments);\n /* console.log(e);\r\n console.log(dt);\r\n console.log(node);\r\n console.log(config);*/\n }\n }]\n },\n \"columns\": [{\n \"data\": \"id\"\n }, {\n \"data\": \"name\"\n }, {\n \"data\": \"hooreycaId\"\n }, {\n \"data\": \"nameId\"\n }, {\n \"data\": \"created_at\"\n }, null],\n \"order\": orderDirective,\n \"stateSave\": true,\n \"drawCallback\": function drawCallback(settings) {\n APP.datatableAddRowAction(dataTableCSSSelector);\n }\n });\n debug('listview end');\n };\n this.autofillDetails = function () {\n debug('nyeresre allunk');\n var randomNumber = getRandomInt(9999);\n $('input[name=name]').val('Beszalító' + randomNumber);\n $('input[name=hooreycaId]').val('hb' + randomNumber);\n $('input[name=nameId]').val('be' + randomNumber);\n $('input[name=orderEmail]').val('kapcsolat' + randomNumber + '@beszallito.hu');\n $('input[name=orderEmail2]').val('informacio' + randomNumber + '@beszallito.hu');\n $('input[name=address]').val('8989 Supplier utca ' + randomNumber);\n $('input[name=mailingAddress]').val('8989 Postai út' + randomNumber);\n $('input[name=phone]').val('+36301234567');\n $('input[name=fax]').val('36308889999');\n $('input[name=customerServicePhone]').val('+36761234444');\n $('textarea[name=note]').val('Megjegyzem ' + randomNumber);\n };\n this.testMode = function () {\n console.debug('!!!!testmode !!!!');\n root.Supplier = new window.Supplier({\n 'contact': [{\n id: 2\n }, {\n id: 3\n }\n /*\r\n {\r\n id:3,\r\n name:'Kósa Veronika',\r\n email:'szamlazas4@funkcio.hu',\r\n phone:'{{formatterPhoneNumber(\"+36204589180\")}}'\r\n }\r\n */]\n });\n Opts.onAfterInitViewDetails = root.autofillDetails;\n APP.loadMainContent(Opts.URL.create, root.initViewDetails);\n };\n this.init = function (options, SupplierItem) {\n $.extend(Opts, options);\n if (Opts.testMode) {\n return root.testMode();\n }\n if (SupplierItem) {\n root.Supplier = SupplierItem;\n }\n root.initViewList();\n };\n this.renderAttachment = function () {\n var rowNum = 1;\n console.log('renderingAttachment');\n $.each(root.Supplier.getData('attachment'), function () {\n var attachmentData = this;\n attachmentData.rowNum = rowNum;\n date = new Date(attachmentData.created_at);\n attachmentData.date = date.toLocaleString();\n attachmentData.link = attachmentData.PublicUrl + '/' + attachmentData.filename;\n var template = $('template[data-name=\"supplierAttachmentTableRow\"]').html();\n var render = Mustache.render(template, attachmentData);\n $('.attachmentTable tbody').append(render);\n rowNum++;\n });\n root.bindAttachmentClickAction();\n };\n this.addAttachment = function (attachmentData) {\n console.log(attachmentData);\n var CSSSelectorForm = Opts.containerCssSelector + ' .supplierForm';\n root.Supplier.attachment.push(attachmentData);\n attachmentData.rowNum = root.Supplier.attachment.length;\n var template = $('template[data-name=\"supplierAttachmentTableRow\"]').html();\n var render = Mustache.render(template, attachmentData);\n $(CSSSelectorForm + ' .attachmentTable tbody').append(render);\n root.bindContactClickAction();\n Toast.enableTimers(false);\n Toast.create({\n title: \"Fájl hozzáadva!\",\n message: attachmentData.original_filename + \" fájl hozzáadva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.resetContactTable = function () {\n $('.contactTable tbody tr').remove();\n root.renderContact();\n };\n this.renderContact = function () {\n var rowNum = 1;\n console.log('renderingContacts');\n $.each(root.Supplier.getData('contact'), function () {\n var contactData = this;\n contactData.rowNum = rowNum;\n //console.log(contactData);\n var template = $('template[data-name=\"supplierContactTableRow\"]').html();\n var render = Mustache.render(template, contactData);\n $('.contactTable tbody').append(render);\n rowNum++;\n });\n root.bindContactClickAction();\n };\n this.bindContactClickAction = function () {\n var node = $('.contactTable .buttonDelete');\n node.unbind('click');\n node.bind('click', root.contactDeleteClick);\n node = $('.contactTable .buttonEdit');\n node.unbind('click');\n node.bind('click', root.contactEditClick);\n };\n this.bindAttachmentClickAction = function () {\n var node = $('.attachmentTable .buttonDelete');\n node.unbind('click');\n node.bind('click', root.attachmentDeleteClick);\n };\n var currentAttachmentRow = false;\n this.attachmentDeleteClick = function (event) {\n var row = $(this).closest('tr');\n var id = row.find('input[name=attachmentId]').val();\n var ajaxUrl = Opts.URL.detachFile.replace('%id%', root.Supplier.id);\n //let data= new FormData($(Opts.containerCssSelector).find('form.supplierForm')[0]);\n //data.append(fileInput.attr('name'),fileInput[0].files[0]);\n var data = {};\n data._token = $('input[name=\"_token\"]').val();\n data.attachemntId = id;\n $.ajax({\n url: ajaxUrl,\n data: data,\n type: 'POST',\n //contentType:false,\n //processData: false,\n beforeSend: function beforeSend() {},\n success: function success(data) {\n console.log(data);\n if (data.success == true) {\n root.Supplier.attachment = root.Supplier.attachment.filter(function (value, index, arr) {\n if (value.id !== data.data.attachment.id * 1) {\n return true;\n }\n return false;\n });\n /*\r\n */\n //row.remove();\n root.resetAttachmentTable();\n }\n },\n error: function error(data) {\n console.log(data.responseJSON);\n root.selectedUploadFileToggle();\n ajaxErrorFieldHandler(data.responseJSON.error);\n }\n });\n };\n this.resetAttachmentTable = function () {\n $('.attachmentTable tbody tr').remove();\n root.renderAttachment();\n };\n this.contactDeleteClick = function (event) {\n var row = $(this).closest('tr');\n var id = row.find('input[name=contactId]').val();\n root.Supplier.contact = root.Supplier.contact.filter(function (value, index, arr) {\n if (value.id !== id * 1) {\n return true;\n }\n return false;\n });\n row.remove();\n root.resetContactTable();\n };\n root.getContactPopupWorkflow = function () {\n return contactPopupWorkflow;\n };\n root.setContactPopupWorkflow = function (status) {\n contactPopupWorkflow = status;\n };\n this.contactEditClick = function (event) {\n //console.log(this);\n var row = $(this).closest('tr');\n var id = row.find('input[name=contactId]').val();\n root.setContactPopupWorkflow('edit');\n APP.ContactPopUp.loadData(id);\n };\n this.getSupplier = function () {\n return root.Supplier;\n };\n this.contactAction = function (contactData) {\n console.log('nah most kellene meg valamit csinalni.');\n if (root.getContactPopupWorkflow() == 'new') {\n root.addContact(contactData);\n } else if (root.getContactPopupWorkflow() == 'edit') {\n root.editContact(contactData.id, contactData);\n }\n };\n this.editContact = function (id, contactData) {\n var newContacts = [];\n $.each(root.Supplier.getData('contact'), function (index) {\n if (this.id == id) {\n newContacts.push(contactData);\n } else {\n newContacts.push(this);\n }\n });\n root.Supplier.contact = newContacts;\n root.resetContactTable();\n Toast.create({\n title: \"Kapcsolat adatai módosítva!\",\n message: contactData.name + \" nevű kapcsolattartó módosítva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.addContact = function (contactData) {\n /*\r\n fel kell venni a sorba\r\n */\n root.Supplier.contact.push(contactData);\n contactData.rowNum = root.Supplier.contact.length;\n var template = $('template[data-name=\"supplierContactTableRow\"]').html();\n var render = Mustache.render(template, contactData);\n $('.contactTable tbody').append(render);\n root.bindContactClickAction();\n Toast.enableTimers(false);\n Toast.create({\n title: \"Kapcsolattartó hozzáadva!\",\n message: contactData.name + \" nevű kapcsolattartó hozzáadva\",\n status: TOAST_STATUS.SUCCESS,\n timeout: 5000\n });\n };\n this.construct(options, SupplierItem);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdXBwbGllciIsIl9EYXRhTW9kZWwiLCJfU3VwcGxpZXIiLCJkYXRhIiwib3B0aW9ucyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsImNvbnRhY3QiLCJjYW5TZWUiLCJjYW5TZWVJbk9yZGVyIiwiY29uc29sZSIsImxvZyIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsIkRhdGFNb2RlbCIsIndpbmRvdyIsIlN1cHBsaWVyQWRtaW4iLCJTdXBwbGllckl0ZW0iLCJPcHRzIiwidG9rZW4iLCJjb250YWluZXJDc3NTZWxlY3RvciIsInRlc3RNb2RlIiwiVVJMIiwiZ2V0RGF0YVRhYmxlQ29udGVudCIsImluZGV4Iiwic2hvdyIsImVkaXQiLCJjcmVhdGUiLCJzdG9yZSIsInVwZGF0ZSIsImRlc3Ryb3kiLCJhdHRhY2hGaWxlIiwiZGV0YWNoRmlsZSIsImRhdGFUYWJsZSIsIm9yZGVyRGlyZWN0aXZlIiwib25BZnRlckluaXRWaWV3RGV0YWlscyIsInJvb3QiLCJjb250YWN0UG9wdXBXb3JrZmxvdyIsImNvbnN0cnVjdCIsIiQiLCJleHRlbmQiLCJBUFAiLCJnZXRPcHRzIiwiZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsT2xkIiwiQ1NTU2VsZWN0b3IiLCJGb3JtRGF0YSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImZvcm1KU09OIiwiZm9yRWFjaCIsInZhbHVlIiwia2V5IiwiUmVmbGVjdCIsImhhcyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJlYWNoIiwiYXR0ciIsInJlcGxhY2UiLCJmb3JtRGF0YVRvRGF0YU9iamVjdEFQSUNhbGwiLCJDU1NTZWxlY3RvckZvcm0iLCJhamF4RGF0YSIsImdldEFsbCIsImFwcGVuZCIsInZhbCIsImluZGV4S2V5IiwiZ2V0Iiwic2V0IiwiY2xpY2tTYXZlQnV0dG9uIiwiZXZlbnQiLCJkZWJ1ZyIsInByZXZlbnREZWZhdWx0IiwiY2hlY2tWYWxpZGl0eSIsImFkZENsYXNzIiwicmVwb3J0VmFsaWRpdHkiLCJUb2FzdCIsInRpdGxlIiwibWVzc2FnZSIsInN0YXR1cyIsIlRPQVNUX1NUQVRVUyIsIkRBTkdFUiIsInRpbWVvdXQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZW1vdmVDbGFzcyIsImFqYXhVcmwiLCJhamF4TWV0aG9kIiwiaWQiLCJhamF4IiwidXJsIiwidHlwZSIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJoZWFkZXJzIiwic3VjY2VzcyIsIlNVQ0NFU1MiLCJsb2FkTWFpbkNvbnRlbnQiLCJpbml0Vmlld0xpc3QiLCJzZXREZXRhaWxzVmlld0RhdGEiLCJuZWVkVG9TZXQiLCJub3RlIiwicHJvcCIsImNsaWNrIiwiaG9vcmV5Y2FEYXRhQWN0aXZlIiwicHJvZHVjdEdyb3VwIiwicHJvZHVjdF9ncm91cCIsIm5hbWUiLCJjaGFuZ2UiLCJzZXJ2aWNlIiwicHJvZml0Q2VudGVyIiwicHJvZml0X2NlbnRlciIsImVzY2FwZVNlbGVjdG9yIiwiaW5pdFZpZXdEZXRhaWxzIiwiQ29udGFjdFBvcFVwIiwiaW5pdCIsImFjdGl2ZSIsIm9uQWZ0ZXJTYXZlIiwiY29udGFjdEFjdGlvbiIsInJlbmRlckNvbnRhY3QiLCJiaW5kIiwic2V0Q29udGFjdFBvcHVwV29ya2Zsb3ciLCJjbGVhckRhdGEiLCJ0b29sdGlwIiwiaW5pdFJhZGlvQnV0dG9ucyIsImlucHV0bWFzayIsIm9uaW5jb21wbGV0ZSIsImxlbmd0aCIsIm9uY29tcGxldGUiLCJvbmNsZWFyZWQiLCJvZmYiLCJvbiIsInNlbGVjdDIiLCJ0YWdzIiwiY3JlYXRlVGFnIiwicGFyYW1zIiwidGVybSIsInRyaW0iLCJ0ZXh0IiwibmV3VGFnIiwic2V0SW1hZ2VGcm9tTG9jYWwiLCJpcyIsInJlbmRlckF0dGFjaG1lbnQiLCJpbml0RmlsZUF0dGFjaG1lbnRGZWF0dXJlIiwic2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlIiwiZmlsZUlucHV0IiwiZmlsZXMiLCJncm91cCIsImZpbmQiLCJncm91cEVuZCIsImJlZm9yZVNlbmQiLCJhZGRBdHRhY2htZW50IiwiYXR0YWNobWVudCIsImVycm9yIiwicmVzcG9uc2VKU09OIiwiYWpheEVycm9yRmllbGRIYW5kbGVyIiwiY2xpY2tOZXciLCJjbGlja05ld0NhbGxCYWNrIiwiZGF0YXRhYmxlUm93QWN0aW9uRWRpdCIsInJvd0RhdGEiLCJub2RlIiwiY2xpY2tPcmRlckRlbGV0ZUNvbmZpcm1lZCIsIm1vZGFsIiwiX3Rva2VuIiwicm93IiwiZGF0YVRhYmxlQ1NTU2VsZWN0b3IiLCJEYXRhVGFibGUiLCJkYWRhdGF0YWJsZVJvd0FjdGlvbkNhbGxlck5vZGUiLCJwYXJlbnRzIiwibWV0aG9kIiwicmVtb3ZlIiwiZHJhdyIsImRhdGF0YWJsZVJvd0FjdGlvbkNhbGxlck5vZGUiLCJkYXRhdGFibGVSb3dBY3Rpb25EZWxldGUiLCJkYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGljayIsImN1cnJlbnRUYXJnZXQiLCJhY3Rpb25OYW1lIiwiY2FwaXRhbGl6ZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNvbE51bSIsInNldE9wdHMiLCJkYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrIiwiZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayIsImxhbmd1YWdlIiwicmVuZGVyIiwiYnV0dG9ucyIsImRhdGF0YWJsZUFkZFJvd1RyYXNoQnV0dG9uIiwiZGF0YXRhYmxlQWRkUm93RWRpdEJ1dHRvbiIsImxhdGluaXNlIiwiYXV0b1ByaW50IiwiY2xhc3NOYW1lIiwiYXBpIiwiY29uZmlnIiwiYWN0aW9uIiwiZSIsImR0IiwiZHJhd0NhbGxiYWNrIiwic2V0dGluZ3MiLCJkYXRhdGFibGVBZGRSb3dBY3Rpb24iLCJhdXRvZmlsbERldGFpbHMiLCJyYW5kb21OdW1iZXIiLCJnZXRSYW5kb21JbnQiLCJyb3dOdW0iLCJnZXREYXRhIiwiYXR0YWNobWVudERhdGEiLCJkYXRlIiwiRGF0ZSIsImNyZWF0ZWRfYXQiLCJ0b0xvY2FsZVN0cmluZyIsImxpbmsiLCJQdWJsaWNVcmwiLCJmaWxlbmFtZSIsInRlbXBsYXRlIiwiaHRtbCIsIk11c3RhY2hlIiwiYmluZEF0dGFjaG1lbnRDbGlja0FjdGlvbiIsImJpbmRDb250YWN0Q2xpY2tBY3Rpb24iLCJlbmFibGVUaW1lcnMiLCJvcmlnaW5hbF9maWxlbmFtZSIsInJlc2V0Q29udGFjdFRhYmxlIiwiY29udGFjdERhdGEiLCJ1bmJpbmQiLCJjb250YWN0RGVsZXRlQ2xpY2siLCJjb250YWN0RWRpdENsaWNrIiwiYXR0YWNobWVudERlbGV0ZUNsaWNrIiwiY3VycmVudEF0dGFjaG1lbnRSb3ciLCJjbG9zZXN0IiwiYXR0YWNoZW1udElkIiwiZmlsdGVyIiwiYXJyIiwicmVzZXRBdHRhY2htZW50VGFibGUiLCJnZXRDb250YWN0UG9wdXBXb3JrZmxvdyIsImxvYWREYXRhIiwiZ2V0U3VwcGxpZXIiLCJhZGRDb250YWN0IiwiZWRpdENvbnRhY3QiLCJuZXdDb250YWN0cyJdLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYWRtaW4vc3VwcGxpZXIuanM/YTdjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpZih0eXBlb2YgU3VwcGxpZXI9PT0ndW5kZWZpbmVkJyl7XHJcbiAgICBjbGFzcyBTdXBwbGllciBleHRlbmRzIERhdGFNb2RlbHtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yIChkYXRhLG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgc3VwZXIoZGF0YSxvcHRpb25zKVxyXG4gICAgICAgICAgICBpZih0eXBlb2YgdGhpcy5jb250YWN0ID09PVwidW5kZWZpbmVkXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWN0PVtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHR5cGVvZiB0aGlzLmNhblNlZSA9PT1cInVuZGVmaW5lZFwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuU2VlPTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodHlwZW9mIHRoaXMuY2FuU2VlSW5PcmRlciA9PT1cInVuZGVmaW5lZFwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuU2VlSW5PcmRlcj0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTdXBwbGllciBjb25zdHJ1Y3RvciBjYWxsZWQnKTtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5TdXBwbGllcj1TdXBwbGllcjtcclxufVxyXG5cclxuXHJcbndpbmRvdy5TdXBwbGllckFkbWluPWZ1bmN0aW9uIChvcHRpb25zLFN1cHBsaWVySXRlbSkge1xyXG4gICAgLypcclxuICAgICAqIFZhcmlhYmxlcyBhY2Nlc3NpYmxlXHJcbiAgICAgKiBpbiB0aGUgY2xhc3NcclxuICAgICAqL1xyXG4gICAgbGV0IE9wdHMgPSB7XHJcbiAgICAgICAgdG9rZW46bnVsbCxcclxuICAgICAgICBjb250YWluZXJDc3NTZWxlY3RvcjogJy5jb250YWluZXJTdXBwbGllcicsXHJcbiAgICAgICAgdGVzdE1vZGU6ZmFsc2UsXHJcbiAgICAgICAgVVJMOntcclxuICAgICAgICAgICAgZ2V0RGF0YVRhYmxlQ29udGVudDonJyxcclxuICAgICAgICAgICAgaW5kZXg6JycsXHJcbiAgICAgICAgICAgIHNob3c6JycsXHJcbiAgICAgICAgICAgIGVkaXQ6JycsXHJcbiAgICAgICAgICAgIGNyZWF0ZTonJyxcclxuICAgICAgICAgICAgc3RvcmU6JycsXHJcbiAgICAgICAgICAgIHVwZGF0ZTonJyxcclxuICAgICAgICAgICAgZGVzdHJveTonJyxcclxuICAgICAgICAgICAgYXR0YWNoRmlsZTonJyxcclxuICAgICAgICAgICAgZGV0YWNoRmlsZTonJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGFUYWJsZTp7XHJcbiAgICAgICAgICAgIG9yZGVyRGlyZWN0aXZlOlsxLCAnYXNjJ11cclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQWZ0ZXJJbml0Vmlld0RldGFpbHM6ZnVuY3Rpb24gKCl7fVxyXG4gICAgfTtcclxuICAgIGxldCBTdXBwbGllciA9IHt9O1xyXG4gICAgbGV0IHJvb3QgPSB0aGlzO1xyXG4gICAgbGV0IGNvbnRhY3RQb3B1cFdvcmtmbG93PSduZXcnO1xyXG4gICAgLypcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIHRoaXMuY29uc3RydWN0ID0gZnVuY3Rpb24gKG9wdGlvbnMsU3VwcGxpZXJJdGVtKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1N1cHBsaWVyQWRtaW4gY29uc3RydWN0b3IgY2FsbGVkJyk7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbiAgICAgICAgaWYoIVN1cHBsaWVySXRlbSl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdXBwbGllciBsZXRyZSBrZWxsZXQgaG96bmkgJyk7XHJcbiAgICAgICAgICAgIGlmKCFBUFAuU3VwcGxpZXIpe1xyXG4gICAgICAgICAgICAgICAgQVBQLlN1cHBsaWVyPW5ldyB3aW5kb3cuU3VwcGxpZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByb290LlN1cHBsaWVyPUFQUC5TdXBwbGllcjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRPcHRzPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybURhdGFUb0RhdGFPYmplY3RBUElDYWxsT2xkPSBmdW5jdGlvbiAoQ1NTU2VsZWN0b3IpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKENTU1NlbGVjdG9yKSk7XHJcbiAgICAgICAgLy9sZXQgZm9ybUpTT04gPSBPYmplY3QuZnJvbUVudHJpZXMoZGF0YS5lbnRyaWVzKCkpO1xyXG4gICAgICAgIHZhciBmb3JtSlNPTiA9IHt9O1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBSZWZsZWN0LmhhcyBpbiBmYXZvciBvZjogZm9ybUpTT04uaGFzT3duUHJvcGVydHkoa2V5KVxyXG4gICAgICAgICAgICBpZighUmVmbGVjdC5oYXMoZm9ybUpTT04sIGtleSkpe1xyXG4gICAgICAgICAgICAgICAgZm9ybUpTT05ba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCFBcnJheS5pc0FycmF5KGZvcm1KU09OW2tleV0pKXtcclxuICAgICAgICAgICAgICAgIGZvcm1KU09OW2tleV0gPSBbZm9ybUpTT05ba2V5XV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9ybUpTT05ba2V5XS5wdXNoKHZhbHVlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJChDU1NTZWxlY3RvcisnIGlucHV0W2RhdGEtaW5wdXRtYXNrXScpLmVhY2goZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgICAgIGlmKGZvcm1KU09OWyQodGhpcykuYXR0cignbmFtZScpXSl7XHJcbiAgICAgICAgICAgICAgICBmb3JtSlNPTlskKHRoaXMpLmF0dHIoJ25hbWUnKV09Zm9ybUpTT05bJCh0aGlzKS5hdHRyKCduYW1lJyldLnJlcGxhY2UoL1tfIF0rJC9nLFwiXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy9mb3JtSlNPTi5wcm9kdWN0R3JvdXBzPSQoXCIucHJvZHVjdENhdGVnb3J5U2VsZWN0XCIpLnNlbGVjdDIoKS52YWwoKTtcclxuXHJcblxyXG4gICAgICAgIC8qTXVsdGlzZWxlY3Qgb3IgY2hlY2tib3ggdG8gYXJyYXk6XHJcbiAgICAgICAgYWpheERhdGFbJ3Byb2R1Y3RHcm91cCddPSQoXCIucHJvZHVjdENhdGVnb3J5U2VsZWN0XCIpLnNlbGVjdDIoKS52YWwoKTtcclxuXHJcbiAgICAgICAgZm9ybUpTT04ubXVsdGlzZWxlY3ROYW1lID0gZGF0YS5nZXRBbGwoJ211bHRpc2VsZWN0TmFtZScpO1xyXG4gICAgICAgICQuZWFjaChmb3JtSlNPTiwgZnVuY3Rpb24gKGl0ZW0sIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGZvcm1KU09OWyQubGNGaXJzdChpdGVtLnJlcGxhY2UoJ2NvbnRhY3QnLCAnJykpXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICBkZWxldGUgZm9ybUpTT05baXRlbV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYoZm9ybUpTT04ucGhvbmUpe1xyXG4gICAgICAgICAgICBmb3JtSlNPTi5waG9uZT1mb3JtSlNPTi5waG9uZS5yZXBsYWNlQWxsKCdfJywnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGZvcm1KU09OLmVtYWlsKXtcclxuICAgICAgICAgICAgZm9ybUpTT04uZW1haWw9Zm9ybUpTT04uZW1haWwucmVwbGFjZUFsbCgnXycsJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAqL1xyXG4gICAgICAgIHJldHVybiBmb3JtSlNPTjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1EYXRhVG9EYXRhT2JqZWN0QVBJQ2FsbCA9IGZ1bmN0aW9uIChDU1NTZWxlY3RvckZvcm0pIHtcclxuICAgICAgICBsZXQgYWpheERhdGE9bmV3IEZvcm1EYXRhKCQoQ1NTU2VsZWN0b3JGb3JtKVswXSk7XHJcbiAgICAgICAgJC5lYWNoKGFqYXhEYXRhLmdldEFsbCgncHJvZml0Q2VudGVyJyksZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdwcm9maXRDZW50ZXJbXScsdmFsdWUpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgJC5lYWNoKGFqYXhEYXRhLmdldEFsbCgncHJvZHVjdEdyb3VwJyksZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdwcm9kdWN0R3JvdXBbXScsdmFsdWUpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgJC5lYWNoKGFqYXhEYXRhLmdldEFsbCgnc3VwcGxpZXJTZXJ2aWNlJyksZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdzdXBwbGllclNlcnZpY2VbXScsdmFsdWUpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgJC5lYWNoKGFqYXhEYXRhLmdldEFsbCgnY29udGFjdElkJyksZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAgICAgYWpheERhdGEuYXBwZW5kKCdjb250YWN0SWRbXScsdmFsdWUpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIGFqYXhEYXRhLmFwcGVuZCgnX3Rva2VuJywkKCdpbnB1dFtuYW1lPV90b2tlbl0nKS52YWwoKSk7XHJcblxyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgaW5wdXRbZGF0YS1pbnB1dG1hc2tdJykuZWFjaChmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgbGV0IGluZGV4S2V5PSQodGhpcykuYXR0cignbmFtZScpO1xyXG4gICAgICAgICAgICBpZihhamF4RGF0YS5nZXQoaW5kZXhLZXkpKXtcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhLnNldChpbmRleEtleSxhamF4RGF0YS5nZXQoaW5kZXhLZXkpLnJlcGxhY2UoL1tfIF0rJC9nLFwiXCIpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gYWpheERhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGlja1NhdmVCdXR0b249ZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgZGVidWcoJ1NhdmUgY2xpY2tlZCcpO1xyXG4gICAgICAgIGxldCBDU1NTZWxlY3RvckZvcm09T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5zdXBwbGllckZvcm0nO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICBpZiAoJChDU1NTZWxlY3RvckZvcm0rJyBpbnB1dFtuYW1lPVwiY2FuU2VlSW5PcmRlclwiXScpLnZhbCgpPT0xICYmICQoQ1NTU2VsZWN0b3JGb3JtKVswXS5jaGVja1ZhbGlkaXR5KCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2YWxpZGF0b24gZmFsc2UnKTtcclxuICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0pLmFkZENsYXNzKCd3YXMtdmFsaWRhdGVkJyk7XHJcbiAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKVswXS5yZXBvcnRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgICBUb2FzdC5jcmVhdGUoeyB0aXRsZTogXCJWYWxpZMOhY2nDs3MgaGliYSFcIiwgbWVzc2FnZTogXCJLw6lyasO8aywgdMO2bHRzZSBraSBhIGvDtnRlbGV6xZEgbWV6xZFrZXQhXCIsIHN0YXR1czogVE9BU1RfU1RBVFVTLkRBTkdFUiwgdGltZW91dDogNTAwMCB9KTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygndmFsaWRhdG9uIG9rJyk7XHJcbiAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKS5yZW1vdmVDbGFzcygnd2FzLXZhbGlkYXRlZCcpO1xyXG4gICAgICAgICAgICAvL2RvIHlvdXIgYWpheCBzdWJtaXRpb24gaGVyZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYWpheERhdGE9cm9vdC5mb3JtRGF0YVRvRGF0YU9iamVjdEFQSUNhbGwoQ1NTU2VsZWN0b3JGb3JtKTtcclxuXHJcblxyXG5cclxuICAgICAgICBsZXQgYWpheFVybD1PcHRzLlVSTC5zdG9yZTtcclxuICAgICAgICBsZXQgYWpheE1ldGhvZD1cIlBPU1RcIjtcclxuICAgICAgICBpZihyb290LlN1cHBsaWVyLmlkKXtcclxuICAgICAgICAgICAgYWpheFVybD1PcHRzLlVSTC51cGRhdGUucmVwbGFjZSgnJWlkJScscm9vdC5TdXBwbGllci5pZCk7XHJcbiAgICAgICAgICAgIC8vYWpheE1ldGhvZD1cIlBVVFwiO1xyXG4gICAgICAgICAgICAvL2FqYXhEYXRhPW5ldyBGb3JtRGF0YSgkKENTU1NlbGVjdG9yRm9ybSlbMF0pO1xyXG4gICAgICAgICAgICBhamF4RGF0YS5hcHBlbmQoJ19tZXRob2QnLCdQVVQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlYnVnKGFqYXhNZXRob2QpO1xyXG4gICAgICAgIGRlYnVnKGFqYXhEYXRhKTtcclxuXHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOmFqYXhVcmwsXHJcbiAgICAgICAgICAgIGRhdGE6YWpheERhdGEsXHJcbiAgICAgICAgICAgIHR5cGU6YWpheE1ldGhvZCxcclxuICAgICAgICAgICAgY29udGVudFR5cGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgJ1gtQ1NSRi1UT0tFTic6ICQoJ2lucHV0W25hbWU9XCJfdG9rZW5cIl0nKS52YWwoKVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgc3VjY2VzczpmdW5jdGlvbiAoZGF0YSl7XHJcbiAgICAgICAgICAgICAgICBkZWJ1ZygnZDE6IFNhdmUgc3VjY2VzcyAnKTtcclxuICAgICAgICAgICAgICAgIGRlYnVnKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGF0YS5zdWNjZXNzPT10cnVlKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9PcHRzLm9uQWZ0ZXJJbml0Vmlld0RldGFpbHM9cm9vdC5hdXRvZmlsbERldGFpbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgT3B0cy5kYXRhVGFibGUub3JkZXJEaXJlY3RpdmU9WzAsICdkZXNjJ107XHJcbiAgICAgICAgICAgICAgICAgICAgVG9hc3QuY3JlYXRlKHsgdGl0bGU6IFwiU2lrZXJlcyByw7ZnesOtdMOpcyFcIiwgbWVzc2FnZTogYWpheERhdGEuZ2V0KCduYW1lJykrXCIgbmV2xbEgYmVzesOhbGxsw610w7MgZWxtZW50dmVcIiwgc3RhdHVzOiBUT0FTVF9TVEFUVVMuU1VDQ0VTUywgdGltZW91dDogNTAwMCB9KTtcclxuICAgICAgICAgICAgICAgICAgICBBUFAubG9hZE1haW5Db250ZW50KE9wdHMuVVJMLmluZGV4Kyc/aW5pdD0wJyxyb290LmluaXRWaWV3TGlzdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RGV0YWlsc1ZpZXdEYXRhPWZ1bmN0aW9uICgpIHtcclxuICAgICAgICBkZWJ1Zygnc2V0RGV0YWlsc1ZpZXdEYXRhJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coU3VwcGxpZXIpO1xyXG4gICAgICAgIGxldCBDU1NTZWxlY3RvckZvcm09T3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5zdXBwbGllckZvcm0nO1xyXG4gICAgICAgIGxldCBuZWVkVG9TZXQ9W1xyXG4gICAgICAgICAgICAnbmFtZScsJ2hvb3JleWNhSWQnLCduYW1lSWQnLFxyXG4gICAgICAgICAgICAnb3JkZXJFbWFpbCcsJ29yZGVyRW1haWwyJywnYWRkcmVzcycsJ21haWxpbmdBZGRyZXNzJywncGhvbmUnLCdmYXgnLCdjdXN0b21lclNlcnZpY2VQaG9uZScsXHJcbiAgICAgICAgICAgICduYW1lMjInLFxyXG4gICAgICAgICAgICAnb3BlbkhvdXJzJywgJ29yZGVyc0RlYWRsaW5lJywgJ21pbk9yZGVyVmFsdWUnLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgJC5lYWNoKG5lZWRUb1NldCxmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmKHR5cGVvZiByb290LlN1cHBsaWVyW3RoaXNdIT0ndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIGlucHV0W25hbWU9Jyt0aGlzKyddJykudmFsKHJvb3QuU3VwcGxpZXJbdGhpc10pO1xyXG4gICAgICAgICAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyB0ZXh0YXJlYVtuYW1lPScrdGhpcysnXScpLnZhbChyb290LlN1cHBsaWVyW3RoaXNdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYodHlwZW9mIHJvb3QuU3VwcGxpZXJbJ25vdGUnXSE9J3VuZGVmaW5lZCcpe1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIHRleHRhcmVhW25hbWU9bm90ZV0nKS52YWwocm9vdC5TdXBwbGllci5ub3RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodHlwZW9mIHJvb3QuU3VwcGxpZXJbJ2VtYWlsQXR0YWNobWVudFR5cGUnXSE9J3VuZGVmaW5lZCcpe1xyXG4gICAgICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIGlucHV0W25hbWU9ZW1haWxBdHRhY2htZW50VHlwZV1bdmFsdWU9Jytyb290LlN1cHBsaWVyWydlbWFpbEF0dGFjaG1lbnRUeXBlJ10rJ10nKS5wcm9wKCdjaGVja2VkJyx0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAqW2RhdGEtdG9nZ2xlPWNhblNlZV1bZGF0YS10aXRsZT0nK3Jvb3QuU3VwcGxpZXIuY2FuU2VlKyddJykuY2xpY2soKTtcclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnICpbZGF0YS10b2dnbGU9Y2FuU2VlSW5PcmRlcl1bZGF0YS10aXRsZT0nK3Jvb3QuU3VwcGxpZXIuY2FuU2VlSW5PcmRlcisnXScpLmNsaWNrKCk7XHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAqW2RhdGEtdG9nZ2xlPWhvb3JleWNhRGF0YUFjdGl2ZV1bZGF0YS10aXRsZT0nK3Jvb3QuU3VwcGxpZXIuaG9vcmV5Y2FEYXRhQWN0aXZlKyddJykuY2xpY2soKTtcclxuICAgICAgICBsZXQgcHJvZHVjdEdyb3VwPVtdO1xyXG4gICAgICAgICQuZWFjaChyb290LlN1cHBsaWVyLnByb2R1Y3RfZ3JvdXAsZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBwcm9kdWN0R3JvdXAucHVzaCh0aGlzLm5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgLnByb2R1Y3RDYXRlZ29yeVNlbGVjdCcpLnZhbChwcm9kdWN0R3JvdXApLmNoYW5nZSgpO1xyXG5cclxuICAgICAgICBsZXQgc2VydmljZT1bXTtcclxuICAgICAgICAkLmVhY2gocm9vdC5TdXBwbGllci5zZXJ2aWNlLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgc2VydmljZS5wdXNoKHRoaXMubmFtZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChDU1NTZWxlY3RvckZvcm0rJyAuc2VydmljZVNlbGVjdCcpLnZhbChzZXJ2aWNlKS5jaGFuZ2UoKTtcclxuXHJcbiAgICAgICAgbGV0IHByb2ZpdENlbnRlcj1bXTtcclxuICAgICAgICAkLmVhY2gocm9vdC5TdXBwbGllci5wcm9maXRfY2VudGVyLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcHJvZml0Q2VudGVyLnB1c2godGhpcy5uYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyQoQ1NTU2VsZWN0b3JGb3JtKycgLnByb2ZpdENlbnRlclNlbGVjdCcpLnZhbChwcm9maXRDZW50ZXIpLmNoYW5nZSgpO1xyXG4gICAgICAgIC8vZGVidWcocHJvZml0Q2VudGVyKTtcclxuICAgICAgICAkLmVhY2gocHJvZml0Q2VudGVyLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgJCgnaW5wdXRbdmFsdWU9XCInKyQuZXNjYXBlU2VsZWN0b3IodGhpcykrJ1wiXScpLnByb3AoIFwiY2hlY2tlZFwiLCB0cnVlICk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgaWYodHlwZW9mIHJvb3QuU3VwcGxpZXJbJ2xvZ29GaWxlJ10hPSd1bmRlZmluZWQnICYmIChyb290LlN1cHBsaWVyWydsb2dvRmlsZSddKSl7XHJcbiAgICAgICAgICAgICQoQ1NTU2VsZWN0b3JGb3JtKycgaW1nLmltYWdlTG9nbycpLmF0dHIoJ3NyYycscm9vdC5TdXBwbGllclsnbG9nb0ZpbGUnXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2RlYnVnKEFQUC5TdXBwbGllckFkbWluLmZvcm1EYXRhVG9EYXRhT2JqZWN0QVBJQ2FsbCgnLnN1cHBsaWVyRm9ybScpWydwcm9kdWN0R3JvdXAnXSk7XHJcbiAgICAgICAgLy8kKCdbbmFtZT1wcm9kdWN0R3JvdXBdJykudmFsKFsnQsO8ZsOpw6FydV/DqWRlc2lwYXJpX3Rlcm3DqWtlaycsJ1RvasOhcyddKS5jaGFuZ2UoKTtcclxuICAgICAgICAvL3Jvb3Quc2V0RGV0YWlsc1ZpZXdEYXRhKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRWaWV3RGV0YWlscz1mdW5jdGlvbiAob3B0aW9ucyxTdXBwbGllckl0ZW0pe1xyXG4gICAgICAgIGRlYnVnKCcqKmNhbGwgaW5pdFZpZXdEZXRhaWxzICcpO1xyXG4gICAgICAgIGlmKCFBUFAuQ29udGFjdFBvcFVwKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ25pbmNzIEFQUC5Db250YWN0UG9wVXAnKVxyXG4gICAgICAgICAgICBBUFAuQ29udGFjdFBvcFVwID0gbmV3IHdpbmRvdy5Db250YWN0UG9wVXAoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ21hciB2YW4gIEFQUC5Db250YWN0UG9wVXAnKVxyXG4gICAgICAgIH1cclxuICAgICAgICBBUFAuQ29udGFjdFBvcFVwLmluaXQoe1xyXG4gICAgICAgICAgICBhY3RpdmU6dHJ1ZSxcclxuICAgICAgICAgICAgb25BZnRlclNhdmU6cm9vdC5jb250YWN0QWN0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcm9vdC5yZW5kZXJDb250YWN0KCk7XHJcbiAgICAgICAgJCgnLnN1cHBsaWVyRm9ybSAuYnV0dG9uTmV3Q29udGFjdCcpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgQVBQLlN1cHBsaWVyQWRtaW4uc2V0Q29udGFjdFBvcHVwV29ya2Zsb3coJ25ldycpO1xyXG4gICAgICAgICAgICBBUFAuQ29udGFjdFBvcFVwLmNsZWFyRGF0YSgpO1xyXG4gICAgICAgICAgICBBUFAuQ29udGFjdFBvcFVwLnNob3coKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xyXG4gICAgICAgIGluaXRSYWRpb0J1dHRvbnMoKTtcclxuICAgICAgICAkKFwiOmlucHV0XCIpLmlucHV0bWFzayh7XHJcbiAgICAgICAgICAgIFwib25pbmNvbXBsZXRlXCI6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCQodGhpcykuZGF0YSgncmVxdWlyZWQnKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS52YWwoKS5sZW5ndGggPiAwIHx8ICQodGhpcykuZGF0YSgncmVxdWlyZWQnKSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2lzLWludmFsaWQnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXCJvbmNvbXBsZXRlXCI6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2lzLWludmFsaWQnKTtcclxuICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2lzLXZhbGlkJyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFwib25jbGVhcmVkXCI6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjbGVhcmVkJyk7XHJcbiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdpcy1pbnZhbGlkJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJCgnZm9ybS5zdXBwbGllckZvcm0gYnV0dG9uLkZvcm1TYXZlQnV0dG9uJykub2ZmKCdjbGljaycpO1xyXG4gICAgICAgICQoJ2Zvcm0uc3VwcGxpZXJGb3JtIGJ1dHRvbi5Gb3JtU2F2ZUJ1dHRvbicpLm9uKCdjbGljaycscm9vdC5jbGlja1NhdmVCdXR0b24pO1xyXG4gICAgICAgIHJvb3Quc2V0RGV0YWlsc1ZpZXdEYXRhKCk7XHJcbiAgICAgICAgJChcIi5wcm9kdWN0Q2F0ZWdvcnlTZWxlY3RcIikuc2VsZWN0MigpO1xyXG4gICAgICAgICQoXCIuc2VydmljZVNlbGVjdFwiKS5zZWxlY3QyKHtcclxuICAgICAgICAgICAgdGFnczogdHJ1ZSxcclxuICAgICAgICAgICAgY3JlYXRlVGFnOiBmdW5jdGlvbiAocGFyYW1zKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVybSA9ICQudHJpbShwYXJhbXMudGVybSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRlcm0gPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGVybSxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXJtLFxyXG4gICAgICAgICAgICAgICAgICAgIG5ld1RhZzogdHJ1ZSAvLyBhZGQgYWRkaXRpb25hbCBwYXJhbWV0ZXJzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8kKFwiLnByb2ZpdENlbnRlclNlbGVjdFwiKS5zZWxlY3QyKCk7XHJcbiAgICAgICAgJChcImlucHV0W25hbWU9bG9nb0ZpbGVdXCIpLmNoYW5nZShmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBzZXRJbWFnZUZyb21Mb2NhbCh0aGlzLE9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuaW1hZ2VMb2dvJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoJ2Zvcm0uc3VwcGxpZXJGb3JtIC5wcm9maXRDZW50ZXJTZWxlY3RDaGVja2JveEFsbCcpLm9mZignY2xpY2snKTtcclxuICAgICAgICAkKCdmb3JtLnN1cHBsaWVyRm9ybSAucHJvZml0Q2VudGVyU2VsZWN0Q2hlY2tib3hBbGwnKS5vbignY2xpY2snLGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygpO1xyXG4gICAgICAgICAgICAvL2xldCBjaGVja2VkPSQodGhpcykuaXMoXCI6Y2hlY2tlZFwiKVxyXG4gICAgICAgICAgICAkKCdmb3JtLnN1cHBsaWVyRm9ybSBpbnB1dC5wcm9maXRDZW50ZXJTZWxlY3RDaGVja2JveCcpLnByb3AoJ2NoZWNrZWQnLCQodGhpcykuaXMoXCI6Y2hlY2tlZFwiKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcm9vdC5yZW5kZXJBdHRhY2htZW50KCk7XHJcbiAgICAgICAgLy9PcHRzLm9uQWZ0ZXJJbml0Vmlld0RldGFpbHMoKTtcclxuICAgICAgICByb290LmluaXRGaWxlQXR0YWNobWVudEZlYXR1cmUoKTtcclxuICAgICAgICBkZWJ1ZygnKiplbmQgaW5pdFZpZXdEZXRhaWxzICcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlPWZ1bmN0aW9uIChmaWxlSW5wdXQpe1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgY29uc29sZS5sb2coZmlsZUlucHV0LmF0dHIoJ25hbWUnKSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZmlsZUlucHV0WzBdLmZpbGVzWzBdKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhmaWxlSW5wdXRbMF0uZmlsZXNbMF0ubmFtZSk7XHJcbiAgICAgICAgKi9cclxuICAgICAgICBpZihmaWxlSW5wdXQpe1xyXG4gICAgICAgICAgICAkKCcuY29udGFpbmVyRmlsZVVwbG9hZCcpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgaWYoZmlsZUlucHV0WzBdLmZpbGVzWzBdKXtcclxuICAgICAgICAgICAgICAgICQoJy5jb250YWluZXJVcGxvYWRlZEZpbGVOYW1lJykudGV4dChmaWxlSW5wdXRbMF0uZmlsZXNbMF0ubmFtZSk7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQoJy5jb250YWluZXJGaWxlVXBsb2FkU3RhcnRlZCcpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgJCgnLmNvbnRhaW5lclVwbG9hZGVkU3Bpbm5lcicpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgJCgnLmNvbnRhaW5lclVwbG9hZGVkRmlsZU5hbWUnKS50ZXh0KCcnKTtcclxuICAgICAgICAgICAgJCgnLmN1c3RvbS1maWxlLWxhYmVsLnNlbGVjdGVkJykudGV4dCgnJyk7XHJcbiAgICAgICAgICAgICQoJy5jb250YWluZXJGaWxlVXBsb2FkU3RhcnRlZCcpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgJCgnLnVwbG9hZFN0YXR1c1JvdycpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgJCgnLmNvbnRhaW5lckZpbGVVcGxvYWQnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdEZpbGVBdHRhY2htZW50RmVhdHVyZT1mdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJy0tLS0tLS1pbml0RmlsZUF0dGFjaG1lbnRGZWF0dXJlLS0tLS0tLS0tLS0nKTtcclxuICAgICAgICBpZihyb290LlN1cHBsaWVyLmlkKXtcclxuICAgICAgICAgICAgJCgnLmNvbnRhaW5lckZpbGVVcGxvYWQnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICQoJy5jb250YWluZXJGaWxlVXBsb2FkTm9uZScpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAkKE9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuYnV0dG9uVXBsb2FkJykub2ZmKCdjbGljaycpO1xyXG4gICAgICAgICQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcisnIC5idXR0b25VcGxvYWQnKS5vbignY2xpY2snLGZ1bmN0aW9uICgpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmdyb3VwKCctLS0tLS0tYnV0dG9uVXBsb2FkLS0tLS0tLS0tLS0nKTtcclxuICAgICAgICAgICAgbGV0IGZpbGVJbnB1dD0kKCcjaW5wdXRHcm91cEF0dGFjaGVGaWxlJyk7XHJcbiAgICAgICAgICAgIGlmKGZpbGVJbnB1dFswXS5maWxlcy5sZW5ndGg8MSl7XHJcbiAgICAgICAgICAgICAgICBUb2FzdC5jcmVhdGUoeyB0aXRsZTogXCJIaWJhIVwiLCBtZXNzYWdlOiAnVsOhbGxhc3pvbiBraSBmw6FqbHQhJywgc3RhdHVzOiBUT0FTVF9TVEFUVVMuREFOR0VSLCB0aW1lb3V0OiAxMDAwMCB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygkKE9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IpLmZpbmQoJ2Zvcm0uc3VwcGxpZXJGb3JtJylbMF0pO1xyXG4gICAgICAgICAgICBsZXQgZGF0YT0gbmV3IEZvcm1EYXRhKCQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcikuZmluZCgnZm9ybS5zdXBwbGllckZvcm0nKVswXSk7XHJcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZpbGVJbnB1dC5hdHRyKCduYW1lJyksZmlsZUlucHV0WzBdLmZpbGVzWzBdKTtcclxuXHJcbiAgICAgICAgICAgIHJvb3Quc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlKGZpbGVJbnB1dCk7XHJcbiAgICAgICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmF0dGFjaEZpbGUucmVwbGFjZSgnJWlkJScscm9vdC5TdXBwbGllci5pZCk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICB1cmw6YWpheFVybCxcclxuICAgICAgICAgICAgICAgIGRhdGE6ZGF0YSxcclxuICAgICAgICAgICAgICAgIHR5cGU6J1BPU1QnLFxyXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGF0YTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhdGEuc3VjY2Vzcz09dHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QuYWRkQXR0YWNobWVudChkYXRhLmRhdGEuYXR0YWNobWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Quc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5yZXNwb25zZUpTT04pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvb3Quc2VsZWN0ZWRVcGxvYWRGaWxlVG9nZ2xlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWpheEVycm9yRmllbGRIYW5kbGVyKGRhdGEucmVzcG9uc2VKU09OLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xpY2tOZXc9ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGRlYnVnKCdjbGlja05ldycpO1xyXG4gICAgICAgIEFQUC5sb2FkTWFpbkNvbnRlbnQoT3B0cy5VUkwuY3JlYXRlLHJvb3QuY2xpY2tOZXdDYWxsQmFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGlja05ld0NhbGxCYWNrPWZ1bmN0aW9uICgpIHtcclxuICAgICAgICBkZWJ1ZygnY2FsbGJhY2tOZXcnKTtcclxuICAgICAgICByb290LlN1cHBsaWVyPW5ldyB3aW5kb3cuU3VwcGxpZXIoKTtcclxuICAgICAgICByb290LmluaXRWaWV3RGV0YWlscygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhdGFibGVSb3dBY3Rpb25FZGl0PWZ1bmN0aW9uIChyb3dEYXRhLG5vZGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGF0YXRhYmxlUm93QWN0aW9uRWRpdCBDYWxsZWQnKTtcclxuICAgICAgICAvL09wdHMub25BZnRlckluaXRWaWV3RGV0YWlscz1yb290LmF1dG9maWxsRGV0YWlscztcclxuICAgICAgICBsZXQgYWpheFVybD1PcHRzLlVSTC5lZGl0LnJlcGxhY2UoJyVpZCUnLHJvd0RhdGEuaWQpO1xyXG4gICAgICAgIEFQUC5sb2FkTWFpbkNvbnRlbnQoYWpheFVybCxyb290LmluaXRWaWV3RGV0YWlscyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2RhdGF0YWJsZVJvd0FjdGlvbkVkaXQgRW5kJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGlja09yZGVyRGVsZXRlQ29uZmlybWVkPWZ1bmN0aW9uIChldmVudCl7XHJcbiAgICAgICAgZGVidWcoJ2NsaWNrU3VwcGxpZXJEZWxldGVDb25maXJtZWQnKTtcclxuICAgICAgICBkZWJ1ZyhldmVudCk7XHJcbiAgICAgICAgZGVidWcoZXZlbnQuZGF0YSk7XHJcbiAgICAgICAgJCgnI2RpYWxvZ01vZGFsJykubW9kYWwoJ2hpZGUnKTtcclxuICAgICAgICBsZXQgYWpheERhdGE9e307XHJcbiAgICAgICAgYWpheERhdGEuX3Rva2VuPU9wdHMudG9rZW47XHJcbiAgICAgICAgbGV0IGFqYXhVcmw9T3B0cy5VUkwuZGVzdHJveS5yZXBsYWNlKCclaWQlJyxldmVudC5kYXRhLmlkKTtcclxuICAgICAgICBhamF4RGF0YS5fdG9rZW49JCgnaW5wdXRbbmFtZT1fdG9rZW5dJykudmFsKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coYWpheFVybCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coYWpheERhdGEpO1xyXG4gICAgICAgIGxldCByb3c9JChkYXRhVGFibGVDU1NTZWxlY3RvcikuRGF0YVRhYmxlKCkucm93KHJvb3QuZGFkYXRhdGFibGVSb3dBY3Rpb25DYWxsZXJOb2RlLnBhcmVudHMoJ3RyJykpO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDphamF4VXJsLFxyXG4gICAgICAgICAgICBkYXRhOmFqYXhEYXRhLFxyXG4gICAgICAgICAgICBtZXRob2Q6XCJERUxFVEVcIixcclxuICAgICAgICAgICAgc3VjY2VzczpmdW5jdGlvbiAoZGF0YSl7XHJcbiAgICAgICAgICAgICAgICBpZihkYXRhLnN1Y2Nlc3M9PXRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJvdy5yZW1vdmUoKS5kcmF3KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5kYWRhdGF0YWJsZVJvd0FjdGlvbkNhbGxlck5vZGU9ZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBsZXQgZGF0YXRhYmxlUm93QWN0aW9uQ2FsbGVyTm9kZT1mYWxzZTtcclxuXHJcbiAgICB0aGlzLmRhdGF0YWJsZVJvd0FjdGlvbkRlbGV0ZT1mdW5jdGlvbiAocm93RGF0YSxub2RlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2RhdGF0YWJsZVJvd0FjdGlvbkRlbGV0ZSBDYWxsZWQnKTtcclxuICAgICAgICByb290LmRhZGF0YXRhYmxlUm93QWN0aW9uQ2FsbGVyTm9kZT1ub2RlO1xyXG4gICAgICAgICQoJyNkaWFsb2dNb2RhbCcpLm9uKCdzaG93LmJzLm1vZGFsJywgZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIC8vIElmIG5lY2Vzc2FyeSwgeW91IGNvdWxkIGluaXRpYXRlIGFuIEFKQVggcmVxdWVzdCBoZXJlIChhbmQgdGhlbiBkbyB0aGUgdXBkYXRpbmcgaW4gYSBjYWxsYmFjaykuXHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgbW9kYWwncyBjb250ZW50LiBXZSdsbCB1c2UgalF1ZXJ5IGhlcmUsIGJ1dCB5b3UgY291bGQgdXNlIGEgZGF0YSBiaW5kaW5nIGxpYnJhcnkgb3Igb3RoZXIgbWV0aG9kcyBpbnN0ZWFkLlxyXG4gICAgICAgICAgICB2YXIgbW9kYWwgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKCcubW9kYWwtdGl0bGUnKS50ZXh0KCdNZWdlcsWRc8OtdMOpcyAnKTtcclxuICAgICAgICAgICAgbW9kYWwuZmluZCgnLm1vZGFsLWJvZHknKS50ZXh0KCdCaXp0b3NhbiB0w7ZybGkgYSBiZXN6w6FsbMOtdMOzdD8nKTtcclxuICAgICAgICAgICAgbW9kYWwuZmluZCgnLmJ1dHRvblllcycpLm9mZignY2xpY2snKTtcclxuICAgICAgICAgICAgbW9kYWwuZmluZCgnLmJ1dHRvblllcycpLm9uKCdjbGljaycse2lkOnJvd0RhdGEuaWR9LHJvb3QuY2xpY2tPcmRlckRlbGV0ZUNvbmZpcm1lZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJCgnI2RpYWxvZ01vZGFsJykubW9kYWwoJ3Nob3cnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrPWZ1bmN0aW9uIChldmVudCl7XHJcbiAgICAgICAgZGVidWcoJ2RhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrJyk7XHJcbiAgICAgICAgbGV0IG5vZGU9JChldmVudFswXS5jdXJyZW50VGFyZ2V0KTtcclxuICAgICAgICBsZXQgcm93PSQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgpLnJvdyhub2RlLnBhcmVudHMoJ3RyJykpO1xyXG4gICAgICAgIGxldCByb3dEYXRhPXJvdy5kYXRhKCk7XHJcbiAgICAgICAgbGV0IGFjdGlvbk5hbWU9J2RhdGF0YWJsZVJvd0FjdGlvbicrbm9kZS5kYXRhKCdidXR0b250eXBlJykuY2FwaXRhbGl6ZSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygcm9vdFthY3Rpb25OYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByb290W2FjdGlvbk5hbWVdKHJvd0RhdGEsbm9kZSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0Vmlld0xpc3QgPSBmdW5jdGlvbiAob3B0aW9ucz17fSkge1xyXG4gICAgICAgIGRlYnVnKCdsaXN0dmlldyBpbmljaWFsaXphdGlvbicpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNTU1NlbGVjdG9yPU9wdHMuY29udGFpbmVyQ3NzU2VsZWN0b3IrJyAuZGF0YVRhYmxlJzsgLy9cclxuXHJcbiAgICAgICAgbGV0IGNvbE51bT0kKGRhdGFUYWJsZUNTU1NlbGVjdG9yKycgdGhlYWQgdGgnKS5sZW5ndGg7IC8vYnV0dG9ucyBpbnNlcnQgcG9zaXRpb24gbmVlZFxyXG4gICAgICAgIEFQUC5zZXRPcHRzKHtcclxuICAgICAgICAgICAgZGF0YXRhYmxlQWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjazpyb290LmNsaWNrTmV3LFxyXG4gICAgICAgICAgICBkYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrOnJvb3QuZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2ssXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgbGV0IG9yZGVyRGlyZWN0aXZlPU9wdHMuZGF0YVRhYmxlLm9yZGVyRGlyZWN0aXZlO1xyXG4gICAgICAgIGlmKHR5cGVvZiBvcHRpb25zWydvcmRlckRpcmVjdGl2ZSddIT0ndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG9yZGVyRGlyZWN0aXZlPW9wdGlvbnNbJ29yZGVyRGlyZWN0aXZlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoZGF0YVRhYmxlQ1NTU2VsZWN0b3IpLkRhdGFUYWJsZSgge1xyXG4gICAgICAgICAgICBsYW5ndWFnZToge1xyXG4gICAgICAgICAgICAgICAgdXJsOiAnLy9jZG4uZGF0YXRhYmxlcy5uZXQvcGx1Zy1pbnMvMS4xMC4yNC9pMThuL0h1bmdhcmlhbi5qc29uJ1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy9cImFqYXhcIjogXCJ7e2Fzc2V0KCdleGFwbWxlMi5qc29uJyl9fVwiLFxyXG4gICAgICAgICAgICBcImFqYXhcIjogT3B0cy5VUkwuZ2V0RGF0YVRhYmxlQ29udGVudCxcclxuICAgICAgICAgICAgXCJjb2x1bW5EZWZzXCI6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBcInRhcmdldHNcIjogY29sTnVtLTEsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJyZW5kZXJcIjogZnVuY3Rpb24gKCBkYXRhLCB0eXBlLCByb3cgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBidXR0b25zPUFQUC5kYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbigwLGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMrPUFQUC5kYXRhdGFibGVBZGRSb3dFZGl0QnV0dG9uKDAsYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRzXCI6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJyZW5kZXJcIjogZnVuY3Rpb24gKCBkYXRhLCB0eXBlLCByb3cgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSBcInNvcnRcIiA/IGRhdGEubGF0aW5pc2UoKSA6IGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAvL3sgXCJ2aXNpYmxlXCI6IGZhbHNlLCAgXCJ0YXJnZXRzXCI6IFsgMCBdIH1cclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgYnV0dG9uczp7XHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ2V4Y2VsJywncGRmJyxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZDogJ3ByaW50JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy90ZXh0OiAnUHJpbnQgY3VycmVudCBwYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJzogJ3RpdGxlIGN1c3RvbSB0ZXh0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2VUb3AnOiAnTWVzc2FnZSBPbiBUb3AnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvUHJpbnQ6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIC8qKi9cclxuXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnw5pqIGZlbHZpdGVsZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4tc3VjY2VzcyBuZXdJdGVtJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cjp7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOjEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6MlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiduZXdJdGVtJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0OiBmdW5jdGlvbihhcGksIG5vZGUsIGNvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChub2RlKS5yZW1vdmVDbGFzcygndWktYnV0dG9uJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbiAoIGUsIGR0LCBub2RlLCBjb25maWcgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUFAuZGF0YXRhYmxlQWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayhhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbmZpZyk7Ki9cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFwiY29sdW1uc1wiOiBbXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImlkXCIgfSxcclxuICAgICAgICAgICAgICAgIHsgXCJkYXRhXCI6IFwibmFtZVwiIH0sXHJcbiAgICAgICAgICAgICAgICB7IFwiZGF0YVwiOiBcImhvb3JleWNhSWRcIiB9LFxyXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJuYW1lSWRcIiB9LFxyXG4gICAgICAgICAgICAgICAgeyBcImRhdGFcIjogXCJjcmVhdGVkX2F0XCIgfSxcclxuICAgICAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIFwib3JkZXJcIjogb3JkZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgICAgIFwic3RhdGVTYXZlXCI6IHRydWUsXHJcbiAgICAgICAgICAgIFwiZHJhd0NhbGxiYWNrXCI6IGZ1bmN0aW9uKCBzZXR0aW5ncyApIHtcclxuICAgICAgICAgICAgICAgIEFQUC5kYXRhdGFibGVBZGRSb3dBY3Rpb24oZGF0YVRhYmxlQ1NTU2VsZWN0b3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSApO1xyXG4gICAgICAgIGRlYnVnKCdsaXN0dmlldyBlbmQnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF1dG9maWxsRGV0YWlscz1mdW5jdGlvbiAoKXtcclxuICAgICAgICBkZWJ1ZygnbnllcmVzcmUgYWxsdW5rJyk7XHJcbiAgICAgICAgbGV0IHJhbmRvbU51bWJlcj1nZXRSYW5kb21JbnQoOTk5OSk7XHJcbiAgICAgICAgJCgnaW5wdXRbbmFtZT1uYW1lXScpLnZhbCgnQmVzemFsw610w7MnK3JhbmRvbU51bWJlcik7XHJcbiAgICAgICAgJCgnaW5wdXRbbmFtZT1ob29yZXljYUlkXScpLnZhbCgnaGInK3JhbmRvbU51bWJlcik7XHJcbiAgICAgICAgJCgnaW5wdXRbbmFtZT1uYW1lSWRdJykudmFsKCdiZScrcmFuZG9tTnVtYmVyKTtcclxuICAgICAgICAkKCdpbnB1dFtuYW1lPW9yZGVyRW1haWxdJykudmFsKCdrYXBjc29sYXQnK3JhbmRvbU51bWJlcisnQGJlc3phbGxpdG8uaHUnKTtcclxuICAgICAgICAkKCdpbnB1dFtuYW1lPW9yZGVyRW1haWwyXScpLnZhbCgnaW5mb3JtYWNpbycrcmFuZG9tTnVtYmVyKydAYmVzemFsbGl0by5odScpO1xyXG4gICAgICAgICQoJ2lucHV0W25hbWU9YWRkcmVzc10nKS52YWwoJzg5ODkgU3VwcGxpZXIgdXRjYSAnK3JhbmRvbU51bWJlcik7XHJcbiAgICAgICAgJCgnaW5wdXRbbmFtZT1tYWlsaW5nQWRkcmVzc10nKS52YWwoJzg5ODkgUG9zdGFpIMO6dCcrcmFuZG9tTnVtYmVyKTtcclxuICAgICAgICAkKCdpbnB1dFtuYW1lPXBob25lXScpLnZhbCgnKzM2MzAxMjM0NTY3Jyk7XHJcbiAgICAgICAgJCgnaW5wdXRbbmFtZT1mYXhdJykudmFsKCczNjMwODg4OTk5OScpO1xyXG4gICAgICAgICQoJ2lucHV0W25hbWU9Y3VzdG9tZXJTZXJ2aWNlUGhvbmVdJykudmFsKCcrMzY3NjEyMzQ0NDQnKTtcclxuICAgICAgICAkKCd0ZXh0YXJlYVtuYW1lPW5vdGVdJykudmFsKCdNZWdqZWd5emVtICcrcmFuZG9tTnVtYmVyKTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnRlc3RNb2RlPWZ1bmN0aW9uICgpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKCchISEhdGVzdG1vZGUgISEhIScpO1xyXG4gICAgICAgIHJvb3QuU3VwcGxpZXIgPSBuZXcgd2luZG93LlN1cHBsaWVyKHtcclxuICAgICAgICAgICAgJ2NvbnRhY3QnOltcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDoyLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDozLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDozLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOidLw7NzYSBWZXJvbmlrYScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOidzemFtbGF6YXM0QGZ1bmtjaW8uaHUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTone3tmb3JtYXR0ZXJQaG9uZU51bWJlcihcIiszNjIwNDU4OTE4MFwiKX19J1xyXG4gICAgICAgICAgICB9XHJcbiovXHJcblxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgT3B0cy5vbkFmdGVySW5pdFZpZXdEZXRhaWxzPXJvb3QuYXV0b2ZpbGxEZXRhaWxzO1xyXG4gICAgICAgIEFQUC5sb2FkTWFpbkNvbnRlbnQoT3B0cy5VUkwuY3JlYXRlLHJvb3QuaW5pdFZpZXdEZXRhaWxzKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdD1mdW5jdGlvbiAob3B0aW9ucyxTdXBwbGllckl0ZW0pe1xyXG4gICAgICAgICQuZXh0ZW5kKE9wdHMsIG9wdGlvbnMpO1xyXG5cclxuICAgICAgICBpZihPcHRzLnRlc3RNb2RlKXtcclxuICAgICAgICAgICAgcmV0dXJuIHJvb3QudGVzdE1vZGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoU3VwcGxpZXJJdGVtKXtcclxuICAgICAgICAgICAgcm9vdC5TdXBwbGllcj1TdXBwbGllckl0ZW1cclxuICAgICAgICB9XHJcbiAgICAgICAgcm9vdC5pbml0Vmlld0xpc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlckF0dGFjaG1lbnQ9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgbGV0IHJvd051bT0xO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdyZW5kZXJpbmdBdHRhY2htZW50Jyk7XHJcbiAgICAgICAgJC5lYWNoKHJvb3QuU3VwcGxpZXIuZ2V0RGF0YSgnYXR0YWNobWVudCcpLGZ1bmN0aW9uICgpe1xyXG4gICAgICAgICAgICBsZXQgYXR0YWNobWVudERhdGE9dGhpcztcclxuICAgICAgICAgICAgYXR0YWNobWVudERhdGEucm93TnVtPXJvd051bTtcclxuICAgICAgICAgICAgZGF0ZT1uZXcgRGF0ZShhdHRhY2htZW50RGF0YS5jcmVhdGVkX2F0KTtcclxuICAgICAgICAgICAgYXR0YWNobWVudERhdGEuZGF0ZT1kYXRlLnRvTG9jYWxlU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGF0dGFjaG1lbnREYXRhLmxpbms9YXR0YWNobWVudERhdGEuUHVibGljVXJsKycvJythdHRhY2htZW50RGF0YS5maWxlbmFtZTtcclxuICAgICAgICAgICAgbGV0IHRlbXBsYXRlPSQoJ3RlbXBsYXRlW2RhdGEtbmFtZT1cInN1cHBsaWVyQXR0YWNobWVudFRhYmxlUm93XCJdJykuaHRtbCgpXHJcbiAgICAgICAgICAgIGxldCByZW5kZXI9TXVzdGFjaGUucmVuZGVyKHRlbXBsYXRlLGF0dGFjaG1lbnREYXRhKTtcclxuICAgICAgICAgICAgJCgnLmF0dGFjaG1lbnRUYWJsZSB0Ym9keScpLmFwcGVuZChyZW5kZXIpO1xyXG4gICAgICAgICAgICByb3dOdW0rKztcclxuICAgICAgICB9KTtcclxuICAgICAgICByb290LmJpbmRBdHRhY2htZW50Q2xpY2tBY3Rpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFkZEF0dGFjaG1lbnQ9ZnVuY3Rpb24gKGF0dGFjaG1lbnREYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhhdHRhY2htZW50RGF0YSk7XHJcbiAgICAgICAgbGV0IENTU1NlbGVjdG9yRm9ybT1PcHRzLmNvbnRhaW5lckNzc1NlbGVjdG9yKycgLnN1cHBsaWVyRm9ybSc7XHJcbiAgICAgICAgcm9vdC5TdXBwbGllci5hdHRhY2htZW50LnB1c2goYXR0YWNobWVudERhdGEpO1xyXG4gICAgICAgIGF0dGFjaG1lbnREYXRhLnJvd051bT1yb290LlN1cHBsaWVyLmF0dGFjaG1lbnQubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0ZW1wbGF0ZT0kKCd0ZW1wbGF0ZVtkYXRhLW5hbWU9XCJzdXBwbGllckF0dGFjaG1lbnRUYWJsZVJvd1wiXScpLmh0bWwoKVxyXG4gICAgICAgIGxldCByZW5kZXI9TXVzdGFjaGUucmVuZGVyKHRlbXBsYXRlLGF0dGFjaG1lbnREYXRhKTtcclxuICAgICAgICAkKENTU1NlbGVjdG9yRm9ybSsnIC5hdHRhY2htZW50VGFibGUgdGJvZHknKS5hcHBlbmQocmVuZGVyKTtcclxuICAgICAgICByb290LmJpbmRDb250YWN0Q2xpY2tBY3Rpb24oKTtcclxuICAgICAgICBUb2FzdC5lbmFibGVUaW1lcnMoZmFsc2UpO1xyXG4gICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcIkbDoWpsIGhvenrDoWFkdmEhXCIsIG1lc3NhZ2U6IGF0dGFjaG1lbnREYXRhLm9yaWdpbmFsX2ZpbGVuYW1lK1wiIGbDoWpsIGhvenrDoWFkdmFcIiwgc3RhdHVzOiBUT0FTVF9TVEFUVVMuU1VDQ0VTUywgdGltZW91dDogNTAwMCB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5yZXNldENvbnRhY3RUYWJsZT1mdW5jdGlvbiAoKXtcclxuICAgICAgICAkKCcuY29udGFjdFRhYmxlIHRib2R5IHRyJykucmVtb3ZlKCk7XHJcbiAgICAgICAgcm9vdC5yZW5kZXJDb250YWN0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlckNvbnRhY3Q9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgbGV0IHJvd051bT0xO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdyZW5kZXJpbmdDb250YWN0cycpO1xyXG4gICAgICAgICQuZWFjaChyb290LlN1cHBsaWVyLmdldERhdGEoJ2NvbnRhY3QnKSxmdW5jdGlvbiAoKXtcclxuICAgICAgICAgICAgbGV0IGNvbnRhY3REYXRhPXRoaXM7XHJcbiAgICAgICAgICAgIGNvbnRhY3REYXRhLnJvd051bT1yb3dOdW07XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFjdERhdGEpO1xyXG4gICAgICAgICAgICBsZXQgdGVtcGxhdGU9JCgndGVtcGxhdGVbZGF0YS1uYW1lPVwic3VwcGxpZXJDb250YWN0VGFibGVSb3dcIl0nKS5odG1sKClcclxuICAgICAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsY29udGFjdERhdGEpO1xyXG4gICAgICAgICAgICAkKCcuY29udGFjdFRhYmxlIHRib2R5JykuYXBwZW5kKHJlbmRlcik7XHJcbiAgICAgICAgICAgIHJvd051bSsrO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvb3QuYmluZENvbnRhY3RDbGlja0FjdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmluZENvbnRhY3RDbGlja0FjdGlvbiA9ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgbGV0IG5vZGU9JCgnLmNvbnRhY3RUYWJsZSAuYnV0dG9uRGVsZXRlJyk7XHJcbiAgICAgICAgbm9kZS51bmJpbmQoJ2NsaWNrJyk7XHJcbiAgICAgICAgbm9kZS5iaW5kKCdjbGljaycscm9vdC5jb250YWN0RGVsZXRlQ2xpY2spO1xyXG5cclxuICAgICAgICBub2RlPSQoJy5jb250YWN0VGFibGUgLmJ1dHRvbkVkaXQnKTtcclxuICAgICAgICBub2RlLnVuYmluZCgnY2xpY2snKTtcclxuICAgICAgICBub2RlLmJpbmQoJ2NsaWNrJyxyb290LmNvbnRhY3RFZGl0Q2xpY2spO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJpbmRBdHRhY2htZW50Q2xpY2tBY3Rpb249ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgbGV0IG5vZGU9JCgnLmF0dGFjaG1lbnRUYWJsZSAuYnV0dG9uRGVsZXRlJyk7XHJcbiAgICAgICAgbm9kZS51bmJpbmQoJ2NsaWNrJyk7XHJcbiAgICAgICAgbm9kZS5iaW5kKCdjbGljaycscm9vdC5hdHRhY2htZW50RGVsZXRlQ2xpY2spO1xyXG4gICAgfVxyXG4gICAgbGV0IGN1cnJlbnRBdHRhY2htZW50Um93PWZhbHNlO1xyXG4gICAgdGhpcy5hdHRhY2htZW50RGVsZXRlQ2xpY2s9ZnVuY3Rpb24gKGV2ZW50KXtcclxuICAgICAgICBsZXQgcm93PSQodGhpcykuY2xvc2VzdCgndHInKTtcclxuICAgICAgICBsZXQgaWQ9cm93LmZpbmQoJ2lucHV0W25hbWU9YXR0YWNobWVudElkXScpLnZhbCgpO1xyXG4gICAgICAgIGxldCBhamF4VXJsPU9wdHMuVVJMLmRldGFjaEZpbGUucmVwbGFjZSgnJWlkJScscm9vdC5TdXBwbGllci5pZCk7XHJcbiAgICAgICAgLy9sZXQgZGF0YT0gbmV3IEZvcm1EYXRhKCQoT3B0cy5jb250YWluZXJDc3NTZWxlY3RvcikuZmluZCgnZm9ybS5zdXBwbGllckZvcm0nKVswXSk7XHJcbiAgICAgICAgLy9kYXRhLmFwcGVuZChmaWxlSW5wdXQuYXR0cignbmFtZScpLGZpbGVJbnB1dFswXS5maWxlc1swXSk7XHJcbiAgICAgICAgbGV0IGRhdGE9e307XHJcbiAgICAgICAgZGF0YS5fdG9rZW49JCgnaW5wdXRbbmFtZT1cIl90b2tlblwiXScpLnZhbCgpO1xyXG4gICAgICAgIGRhdGEuYXR0YWNoZW1udElkPWlkO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDphamF4VXJsLFxyXG4gICAgICAgICAgICBkYXRhOmRhdGEsXHJcbiAgICAgICAgICAgIHR5cGU6J1BPU1QnLFxyXG4gICAgICAgICAgICAvL2NvbnRlbnRUeXBlOmZhbHNlLFxyXG4gICAgICAgICAgICAvL3Byb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICAgICAgYmVmb3JlU2VuZDogZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEuc3VjY2Vzcz09dHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5TdXBwbGllci5hdHRhY2htZW50PXJvb3QuU3VwcGxpZXIuYXR0YWNobWVudC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2YWx1ZSxpbmRleCxhcnIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmlkIT09ZGF0YS5kYXRhLiAgIGF0dGFjaG1lbnQuaWQqMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgLy9yb3cucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5yZXNldEF0dGFjaG1lbnRUYWJsZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5yZXNwb25zZUpTT04pO1xyXG4gICAgICAgICAgICAgICAgcm9vdC5zZWxlY3RlZFVwbG9hZEZpbGVUb2dnbGUoKTtcclxuICAgICAgICAgICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcihkYXRhLnJlc3BvbnNlSlNPTi5lcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5yZXNldEF0dGFjaG1lbnRUYWJsZT1mdW5jdGlvbiAoKXtcclxuICAgICAgICAkKCcuYXR0YWNobWVudFRhYmxlIHRib2R5IHRyJykucmVtb3ZlKCk7XHJcbiAgICAgICAgcm9vdC5yZW5kZXJBdHRhY2htZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb250YWN0RGVsZXRlQ2xpY2s9ZnVuY3Rpb24gKGV2ZW50KXtcclxuICAgICAgICBsZXQgcm93PSQodGhpcykuY2xvc2VzdCgndHInKTtcclxuICAgICAgICBsZXQgaWQ9cm93LmZpbmQoJ2lucHV0W25hbWU9Y29udGFjdElkXScpLnZhbCgpO1xyXG4gICAgICAgIHJvb3QuU3VwcGxpZXIuY29udGFjdD1yb290LlN1cHBsaWVyLmNvbnRhY3QuZmlsdGVyKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAodmFsdWUsaW5kZXgsYXJyKXtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pZCE9PWlkKjEpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAgdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcm93LnJlbW92ZSgpO1xyXG4gICAgICAgIHJvb3QucmVzZXRDb250YWN0VGFibGUoKTtcclxuICAgIH1cclxuICAgIHJvb3QuZ2V0Q29udGFjdFBvcHVwV29ya2Zsb3cgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRhY3RQb3B1cFdvcmtmbG93O1xyXG4gICAgfVxyXG4gICAgcm9vdC5zZXRDb250YWN0UG9wdXBXb3JrZmxvdyA9IGZ1bmN0aW9uIChzdGF0dXMpIHtcclxuICAgICAgICBjb250YWN0UG9wdXBXb3JrZmxvdz1zdGF0dXM7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuY29udGFjdEVkaXRDbGljaz1mdW5jdGlvbiAoZXZlbnQpe1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codGhpcyk7XHJcbiAgICAgICAgbGV0IHJvdz0kKHRoaXMpLmNsb3Nlc3QoJ3RyJyk7XHJcbiAgICAgICAgbGV0IGlkPXJvdy5maW5kKCdpbnB1dFtuYW1lPWNvbnRhY3RJZF0nKS52YWwoKTtcclxuICAgICAgICByb290LnNldENvbnRhY3RQb3B1cFdvcmtmbG93KCdlZGl0Jyk7XHJcbiAgICAgICAgQVBQLkNvbnRhY3RQb3BVcC5sb2FkRGF0YShpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRTdXBwbGllcj1mdW5jdGlvbiAoKXtcclxuICAgICAgICByZXR1cm4gcm9vdC5TdXBwbGllcjtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGFjdEFjdGlvbj1mdW5jdGlvbiAoY29udGFjdERhdGEpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCduYWggbW9zdCBrZWxsZW5lIG1lZyB2YWxhbWl0IGNzaW5hbG5pLicpXHJcbiAgICAgICAgaWYocm9vdC5nZXRDb250YWN0UG9wdXBXb3JrZmxvdygpPT0nbmV3Jyl7XHJcbiAgICAgICAgICAgIHJvb3QuYWRkQ29udGFjdChjb250YWN0RGF0YSk7XHJcbiAgICAgICAgfWVsc2UgaWYocm9vdC5nZXRDb250YWN0UG9wdXBXb3JrZmxvdygpPT0nZWRpdCcpe1xyXG4gICAgICAgICAgICByb290LmVkaXRDb250YWN0KGNvbnRhY3REYXRhLmlkLGNvbnRhY3REYXRhKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0Q29udGFjdD1mdW5jdGlvbiAoaWQsY29udGFjdERhdGEpe1xyXG5cclxuICAgICAgICBsZXQgbmV3Q29udGFjdHM9W107XHJcbiAgICAgICAgJC5lYWNoKHJvb3QuU3VwcGxpZXIuZ2V0RGF0YSgnY29udGFjdCcpLGZ1bmN0aW9uIChpbmRleCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuaWQ9PWlkKXtcclxuICAgICAgICAgICAgICAgIG5ld0NvbnRhY3RzLnB1c2goY29udGFjdERhdGEpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIG5ld0NvbnRhY3RzLnB1c2godGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByb290LlN1cHBsaWVyLmNvbnRhY3Q9bmV3Q29udGFjdHM7XHJcbiAgICAgICAgcm9vdC5yZXNldENvbnRhY3RUYWJsZSgpO1xyXG4gICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcIkthcGNzb2xhdCBhZGF0YWkgbcOzZG9zw610dmEhXCIsIG1lc3NhZ2U6IGNvbnRhY3REYXRhLm5hbWUrXCIgbmV2xbEga2FwY3NvbGF0dGFydMOzIG3Ds2Rvc8OtdHZhXCIsIHN0YXR1czogVE9BU1RfU1RBVFVTLlNVQ0NFU1MsIHRpbWVvdXQ6IDUwMDAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFkZENvbnRhY3Q9ZnVuY3Rpb24gKGNvbnRhY3REYXRhKXtcclxuICAgICAgICAvKlxyXG4gICAgICAgIGZlbCBrZWxsIHZlbm5pIGEgc29yYmFcclxuICAgICAgICAgKi9cclxuICAgICAgICByb290LlN1cHBsaWVyLmNvbnRhY3QucHVzaChjb250YWN0RGF0YSk7XHJcbiAgICAgICAgY29udGFjdERhdGEucm93TnVtPXJvb3QuU3VwcGxpZXIuY29udGFjdC5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlPSQoJ3RlbXBsYXRlW2RhdGEtbmFtZT1cInN1cHBsaWVyQ29udGFjdFRhYmxlUm93XCJdJykuaHRtbCgpXHJcbiAgICAgICAgbGV0IHJlbmRlcj1NdXN0YWNoZS5yZW5kZXIodGVtcGxhdGUsY29udGFjdERhdGEpO1xyXG4gICAgICAgICQoJy5jb250YWN0VGFibGUgdGJvZHknKS5hcHBlbmQocmVuZGVyKTtcclxuICAgICAgICByb290LmJpbmRDb250YWN0Q2xpY2tBY3Rpb24oKTtcclxuICAgICAgICBUb2FzdC5lbmFibGVUaW1lcnMoZmFsc2UpO1xyXG4gICAgICAgIFRvYXN0LmNyZWF0ZSh7IHRpdGxlOiBcIkthcGNzb2xhdHRhcnTDsyBob3p6w6FhZHZhIVwiLCBtZXNzYWdlOiBjb250YWN0RGF0YS5uYW1lK1wiIG5ldsWxIGthcGNzb2xhdHRhcnTDsyBob3p6w6FhZHZhXCIsIHN0YXR1czogVE9BU1RfU1RBVFVTLlNVQ0NFU1MsIHRpbWVvdXQ6IDUwMDAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuY29uc3RydWN0KG9wdGlvbnMsU3VwcGxpZXJJdGVtKTtcclxufTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsSUFBRyxPQUFPQSxRQUFRLEtBQUcsV0FBVyxFQUFDO0VBQUEsSUFDdkJBLFNBQVEsMEJBQUFDLFVBQUE7SUFFVjtBQUNSO0FBQ0E7SUFDUSxTQUFBQyxVQUFhQyxJQUFJLEVBQUNDLE9BQU8sRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFBQUMsZUFBQSxPQUFBSixTQUFBO01BQ3ZC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QWdDO01BQUUzQixNQUFNLEVBQUVDLFlBQVksQ0FBQ2UsT0FBTztNQUFFYixPQUFPLEVBQUU7SUFBSyxDQUFDLENBQUM7RUFDbkssQ0FBQztFQUNELElBQUksQ0FBQ3dKLFVBQVUsR0FBQyxVQUFVZCxXQUFXLEVBQUM7SUFDbEM7QUFDUjtBQUNBO0lBQ1F4TCxJQUFJLENBQUNyQyxRQUFRLENBQUNRLE9BQU8sQ0FBQ2lELElBQUksQ0FBQ29LLFdBQVcsQ0FBQztJQUN2Q0EsV0FBVyxDQUFDbEIsTUFBTSxHQUFDdEssSUFBSSxDQUFDckMsUUFBUSxDQUFDUSxPQUFPLENBQUN1SCxNQUFNO0lBQy9DLElBQUlzRixRQUFRLEdBQUM3SyxDQUFDLENBQUMsK0NBQStDLENBQUMsQ0FBQzhLLElBQUksQ0FBQyxDQUFDO0lBQ3RFLElBQUk3QixNQUFNLEdBQUM4QixRQUFRLENBQUM5QixNQUFNLENBQUM0QixRQUFRLEVBQUNRLFdBQVcsQ0FBQztJQUNoRHJMLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDeUIsTUFBTSxDQUFDd0gsTUFBTSxDQUFDO0lBQ3ZDcEosSUFBSSxDQUFDb0wsc0JBQXNCLENBQUMsQ0FBQztJQUM3QjVJLEtBQUssQ0FBQzZJLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDekI3SSxLQUFLLENBQUNqRCxNQUFNLENBQUM7TUFBRWtELEtBQUssRUFBRSwyQkFBMkI7TUFBRUMsT0FBTyxFQUFFOEksV0FBVyxDQUFDbEgsSUFBSSxHQUFDLGdDQUFnQztNQUFFM0IsTUFBTSxFQUFFQyxZQUFZLENBQUNlLE9BQU87TUFBRWIsT0FBTyxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQ2pLLENBQUM7RUFHRCxJQUFJLENBQUM1QyxTQUFTLENBQUNuQyxPQUFPLEVBQUNjLFlBQVksQ0FBQztBQUN4QyxDQUFDIiwiaWdub3JlTGlzdCI6W10sImZpbGUiOiIuL3Jlc291cmNlcy9qcy9hZG1pbi9zdXBwbGllci5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/admin/supplier.js\n\n}"); + +/***/ } + +/******/ }); +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval-source-map devtool is used. +/******/ __webpack_modules__["./resources/js/admin/dashboard.js"](); +/******/ __webpack_modules__["./resources/js/admin/priceList.js"](); +/******/ __webpack_modules__["./resources/js/admin/priceListProfitCenter.js"](); +/******/ __webpack_modules__["./resources/js/admin/product.js"](); +/******/ __webpack_modules__["./resources/js/admin/profitCenter.js"](); +/******/ var __webpack_exports__ = {}; +/******/ __webpack_modules__["./resources/js/admin/supplier.js"](); +/******/ +/******/ })() +; \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js index 3945aac..fc71c4d 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,3 +1,310 @@ -/*! For license information please see app.js.LICENSE.txt */ -(()=>{var e,t={988(e,t,r){function _defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:Number.MAX_SAFE_INTEGER,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return debug(e),debug(t),Math.floor(Math.random()*(e-t+1))+t},window.setImageFromLocal=function(e,t){if(e.files&&e.files[0]){var r=new FileReader;r.onload=function(e){$(t).attr("src",e.target.result)},r.readAsDataURL(e.files[0])}},r(854),$(function(){window.history&&window.history.pushState&&(window.history.pushState("",null,window.location.href),$(window).on("popstate",function(e){window.history.pushState("",document.title,window.location.href),e.stopPropagation()}))}),window.initRadioButtons=function(e){var t={onChange:function onChange(e,t){}};$.extend(t,e),$(".customRadioBtnGroup .active").each(function(){var e=$(this).data("title"),t=$(this).data("toggle");$("input[name="+t+"]").prop("value",e)}),$(".customRadioBtnGroup a").unbind("click"),$(".customRadioBtnGroup a").bind("click",function(){var e=$(this).data("title"),r=$(this).data("toggle");$("input[name="+r+"]").prop("value",e),$('a[data-toggle="'+r+'"]').not('[data-title="'+e+'"]').removeClass("active").addClass("notActive"),$('a[data-toggle="'+r+'"][data-title="'+e+'"]').removeClass("notActive").addClass("active"),t.onChange(e,r)})},$.extend(!0,$.fn.dataTable.defaults,{language:{url:"//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json"},lengthMenu:[[10,25,50,-1],["10 sor","25 sor","50 sor","Összes"]],buttons:{dom:{button:{className:"fg-button ui-button dataTableHeaderButtons"}}},dom:'<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr"lBfr>t<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br"ip>'}),Inputmask.extendDefinitions({x:{validator:"[.,-áéíóöőúàèìòùüűÁÉÍÓÖŐÚÀÈÌÒÙÜŰA-Za-z0-9 ]"}}),Toast.enableTimers(!1),$.fn.select2.defaults.set("language","jp"),window.select2CreateTag=function(e){var t=$.trim(e.term),r=!1;return $("#keywords option").length>0?($("#keywords option").each(function(){if($(this).text().toUpperCase()==t.toUpperCase())return r=!0,!1;r=!1}),r?null:{id:e.term,text:e.term,newTag:!0}):{id:e.term,text:e.term,newTag:!0}},window.ajaxErrorHandler=function(e,t,r){debug(this),console.error(e),console.error(t),console.error(r),e.responseJSON?e.responseJSON.errors?(console.error("d2---------------"),"jsonapi"in e.responseJSON?ajaxErrorFieldHandlerJsonAPI(e.responseJSON.errors):ajaxErrorFieldHandler(e.responseJSON.errors)):e.responseJSON.error_ref?(console.error("error_ref: "+e.responseJSON.error_ref),Toast.create({title:"Szerverhiba",message:"Váratlan hiba történt a feldolgozás során.
Hivatkozási kód: "+e.responseJSON.error_ref+"
Kérjük, ezt a kódot adja meg a hibajelentésben.",status:TOAST_STATUS.DANGER,timeout:0})):404==e.status?(console.error("d3---------------"),ajaxErrorFieldHandler({detail:"Nincs ilyen elem."})):(console.error("d4---------------"),ajaxErrorFieldHandler({detail:"Általános hiba."})):ajaxErrorFieldHandler({detail:"Váratlan szerverhiba. Kérjük próbálja újra később."})},window.ajaxErrorFieldHandlerJsonAPI=function(e,t){console.error("d6---------------");var r="",n="Hiba";console.error(e),$.each(e,function(e,t){console.error(t),n="Hiba",r="","title"in t&&(n=t.title),"detail"in t&&(r+="

"+t.detail+"
"),Toast.create({title:n,message:r,status:TOAST_STATUS.DANGER,timeout:1e4})})},window.ajaxErrorFieldHandler=function(e,t){console.error("d5---------------"),console.error(e);var r="";$.each(e,function(e,t){r+="
"+t+"
"}),Toast.create({title:"Hiba!",message:r,status:TOAST_STATUS.DANGER,timeout:1e4})},$.ajaxSetup({error:ajaxErrorHandler}),$.datepicker._updateDatepicker_original=$.datepicker._updateDatepicker,$.datepicker._updateDatepicker=function(e){$.datepicker._updateDatepicker_original(e);var t=this._get(e,"afterShow");t&&t.apply(e.input?e.input[0]:null)},window.EmegrendelesDefaults={datatableActionButtonClickCallBack:function datatableActionButtonClickCallBack(){},datatableAddRowTrashButton:function datatableAddRowTrashButton(e,t){return''},datatableAddRowEditButton:function datatableAddRowEditButton(e){var t="Adatok";return void 0!==e[1].title&&(t=e[1].title),''},datatableAddRowViewButton:function datatableAddRowViewButton(e,t){return''},datatableAddRowAttachmentButton:function datatableAddRowAttachmentButton(e,t){return''},datatableCustomHeadButtonClickCallBack:function datatableCustomHeadButtonClickCallBack(e){console.log(e)},afterLoadMainContent:function afterLoadMainContent(e){console.log(e)}},"undefined"==typeof DataModel){var n=function(){return function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(function _DataModel2(e,t){!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,_DataModel2),function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}(this,"Opts",{active:!1}),$.extend(this,e),$.extend(this.Opts,t)},[{key:"setData",value:function setData(e){$.extend(this,e)}},{key:"getData",value:function getData(e){return e?this[e]:this}}])}();window.DataModel=n}window.Emegrendeles=function(e){var t={myVar:"Emegrendeles value",datatableAddRowTrashButton:{},datatableAddRowEditButton:{},datatableActionButtonClickCallBack:{},datatableRowActionButtonClickCallBack:{},datatableCustomHeadButtonClickCallBack:{},afterLoadMainContent:{},Url:{}},r=this;this.construct=function(e){console.log(this.constructor.name+" constructor called"),$.extend(t,window.EmegrendelesDefaults,e)},this.setOpts=function(e){$.extend(t,e)},this.getOpts=function(){return t},this.datatableAddRowTrashButton=function(){return t.datatableAddRowTrashButton(arguments)},this.datatableAddRowEditButton=function(){return t.datatableAddRowEditButton(arguments)},this.datatableAddRowViewButton=function(){return t.datatableAddRowViewButton(arguments)},this.datatableAddRowAttachmentButton=function(){return t.datatableAddRowAttachmentButton(arguments)},this.afterLoadMainContent=function(){return t.afterLoadMainContent(arguments)},this.datatableActionButtonClickCallBack=function(){return t.datatableActionButtonClickCallBack(arguments)},this.datatableRowActionButtonClickCallBack=function(){return t.datatableRowActionButtonClickCallBack(arguments)},this.datatableAddRowAction=function(e){e&&($(e+" tr button").off("click"),$(e+" tr button").on("click",APP.datatableRowActionButtonClickCallBack))},this.datatableCustomHeadButtonClickCallBack=function(){return t.datatableCustomHeadButtonClickCallBack(arguments)},this.myPublicMethod=function(){console.log(t),n()},this.setApiToken=function(e){r.ApiToken=e},this.getApiToken=function(){return r.ApiToken};var n=function myPrivateMethod(){console.log("accessed private method")};this.setActiveNavBarItem=function(e){return $(".speedButtonNavBar li").removeClass("selected"),$(".speedButtonNavBar li.iconholderModul"+e).addClass("selected"),this},this.getActiveNavBarItem=function(){return $(".speedButtonNavBar .selected").find("a").data("name")},this.clearArchiveModuleDataTableState=function(){null!=APP.OrderArchiveModule&&(console.log("APP.OrderArchiveModule"),console.log("clear"),APP.OrderArchiveModule.dataTable.state.clear())},this.navBarItemBeforepost=function(){console.log("navBarItemBeforepost"),"activeOrder"!==r.getActiveNavBarItem()&&r.clearArchiveModuleDataTableState()},this.navBarItemAfterPost=function(){},this.initNavBar=function(){$(".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])").bind("click",function(e){console.log($(this).data().name),$(this).data("big-icon")?$(".speedButtonNavBar").removeClass("smallicons"):$(".speedButtonNavBar").addClass("smallicons"),r.setActiveNavBarItem($(this).data().name),e.preventDefault()}),$(".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])").ajaxlink({target:$(".mainContent"),ajaxtype:"GET",afterpost:r.navBarItemAfterPost,beforepost:r.navBarItemBeforepost}),$(".speedButtonNavBar a[data-target=_blank], .speedButtonNavBar a[data-no-ajax]").bind("click",function(){r.clearArchiveModuleDataTableState()})},this.loadMainContent=function(e,t,n){n?(console.log("van callback"),console.log(n)):n=r.afterLoadMainContent,$(".mainContent").load(e,t,n)},this.construct(e)},window.APP={},$(document).ready(function(){console.log("ready doc"),Mustache.tags=["[[","]]"]})},213(e,t,r){window._=r(543),window.axios=r(425),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest"},854(){var e={latin_map:{Á:"A",Ă:"A",Ắ:"A",Ặ:"A",Ằ:"A",Ẳ:"A",Ẵ:"A",Ǎ:"A",Â:"A",Ấ:"A",Ậ:"A",Ầ:"A",Ẩ:"A",Ẫ:"A",Ä:"A",Ǟ:"A",Ȧ:"A",Ǡ:"A",Ạ:"A",Ȁ:"A",À:"A",Ả:"A",Ȃ:"A",Ā:"A",Ą:"A",Å:"A",Ǻ:"A",Ḁ:"A",Ⱥ:"A",Ã:"A",Ꜳ:"AA",Æ:"AE",Ǽ:"AE",Ǣ:"AE",Ꜵ:"AO",Ꜷ:"AU",Ꜹ:"AV",Ꜻ:"AV",Ꜽ:"AY",Ḃ:"B",Ḅ:"B",Ɓ:"B",Ḇ:"B",Ƀ:"B",Ƃ:"B",Ć:"C",Č:"C",Ç:"C",Ḉ:"C",Ĉ:"C",Ċ:"C",Ƈ:"C",Ȼ:"C",Ď:"D",Ḑ:"D",Ḓ:"D",Ḋ:"D",Ḍ:"D",Ɗ:"D",Ḏ:"D",Dz:"D",Dž:"D",Đ:"D",Ƌ:"D",DZ:"DZ",DŽ:"DZ",É:"E",Ĕ:"E",Ě:"E",Ȩ:"E",Ḝ:"E",Ê:"E",Ế:"E",Ệ:"E",Ề:"E",Ể:"E",Ễ:"E",Ḙ:"E",Ë:"E",Ė:"E",Ẹ:"E",Ȅ:"E",È:"E",Ẻ:"E",Ȇ:"E",Ē:"E",Ḗ:"E",Ḕ:"E",Ę:"E",Ɇ:"E",Ẽ:"E",Ḛ:"E",Ꝫ:"ET",Ḟ:"F",Ƒ:"F",Ǵ:"G",Ğ:"G",Ǧ:"G",Ģ:"G",Ĝ:"G",Ġ:"G",Ɠ:"G",Ḡ:"G",Ǥ:"G",Ḫ:"H",Ȟ:"H",Ḩ:"H",Ĥ:"H",Ⱨ:"H",Ḧ:"H",Ḣ:"H",Ḥ:"H",Ħ:"H",Í:"I",Ĭ:"I",Ǐ:"I",Î:"I",Ï:"I",Ḯ:"I",İ:"I",Ị:"I",Ȉ:"I",Ì:"I",Ỉ:"I",Ȋ:"I",Ī:"I",Į:"I",Ɨ:"I",Ĩ:"I",Ḭ:"I",Ꝺ:"D",Ꝼ:"F",Ᵹ:"G",Ꞃ:"R",Ꞅ:"S",Ꞇ:"T",Ꝭ:"IS",Ĵ:"J",Ɉ:"J",Ḱ:"K",Ǩ:"K",Ķ:"K",Ⱪ:"K",Ꝃ:"K",Ḳ:"K",Ƙ:"K",Ḵ:"K",Ꝁ:"K",Ꝅ:"K",Ĺ:"L",Ƚ:"L",Ľ:"L",Ļ:"L",Ḽ:"L",Ḷ:"L",Ḹ:"L",Ⱡ:"L",Ꝉ:"L",Ḻ:"L",Ŀ:"L",Ɫ:"L",Lj:"L",Ł:"L",LJ:"LJ",Ḿ:"M",Ṁ:"M",Ṃ:"M",Ɱ:"M",Ń:"N",Ň:"N",Ņ:"N",Ṋ:"N",Ṅ:"N",Ṇ:"N",Ǹ:"N",Ɲ:"N",Ṉ:"N",Ƞ:"N",Nj:"N",Ñ:"N",NJ:"NJ",Ó:"O",Ŏ:"O",Ǒ:"O",Ô:"O",Ố:"O",Ộ:"O",Ồ:"O",Ổ:"O",Ỗ:"O",Ö:"O",Ȫ:"O",Ȯ:"O",Ȱ:"O",Ọ:"O",Ő:"O",Ȍ:"O",Ò:"O",Ỏ:"O",Ơ:"O",Ớ:"O",Ợ:"O",Ờ:"O",Ở:"O",Ỡ:"O",Ȏ:"O",Ꝋ:"O",Ꝍ:"O",Ō:"O",Ṓ:"O",Ṑ:"O",Ɵ:"O",Ǫ:"O",Ǭ:"O",Ø:"O",Ǿ:"O",Õ:"O",Ṍ:"O",Ṏ:"O",Ȭ:"O",Ƣ:"OI",Ꝏ:"OO",Ɛ:"E",Ɔ:"O",Ȣ:"OU",Ṕ:"P",Ṗ:"P",Ꝓ:"P",Ƥ:"P",Ꝕ:"P",Ᵽ:"P",Ꝑ:"P",Ꝙ:"Q",Ꝗ:"Q",Ŕ:"R",Ř:"R",Ŗ:"R",Ṙ:"R",Ṛ:"R",Ṝ:"R",Ȑ:"R",Ȓ:"R",Ṟ:"R",Ɍ:"R",Ɽ:"R",Ꜿ:"C",Ǝ:"E",Ś:"S",Ṥ:"S",Š:"S",Ṧ:"S",Ş:"S",Ŝ:"S",Ș:"S",Ṡ:"S",Ṣ:"S",Ṩ:"S",Ť:"T",Ţ:"T",Ṱ:"T",Ț:"T",Ⱦ:"T",Ṫ:"T",Ṭ:"T",Ƭ:"T",Ṯ:"T",Ʈ:"T",Ŧ:"T",Ɐ:"A",Ꞁ:"L",Ɯ:"M",Ʌ:"V",Ꜩ:"TZ",Ú:"U",Ŭ:"U",Ǔ:"U",Û:"U",Ṷ:"U",Ü:"U",Ǘ:"U",Ǚ:"U",Ǜ:"U",Ǖ:"U",Ṳ:"U",Ụ:"U",Ű:"U",Ȕ:"U",Ù:"U",Ủ:"U",Ư:"U",Ứ:"U",Ự:"U",Ừ:"U",Ử:"U",Ữ:"U",Ȗ:"U",Ū:"U",Ṻ:"U",Ų:"U",Ů:"U",Ũ:"U",Ṹ:"U",Ṵ:"U",Ꝟ:"V",Ṿ:"V",Ʋ:"V",Ṽ:"V",Ꝡ:"VY",Ẃ:"W",Ŵ:"W",Ẅ:"W",Ẇ:"W",Ẉ:"W",Ẁ:"W",Ⱳ:"W",Ẍ:"X",Ẋ:"X",Ý:"Y",Ŷ:"Y",Ÿ:"Y",Ẏ:"Y",Ỵ:"Y",Ỳ:"Y",Ƴ:"Y",Ỷ:"Y",Ỿ:"Y",Ȳ:"Y",Ɏ:"Y",Ỹ:"Y",Ź:"Z",Ž:"Z",Ẑ:"Z",Ⱬ:"Z",Ż:"Z",Ẓ:"Z",Ȥ:"Z",Ẕ:"Z",Ƶ:"Z",IJ:"IJ",Œ:"OE",ᴀ:"A",ᴁ:"AE",ʙ:"B",ᴃ:"B",ᴄ:"C",ᴅ:"D",ᴇ:"E",ꜰ:"F",ɢ:"G",ʛ:"G",ʜ:"H",ɪ:"I",ʁ:"R",ᴊ:"J",ᴋ:"K",ʟ:"L",ᴌ:"L",ᴍ:"M",ɴ:"N",ᴏ:"O",ɶ:"OE",ᴐ:"O",ᴕ:"OU",ᴘ:"P",ʀ:"R",ᴎ:"N",ᴙ:"R",ꜱ:"S",ᴛ:"T",ⱻ:"E",ᴚ:"R",ᴜ:"U",ᴠ:"V",ᴡ:"W",ʏ:"Y",ᴢ:"Z",á:"a",ă:"a",ắ:"a",ặ:"a",ằ:"a",ẳ:"a",ẵ:"a",ǎ:"a",â:"a",ấ:"a",ậ:"a",ầ:"a",ẩ:"a",ẫ:"a",ä:"a",ǟ:"a",ȧ:"a",ǡ:"a",ạ:"a",ȁ:"a",à:"a",ả:"a",ȃ:"a",ā:"a",ą:"a",ᶏ:"a",ẚ:"a",å:"a",ǻ:"a",ḁ:"a",ⱥ:"a",ã:"a",ꜳ:"aa",æ:"ae",ǽ:"ae",ǣ:"ae",ꜵ:"ao",ꜷ:"au",ꜹ:"av",ꜻ:"av",ꜽ:"ay",ḃ:"b",ḅ:"b",ɓ:"b",ḇ:"b",ᵬ:"b",ᶀ:"b",ƀ:"b",ƃ:"b",ɵ:"o",ć:"c",č:"c",ç:"c",ḉ:"c",ĉ:"c",ɕ:"c",ċ:"c",ƈ:"c",ȼ:"c",ď:"d",ḑ:"d",ḓ:"d",ȡ:"d",ḋ:"d",ḍ:"d",ɗ:"d",ᶑ:"d",ḏ:"d",ᵭ:"d",ᶁ:"d",đ:"d",ɖ:"d",ƌ:"d",ı:"i",ȷ:"j",ɟ:"j",ʄ:"j",dz:"dz",dž:"dz",é:"e",ĕ:"e",ě:"e",ȩ:"e",ḝ:"e",ê:"e",ế:"e",ệ:"e",ề:"e",ể:"e",ễ:"e",ḙ:"e",ë:"e",ė:"e",ẹ:"e",ȅ:"e",è:"e",ẻ:"e",ȇ:"e",ē:"e",ḗ:"e",ḕ:"e",ⱸ:"e",ę:"e",ᶒ:"e",ɇ:"e",ẽ:"e",ḛ:"e",ꝫ:"et",ḟ:"f",ƒ:"f",ᵮ:"f",ᶂ:"f",ǵ:"g",ğ:"g",ǧ:"g",ģ:"g",ĝ:"g",ġ:"g",ɠ:"g",ḡ:"g",ᶃ:"g",ǥ:"g",ḫ:"h",ȟ:"h",ḩ:"h",ĥ:"h",ⱨ:"h",ḧ:"h",ḣ:"h",ḥ:"h",ɦ:"h",ẖ:"h",ħ:"h",ƕ:"hv",í:"i",ĭ:"i",ǐ:"i",î:"i",ï:"i",ḯ:"i",ị:"i",ȉ:"i",ì:"i",ỉ:"i",ȋ:"i",ī:"i",į:"i",ᶖ:"i",ɨ:"i",ĩ:"i",ḭ:"i",ꝺ:"d",ꝼ:"f",ᵹ:"g",ꞃ:"r",ꞅ:"s",ꞇ:"t",ꝭ:"is",ǰ:"j",ĵ:"j",ʝ:"j",ɉ:"j",ḱ:"k",ǩ:"k",ķ:"k",ⱪ:"k",ꝃ:"k",ḳ:"k",ƙ:"k",ḵ:"k",ᶄ:"k",ꝁ:"k",ꝅ:"k",ĺ:"l",ƚ:"l",ɬ:"l",ľ:"l",ļ:"l",ḽ:"l",ȴ:"l",ḷ:"l",ḹ:"l",ⱡ:"l",ꝉ:"l",ḻ:"l",ŀ:"l",ɫ:"l",ᶅ:"l",ɭ:"l",ł:"l",lj:"lj",ſ:"s",ẜ:"s",ẛ:"s",ẝ:"s",ḿ:"m",ṁ:"m",ṃ:"m",ɱ:"m",ᵯ:"m",ᶆ:"m",ń:"n",ň:"n",ņ:"n",ṋ:"n",ȵ:"n",ṅ:"n",ṇ:"n",ǹ:"n",ɲ:"n",ṉ:"n",ƞ:"n",ᵰ:"n",ᶇ:"n",ɳ:"n",ñ:"n",nj:"nj",ó:"o",ŏ:"o",ǒ:"o",ô:"o",ố:"o",ộ:"o",ồ:"o",ổ:"o",ỗ:"o",ö:"o",ȫ:"o",ȯ:"o",ȱ:"o",ọ:"o",ő:"o",ȍ:"o",ò:"o",ỏ:"o",ơ:"o",ớ:"o",ợ:"o",ờ:"o",ở:"o",ỡ:"o",ȏ:"o",ꝋ:"o",ꝍ:"o",ⱺ:"o",ō:"o",ṓ:"o",ṑ:"o",ǫ:"o",ǭ:"o",ø:"o",ǿ:"o",õ:"o",ṍ:"o",ṏ:"o",ȭ:"o",ƣ:"oi",ꝏ:"oo",ɛ:"e",ᶓ:"e",ɔ:"o",ᶗ:"o",ȣ:"ou",ṕ:"p",ṗ:"p",ꝓ:"p",ƥ:"p",ᵱ:"p",ᶈ:"p",ꝕ:"p",ᵽ:"p",ꝑ:"p",ꝙ:"q",ʠ:"q",ɋ:"q",ꝗ:"q",ŕ:"r",ř:"r",ŗ:"r",ṙ:"r",ṛ:"r",ṝ:"r",ȑ:"r",ɾ:"r",ᵳ:"r",ȓ:"r",ṟ:"r",ɼ:"r",ᵲ:"r",ᶉ:"r",ɍ:"r",ɽ:"r",ↄ:"c",ꜿ:"c",ɘ:"e",ɿ:"r",ś:"s",ṥ:"s",š:"s",ṧ:"s",ş:"s",ŝ:"s",ș:"s",ṡ:"s",ṣ:"s",ṩ:"s",ʂ:"s",ᵴ:"s",ᶊ:"s",ȿ:"s",ɡ:"g",ᴑ:"o",ᴓ:"o",ᴝ:"u",ť:"t",ţ:"t",ṱ:"t",ț:"t",ȶ:"t",ẗ:"t",ⱦ:"t",ṫ:"t",ṭ:"t",ƭ:"t",ṯ:"t",ᵵ:"t",ƫ:"t",ʈ:"t",ŧ:"t",ᵺ:"th",ɐ:"a",ᴂ:"ae",ǝ:"e",ᵷ:"g",ɥ:"h",ʮ:"h",ʯ:"h",ᴉ:"i",ʞ:"k",ꞁ:"l",ɯ:"m",ɰ:"m",ᴔ:"oe",ɹ:"r",ɻ:"r",ɺ:"r",ⱹ:"r",ʇ:"t",ʌ:"v",ʍ:"w",ʎ:"y",ꜩ:"tz",ú:"u",ŭ:"u",ǔ:"u",û:"u",ṷ:"u",ü:"u",ǘ:"u",ǚ:"u",ǜ:"u",ǖ:"u",ṳ:"u",ụ:"u",ű:"u",ȕ:"u",ù:"u",ủ:"u",ư:"u",ứ:"u",ự:"u",ừ:"u",ử:"u",ữ:"u",ȗ:"u",ū:"u",ṻ:"u",ų:"u",ᶙ:"u",ů:"u",ũ:"u",ṹ:"u",ṵ:"u",ᵫ:"ue",ꝸ:"um",ⱴ:"v",ꝟ:"v",ṿ:"v",ʋ:"v",ᶌ:"v",ⱱ:"v",ṽ:"v",ꝡ:"vy",ẃ:"w",ŵ:"w",ẅ:"w",ẇ:"w",ẉ:"w",ẁ:"w",ⱳ:"w",ẘ:"w",ẍ:"x",ẋ:"x",ᶍ:"x",ý:"y",ŷ:"y",ÿ:"y",ẏ:"y",ỵ:"y",ỳ:"y",ƴ:"y",ỷ:"y",ỿ:"y",ȳ:"y",ẙ:"y",ɏ:"y",ỹ:"y",ź:"z",ž:"z",ẑ:"z",ʑ:"z",ⱬ:"z",ż:"z",ẓ:"z",ȥ:"z",ẕ:"z",ᵶ:"z",ᶎ:"z",ʐ:"z",ƶ:"z",ɀ:"z",ff:"ff",ffi:"ffi",ffl:"ffl",fi:"fi",fl:"fl",ij:"ij",œ:"oe",st:"st",ₐ:"a",ₑ:"e",ᵢ:"i",ⱼ:"j",ₒ:"o",ᵣ:"r",ᵤ:"u",ᵥ:"v",ₓ:"x"}};String.prototype.latinise=function(){return this.replace(/[^A-Za-z0-9\[\] ]/g,function(t){return e.latin_map[t]||t})},String.prototype.latinize=String.prototype.latinise,String.prototype.isLatin=function(){return this==this.latinise()}},526(e,t){"use strict";t.byteLength=function byteLength(e){var t=getLens(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function toByteArray(e){var t,r,o=getLens(e),i=o[0],s=o[1],u=new a(function _byteLength(e,t,r){return 3*(t+r)/4-r}(0,i,s)),c=0,l=s>0?i-4:i;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[c++]=255&t);1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function fromByteArray(e){for(var t,n=e.length,a=n%3,o=[],i=16383,s=0,u=n-a;su?u:s+i));1===a?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===a&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return o.join("")};for(var r=[],n=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)r[i]=o[i],n[o.charCodeAt(i)]=i;function getLens(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function tripletToBase64(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function encodeChunk(e,t,r){for(var n,a=[],o=t;o=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|e}function byteLength(e,t){if(Buffer.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return utf8ToBytes(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return base64ToBytes(e).length;default:if(n)return utf8ToBytes(e).length;t=(""+t).toLowerCase(),n=!0}}function slowToString(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return hexSlice(this,t,r);case"utf8":case"utf-8":return utf8Slice(this,t,r);case"ascii":return asciiSlice(this,t,r);case"latin1":case"binary":return latin1Slice(this,t,r);case"base64":return base64Slice(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function swap(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function bidirectionalIndexOf(e,t,r,n,a){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=a?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(a)return-1;r=e.length-1}else if(r<0){if(!a)return-1;r=0}if("string"==typeof t&&(t=Buffer.from(t,n)),Buffer.isBuffer(t))return 0===t.length?-1:arrayIndexOf(e,t,r,n,a);if("number"==typeof t)return t&=255,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):arrayIndexOf(e,[t],r,n,a);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(e,t,r,n,a){var o,i=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,s/=2,u/=2,r/=2}function read(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(a){var c=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var l=!0,f=0;fa&&(n=a):n=a;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var i=0;i>8,a=r%256,o.push(a),o.push(n);return o}(t,e.length-r),e,r,n)}function base64Slice(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function utf8Slice(e,t,r){r=Math.min(e.length,r);for(var n=[],a=t;a239?4:l>223?3:l>191?2:1;if(a+h<=r)switch(h){case 1:l<128&&(f=l);break;case 2:128==(192&(o=e[a+1]))&&(c=(31&l)<<6|63&o)>127&&(f=c);break;case 3:o=e[a+1],s=e[a+2],128==(192&o)&&128==(192&s)&&(c=(15&l)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:o=e[a+1],s=e[a+2],u=e[a+3],128==(192&o)&&128==(192&s)&&128==(192&u)&&(c=(15&l)<<18|(63&o)<<12|(63&s)<<6|63&u)>65535&&c<1114112&&(f=c)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),a+=h}return function decodeCodePointsArray(e){var t=e.length;if(t<=i)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},Buffer.prototype.compare=function compare(e,t,r,n,a){if(!Buffer.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===a&&(a=this.length),t<0||r>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&t>=r)return 0;if(n>=a)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(a>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0),s=Math.min(o,i),u=this.slice(n,a),c=e.slice(t,r),l=0;la)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return hexWrite(this,e,t,r);case"utf8":case"utf-8":return utf8Write(this,e,t,r);case"ascii":return asciiWrite(this,e,t,r);case"latin1":case"binary":return latin1Write(this,e,t,r);case"base64":return base64Write(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var i=4096;function asciiSlice(e,t,r){var n="";r=Math.min(e.length,r);for(var a=t;an)&&(r=n);for(var a="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function checkInt(e,t,r,n,a,o){if(!Buffer.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||te.length)throw new RangeError("Index out of range")}function objectWriteUInt16(e,t,r,n){t<0&&(t=65535+t+1);for(var a=0,o=Math.min(e.length-r,2);a>>8*(n?a:1-a)}function objectWriteUInt32(e,t,r,n){t<0&&(t=4294967295+t+1);for(var a=0,o=Math.min(e.length-r,4);a>>8*(n?a:3-a)&255}function checkIEEE754(e,t,r,n,a,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function writeFloat(e,t,r,n,o){return o||checkIEEE754(e,0,r,4),a.write(e,t,r,n,23,4),r+4}function writeDouble(e,t,r,n,o){return o||checkIEEE754(e,0,r,8),a.write(e,t,r,n,52,8),r+8}Buffer.prototype.slice=function slice(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(a*=256);)n+=this[e+--t]*a;return n},Buffer.prototype.readUInt8=function readUInt8(e,t){return t||checkOffset(e,1,this.length),this[e]},Buffer.prototype.readUInt16LE=function readUInt16LE(e,t){return t||checkOffset(e,2,this.length),this[e]|this[e+1]<<8},Buffer.prototype.readUInt16BE=function readUInt16BE(e,t){return t||checkOffset(e,2,this.length),this[e]<<8|this[e+1]},Buffer.prototype.readUInt32LE=function readUInt32LE(e,t){return t||checkOffset(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Buffer.prototype.readUInt32BE=function readUInt32BE(e,t){return t||checkOffset(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Buffer.prototype.readIntLE=function readIntLE(e,t,r){e|=0,t|=0,r||checkOffset(e,t,this.length);for(var n=this[e],a=1,o=0;++o=(a*=128)&&(n-=Math.pow(2,8*t)),n},Buffer.prototype.readIntBE=function readIntBE(e,t,r){e|=0,t|=0,r||checkOffset(e,t,this.length);for(var n=t,a=1,o=this[e+--n];n>0&&(a*=256);)o+=this[e+--n]*a;return o>=(a*=128)&&(o-=Math.pow(2,8*t)),o},Buffer.prototype.readInt8=function readInt8(e,t){return t||checkOffset(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Buffer.prototype.readInt16LE=function readInt16LE(e,t){t||checkOffset(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function readInt16BE(e,t){t||checkOffset(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function readInt32LE(e,t){return t||checkOffset(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Buffer.prototype.readInt32BE=function readInt32BE(e,t){return t||checkOffset(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Buffer.prototype.readFloatLE=function readFloatLE(e,t){return t||checkOffset(e,4,this.length),a.read(this,e,!0,23,4)},Buffer.prototype.readFloatBE=function readFloatBE(e,t){return t||checkOffset(e,4,this.length),a.read(this,e,!1,23,4)},Buffer.prototype.readDoubleLE=function readDoubleLE(e,t){return t||checkOffset(e,8,this.length),a.read(this,e,!0,52,8)},Buffer.prototype.readDoubleBE=function readDoubleBE(e,t){return t||checkOffset(e,8,this.length),a.read(this,e,!1,52,8)},Buffer.prototype.writeUIntLE=function writeUIntLE(e,t,r,n){(e=+e,t|=0,r|=0,n)||checkInt(this,e,t,r,Math.pow(2,8*r)-1,0);var a=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+a]=e/o&255;return t+r},Buffer.prototype.writeUInt8=function writeUInt8(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):objectWriteUInt16(this,e,t,!0),t+2},Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):objectWriteUInt16(this,e,t,!1),t+2},Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):objectWriteUInt32(this,e,t,!0),t+4},Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):objectWriteUInt32(this,e,t,!1),t+4},Buffer.prototype.writeIntLE=function writeIntLE(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);checkInt(this,e,t,r,a-1,-a)}var o=0,i=1,s=0;for(this[t]=255&e;++o=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i|0)-s&255;return t+r},Buffer.prototype.writeInt8=function writeInt8(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Buffer.prototype.writeInt16LE=function writeInt16LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):objectWriteUInt16(this,e,t,!0),t+2},Buffer.prototype.writeInt16BE=function writeInt16BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):objectWriteUInt16(this,e,t,!1),t+2},Buffer.prototype.writeInt32LE=function writeInt32LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):objectWriteUInt32(this,e,t,!0),t+4},Buffer.prototype.writeInt32BE=function writeInt32BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):objectWriteUInt32(this,e,t,!1),t+4},Buffer.prototype.writeFloatLE=function writeFloatLE(e,t,r){return writeFloat(this,e,t,!0,r)},Buffer.prototype.writeFloatBE=function writeFloatBE(e,t,r){return writeFloat(this,e,t,!1,r)},Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,t,r){return writeDouble(this,e,t,!0,r)},Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,t,r){return writeDouble(this,e,t,!1,r)},Buffer.prototype.copy=function copy(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--a)e[a+t]=this[a+r];else if(o<1e3||!Buffer.TYPED_ARRAY_SUPPORT)for(a=0;a>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function base64ToBytes(e){return n.toByteArray(function base64clean(e){if((e=function stringtrim(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(s,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function blitBuffer(e,t,r,n){for(var a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}},251(e,t){t.read=function(e,t,r,n,a){var o,i,s=8*a-n-1,u=(1<>1,l=-7,f=r?a-1:0,h=r?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-l)-1,d>>=-l,l+=s;l>0;o=256*o+e[t+f],f+=h,l-=8);for(i=o&(1<<-l)-1,o>>=-l,l+=n;l>0;i=256*i+e[t+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return i?NaN:1/0*(d?-1:1);i+=Math.pow(2,n),o-=c}return(d?-1:1)*i*Math.pow(2,o-n)},t.write=function(e,t,r,n,a,o){var i,s,u,c=8*o-a-1,l=(1<>1,h=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=l):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(i++,u/=2),i+f>=l?(s=0,i=l):i+f>=1?(s=(t*u-1)*Math.pow(2,a),i+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,a),i=0));a>=8;e[r+d]=255&s,d+=p,s/=256,a-=8);for(i=i<0;e[r+d]=255&i,d+=p,i/=256,c-=8);e[r+d-p]|=128*g}},634(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},543(e,t,r){var n;e=r.nmd(e),function(){var a,o="Expected a function",i="__lodash_hash_undefined__",s="__lodash_placeholder__",u=16,c=32,l=64,f=128,h=256,d=1/0,p=9007199254740991,g=NaN,y=4294967295,b=[["ary",f],["bind",1],["bindKey",2],["curry",8],["curryRight",u],["flip",512],["partial",c],["partialRight",l],["rearg",h]],v="[object Arguments]",m="[object Array]",_="[object Boolean]",w="[object Date]",A="[object Error]",E="[object Function]",O="[object GeneratorFunction]",S="[object Map]",R="[object Number]",I="[object Object]",B="[object Promise]",T="[object RegExp]",k="[object Set]",C="[object String]",x="[object Symbol]",L="[object WeakMap]",j="[object ArrayBuffer]",P="[object DataView]",U="[object Float32Array]",F="[object Float64Array]",D="[object Int8Array]",N="[object Int16Array]",M="[object Int32Array]",z="[object Uint8Array]",W="[object Uint8ClampedArray]",q="[object Uint16Array]",H="[object Uint32Array]",V=/\b__p \+= '';/g,$=/\b(__p \+=) '' \+/g,K=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,Y=/[&<>"']/g,J=RegExp(G.source),Z=RegExp(Y.source),X=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,ee=/<%=([\s\S]+?)%>/g,te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,re=/^\w*$/,ne=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/[\\^$.*+?()[\]{}|]/g,oe=RegExp(ae.source),ie=/^\s+/,se=/\s/,ue=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ce=/\{\n\/\* \[wrapped with (.+)\] \*/,le=/,? & /,fe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,he=/[()=,{}\[\]\/\s]/,de=/\\(\\)?/g,pe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ge=/\w*$/,ye=/^[-+]0x[0-9a-f]+$/i,be=/^0b[01]+$/i,ve=/^\[object .+?Constructor\]$/,me=/^0o[0-7]+$/i,_e=/^(?:0|[1-9]\d*)$/,we=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ae=/($^)/,Ee=/['\n\r\u2028\u2029\\]/g,Oe="\\ud800-\\udfff",Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Re="\\u2700-\\u27bf",Ie="a-z\\xdf-\\xf6\\xf8-\\xff",Be="A-Z\\xc0-\\xd6\\xd8-\\xde",Te="\\ufe0e\\ufe0f",ke="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ce="['’]",xe="["+Oe+"]",Le="["+ke+"]",je="["+Se+"]",Pe="\\d+",Ue="["+Re+"]",Fe="["+Ie+"]",De="[^"+Oe+ke+Pe+Re+Ie+Be+"]",Ne="\\ud83c[\\udffb-\\udfff]",Me="[^"+Oe+"]",ze="(?:\\ud83c[\\udde6-\\uddff]){2}",We="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="["+Be+"]",He="\\u200d",Ve="(?:"+Fe+"|"+De+")",$e="(?:"+qe+"|"+De+")",Ke="(?:['’](?:d|ll|m|re|s|t|ve))?",Ge="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ye="(?:"+je+"|"+Ne+")"+"?",Je="["+Te+"]?",Ze=Je+Ye+("(?:"+He+"(?:"+[Me,ze,We].join("|")+")"+Je+Ye+")*"),Xe="(?:"+[Ue,ze,We].join("|")+")"+Ze,Qe="(?:"+[Me+je+"?",je,ze,We,xe].join("|")+")",et=RegExp(Ce,"g"),tt=RegExp(je,"g"),rt=RegExp(Ne+"(?="+Ne+")|"+Qe+Ze,"g"),nt=RegExp([qe+"?"+Fe+"+"+Ke+"(?="+[Le,qe,"$"].join("|")+")",$e+"+"+Ge+"(?="+[Le,qe+Ve,"$"].join("|")+")",qe+"?"+Ve+"+"+Ke,qe+"+"+Ge,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Pe,Xe].join("|"),"g"),at=RegExp("["+He+Oe+Se+Te+"]"),ot=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,it=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,ut={};ut[U]=ut[F]=ut[D]=ut[N]=ut[M]=ut[z]=ut[W]=ut[q]=ut[H]=!0,ut[v]=ut[m]=ut[j]=ut[_]=ut[P]=ut[w]=ut[A]=ut[E]=ut[S]=ut[R]=ut[I]=ut[T]=ut[k]=ut[C]=ut[L]=!1;var ct={};ct[v]=ct[m]=ct[j]=ct[P]=ct[_]=ct[w]=ct[U]=ct[F]=ct[D]=ct[N]=ct[M]=ct[S]=ct[R]=ct[I]=ct[T]=ct[k]=ct[C]=ct[x]=ct[z]=ct[W]=ct[q]=ct[H]=!0,ct[A]=ct[E]=ct[L]=!1;var lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ft=parseFloat,ht=parseInt,dt="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,pt="object"==typeof self&&self&&self.Object===Object&&self,gt=dt||pt||Function("return this")(),yt=t&&!t.nodeType&&t,bt=yt&&e&&!e.nodeType&&e,vt=bt&&bt.exports===yt,mt=vt&&dt.process,_t=function(){try{var e=bt&&bt.require&&bt.require("util").types;return e||mt&&mt.binding&&mt.binding("util")}catch(e){}}(),wt=_t&&_t.isArrayBuffer,At=_t&&_t.isDate,Et=_t&&_t.isMap,Ot=_t&&_t.isRegExp,St=_t&&_t.isSet,Rt=_t&&_t.isTypedArray;function apply(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function arrayAggregator(e,t,r,n){for(var a=-1,o=null==e?0:e.length;++a-1}function arrayIncludesWith(e,t,r){for(var n=-1,a=null==e?0:e.length;++n-1;);return r}function charsEndIndex(e,t){for(var r=e.length;r--&&baseIndexOf(t,e[r],0)>-1;);return r}var Bt=basePropertyOf({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),Tt=basePropertyOf({"&":"&","<":"<",">":">",'"':""","'":"'"});function escapeStringChar(e){return"\\"+lt[e]}function hasUnicode(e){return at.test(e)}function mapToArray(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function overArg(e,t){return function(r){return e(t(r))}}function replaceHolders(e,t){for(var r=-1,n=e.length,a=0,o=[];++r",""":'"',"'":"'"});var Ct=function runInContext(e){var t,r=(e=null==e?gt:Ct.defaults(gt.Object(),e,Ct.pick(gt,it))).Array,n=e.Date,se=e.Error,Oe=e.Function,Se=e.Math,Re=e.Object,Ie=e.RegExp,Be=e.String,Te=e.TypeError,ke=r.prototype,Ce=Oe.prototype,xe=Re.prototype,Le=e["__core-js_shared__"],je=Ce.toString,Pe=xe.hasOwnProperty,Ue=0,Fe=(t=/[^.]+$/.exec(Le&&Le.keys&&Le.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"",De=xe.toString,Ne=je.call(Re),Me=gt._,ze=Ie("^"+je.call(Pe).replace(ae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),We=vt?e.Buffer:a,qe=e.Symbol,He=e.Uint8Array,Ve=We?We.allocUnsafe:a,$e=overArg(Re.getPrototypeOf,Re),Ke=Re.create,Ge=xe.propertyIsEnumerable,Ye=ke.splice,Je=qe?qe.isConcatSpreadable:a,Ze=qe?qe.iterator:a,Xe=qe?qe.toStringTag:a,Qe=function(){try{var e=getNative(Re,"defineProperty");return e({},"",{}),e}catch(e){}}(),rt=e.clearTimeout!==gt.clearTimeout&&e.clearTimeout,at=n&&n.now!==gt.Date.now&&n.now,lt=e.setTimeout!==gt.setTimeout&&e.setTimeout,dt=Se.ceil,pt=Se.floor,yt=Re.getOwnPropertySymbols,bt=We?We.isBuffer:a,mt=e.isFinite,_t=ke.join,It=overArg(Re.keys,Re),xt=Se.max,Lt=Se.min,jt=n.now,Pt=e.parseInt,Ut=Se.random,Ft=ke.reverse,Dt=getNative(e,"DataView"),Nt=getNative(e,"Map"),Mt=getNative(e,"Promise"),zt=getNative(e,"Set"),Wt=getNative(e,"WeakMap"),qt=getNative(Re,"create"),Ht=Wt&&new Wt,Vt={},$t=toSource(Dt),Kt=toSource(Nt),Gt=toSource(Mt),Yt=toSource(zt),Jt=toSource(Wt),Zt=qe?qe.prototype:a,Xt=Zt?Zt.valueOf:a,Qt=Zt?Zt.toString:a;function lodash(e){if(isObjectLike(e)&&!nn(e)&&!(e instanceof LazyWrapper)){if(e instanceof LodashWrapper)return e;if(Pe.call(e,"__wrapped__"))return wrapperClone(e)}return new LodashWrapper(e)}var er=function(){function object(){}return function(e){if(!isObject(e))return{};if(Ke)return Ke(e);object.prototype=e;var t=new object;return object.prototype=a,t}}();function baseLodash(){}function LodashWrapper(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function LazyWrapper(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=y,this.__views__=[]}function Hash(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function baseClone(e,t,r,n,o,i){var s,u=1&t,c=2&t,l=4&t;if(r&&(s=o?r(e,n,o,i):r(e)),s!==a)return s;if(!isObject(e))return e;var f=nn(e);if(f){if(s=function initCloneArray(e){var t=e.length,r=new e.constructor(t);t&&"string"==typeof e[0]&&Pe.call(e,"index")&&(r.index=e.index,r.input=e.input);return r}(e),!u)return copyArray(e,s)}else{var h=dr(e),d=h==E||h==O;if(on(e))return cloneBuffer(e,u);if(h==I||h==v||d&&!o){if(s=c||d?{}:initCloneObject(e),!u)return c?function copySymbolsIn(e,t){return copyObject(e,hr(e),t)}(e,function baseAssignIn(e,t){return e&©Object(t,keysIn(t),e)}(s,e)):function copySymbols(e,t){return copyObject(e,fr(e),t)}(e,baseAssign(s,e))}else{if(!ct[h])return o?e:{};s=function initCloneByTag(e,t,r){var n=e.constructor;switch(t){case j:return cloneArrayBuffer(e);case _:case w:return new n(+e);case P:return function cloneDataView(e,t){var r=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case U:case F:case D:case N:case M:case z:case W:case q:case H:return cloneTypedArray(e,r);case S:return new n;case R:case C:return new n(e);case T:return function cloneRegExp(e){var t=new e.constructor(e.source,ge.exec(e));return t.lastIndex=e.lastIndex,t}(e);case k:return new n;case x:return function cloneSymbol(e){return Xt?Re(Xt.call(e)):{}}(e)}}(e,h,u)}}i||(i=new Stack);var p=i.get(e);if(p)return p;i.set(e,s),ln(e)?e.forEach(function(n){s.add(baseClone(n,t,r,n,e,i))}):un(e)&&e.forEach(function(n,a){s.set(a,baseClone(n,t,r,a,e,i))});var g=f?a:(l?c?getAllKeysIn:getAllKeys:c?keysIn:keys)(e);return arrayEach(g||e,function(n,a){g&&(n=e[a=n]),assignValue(s,a,baseClone(n,t,r,a,e,i))}),s}function baseConformsTo(e,t,r){var n=r.length;if(null==e)return!n;for(e=Re(e);n--;){var o=r[n],i=t[o],s=e[o];if(s===a&&!(o in e)||!i(s))return!1}return!0}function baseDelay(e,t,r){if("function"!=typeof e)throw new Te(o);return yr(function(){e.apply(a,r)},t)}function baseDifference(e,t,r,n){var a=-1,o=arrayIncludes,i=!0,s=e.length,u=[],c=t.length;if(!s)return u;r&&(t=arrayMap(t,baseUnary(r))),n?(o=arrayIncludesWith,i=!1):t.length>=200&&(o=cacheHas,i=!1,t=new SetCache(t));e:for(;++a-1},ListCache.prototype.set=function listCacheSet(e,t){var r=this.__data__,n=assocIndexOf(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},MapCache.prototype.clear=function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Nt||ListCache),string:new Hash}},MapCache.prototype.delete=function mapCacheDelete(e){var t=getMapData(this,e).delete(e);return this.size-=t?1:0,t},MapCache.prototype.get=function mapCacheGet(e){return getMapData(this,e).get(e)},MapCache.prototype.has=function mapCacheHas(e){return getMapData(this,e).has(e)},MapCache.prototype.set=function mapCacheSet(e,t){var r=getMapData(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},SetCache.prototype.add=SetCache.prototype.push=function setCacheAdd(e){return this.__data__.set(e,i),this},SetCache.prototype.has=function setCacheHas(e){return this.__data__.has(e)},Stack.prototype.clear=function stackClear(){this.__data__=new ListCache,this.size=0},Stack.prototype.delete=function stackDelete(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Stack.prototype.get=function stackGet(e){return this.__data__.get(e)},Stack.prototype.has=function stackHas(e){return this.__data__.has(e)},Stack.prototype.set=function stackSet(e,t){var r=this.__data__;if(r instanceof ListCache){var n=r.__data__;if(!Nt||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new MapCache(n)}return r.set(e,t),this.size=r.size,this};var tr=createBaseEach(baseForOwn),rr=createBaseEach(baseForOwnRight,!0);function baseEvery(e,t){var r=!0;return tr(e,function(e,n,a){return r=!!t(e,n,a)}),r}function baseExtremum(e,t,r){for(var n=-1,o=e.length;++n0&&r(s)?t>1?baseFlatten(s,t-1,r,n,a):arrayPush(a,s):n||(a[a.length]=s)}return a}var nr=createBaseFor(),ar=createBaseFor(!0);function baseForOwn(e,t){return e&&nr(e,t,keys)}function baseForOwnRight(e,t){return e&&ar(e,t,keys)}function baseFunctions(e,t){return arrayFilter(t,function(t){return isFunction(e[t])})}function baseGet(e,t){for(var r=0,n=(t=castPath(t,e)).length;null!=e&&rt}function baseHas(e,t){return null!=e&&Pe.call(e,t)}function baseHasIn(e,t){return null!=e&&t in Re(e)}function baseIntersection(e,t,n){for(var o=n?arrayIncludesWith:arrayIncludes,i=e[0].length,s=e.length,u=s,c=r(s),l=1/0,f=[];u--;){var h=e[u];u&&t&&(h=arrayMap(h,baseUnary(t))),l=Lt(h.length,l),c[u]=!n&&(t||i>=120&&h.length>=120)?new SetCache(u&&h):a}h=e[0];var d=-1,p=c[0];e:for(;++d=s?u:u*("desc"==r[n]?-1:1)}return e.index-t.index}(e,t,r)})}function basePickBy(e,t,r){for(var n=-1,a=t.length,o={};++n-1;)s!==e&&Ye.call(s,u,1),Ye.call(e,u,1);return e}function basePullAt(e,t){for(var r=e?t.length:0,n=r-1;r--;){var a=t[r];if(r==n||a!==o){var o=a;isIndex(a)?Ye.call(e,a,1):baseUnset(e,a)}}return e}function baseRandom(e,t){return e+pt(Ut()*(t-e+1))}function baseRepeat(e,t){var r="";if(!e||t<1||t>p)return r;do{t%2&&(r+=e),(t=pt(t/2))&&(e+=e)}while(t);return r}function baseRest(e,t){return br(overRest(e,t,identity),e+"")}function baseSample(e){return arraySample(values(e))}function baseSampleSize(e,t){var r=values(e);return shuffleSelf(r,baseClamp(t,0,r.length))}function baseSet(e,t,r,n){if(!isObject(e))return e;for(var o=-1,i=(t=castPath(t,e)).length,s=i-1,u=e;null!=u&&++oo?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=r(o);++a>>1,i=e[o];null!==i&&!isSymbol(i)&&(r?i<=t:i=200){var c=t?null:cr(e);if(c)return setToArray(c);i=!1,a=cacheHas,u=new SetCache}else u=t?[]:s;e:for(;++n=n?e:baseSlice(e,t,r)}var ur=rt||function(e){return gt.clearTimeout(e)};function cloneBuffer(e,t){if(t)return e.slice();var r=e.length,n=Ve?Ve(r):new e.constructor(r);return e.copy(n),n}function cloneArrayBuffer(e){var t=new e.constructor(e.byteLength);return new He(t).set(new He(e)),t}function cloneTypedArray(e,t){var r=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function compareAscending(e,t){if(e!==t){var r=e!==a,n=null===e,o=e==e,i=isSymbol(e),s=t!==a,u=null===t,c=t==t,l=isSymbol(t);if(!u&&!l&&!i&&e>t||i&&s&&c&&!u&&!l||n&&s&&c||!r&&c||!o)return 1;if(!n&&!i&&!l&&e1?r[o-1]:a,s=o>2?r[2]:a;for(i=e.length>3&&"function"==typeof i?(o--,i):a,s&&isIterateeCall(r[0],r[1],s)&&(i=o<3?a:i,o=1),t=Re(t);++n-1?o[i?t[s]:s]:a}}function createFlow(e){return flatRest(function(t){var r=t.length,n=r,i=LodashWrapper.prototype.thru;for(e&&t.reverse();n--;){var s=t[n];if("function"!=typeof s)throw new Te(o);if(i&&!u&&"wrapper"==getFuncName(s))var u=new LodashWrapper([],!0)}for(n=u?n:r;++n1&&m.reverse(),d&&lu))return!1;var l=i.get(e),f=i.get(t);if(l&&f)return l==t&&f==e;var h=-1,d=!0,p=2&r?new SetCache:a;for(i.set(e,t),i.set(t,e);++h-1&&e%1==0&&e1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(ue,"{\n/* [wrapped with "+t+"] */\n")}(n,function updateWrapDetails(e,t){return arrayEach(b,function(r){var n="_."+r[0];t&r[1]&&!arrayIncludes(e,n)&&e.push(n)}),e.sort()}(function getWrapDetails(e){var t=e.match(ce);return t?t[1].split(le):[]}(n),r)))}function shortOut(e){var t=0,r=0;return function(){var n=jt(),o=16-(n-r);if(r=n,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function shuffleSelf(e,t){var r=-1,n=e.length,o=n-1;for(t=t===a?n:t;++r1?e[t-1]:a;return r="function"==typeof r?(e.pop(),r):a,unzipWith(e,r)});function chain(e){var t=lodash(e);return t.__chain__=!0,t}function thru(e,t){return t(e)}var Ur=flatRest(function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,interceptor=function(t){return baseAt(t,e)};return!(t>1||this.__actions__.length)&&n instanceof LazyWrapper&&isIndex(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:thru,args:[interceptor],thisArg:a}),new LodashWrapper(n,this.__chain__).thru(function(e){return t&&!e.length&&e.push(a),e})):this.thru(interceptor)});var Fr=createAggregator(function(e,t,r){Pe.call(e,r)?++e[r]:baseAssignValue(e,r,1)});var Dr=createFind(findIndex),Nr=createFind(findLastIndex);function forEach(e,t){return(nn(e)?arrayEach:tr)(e,getIteratee(t,3))}function forEachRight(e,t){return(nn(e)?arrayEachRight:rr)(e,getIteratee(t,3))}var Mr=createAggregator(function(e,t,r){Pe.call(e,r)?e[r].push(t):baseAssignValue(e,r,[t])});var zr=baseRest(function(e,t,n){var a=-1,o="function"==typeof t,i=isArrayLike(e)?r(e.length):[];return tr(e,function(e){i[++a]=o?apply(t,e,n):baseInvoke(e,t,n)}),i}),Wr=createAggregator(function(e,t,r){baseAssignValue(e,r,t)});function map(e,t){return(nn(e)?arrayMap:baseMap)(e,getIteratee(t,3))}var qr=createAggregator(function(e,t,r){e[r?0:1].push(t)},function(){return[[],[]]});var Hr=baseRest(function(e,t){if(null==e)return[];var r=t.length;return r>1&&isIterateeCall(e,t[0],t[1])?t=[]:r>2&&isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),baseOrderBy(e,baseFlatten(t,1),[])}),Vr=at||function(){return gt.Date.now()};function ary(e,t,r){return t=r?a:t,t=e&&null==t?e.length:t,createWrap(e,f,a,a,a,a,t)}function before(e,t){var r;if("function"!=typeof t)throw new Te(o);return e=toInteger(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=a),r}}var $r=baseRest(function(e,t,r){var n=1;if(r.length){var a=replaceHolders(r,getHolder($r));n|=c}return createWrap(e,n,t,r,a)}),Kr=baseRest(function(e,t,r){var n=3;if(r.length){var a=replaceHolders(r,getHolder(Kr));n|=c}return createWrap(t,n,e,r,a)});function debounce(e,t,r){var n,i,s,u,c,l,f=0,h=!1,d=!1,p=!0;if("function"!=typeof e)throw new Te(o);function invokeFunc(t){var r=n,o=i;return n=i=a,f=t,u=e.apply(o,r)}function shouldInvoke(e){var r=e-l;return l===a||r>=t||r<0||d&&e-f>=s}function timerExpired(){var e=Vr();if(shouldInvoke(e))return trailingEdge(e);c=yr(timerExpired,function remainingWait(e){var r=t-(e-l);return d?Lt(r,s-(e-f)):r}(e))}function trailingEdge(e){return c=a,p&&n?invokeFunc(e):(n=i=a,u)}function debounced(){var e=Vr(),r=shouldInvoke(e);if(n=arguments,i=this,l=e,r){if(c===a)return function leadingEdge(e){return f=e,c=yr(timerExpired,t),h?invokeFunc(e):u}(l);if(d)return ur(c),c=yr(timerExpired,t),invokeFunc(l)}return c===a&&(c=yr(timerExpired,t)),u}return t=toNumber(t)||0,isObject(r)&&(h=!!r.leading,s=(d="maxWait"in r)?xt(toNumber(r.maxWait)||0,t):s,p="trailing"in r?!!r.trailing:p),debounced.cancel=function cancel(){c!==a&&ur(c),f=0,n=l=i=c=a},debounced.flush=function flush(){return c===a?u:trailingEdge(Vr())},debounced}var Gr=baseRest(function(e,t){return baseDelay(e,1,t)}),Yr=baseRest(function(e,t,r){return baseDelay(e,toNumber(t)||0,r)});function memoize(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Te(o);var memoized=function(){var r=arguments,n=t?t.apply(this,r):r[0],a=memoized.cache;if(a.has(n))return a.get(n);var o=e.apply(this,r);return memoized.cache=a.set(n,o)||a,o};return memoized.cache=new(memoize.Cache||MapCache),memoized}function negate(e){if("function"!=typeof e)throw new Te(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}memoize.Cache=MapCache;var Jr=sr(function(e,t){var r=(t=1==t.length&&nn(t[0])?arrayMap(t[0],baseUnary(getIteratee())):arrayMap(baseFlatten(t,1),baseUnary(getIteratee()))).length;return baseRest(function(n){for(var a=-1,o=Lt(n.length,r);++a=t}),rn=baseIsArguments(function(){return arguments}())?baseIsArguments:function(e){return isObjectLike(e)&&Pe.call(e,"callee")&&!Ge.call(e,"callee")},nn=r.isArray,an=wt?baseUnary(wt):function baseIsArrayBuffer(e){return isObjectLike(e)&&baseGetTag(e)==j};function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction(e)}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}var on=bt||stubFalse,sn=At?baseUnary(At):function baseIsDate(e){return isObjectLike(e)&&baseGetTag(e)==w};function isError(e){if(!isObjectLike(e))return!1;var t=baseGetTag(e);return t==A||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!isPlainObject(e)}function isFunction(e){if(!isObject(e))return!1;var t=baseGetTag(e);return t==E||t==O||"[object AsyncFunction]"==t||"[object Proxy]"==t}function isInteger(e){return"number"==typeof e&&e==toInteger(e)}function isLength(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=p}function isObject(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function isObjectLike(e){return null!=e&&"object"==typeof e}var un=Et?baseUnary(Et):function baseIsMap(e){return isObjectLike(e)&&dr(e)==S};function isNumber(e){return"number"==typeof e||isObjectLike(e)&&baseGetTag(e)==R}function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=I)return!1;var t=$e(e);if(null===t)return!0;var r=Pe.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&je.call(r)==Ne}var cn=Ot?baseUnary(Ot):function baseIsRegExp(e){return isObjectLike(e)&&baseGetTag(e)==T};var ln=St?baseUnary(St):function baseIsSet(e){return isObjectLike(e)&&dr(e)==k};function isString(e){return"string"==typeof e||!nn(e)&&isObjectLike(e)&&baseGetTag(e)==C}function isSymbol(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==x}var fn=Rt?baseUnary(Rt):function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!ut[baseGetTag(e)]};var hn=createRelationalOperation(baseLt),dn=createRelationalOperation(function(e,t){return e<=t});function toArray(e){if(!e)return[];if(isArrayLike(e))return isString(e)?stringToArray(e):copyArray(e);if(Ze&&e[Ze])return function iteratorToArray(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[Ze]());var t=dr(e);return(t==S?mapToArray:t==k?setToArray:values)(e)}function toFinite(e){return e?(e=toNumber(e))===d||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function toInteger(e){var t=toFinite(e),r=t%1;return t==t?r?t-r:t:0}function toLength(e){return e?baseClamp(toInteger(e),0,y):0}function toNumber(e){if("number"==typeof e)return e;if(isSymbol(e))return g;if(isObject(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var r=be.test(e);return r||me.test(e)?ht(e.slice(2),r?2:8):ye.test(e)?g:+e}function toPlainObject(e){return copyObject(e,keysIn(e))}function toString(e){return null==e?"":baseToString(e)}var pn=createAssigner(function(e,t){if(isPrototype(t)||isArrayLike(t))copyObject(t,keys(t),e);else for(var r in t)Pe.call(t,r)&&assignValue(e,r,t[r])}),gn=createAssigner(function(e,t){copyObject(t,keysIn(t),e)}),yn=createAssigner(function(e,t,r,n){copyObject(t,keysIn(t),e,n)}),bn=createAssigner(function(e,t,r,n){copyObject(t,keys(t),e,n)}),vn=flatRest(baseAt);var mn=baseRest(function(e,t){e=Re(e);var r=-1,n=t.length,o=n>2?t[2]:a;for(o&&isIterateeCall(t[0],t[1],o)&&(n=1);++r1),t}),copyObject(e,getAllKeysIn(e),r),n&&(r=baseClone(r,7,customOmitClone));for(var a=t.length;a--;)baseUnset(r,t[a]);return r});var In=flatRest(function(e,t){return null==e?{}:function basePick(e,t){return basePickBy(e,t,function(t,r){return hasIn(e,r)})}(e,t)});function pickBy(e,t){if(null==e)return{};var r=arrayMap(getAllKeysIn(e),function(e){return[e]});return t=getIteratee(t),basePickBy(e,r,function(e,r){return t(e,r[0])})}var Bn=createToPairs(keys),Tn=createToPairs(keysIn);function values(e){return null==e?[]:baseValues(e,keys(e))}var kn=createCompounder(function(e,t,r){return t=t.toLowerCase(),e+(r?capitalize(t):t)});function capitalize(e){return Fn(toString(e).toLowerCase())}function deburr(e){return(e=toString(e))&&e.replace(we,Bt).replace(tt,"")}var Cn=createCompounder(function(e,t,r){return e+(r?"-":"")+t.toLowerCase()}),xn=createCompounder(function(e,t,r){return e+(r?" ":"")+t.toLowerCase()}),Ln=createCaseFirst("toLowerCase");var jn=createCompounder(function(e,t,r){return e+(r?"_":"")+t.toLowerCase()});var Pn=createCompounder(function(e,t,r){return e+(r?" ":"")+Fn(t)});var Un=createCompounder(function(e,t,r){return e+(r?" ":"")+t.toUpperCase()}),Fn=createCaseFirst("toUpperCase");function words(e,t,r){return e=toString(e),(t=r?a:t)===a?function hasUnicodeWord(e){return ot.test(e)}(e)?function unicodeWords(e){return e.match(nt)||[]}(e):function asciiWords(e){return e.match(fe)||[]}(e):e.match(t)||[]}var Dn=baseRest(function(e,t){try{return apply(e,a,t)}catch(e){return isError(e)?e:new se(e)}}),Nn=flatRest(function(e,t){return arrayEach(t,function(t){t=toKey(t),baseAssignValue(e,t,$r(e[t],e))}),e});function constant(e){return function(){return e}}var Mn=createFlow(),zn=createFlow(!0);function identity(e){return e}function iteratee(e){return baseIteratee("function"==typeof e?e:baseClone(e,1))}var Wn=baseRest(function(e,t){return function(r){return baseInvoke(r,e,t)}}),qn=baseRest(function(e,t){return function(r){return baseInvoke(e,r,t)}});function mixin(e,t,r){var n=keys(t),a=baseFunctions(t,n);null!=r||isObject(t)&&(a.length||!n.length)||(r=t,t=e,e=this,a=baseFunctions(t,keys(t)));var o=!(isObject(r)&&"chain"in r&&!r.chain),i=isFunction(e);return arrayEach(a,function(r){var n=t[r];e[r]=n,i&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__);return(r.__actions__=copyArray(this.__actions__)).push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,arrayPush([this.value()],arguments))})}),e}function noop(){}var Hn=createOver(arrayMap),Vn=createOver(arrayEvery),$n=createOver(arraySome);function property(e){return isKey(e)?baseProperty(toKey(e)):function basePropertyDeep(e){return function(t){return baseGet(t,e)}}(e)}var Kn=createRange(),Gn=createRange(!0);function stubArray(){return[]}function stubFalse(){return!1}var Yn=createMathOperation(function(e,t){return e+t},0),Jn=createRound("ceil"),Zn=createMathOperation(function(e,t){return e/t},1),Xn=createRound("floor");var Qn,ea=createMathOperation(function(e,t){return e*t},1),ta=createRound("round"),ra=createMathOperation(function(e,t){return e-t},0);return lodash.after=function after(e,t){if("function"!=typeof t)throw new Te(o);return e=toInteger(e),function(){if(--e<1)return t.apply(this,arguments)}},lodash.ary=ary,lodash.assign=pn,lodash.assignIn=gn,lodash.assignInWith=yn,lodash.assignWith=bn,lodash.at=vn,lodash.before=before,lodash.bind=$r,lodash.bindAll=Nn,lodash.bindKey=Kr,lodash.castArray=function castArray(){if(!arguments.length)return[];var e=arguments[0];return nn(e)?e:[e]},lodash.chain=chain,lodash.chunk=function chunk(e,t,n){t=(n?isIterateeCall(e,t,n):t===a)?1:xt(toInteger(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var i=0,s=0,u=r(dt(o/t));io?0:o+r),(n=n===a||n>o?o:toInteger(n))<0&&(n+=o),n=r>n?0:toLength(n);r>>0)?(e=toString(e))&&("string"==typeof t||null!=t&&!cn(t))&&!(t=baseToString(t))&&hasUnicode(e)?castSlice(stringToArray(e),0,r):e.split(t,r):[]},lodash.spread=function spread(e,t){if("function"!=typeof e)throw new Te(o);return t=null==t?0:xt(toInteger(t),0),baseRest(function(r){var n=r[t],a=castSlice(r,0,t);return n&&arrayPush(a,n),apply(e,this,a)})},lodash.tail=function tail(e){var t=null==e?0:e.length;return t?baseSlice(e,1,t):[]},lodash.take=function take(e,t,r){return e&&e.length?baseSlice(e,0,(t=r||t===a?1:toInteger(t))<0?0:t):[]},lodash.takeRight=function takeRight(e,t,r){var n=null==e?0:e.length;return n?baseSlice(e,(t=n-(t=r||t===a?1:toInteger(t)))<0?0:t,n):[]},lodash.takeRightWhile=function takeRightWhile(e,t){return e&&e.length?baseWhile(e,getIteratee(t,3),!1,!0):[]},lodash.takeWhile=function takeWhile(e,t){return e&&e.length?baseWhile(e,getIteratee(t,3)):[]},lodash.tap=function tap(e,t){return t(e),e},lodash.throttle=function throttle(e,t,r){var n=!0,a=!0;if("function"!=typeof e)throw new Te(o);return isObject(r)&&(n="leading"in r?!!r.leading:n,a="trailing"in r?!!r.trailing:a),debounce(e,t,{leading:n,maxWait:t,trailing:a})},lodash.thru=thru,lodash.toArray=toArray,lodash.toPairs=Bn,lodash.toPairsIn=Tn,lodash.toPath=function toPath(e){return nn(e)?arrayMap(e,toKey):isSymbol(e)?[e]:copyArray(vr(toString(e)))},lodash.toPlainObject=toPlainObject,lodash.transform=function transform(e,t,r){var n=nn(e),a=n||on(e)||fn(e);if(t=getIteratee(t,4),null==r){var o=e&&e.constructor;r=a?n?new o:[]:isObject(e)&&isFunction(o)?er($e(e)):{}}return(a?arrayEach:baseForOwn)(e,function(e,n,a){return t(r,e,n,a)}),r},lodash.unary=function unary(e){return ary(e,1)},lodash.union=Ir,lodash.unionBy=Br,lodash.unionWith=Tr,lodash.uniq=function uniq(e){return e&&e.length?baseUniq(e):[]},lodash.uniqBy=function uniqBy(e,t){return e&&e.length?baseUniq(e,getIteratee(t,2)):[]},lodash.uniqWith=function uniqWith(e,t){return t="function"==typeof t?t:a,e&&e.length?baseUniq(e,a,t):[]},lodash.unset=function unset(e,t){return null==e||baseUnset(e,t)},lodash.unzip=unzip,lodash.unzipWith=unzipWith,lodash.update=function update(e,t,r){return null==e?e:baseUpdate(e,t,castFunction(r))},lodash.updateWith=function updateWith(e,t,r,n){return n="function"==typeof n?n:a,null==e?e:baseUpdate(e,t,castFunction(r),n)},lodash.values=values,lodash.valuesIn=function valuesIn(e){return null==e?[]:baseValues(e,keysIn(e))},lodash.without=kr,lodash.words=words,lodash.wrap=function wrap(e,t){return Zr(castFunction(t),e)},lodash.xor=Cr,lodash.xorBy=xr,lodash.xorWith=Lr,lodash.zip=jr,lodash.zipObject=function zipObject(e,t){return baseZipObject(e||[],t||[],assignValue)},lodash.zipObjectDeep=function zipObjectDeep(e,t){return baseZipObject(e||[],t||[],baseSet)},lodash.zipWith=Pr,lodash.entries=Bn,lodash.entriesIn=Tn,lodash.extend=gn,lodash.extendWith=yn,mixin(lodash,lodash),lodash.add=Yn,lodash.attempt=Dn,lodash.camelCase=kn,lodash.capitalize=capitalize,lodash.ceil=Jn,lodash.clamp=function clamp(e,t,r){return r===a&&(r=t,t=a),r!==a&&(r=(r=toNumber(r))==r?r:0),t!==a&&(t=(t=toNumber(t))==t?t:0),baseClamp(toNumber(e),t,r)},lodash.clone=function clone(e){return baseClone(e,4)},lodash.cloneDeep=function cloneDeep(e){return baseClone(e,5)},lodash.cloneDeepWith=function cloneDeepWith(e,t){return baseClone(e,5,t="function"==typeof t?t:a)},lodash.cloneWith=function cloneWith(e,t){return baseClone(e,4,t="function"==typeof t?t:a)},lodash.conformsTo=function conformsTo(e,t){return null==t||baseConformsTo(e,t,keys(t))},lodash.deburr=deburr,lodash.defaultTo=function defaultTo(e,t){return null==e||e!=e?t:e},lodash.divide=Zn,lodash.endsWith=function endsWith(e,t,r){e=toString(e),t=baseToString(t);var n=e.length,o=r=r===a?n:baseClamp(toInteger(r),0,n);return(r-=t.length)>=0&&e.slice(r,o)==t},lodash.eq=eq,lodash.escape=function escape(e){return(e=toString(e))&&Z.test(e)?e.replace(Y,Tt):e},lodash.escapeRegExp=function escapeRegExp(e){return(e=toString(e))&&oe.test(e)?e.replace(ae,"\\$&"):e},lodash.every=function every(e,t,r){var n=nn(e)?arrayEvery:baseEvery;return r&&isIterateeCall(e,t,r)&&(t=a),n(e,getIteratee(t,3))},lodash.find=Dr,lodash.findIndex=findIndex,lodash.findKey=function findKey(e,t){return baseFindKey(e,getIteratee(t,3),baseForOwn)},lodash.findLast=Nr,lodash.findLastIndex=findLastIndex,lodash.findLastKey=function findLastKey(e,t){return baseFindKey(e,getIteratee(t,3),baseForOwnRight)},lodash.floor=Xn,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=function forIn(e,t){return null==e?e:nr(e,getIteratee(t,3),keysIn)},lodash.forInRight=function forInRight(e,t){return null==e?e:ar(e,getIteratee(t,3),keysIn)},lodash.forOwn=function forOwn(e,t){return e&&baseForOwn(e,getIteratee(t,3))},lodash.forOwnRight=function forOwnRight(e,t){return e&&baseForOwnRight(e,getIteratee(t,3))},lodash.get=get,lodash.gt=en,lodash.gte=tn,lodash.has=function has(e,t){return null!=e&&hasPath(e,t,baseHas)},lodash.hasIn=hasIn,lodash.head=head,lodash.identity=identity,lodash.includes=function includes(e,t,r,n){e=isArrayLike(e)?e:values(e),r=r&&!n?toInteger(r):0;var a=e.length;return r<0&&(r=xt(a+r,0)),isString(e)?r<=a&&e.indexOf(t,r)>-1:!!a&&baseIndexOf(e,t,r)>-1},lodash.indexOf=function indexOf(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var a=null==r?0:toInteger(r);return a<0&&(a=xt(n+a,0)),baseIndexOf(e,t,a)},lodash.inRange=function inRange(e,t,r){return t=toFinite(t),r===a?(r=t,t=0):r=toFinite(r),function baseInRange(e,t,r){return e>=Lt(t,r)&&e=-9007199254740991&&e<=p},lodash.isSet=ln,lodash.isString=isString,lodash.isSymbol=isSymbol,lodash.isTypedArray=fn,lodash.isUndefined=function isUndefined(e){return e===a},lodash.isWeakMap=function isWeakMap(e){return isObjectLike(e)&&dr(e)==L},lodash.isWeakSet=function isWeakSet(e){return isObjectLike(e)&&"[object WeakSet]"==baseGetTag(e)},lodash.join=function join(e,t){return null==e?"":_t.call(e,t)},lodash.kebabCase=Cn,lodash.last=last,lodash.lastIndexOf=function lastIndexOf(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var o=n;return r!==a&&(o=(o=toInteger(r))<0?xt(n+o,0):Lt(o,n-1)),t==t?function strictLastIndexOf(e,t,r){for(var n=r+1;n--;)if(e[n]===t)return n;return n}(e,t,o):baseFindIndex(e,baseIsNaN,o,!0)},lodash.lowerCase=xn,lodash.lowerFirst=Ln,lodash.lt=hn,lodash.lte=dn,lodash.max=function max(e){return e&&e.length?baseExtremum(e,identity,baseGt):a},lodash.maxBy=function maxBy(e,t){return e&&e.length?baseExtremum(e,getIteratee(t,2),baseGt):a},lodash.mean=function mean(e){return baseMean(e,identity)},lodash.meanBy=function meanBy(e,t){return baseMean(e,getIteratee(t,2))},lodash.min=function min(e){return e&&e.length?baseExtremum(e,identity,baseLt):a},lodash.minBy=function minBy(e,t){return e&&e.length?baseExtremum(e,getIteratee(t,2),baseLt):a},lodash.stubArray=stubArray,lodash.stubFalse=stubFalse,lodash.stubObject=function stubObject(){return{}},lodash.stubString=function stubString(){return""},lodash.stubTrue=function stubTrue(){return!0},lodash.multiply=ea,lodash.nth=function nth(e,t){return e&&e.length?baseNth(e,toInteger(t)):a},lodash.noConflict=function noConflict(){return gt._===this&&(gt._=Me),this},lodash.noop=noop,lodash.now=Vr,lodash.pad=function pad(e,t,r){e=toString(e);var n=(t=toInteger(t))?stringSize(e):0;if(!t||n>=t)return e;var a=(t-n)/2;return createPadding(pt(a),r)+e+createPadding(dt(a),r)},lodash.padEnd=function padEnd(e,t,r){e=toString(e);var n=(t=toInteger(t))?stringSize(e):0;return t&&nt){var n=e;e=t,t=n}if(r||e%1||t%1){var o=Ut();return Lt(e+o*(t-e+ft("1e-"+((o+"").length-1))),t)}return baseRandom(e,t)},lodash.reduce=function reduce(e,t,r){var n=nn(e)?arrayReduce:baseReduce,a=arguments.length<3;return n(e,getIteratee(t,4),r,a,tr)},lodash.reduceRight=function reduceRight(e,t,r){var n=nn(e)?arrayReduceRight:baseReduce,a=arguments.length<3;return n(e,getIteratee(t,4),r,a,rr)},lodash.repeat=function repeat(e,t,r){return t=(r?isIterateeCall(e,t,r):t===a)?1:toInteger(t),baseRepeat(toString(e),t)},lodash.replace=function replace(){var e=arguments,t=toString(e[0]);return e.length<3?t:t.replace(e[1],e[2])},lodash.result=function result(e,t,r){var n=-1,o=(t=castPath(t,e)).length;for(o||(o=1,e=a);++np)return[];var r=y,n=Lt(e,y);t=getIteratee(t),e-=y;for(var a=baseTimes(n,t);++r=i)return e;var u=r-stringSize(n);if(u<1)return n;var c=s?castSlice(s,0,u).join(""):e.slice(0,u);if(o===a)return c+n;if(s&&(u+=c.length-u),cn(o)){if(e.slice(u).search(o)){var l,f=c;for(o.global||(o=Ie(o.source,toString(ge.exec(o))+"g")),o.lastIndex=0;l=o.exec(f);)var h=l.index;c=c.slice(0,h===a?u:h)}}else if(e.indexOf(baseToString(o),u)!=u){var d=c.lastIndexOf(o);d>-1&&(c=c.slice(0,d))}return c+n},lodash.unescape=function unescape(e){return(e=toString(e))&&J.test(e)?e.replace(G,kt):e},lodash.uniqueId=function uniqueId(e){var t=++Ue;return toString(e)+t},lodash.upperCase=Un,lodash.upperFirst=Fn,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.first=head,mixin(lodash,(Qn={},baseForOwn(lodash,function(e,t){Pe.call(lodash.prototype,t)||(Qn[t]=e)}),Qn),{chain:!1}),lodash.VERSION="4.17.23",arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){lodash[e].placeholder=lodash}),arrayEach(["drop","take"],function(e,t){LazyWrapper.prototype[e]=function(r){r=r===a?1:xt(toInteger(r),0);var n=this.__filtered__&&!t?new LazyWrapper(this):this.clone();return n.__filtered__?n.__takeCount__=Lt(r,n.__takeCount__):n.__views__.push({size:Lt(r,y),type:e+(n.__dir__<0?"Right":"")}),n},LazyWrapper.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),arrayEach(["filter","map","takeWhile"],function(e,t){var r=t+1,n=1==r||3==r;LazyWrapper.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:getIteratee(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}}),arrayEach(["head","last"],function(e,t){var r="take"+(t?"Right":"");LazyWrapper.prototype[e]=function(){return this[r](1).value()[0]}}),arrayEach(["initial","tail"],function(e,t){var r="drop"+(t?"":"Right");LazyWrapper.prototype[e]=function(){return this.__filtered__?new LazyWrapper(this):this[r](1)}}),LazyWrapper.prototype.compact=function(){return this.filter(identity)},LazyWrapper.prototype.find=function(e){return this.filter(e).head()},LazyWrapper.prototype.findLast=function(e){return this.reverse().find(e)},LazyWrapper.prototype.invokeMap=baseRest(function(e,t){return"function"==typeof e?new LazyWrapper(this):this.map(function(r){return baseInvoke(r,e,t)})}),LazyWrapper.prototype.reject=function(e){return this.filter(negate(getIteratee(e)))},LazyWrapper.prototype.slice=function(e,t){e=toInteger(e);var r=this;return r.__filtered__&&(e>0||t<0)?new LazyWrapper(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),t!==a&&(r=(t=toInteger(t))<0?r.dropRight(-t):r.take(t-e)),r)},LazyWrapper.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(y)},baseForOwn(LazyWrapper.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),o=lodash[n?"take"+("last"==t?"Right":""):t],i=n||/^find/.test(t);o&&(lodash.prototype[t]=function(){var t=this.__wrapped__,s=n?[1]:arguments,u=t instanceof LazyWrapper,c=s[0],l=u||nn(t),interceptor=function(e){var t=o.apply(lodash,arrayPush([e],s));return n&&f?t[0]:t};l&&r&&"function"==typeof c&&1!=c.length&&(u=l=!1);var f=this.__chain__,h=!!this.__actions__.length,d=i&&!f,p=u&&!h;if(!i&&l){t=p?t:new LazyWrapper(this);var g=e.apply(t,s);return g.__actions__.push({func:thru,args:[interceptor],thisArg:a}),new LodashWrapper(g,f)}return d&&p?e.apply(this,s):(g=this.thru(interceptor),d?n?g.value()[0]:g.value():g)})}),arrayEach(["pop","push","shift","sort","splice","unshift"],function(e){var t=ke[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);lodash.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var a=this.value();return t.apply(nn(a)?a:[],e)}return this[r](function(r){return t.apply(nn(r)?r:[],e)})}}),baseForOwn(LazyWrapper.prototype,function(e,t){var r=lodash[t];if(r){var n=r.name+"";Pe.call(Vt,n)||(Vt[n]=[]),Vt[n].push({name:t,func:r})}}),Vt[createHybrid(a,2).name]=[{name:"wrapper",func:a}],LazyWrapper.prototype.clone=function lazyClone(){var e=new LazyWrapper(this.__wrapped__);return e.__actions__=copyArray(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=copyArray(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=copyArray(this.__views__),e},LazyWrapper.prototype.reverse=function lazyReverse(){if(this.__filtered__){var e=new LazyWrapper(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},LazyWrapper.prototype.value=function lazyValue(){var e=this.__wrapped__.value(),t=this.__dir__,r=nn(e),n=t<0,a=r?e.length:0,o=function getView(e,t,r){var n=-1,a=r.length;for(;++n=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},lodash.prototype.plant=function wrapperPlant(e){for(var t,r=this;r instanceof baseLodash;){var n=wrapperClone(r);n.__index__=0,n.__values__=a,t?o.__wrapped__=n:t=n;var o=n;r=r.__wrapped__}return o.__wrapped__=e,t},lodash.prototype.reverse=function wrapperReverse(){var e=this.__wrapped__;if(e instanceof LazyWrapper){var t=e;return this.__actions__.length&&(t=new LazyWrapper(this)),(t=t.reverse()).__actions__.push({func:thru,args:[reverse],thisArg:a}),new LodashWrapper(t,this.__chain__)}return this.thru(reverse)},lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)},lodash.prototype.first=lodash.prototype.head,Ze&&(lodash.prototype[Ze]=function wrapperToIterator(){return this}),lodash}();gt._=Ct,(n=function(){return Ct}.call(t,r,t,e))===a||(e.exports=n)}.call(this)},205(){},812(){},606(e){var t,r,n=e.exports={};function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(t===setTimeout)return setTimeout(e,0);if((t===defaultSetTimout||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){t=defaultSetTimout}try{r="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){r=defaultClearTimeout}}();var a,o=[],i=!1,s=-1;function cleanUpNextTick(){i&&a&&(i=!1,a.length?o=a.concat(o):s=-1,o.length&&drainQueue())}function drainQueue(){if(!i){var e=runTimeout(cleanUpNextTick);i=!0;for(var t=o.length;t;){for(a=o,o=[];++s1)for(var r=1;r{const t=o.call(e);return l[t]||(l[t]=t.slice(8,-1).toLowerCase())});var l;const kindOfTest=e=>(e=e.toLowerCase(),t=>c(t)===e),typeOfTest=e=>t=>typeof t===e,{isArray:f}=Array,h=typeOfTest("undefined");function isBuffer(e){return null!==e&&!h(e)&&null!==e.constructor&&!h(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const d=kindOfTest("ArrayBuffer");const p=typeOfTest("string"),g=typeOfTest("function"),y=typeOfTest("number"),isObject=e=>null!==e&&"object"==typeof e,isPlainObject=e=>{if("object"!==c(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||u in e||s in e)},b=kindOfTest("Date"),v=kindOfTest("File"),m=kindOfTest("Blob"),_=kindOfTest("FileList"),w=kindOfTest("URLSearchParams"),[A,E,O,S]=["ReadableStream","Request","Response","Headers"].map(kindOfTest);function forEach(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,a;if("object"!=typeof e&&(e=[e]),f(e))for(n=0,a=e.length;n0;)if(n=r[a],t===n.toLowerCase())return n;return null}const R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:r.g,isContextDefined=e=>!h(e)&&e!==R;const I=(B="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>B&&e instanceof B);var B;const T=kindOfTest("HTMLFormElement"),k=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),C=kindOfTest("RegExp"),reduceDescriptors=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};forEach(r,(r,a)=>{let o;!1!==(o=t(r,a,e))&&(n[a]=o||r)}),Object.defineProperties(e,n)};const x=kindOfTest("AsyncFunction"),L=(j="function"==typeof setImmediate,P=g(R.postMessage),j?setImmediate:P?(U=`axios@${Math.random()}`,F=[],R.addEventListener("message",({source:e,data:t})=>{e===R&&t===U&&F.length&&F.shift()()},!1),e=>{F.push(e),R.postMessage(U,"*")}):e=>setTimeout(e));var j,P,U,F;const D="undefined"!=typeof queueMicrotask?queueMicrotask.bind(R):void 0!==n&&n.nextTick||L;var N={isArray:f,isArrayBuffer:d,isBuffer,isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=c(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function isArrayBufferView(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:p,isNumber:y,isBoolean:e=>!0===e||!1===e,isObject,isPlainObject,isEmptyObject:e=>{if(!isObject(e)||isBuffer(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:A,isRequest:E,isResponse:O,isHeaders:S,isUndefined:h,isDate:b,isFile:v,isBlob:m,isRegExp:C,isFunction:g,isStream:e=>isObject(e)&&g(e.pipe),isURLSearchParams:w,isTypedArray:I,isFileList:_,forEach,merge:function merge(){const{caseless:e,skipUndefined:t}=isContextDefined(this)&&this||{},r={},assignValue=(n,a)=>{if("__proto__"===a||"constructor"===a||"prototype"===a)return;const o=e&&findKey(r,a)||a;isPlainObject(r[o])&&isPlainObject(n)?r[o]=merge(r[o],n):isPlainObject(n)?r[o]=merge({},n):f(n)?r[o]=n.slice():t&&h(n)||(r[o]=n)};for(let e=0,t=arguments.length;e(forEach(t,(t,n)=>{r&&g(t)?Object.defineProperty(e,n,{value:bind(t,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,n,{value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let a,o,s;const u={};if(t=t||{},null==e)return t;do{for(a=Object.getOwnPropertyNames(e),o=a.length;o-- >0;)s=a[o],n&&!n(s,e,t)||u[s]||(t[s]=e[s],u[s]=!0);e=!1!==r&&i(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:c,kindOfTest,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(f(e))return e;let t=e.length;if(!y(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[s]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:T,hasOwnProperty:k,hasOwnProp:k,reduceDescriptors,freezeMethods:e=>{reduceDescriptors(e,(t,r)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];g(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))})},toObjectSet:(e,t)=>{const r={},define=e=>{e.forEach(e=>{r[e]=!0})};return f(e)?define(e):define(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function replacer(e,t,r){return t.toUpperCase()+r}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey,global:R,isContextDefined,isSpecCompliantForm:function isSpecCompliantForm(e){return!!(e&&g(e.append)&&"FormData"===e[u]&&e[s])},toJSONObject:e=>{const t=new Array(10),visit=(e,r)=>{if(isObject(e)){if(t.indexOf(e)>=0)return;if(isBuffer(e))return e;if(!("toJSON"in e)){t[r]=e;const n=f(e)?[]:{};return forEach(e,(e,t)=>{const a=visit(e,r+1);!h(a)&&(n[t]=a)}),t[r]=void 0,n}}return e};return visit(e,0)},isAsyncFn:x,isThenable:e=>e&&(isObject(e)||g(e))&&g(e.then)&&g(e.catch),setImmediate:L,asap:D,isIterable:e=>null!=e&&g(e[s])};class AxiosError extends Error{static from(e,t,r,n,a,o){const i=new AxiosError(e.message,t||e.code,r,n,a);return i.cause=e,i.name=e.name,o&&Object.assign(i,o),i}constructor(e,t,r,n,a){super(e),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),a&&(this.response=a,this.status=a.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:N.toJSONObject(this.config),code:this.code,status:this.status}}}AxiosError.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",AxiosError.ERR_BAD_OPTION="ERR_BAD_OPTION",AxiosError.ECONNABORTED="ECONNABORTED",AxiosError.ETIMEDOUT="ETIMEDOUT",AxiosError.ERR_NETWORK="ERR_NETWORK",AxiosError.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",AxiosError.ERR_DEPRECATED="ERR_DEPRECATED",AxiosError.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",AxiosError.ERR_BAD_REQUEST="ERR_BAD_REQUEST",AxiosError.ERR_CANCELED="ERR_CANCELED",AxiosError.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",AxiosError.ERR_INVALID_URL="ERR_INVALID_URL";var M=AxiosError;function isVisitable(e){return N.isPlainObject(e)||N.isArray(e)}function removeBrackets(e){return N.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,r){return e?e.concat(t).map(function each(e,t){return e=removeBrackets(e),!r&&t?"["+e+"]":e}).join(r?".":""):t}const z=N.toFlatObject(N,{},null,function filter(e){return/^is[A-Z]/.test(e)});function toFormData(e,t,r){if(!N.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=N.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function defined(e,t){return!N.isUndefined(t[e])})).metaTokens,o=r.visitor||defaultVisitor,i=r.dots,s=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&N.isSpecCompliantForm(t);if(!N.isFunction(o))throw new TypeError("visitor must be a function");function convertValue(e){if(null===e)return"";if(N.isDate(e))return e.toISOString();if(N.isBoolean(e))return e.toString();if(!u&&N.isBlob(e))throw new M("Blob is not supported. Use a Buffer instead.");return N.isArrayBuffer(e)||N.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):a.from(e):e}function defaultVisitor(e,r,a){let o=e;if(e&&!a&&"object"==typeof e)if(N.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(N.isArray(e)&&function isFlatArray(e){return N.isArray(e)&&!e.some(isVisitable)}(e)||(N.isFileList(e)||N.endsWith(r,"[]"))&&(o=N.toArray(e)))return r=removeBrackets(r),o.forEach(function each(e,n){!N.isUndefined(e)&&null!==e&&t.append(!0===s?renderKey([r],n,i):null===s?r:r+"[]",convertValue(e))}),!1;return!!isVisitable(e)||(t.append(renderKey(a,r,i),convertValue(e)),!1)}const c=[],l=Object.assign(z,{defaultVisitor,convertValue,isVisitable});if(!N.isObject(e))throw new TypeError("data must be an object");return function build(e,r){if(!N.isUndefined(e)){if(-1!==c.indexOf(e))throw Error("Circular reference detected in "+r.join("."));c.push(e),N.forEach(e,function each(e,n){!0===(!(N.isUndefined(e)||null===e)&&o.call(t,e,N.isString(n)?n.trim():n,r,l))&&build(e,r?r.concat(n):[n])}),c.pop()}}(e),t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function replacer(e){return t[e]})}function AxiosURLSearchParams(e,t){this._pairs=[],e&&toFormData(e,this,t)}const W=AxiosURLSearchParams.prototype;function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function buildURL(e,t,r){if(!t)return e;const n=r&&r.encode||encode,a=N.isFunction(r)?{serialize:r}:r,o=a&&a.serialize;let i;if(i=o?o(t,a):N.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,a).toString(n),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}W.append=function append(e,t){this._pairs.push([e,t])},W.toString=function toString(e){const t=e?function(t){return e.call(this,t,encode$1)}:encode$1;return this._pairs.map(function each(e){return t(e[0])+"="+t(e[1])},"").join("&")};var q=class InterceptorManager{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){N.forEach(this.handlers,function forEachHandler(t){null!==t&&e(t)})}},H={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},V={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:AxiosURLSearchParams,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const $="undefined"!=typeof window&&"undefined"!=typeof document,K="object"==typeof navigator&&navigator||void 0,G=$&&(!K||["ReactNative","NativeScript","NS"].indexOf(K.product)<0),Y="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,J=$&&window.location.href||"http://localhost";var Z={...Object.freeze({__proto__:null,hasBrowserEnv:$,hasStandardBrowserWebWorkerEnv:Y,hasStandardBrowserEnv:G,navigator:K,origin:J}),...V};function formDataToJSON(e){function buildPath(e,t,r,n){let a=e[n++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),i=n>=e.length;if(a=!a&&N.isArray(r)?r.length:a,i)return N.hasOwnProp(r,a)?r[a]=[r[a],t]:r[a]=t,!o;r[a]&&N.isObject(r[a])||(r[a]=[]);return buildPath(e,t,r[a],n)&&N.isArray(r[a])&&(r[a]=function arrayToObject(e){const t={},r=Object.keys(e);let n;const a=r.length;let o;for(n=0;n{buildPath(function parsePropPath(e){return N.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),r,t,0)}),t}return null}const X={transitional:H,adapter:["xhr","http","fetch"],transformRequest:[function transformRequest(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,a=N.isObject(e);a&&N.isHTMLForm(e)&&(e=new FormData(e));if(N.isFormData(e))return n?JSON.stringify(formDataToJSON(e)):e;if(N.isArrayBuffer(e)||N.isBuffer(e)||N.isStream(e)||N.isFile(e)||N.isBlob(e)||N.isReadableStream(e))return e;if(N.isArrayBufferView(e))return e.buffer;if(N.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(a){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function toURLEncodedForm(e,t){return toFormData(e,new Z.classes.URLSearchParams,{visitor:function(e,t,r,n){return Z.isNode&&N.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((o=N.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return a||n?(t.setContentType("application/json",!1),function stringifySafely(e,t,r){if(N.isString(e))try{return(t||JSON.parse)(e),N.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function transformResponse(e){const t=this.transitional||X.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(N.isResponse(e)||N.isReadableStream(e))return e;if(e&&N.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e,this.parseReviver)}catch(e){if(r){if("SyntaxError"===e.name)throw M.from(e,M.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};N.forEach(["delete","get","head","post","put","patch"],e=>{X.headers[e]={}});var Q=X;const ee=N.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const te=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){return!1===e||null==e?e:N.isArray(e)?e.map(normalizeValue):String(e)}function matchHeaderValue(e,t,r,n,a){return N.isFunction(n)?n.call(this,t,r):(a&&(t=r),N.isString(t)?N.isString(n)?-1!==t.indexOf(n):N.isRegExp(n)?n.test(t):void 0:void 0)}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function setHeader(e,t,r){const a=normalizeHeader(t);if(!a)throw new Error("header name must be a non-empty string");const o=N.findKey(n,a);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||t]=normalizeValue(e))}const setHeaders=(e,t)=>N.forEach(e,(e,r)=>setHeader(e,r,t));if(N.isPlainObject(e)||e instanceof this.constructor)setHeaders(e,t);else if(N.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))setHeaders((e=>{const t={};let r,n,a;return e&&e.split("\n").forEach(function parser(e){a=e.indexOf(":"),r=e.substring(0,a).trim().toLowerCase(),n=e.substring(a+1).trim(),!r||t[r]&&ee[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t})(e),t);else if(N.isObject(e)&&N.isIterable(e)){let r,n,a={};for(const t of e){if(!N.isArray(t))throw TypeError("Object iterator must return a key-value pair");a[n=t[0]]=(r=a[n])?N.isArray(r)?[...r,t[1]]:[r,t[1]]:t[1]}setHeaders(a,t)}else null!=e&&setHeader(t,e,r);return this}get(e,t){if(e=normalizeHeader(e)){const r=N.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function parseTokens(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(N.isFunction(t))return t.call(this,e,r);if(N.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=normalizeHeader(e)){const r=N.findKey(this,e);return!(!r||void 0===this[r]||t&&!matchHeaderValue(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function deleteHeader(e){if(e=normalizeHeader(e)){const a=N.findKey(r,e);!a||t&&!matchHeaderValue(0,r[a],a,t)||(delete r[a],n=!0)}}return N.isArray(e)?e.forEach(deleteHeader):deleteHeader(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const a=t[r];e&&!matchHeaderValue(0,this[a],a,e,!0)||(delete this[a],n=!0)}return n}normalize(e){const t=this,r={};return N.forEach(this,(n,a)=>{const o=N.findKey(r,a);if(o)return t[o]=normalizeValue(n),void delete t[a];const i=e?function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r)}(a):String(a).trim();i!==a&&delete t[a],t[i]=normalizeValue(n),r[i]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return N.forEach(this,(r,n)=>{null!=r&&!1!==r&&(t[n]=e&&N.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach(e=>r.set(e)),r}static accessor(e){const t=(this[te]=this[te]={accessors:{}}).accessors,r=this.prototype;function defineAccessor(e){const n=normalizeHeader(e);t[n]||(!function buildAccessors(e,t){const r=N.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(e,r,a){return this[n].call(this,t,e,r,a)},configurable:!0})})}(r,e),t[n]=!0)}return N.isArray(e)?e.forEach(defineAccessor):defineAccessor(e),this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),N.reduceDescriptors(AxiosHeaders.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}}),N.freezeMethods(AxiosHeaders);var re=AxiosHeaders;function transformData(e,t){const r=this||Q,n=t||r,a=re.from(n.headers);let o=n.data;return N.forEach(e,function transform(e){o=e.call(r,o,a.normalize(),t?t.status:void 0)}),a.normalize(),o}function isCancel(e){return!(!e||!e.__CANCEL__)}var ne=class CanceledError extends M{constructor(e,t,r){super(null==e?"canceled":e,M.ERR_CANCELED,t,r),this.name="CanceledError",this.__CANCEL__=!0}};function settle(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new M("Request failed with status code "+r.status,[M.ERR_BAD_REQUEST,M.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}const progressEventReducer=(e,t,r=3)=>{let n=0;const a=function speedometer(e,t){e=e||10;const r=new Array(e),n=new Array(e);let a,o=0,i=0;return t=void 0!==t?t:1e3,function push(s){const u=Date.now(),c=n[i];a||(a=u),r[o]=s,n[o]=u;let l=i,f=0;for(;l!==o;)f+=r[l++],l%=e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),u-a{a=o,r=null,n&&(clearTimeout(n),n=null),e(...t)};return[(...e)=>{const t=Date.now(),i=t-a;i>=o?invoke(e,t):(r=e,n||(n=setTimeout(()=>{n=null,invoke(r)},o-i)))},()=>r&&invoke(r)]}(r=>{const o=r.loaded,i=r.lengthComputable?r.total:void 0,s=o-n,u=a(s);n=o;e({loaded:o,total:i,progress:i?o/i:void 0,bytes:s,rate:u||void 0,estimated:u&&i&&o<=i?(i-o)/u:void 0,event:r,lengthComputable:null!=i,[t?"download":"upload"]:!0})},r)},progressEventDecorator=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},asyncDecorator=e=>(...t)=>N.asap(()=>e(...t));var ae=Z.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,Z.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,oe=Z.hasStandardBrowserEnv?{write(e,t,r,n,a,o,i){if("undefined"==typeof document)return;const s=[`${e}=${encodeURIComponent(t)}`];N.isNumber(r)&&s.push(`expires=${new Date(r).toUTCString()}`),N.isString(n)&&s.push(`path=${n}`),N.isString(a)&&s.push(`domain=${a}`),!0===o&&s.push("secure"),N.isString(i)&&s.push(`SameSite=${i}`),document.cookie=s.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function buildFullPath(e,t,r){let n=!function isAbsoluteURL(e){return"string"==typeof e&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}(t);return e&&(n||0==r)?function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const headersToObject=e=>e instanceof re?{...e}:e;function mergeConfig(e,t){t=t||{};const r={};function getMergedValue(e,t,r,n){return N.isPlainObject(e)&&N.isPlainObject(t)?N.merge.call({caseless:n},e,t):N.isPlainObject(t)?N.merge({},t):N.isArray(t)?t.slice():t}function mergeDeepProperties(e,t,r,n){return N.isUndefined(t)?N.isUndefined(e)?void 0:getMergedValue(void 0,e,0,n):getMergedValue(e,t,0,n)}function valueFromConfig2(e,t){if(!N.isUndefined(t))return getMergedValue(void 0,t)}function defaultToConfig2(e,t){return N.isUndefined(t)?N.isUndefined(e)?void 0:getMergedValue(void 0,e):getMergedValue(void 0,t)}function mergeDirectKeys(r,n,a){return a in t?getMergedValue(r,n):a in e?getMergedValue(void 0,r):void 0}const n={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(e,t,r)=>mergeDeepProperties(headersToObject(e),headersToObject(t),0,!0)};return N.forEach(Object.keys({...e,...t}),function computeConfigValue(a){if("__proto__"===a||"constructor"===a||"prototype"===a)return;const o=N.hasOwnProp(n,a)?n[a]:mergeDeepProperties,i=o(e[a],t[a],a);N.isUndefined(i)&&o!==mergeDirectKeys||(r[a]=i)}),r}var resolveConfig=e=>{const t=mergeConfig({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:a,xsrfCookieName:o,headers:i,auth:s}=t;if(t.headers=i=re.from(i),t.url=buildURL(buildFullPath(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&i.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):""))),N.isFormData(r))if(Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(N.isFunction(r.getHeaders)){const e=r.getHeaders(),t=["content-type","content-length"];Object.entries(e).forEach(([e,r])=>{t.includes(e.toLowerCase())&&i.set(e,r)})}if(Z.hasStandardBrowserEnv&&(n&&N.isFunction(n)&&(n=n(t)),n||!1!==n&&ae(t.url))){const e=a&&o&&oe.read(o);e&&i.set(a,e)}return t};var ie="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function dispatchXhrRequest(t,r){const n=resolveConfig(e);let a=n.data;const o=re.from(n.headers).normalize();let i,s,u,c,l,{responseType:f,onUploadProgress:h,onDownloadProgress:d}=n;function done(){c&&c(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(i),n.signal&&n.signal.removeEventListener("abort",i)}let p=new XMLHttpRequest;function onloadend(){if(!p)return;const n=re.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders());settle(function _resolve(e){t(e),done()},function _reject(e){r(e),done()},{data:f&&"text"!==f&&"json"!==f?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p}),p=null}p.open(n.method.toUpperCase(),n.url,!0),p.timeout=n.timeout,"onloadend"in p?p.onloadend=onloadend:p.onreadystatechange=function handleLoad(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(onloadend)},p.onabort=function handleAbort(){p&&(r(new M("Request aborted",M.ECONNABORTED,e,p)),p=null)},p.onerror=function handleError(t){const n=t&&t.message?t.message:"Network Error",a=new M(n,M.ERR_NETWORK,e,p);a.event=t||null,r(a),p=null},p.ontimeout=function handleTimeout(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const a=n.transitional||H;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new M(t,a.clarifyTimeoutError?M.ETIMEDOUT:M.ECONNABORTED,e,p)),p=null},void 0===a&&o.setContentType(null),"setRequestHeader"in p&&N.forEach(o.toJSON(),function setRequestHeader(e,t){p.setRequestHeader(t,e)}),N.isUndefined(n.withCredentials)||(p.withCredentials=!!n.withCredentials),f&&"json"!==f&&(p.responseType=n.responseType),d&&([u,l]=progressEventReducer(d,!0),p.addEventListener("progress",u)),h&&p.upload&&([s,c]=progressEventReducer(h),p.upload.addEventListener("progress",s),p.upload.addEventListener("loadend",c)),(n.cancelToken||n.signal)&&(i=t=>{p&&(r(!t||t.type?new ne(null,e,p):t),p.abort(),p=null)},n.cancelToken&&n.cancelToken.subscribe(i),n.signal&&(n.signal.aborted?i():n.signal.addEventListener("abort",i)));const g=function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);g&&-1===Z.protocols.indexOf(g)?r(new M("Unsupported protocol "+g+":",M.ERR_BAD_REQUEST,e)):p.send(a||null)})};var composeSignals$1=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const onabort=function(e){if(!r){r=!0,unsubscribe();const t=e instanceof Error?e:this.reason;n.abort(t instanceof M?t:new ne(t instanceof Error?t.message:t))}};let a=t&&setTimeout(()=>{a=null,onabort(new M(`timeout of ${t}ms exceeded`,M.ETIMEDOUT))},t);const unsubscribe=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(onabort):e.removeEventListener("abort",onabort)}),e=null)};e.forEach(e=>e.addEventListener("abort",onabort));const{signal:o}=n;return o.unsubscribe=()=>N.asap(unsubscribe),o}};const streamChunk=function*(e,t){let r=e.byteLength;if(!t||r{const a=async function*(e,t){for await(const r of readStream(e))yield*streamChunk(r,t)}(e,t);let o,i=0,_onFinish=e=>{o||(o=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await a.next();if(t)return _onFinish(),void e.close();let o=n.byteLength;if(r){let e=i+=o;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw _onFinish(e),e}},cancel:e=>(_onFinish(e),a.return())},{highWaterMark:2})},{isFunction:se}=N,ue=(({Request:e,Response:t})=>({Request:e,Response:t}))(N.global),{ReadableStream:ce,TextEncoder:le}=N.global,test=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},factory=e=>{e=N.merge.call({skipUndefined:!0},ue,e);const{fetch:t,Request:r,Response:n}=e,a=t?se(t):"function"==typeof fetch,o=se(r),i=se(n);if(!a)return!1;const s=a&&se(ce),u=a&&("function"==typeof le?(c=new le,e=>c.encode(e)):async e=>new Uint8Array(await new r(e).arrayBuffer()));var c;const l=o&&s&&test(()=>{let e=!1;const t=new r(Z.origin,{body:new ce,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),f=i&&s&&test(()=>N.isReadableStream(new n("").body)),h={stream:f&&(e=>e.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!h[e]&&(h[e]=(t,r)=>{let n=t&&t[e];if(n)return n.call(t);throw new M(`Response type '${e}' is not supported`,M.ERR_NOT_SUPPORT,r)})});const resolveBodyLength=async(e,t)=>{const n=N.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(N.isBlob(e))return e.size;if(N.isSpecCompliantForm(e)){const t=new r(Z.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return N.isArrayBufferView(e)||N.isArrayBuffer(e)?e.byteLength:(N.isURLSearchParams(e)&&(e+=""),N.isString(e)?(await u(e)).byteLength:void 0)})(t):n};return async e=>{let{url:a,method:i,data:s,signal:u,cancelToken:c,timeout:d,onDownloadProgress:p,onUploadProgress:g,responseType:y,headers:b,withCredentials:v="same-origin",fetchOptions:m}=resolveConfig(e),_=t||fetch;y=y?(y+"").toLowerCase():"text";let w=composeSignals$1([u,c&&c.toAbortSignal()],d),A=null;const E=w&&w.unsubscribe&&(()=>{w.unsubscribe()});let O;try{if(g&&l&&"get"!==i&&"head"!==i&&0!==(O=await resolveBodyLength(b,s))){let e,t=new r(a,{method:"POST",body:s,duplex:"half"});if(N.isFormData(s)&&(e=t.headers.get("content-type"))&&b.setContentType(e),t.body){const[e,r]=progressEventDecorator(O,progressEventReducer(asyncDecorator(g)));s=trackStream(t.body,65536,e,r)}}N.isString(v)||(v=v?"include":"omit");const t=o&&"credentials"in r.prototype,u={...m,signal:w,method:i.toUpperCase(),headers:b.normalize().toJSON(),body:s,duplex:"half",credentials:t?v:void 0};A=o&&new r(a,u);let c=await(o?_(A,m):_(a,u));const d=f&&("stream"===y||"response"===y);if(f&&(p||d&&E)){const e={};["status","statusText","headers"].forEach(t=>{e[t]=c[t]});const t=N.toFiniteNumber(c.headers.get("content-length")),[r,a]=p&&progressEventDecorator(t,progressEventReducer(asyncDecorator(p),!0))||[];c=new n(trackStream(c.body,65536,r,()=>{a&&a(),E&&E()}),e)}y=y||"text";let S=await h[N.findKey(h,y)||"text"](c,e);return!d&&E&&E(),await new Promise((t,r)=>{settle(t,r,{data:S,headers:re.from(c.headers),status:c.status,statusText:c.statusText,config:e,request:A})})}catch(t){if(E&&E(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new M("Network Error",M.ERR_NETWORK,e,A,t&&t.response),{cause:t.cause||t});throw M.from(t,t&&t.code,e,A,t&&t.response)}}},fe=new Map,getFetch=e=>{let t=e&&e.env||{};const{fetch:r,Request:n,Response:a}=t,o=[n,a,r];let i,s,u=o.length,c=fe;for(;u--;)i=o[u],s=c.get(i),void 0===s&&c.set(i,s=u?new Map:factory(t)),c=s;return s};getFetch();const he={http:null,xhr:ie,fetch:{get:getFetch}};N.forEach(he,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});const renderReason=e=>`- ${e}`,isResolvedHandle=e=>N.isFunction(e)||null===e||!1===e;var de={getAdapter:function getAdapter(e,t){e=N.isArray(e)?e:[e];const{length:r}=e;let n,a;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=r?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified";throw new M("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return a},adapters:he};function throwIfCancellationRequested(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ne(null,e)}function dispatchRequest(e){throwIfCancellationRequested(e),e.headers=re.from(e.headers),e.data=transformData.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return de.getAdapter(e.adapter||Q.adapter,e)(e).then(function onAdapterResolution(t){return throwIfCancellationRequested(e),t.data=transformData.call(e,e.transformResponse,t),t.headers=re.from(t.headers),t},function onAdapterRejection(t){return isCancel(t)||(throwIfCancellationRequested(e),t&&t.response&&(t.response.data=transformData.call(e,e.transformResponse,t.response),t.response.headers=re.from(t.response.headers))),Promise.reject(t)})}const pe="1.13.5",ge={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ge[e]=function validator(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ye={};ge.transitional=function transitional(e,t,r){function formatMessage(e,t){return"[Axios v"+pe+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,n,a)=>{if(!1===e)throw new M(formatMessage(n," has been removed"+(t?" in "+t:"")),M.ERR_DEPRECATED);return t&&!ye[n]&&(ye[n]=!0,console.warn(formatMessage(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,n,a)}},ge.spelling=function spelling(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};var be={assertOptions:function assertOptions(e,t,r){if("object"!=typeof e)throw new M("options must be an object",M.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let a=n.length;for(;a-- >0;){const o=n[a],i=t[o];if(i){const t=e[o],r=void 0===t||i(t,o,e);if(!0!==r)throw new M("option "+o+" must be "+r,M.ERR_BAD_OPTION_VALUE);continue}if(!0!==r)throw new M("Unknown option "+o,M.ERR_BAD_OPTION)}},validators:ge};const ve=be.validators;class Axios{constructor(e){this.defaults=e||{},this.interceptors={request:new q,response:new q}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=mergeConfig(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:a}=t;void 0!==r&&be.assertOptions(r,{silentJSONParsing:ve.transitional(ve.boolean),forcedJSONParsing:ve.transitional(ve.boolean),clarifyTimeoutError:ve.transitional(ve.boolean),legacyInterceptorReqResOrdering:ve.transitional(ve.boolean)},!1),null!=n&&(N.isFunction(n)?t.paramsSerializer={serialize:n}:be.assertOptions(n,{encode:ve.function,serialize:ve.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),be.assertOptions(t,{baseUrl:ve.spelling("baseURL"),withXsrfToken:ve.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=a&&N.merge(a.common,a[t.method]);a&&N.forEach(["delete","get","head","post","put","patch","common"],e=>{delete a[e]}),t.headers=re.concat(o,a);const i=[];let s=!0;this.interceptors.request.forEach(function unshiftRequestInterceptors(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;s=s&&e.synchronous;const r=t.transitional||H;r&&r.legacyInterceptorReqResOrdering?i.unshift(e.fulfilled,e.rejected):i.push(e.fulfilled,e.rejected)});const u=[];let c;this.interceptors.response.forEach(function pushResponseInterceptors(e){u.push(e.fulfilled,e.rejected)});let l,f=0;if(!s){const e=[dispatchRequest.bind(this),void 0];for(e.unshift(...i),e.push(...u),l=e.length,c=Promise.resolve(t);f{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null}),this.promise.then=e=>{let t;const n=new Promise(e=>{r.subscribe(e),t=e}).then(e);return n.cancel=function reject(){r.unsubscribe(t)},n},e(function cancel(e,n,a){r.reason||(r.reason=new ne(e,n,a),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,abort=t=>{e.abort(t)};return this.subscribe(abort),e.signal.unsubscribe=()=>this.unsubscribe(abort),e.signal}static source(){let e;return{token:new CancelToken(function executor(t){e=t}),cancel:e}}}var _e=CancelToken;const we={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(we).forEach(([e,t])=>{we[t]=e});var Ae=we;const Ee=function createInstance(e){const t=new me(e),r=bind(me.prototype.request,t);return N.extend(r,me.prototype,t,{allOwnKeys:!0}),N.extend(r,t,null,{allOwnKeys:!0}),r.create=function create(t){return createInstance(mergeConfig(e,t))},r}(Q);Ee.Axios=me,Ee.CanceledError=ne,Ee.CancelToken=_e,Ee.isCancel=isCancel,Ee.VERSION=pe,Ee.toFormData=toFormData,Ee.AxiosError=M,Ee.Cancel=Ee.CanceledError,Ee.all=function all(e){return Promise.all(e)},Ee.spread=function spread(e){return function wrap(t){return e.apply(null,t)}},Ee.isAxiosError=function isAxiosError(e){return N.isObject(e)&&!0===e.isAxiosError},Ee.mergeConfig=mergeConfig,Ee.AxiosHeaders=re,Ee.formToJSON=e=>formDataToJSON(N.isHTMLForm(e)?new FormData(e):e),Ee.getAdapter=de.getAdapter,Ee.HttpStatusCode=Ae,Ee.default=Ee,e.exports=Ee}},r={};function __webpack_require__(e){var n=r[e];if(void 0!==n)return n.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(a.exports,a,a.exports,__webpack_require__),a.loaded=!0,a.exports}__webpack_require__.m=t,e=[],__webpack_require__.O=(t,r,n,a)=>{if(!r){var o=1/0;for(c=0;c=a)&&Object.keys(__webpack_require__.O).every(e=>__webpack_require__.O[e](r[s]))?r.splice(s--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,n,a]},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={847:0,252:0};__webpack_require__.O.j=t=>0===e[t];var webpackJsonpCallback=(t,r)=>{var n,a,[o,i,s]=r,u=0;if(o.some(t=>0!==e[t])){for(n in i)__webpack_require__.o(i,n)&&(__webpack_require__.m[n]=i[n]);if(s)var c=s(__webpack_require__)}for(t&&t(r);u__webpack_require__(988)),__webpack_require__.O(void 0,[252],()=>__webpack_require__(205));var n=__webpack_require__.O(void 0,[252],()=>__webpack_require__(812));n=__webpack_require__.O(n)})(); -//# sourceMappingURL=app.js.map \ No newline at end of file +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./resources/js/app.js" +/*!*****************************!*\ + !*** ./resources/js/app.js ***! + \*****************************/ +(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +eval("{function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n__webpack_require__(/*! ./bootstrap */ \"./resources/js/bootstrap.js\");\n\n//----------------------------------------------------------------------\n/*\r\nHelper function\r\n*/\nwindow.getMonday = function (date, dateStr) {\n if (dateStr) {\n date = new Date(dateStr);\n }\n var day = date.getDay(),\n diff = date.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\n return new Date(date.setDate(diff));\n};\nwindow.debug = function (txt) {\n try {\n console.log(txt);\n } catch (e) {}\n};\nwindow.buildFormData = function (formData, data, parentKey) {\n if (data && _typeof(data) === 'object' && !(data instanceof Date) && !(data instanceof File)) {\n Object.keys(data).forEach(function (key) {\n buildFormData(formData, data[key], parentKey ? \"\".concat(parentKey, \"[\").concat(key, \"]\") : key);\n });\n } else {\n var value = data == null ? '' : data;\n formData.append(parentKey, value);\n }\n};\nwindow.jsonToFormData = function (data) {\n var formData = new FormData();\n buildFormData(formData, data);\n return formData;\n};\nString.prototype.capitalize = function () {\n return this.charAt(0).toUpperCase() + this.slice(1);\n};\nwindow.arrayRemove = function (arr, value) {\n return arr.filter(function (ele) {\n return ele != value;\n });\n};\nwindow.getRandomInt = function () {\n var max = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.MAX_SAFE_INTEGER;\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n debug(max);\n debug(min);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nwindow.setImageFromLocal = function (input, targetImgCssSelector) {\n if (input.files && input.files[0]) {\n var reader = new FileReader();\n reader.onload = function (e) {\n $(targetImgCssSelector).attr('src', e.target.result);\n };\n reader.readAsDataURL(input.files[0]);\n }\n};\n__webpack_require__(/*! ./latinise */ \"./resources/js/latinise.js\");\n\n/*\r\ndisable back button\r\n */\n$(function () {\n if (window.history && window.history.pushState) {\n window.history.pushState('', null, window.location.href);\n $(window).on('popstate', function (event) {\n // alert('Back button was pressed.');\n //document.location.href = '#';\n window.history.pushState('', document.title, window.location.href);\n //console.log('mevagy');\n event.stopPropagation();\n });\n }\n});\n//----------------------------------------------------------------------\n/*\r\ninit custom radio buttons\r\n */\nwindow.initRadioButtons = function (Options) {\n var Opts = {\n onChange: function onChange(value, node) {}\n };\n $.extend(Opts, Options);\n $('.customRadioBtnGroup .active').each(function () {\n var activeValue = $(this).data('title');\n var target = $(this).data('toggle');\n $('input[name=' + target + ']').prop('value', activeValue);\n });\n $('.customRadioBtnGroup a').unbind('click');\n $('.customRadioBtnGroup a').bind('click', function () {\n var sel = $(this).data('title');\n var tog = $(this).data('toggle');\n $('input[name=' + tog + ']').prop('value', sel);\n $('a[data-toggle=\"' + tog + '\"]').not('[data-title=\"' + sel + '\"]').removeClass('active').addClass('notActive');\n $('a[data-toggle=\"' + tog + '\"][data-title=\"' + sel + '\"]').removeClass('notActive').addClass('active');\n Opts.onChange(sel, tog);\n });\n};\n\n//----------------------------------------------------------------------\n// Defaults\n//----------------------------------------------------------------------\n$.extend(true, $.fn.dataTable.defaults, {\n language: {\n url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'\n },\n lengthMenu: [[10, 25, 50, -1], ['10 sor', '25 sor', '50 sor', 'Összes']],\n buttons: {\n dom: {\n button: {\n className: 'fg-button ui-button dataTableHeaderButtons'\n }\n }\n },\n dom: '<\"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr\"lBfr>' + 't' + '<\"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br\"ip>'\n});\nInputmask.extendDefinitions({\n 'x': {\n validator: \"[\\.,-áéíóöőúàèìòùüűÁÉÍÓÖŐÚÀÈÌÒÙÜŰA-Za-z0-9 ]\"\n //cardinality: 1\n }\n});\n\n//----------------------------------------------------------------------\nToast.enableTimers(false);\n$.fn.select2.defaults.set('language', 'jp');\nwindow.select2CreateTag = function (params) {\n var term = $.trim(params.term);\n var count = 0;\n var existsVar = false;\n //check if there is any option already\n if ($('#keywords option').length > 0) {\n $('#keywords option').each(function () {\n if ($(this).text().toUpperCase() == term.toUpperCase()) {\n existsVar = true;\n return false;\n } else {\n existsVar = false;\n }\n });\n if (existsVar) {\n return null;\n }\n return {\n id: params.term,\n text: params.term,\n newTag: true\n };\n }\n //since select has 0 options, add new without comparing\n else {\n return {\n id: params.term,\n text: params.term,\n newTag: true\n };\n }\n};\nwindow.ajaxErrorHandler = function (xhr, ajaxOptions, thrownError) {\n debug(this);\n console.error(xhr);\n console.error(ajaxOptions);\n console.error(thrownError);\n\n // Biztonsági ellenőrzés – ha nincs responseJSON (pl. HTML válasz)\n if (!xhr.responseJSON) {\n ajaxErrorFieldHandler({\n 'detail': 'Váratlan szerverhiba. Kérjük próbálja újra később.'\n });\n return;\n }\n\n // Validációs hibák (422) – ezeket részletesen megjelenítjük\n if (xhr.responseJSON.errors) {\n console.error(\"d2---------------\");\n if (\"jsonapi\" in xhr.responseJSON) {\n ajaxErrorFieldHandlerJsonAPI(xhr.responseJSON.errors);\n } else {\n ajaxErrorFieldHandler(xhr.responseJSON.errors);\n }\n }\n // Egyedi referencia kódos hiba (500, stb.)\n else if (xhr.responseJSON.error_ref) {\n console.error(\"error_ref: \" + xhr.responseJSON.error_ref);\n Toast.create({\n title: \"Szerverhiba\",\n message: \"Váratlan hiba történt a feldolgozás során.
\" + \"Hivatkozási kód: \" + xhr.responseJSON.error_ref + \"
\" + \"Kérjük, ezt a kódot adja meg a hibajelentésben.\",\n status: TOAST_STATUS.DANGER,\n timeout: 0\n });\n }\n // 404\n else if (xhr.status == 404) {\n console.error(\"d3---------------\");\n ajaxErrorFieldHandler({\n 'detail': 'Nincs ilyen elem.'\n });\n }\n // Egyéb ismeretlen hiba\n else {\n console.error(\"d4---------------\");\n ajaxErrorFieldHandler({\n 'detail': 'Általános hiba.'\n });\n }\n};\nwindow.ajaxErrorFieldHandlerJsonAPI = function (errors, container) {\n console.error(\"d6---------------\");\n var toastBodyHtml = '';\n var toastTitle = 'Hiba';\n console.error(errors);\n $.each(errors, function (index, value) {\n console.error(value);\n toastTitle = 'Hiba';\n toastBodyHtml = '';\n if (\"title\" in value) {\n toastTitle = value.title;\n }\n if (\"detail\" in value) {\n toastBodyHtml += '
' + value.detail + '
';\n }\n Toast.create({\n title: toastTitle,\n message: toastBodyHtml,\n status: TOAST_STATUS.DANGER,\n // SUCCESS (zöld)\n timeout: 10000\n });\n });\n};\nwindow.ajaxErrorFieldHandler = function (errors, container) {\n console.error(\"d5---------------\");\n console.error(errors);\n var toastBodyHtml = '';\n $.each(errors, function (index, value) {\n toastBodyHtml += '
' + value + '
';\n });\n Toast.create({\n title: \"Hiba!\",\n message: toastBodyHtml,\n status: TOAST_STATUS.DANGER,\n // SUCCESS (zöld)\n timeout: 10000\n });\n};\n$.ajaxSetup({\n error: ajaxErrorHandler\n});\n/*\r\ndatepicker afterShow function\r\n */\n$.datepicker._updateDatepicker_original = $.datepicker._updateDatepicker;\n$.datepicker._updateDatepicker = function (inst) {\n $.datepicker._updateDatepicker_original(inst);\n var afterShow = this._get(inst, 'afterShow');\n if (afterShow) afterShow.apply(inst.input ? inst.input[0] : null); // trigger custom callback\n};\n\n//----------------------------------------------------------------------\nwindow.EmegrendelesDefaults = {\n datatableActionButtonClickCallBack: function datatableActionButtonClickCallBack() {},\n datatableAddRowTrashButton: function datatableAddRowTrashButton(id, args) {\n return '';\n },\n datatableAddRowEditButton: function datatableAddRowEditButton(args) {\n var title = 'Adatok';\n if (typeof args[1].title !== \"undefined\") {\n title = args[1].title;\n }\n return '';\n },\n datatableAddRowViewButton: function datatableAddRowViewButton(id, args) {\n return '';\n },\n datatableAddRowAttachmentButton: function datatableAddRowAttachmentButton(id, args) {\n return '';\n },\n datatableCustomHeadButtonClickCallBack: function datatableCustomHeadButtonClickCallBack(args) {\n console.log(args);\n },\n afterLoadMainContent: function afterLoadMainContent(args) {\n console.log(args);\n }\n};\nif (typeof DataModel === 'undefined') {\n var _DataModel2 = /*#__PURE__*/function () {\n /*\r\n * Constructor\r\n */\n function _DataModel2(data, options) {\n _classCallCheck(this, _DataModel2);\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n _defineProperty(this, \"Opts\", {\n active: false\n });\n $.extend(this, data);\n $.extend(this.Opts, options);\n }\n return _createClass(_DataModel2, [{\n key: \"setData\",\n value: function setData(data) {\n $.extend(this, data);\n }\n }, {\n key: \"getData\",\n value: function getData(index) {\n if (index) {\n return this[index];\n } else {\n return this;\n }\n }\n }]);\n }();\n ;\n window.DataModel = _DataModel2;\n}\nwindow.Emegrendeles = function (options) {\n /*\r\n * Variables accessible\r\n * in the class\r\n */\n var Opts = {\n myVar: 'Emegrendeles value',\n datatableAddRowTrashButton: {},\n datatableAddRowEditButton: {},\n datatableActionButtonClickCallBack: {},\n datatableRowActionButtonClickCallBack: {},\n datatableCustomHeadButtonClickCallBack: {},\n afterLoadMainContent: {},\n Url: {}\n };\n var PublicVar = {};\n var PublicVar2 = {\n 'asd': '21'\n };\n var ApiToken = null;\n var root = this;\n /*\r\n * Constructor\r\n */\n this.construct = function (options) {\n //$.extend(Opts, options);\n console.log(this.constructor.name + ' constructor called');\n $.extend(Opts, window.EmegrendelesDefaults, options);\n };\n this.setOpts = function (options) {\n $.extend(Opts, options);\n };\n this.getOpts = function () {\n return Opts;\n };\n this.datatableAddRowTrashButton = function () {\n return Opts.datatableAddRowTrashButton(arguments);\n };\n this.datatableAddRowEditButton = function () {\n return Opts.datatableAddRowEditButton(arguments);\n };\n this.datatableAddRowViewButton = function () {\n return Opts.datatableAddRowViewButton(arguments);\n };\n this.datatableAddRowAttachmentButton = function () {\n return Opts.datatableAddRowAttachmentButton(arguments);\n };\n this.afterLoadMainContent = function () {\n return Opts.afterLoadMainContent(arguments);\n };\n this.datatableActionButtonClickCallBack = function () {\n return Opts.datatableActionButtonClickCallBack(arguments);\n };\n this.datatableRowActionButtonClickCallBack = function () {\n return Opts.datatableRowActionButtonClickCallBack(arguments);\n };\n this.datatableAddRowAction = function (CSSSelector) {\n if (!CSSSelector) {\n return;\n }\n $(CSSSelector + ' tr button').off('click');\n $(CSSSelector + ' tr button').on('click', APP.datatableRowActionButtonClickCallBack);\n };\n this.datatableCustomHeadButtonClickCallBack = function () {\n return Opts.datatableCustomHeadButtonClickCallBack(arguments);\n };\n\n /*\r\n * Public method\r\n * Can be called outside class\r\n */\n this.myPublicMethod = function () {\n console.log(Opts);\n myPrivateMethod();\n };\n this.setApiToken = function (token) {\n root.ApiToken = token;\n };\n this.getApiToken = function () {\n return root.ApiToken;\n };\n\n /*\r\n * Private method\r\n * Can only be called inside class\r\n */\n var myPrivateMethod = function myPrivateMethod() {\n console.log('accessed private method');\n };\n\n /**\r\n * @param {string} itemName\r\n */\n this.setActiveNavBarItem = function (itemName) {\n $('.speedButtonNavBar li').removeClass('selected');\n $('.speedButtonNavBar li.iconholderModul' + itemName).addClass('selected');\n return this;\n };\n this.getActiveNavBarItem = function () {\n return $('.speedButtonNavBar .selected').find('a').data('name');\n };\n this.clearArchiveModuleDataTableState = function () {\n if (APP.OrderArchiveModule != undefined) {\n console.log('APP.OrderArchiveModule');\n console.log('clear');\n APP.OrderArchiveModule.dataTable.state.clear();\n }\n };\n this.navBarItemBeforepost = function () {\n console.log('navBarItemBeforepost');\n if (root.getActiveNavBarItem() !== 'activeOrder') {\n root.clearArchiveModuleDataTableState();\n }\n ;\n };\n this.navBarItemAfterPost = function () {};\n this.initNavBar = function () {\n $(\".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])\").bind('click', function (event) {\n console.log($(this).data().name);\n if ($(this).data('big-icon')) {\n $(\".speedButtonNavBar\").removeClass('smallicons');\n } else {\n $(\".speedButtonNavBar\").addClass('smallicons');\n }\n root.setActiveNavBarItem($(this).data().name);\n event.preventDefault();\n });\n $(\".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])\").ajaxlink({\n target: $('.mainContent'),\n ajaxtype: 'GET',\n afterpost: root.navBarItemAfterPost,\n beforepost: root.navBarItemBeforepost\n });\n $(\".speedButtonNavBar a[data-target=_blank], .speedButtonNavBar a[data-no-ajax]\").bind('click', function () {\n root.clearArchiveModuleDataTableState();\n });\n };\n this.loadMainContent = function (url, data, callBack) {\n if (!callBack) {\n callBack = root.afterLoadMainContent;\n } else {\n console.log('van callback');\n console.log(callBack);\n }\n $('.mainContent').load(url, data, callBack);\n };\n /*\r\n * Pass options when class instantiated\r\n */\n this.construct(options);\n};\n\n/*\r\n$.fn.ajaxlink = function(options){\r\n\r\n};\r\nimport './ajaxLink';\r\n\r\n* */\nwindow.APP = {};\n$(document).ready(function () {\n console.log('ready doc');\n //$('.datepicker').datepicker();\n Mustache.tags = ['[[', ']]'];\n // = [ '<%', '%>' ];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQUEsbUJBQU8sQ0FBQyxnREFBYSxDQUFDOztBQUd0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBQyxNQUFNLENBQUNDLFNBQVMsR0FBQyxVQUFTQyxJQUFJLEVBQUNDLE9BQU8sRUFBRTtFQUNwQyxJQUFHQSxPQUFPLEVBQUM7SUFDUEQsSUFBSSxHQUFHLElBQUlFLElBQUksQ0FBQ0QsT0FBTyxDQUFDO0VBQzVCO0VBRUEsSUFBSUUsR0FBRyxHQUFHSCxJQUFJLENBQUNJLE1BQU0sQ0FBQyxDQUFDO0lBQ25CQyxJQUFJLEdBQUdMLElBQUksQ0FBQ00sT0FBTyxDQUFDLENBQUMsR0FBR0gsR0FBRyxJQUFJQSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDckQsT0FBTyxJQUFJRCxJQUFJLENBQUNGLElBQUksQ0FBQ08sT0FBTyxDQUFDRixJQUFJLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBQ0RQLE1BQU0sQ0FBQ1UsS0FBSyxHQUFDLFVBQVVDLEdBQUcsRUFDMUI7RUFDSSxJQUFJO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDRixHQUFHLENBQUM7RUFDcEIsQ0FBQyxDQUNELE9BQU1HLENBQUMsRUFBQyxDQUFDO0FBQ2IsQ0FBQztBQUVEZCxNQUFNLENBQUNlLGFBQWEsR0FBQyxVQUFTQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsU0FBUyxFQUFFO0VBQ3JELElBQUlELElBQUksSUFBSUUsT0FBQSxDQUFPRixJQUFJLE1BQUssUUFBUSxJQUFJLEVBQUVBLElBQUksWUFBWWIsSUFBSSxDQUFDLElBQUksRUFBRWEsSUFBSSxZQUFZRyxJQUFJLENBQUMsRUFBRTtJQUN4RkMsTUFBTSxDQUFDQyxJQUFJLENBQUNMLElBQUksQ0FBQyxDQUFDTSxPQUFPLENBQUMsVUFBQUMsR0FBRyxFQUFJO01BQzdCVCxhQUFhLENBQUNDLFFBQVEsRUFBRUMsSUFBSSxDQUFDTyxHQUFHLENBQUMsRUFBRU4sU0FBUyxNQUFBTyxNQUFBLENBQU1QLFNBQVMsT0FBQU8sTUFBQSxDQUFJRCxHQUFHLFNBQU1BLEdBQUcsQ0FBQztJQUNoRixDQUFDLENBQUM7RUFDTixDQUFDLE1BQU07SUFDSCxJQUFNRSxLQUFLLEdBQUdULElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHQSxJQUFJO0lBRXRDRCxRQUFRLENBQUNXLE1BQU0sQ0FBQ1QsU0FBUyxFQUFFUSxLQUFLLENBQUM7RUFDckM7QUFDSixDQUFDO0FBRUQxQixNQUFNLENBQUM0QixjQUFjLEdBQUMsVUFBU1gsSUFBSSxFQUFFO0VBQ2pDLElBQU1ELFFBQVEsR0FBRyxJQUFJYSxRQUFRLENBQUMsQ0FBQztFQUUvQmQsYUFBYSxDQUFDQyxRQUFRLEVBQUVDLElBQUksQ0FBQztFQUU3QixPQUFPRCxRQUFRO0FBQ25CLENBQUM7QUFFRGMsTUFBTSxDQUFDQyxTQUFTLENBQUNDLFVBQVUsR0FBRyxZQUFXO0VBQ3JDLE9BQU8sSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRG5DLE1BQU0sQ0FBQ29DLFdBQVcsR0FBQyxVQUFTQyxHQUFHLEVBQUVYLEtBQUssRUFBRTtFQUVwQyxPQUFPVyxHQUFHLENBQUNDLE1BQU0sQ0FBQyxVQUFTQyxHQUFHLEVBQUM7SUFDM0IsT0FBT0EsR0FBRyxJQUFJYixLQUFLO0VBQ3ZCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRDFCLE1BQU0sQ0FBQ3dDLFlBQVksR0FBQyxZQUE2QztFQUFBLElBQW5DQyxHQUFHLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFDRyxNQUFNLENBQUNDLGdCQUFnQjtFQUFBLElBQUNDLEdBQUcsR0FBQUwsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUMsQ0FBQztFQUMzRGhDLEtBQUssQ0FBQytCLEdBQUcsQ0FBQztFQUNWL0IsS0FBSyxDQUFDcUMsR0FBRyxDQUFDO0VBQ1YsT0FBT0MsSUFBSSxDQUFDQyxLQUFLLENBQUNELElBQUksQ0FBQ0UsTUFBTSxDQUFDLENBQUMsSUFBSVQsR0FBRyxHQUFHTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBR0EsR0FBRztBQUM1RCxDQUFDO0FBRUQvQyxNQUFNLENBQUNtRCxpQkFBaUIsR0FBQyxVQUFTQyxLQUFLLEVBQUNDLG9CQUFvQixFQUFFO0VBQzFELElBQUlELEtBQUssQ0FBQ0UsS0FBSyxJQUFJRixLQUFLLENBQUNFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUMvQixJQUFJQyxNQUFNLEdBQUcsSUFBSUMsVUFBVSxDQUFDLENBQUM7SUFDN0JELE1BQU0sQ0FBQ0UsTUFBTSxHQUFHLFVBQVUzQyxDQUFDLEVBQUU7TUFDekI0QyxDQUFDLENBQUNMLG9CQUFvQixDQUFDLENBQUNNLElBQUksQ0FBQyxLQUFLLEVBQUU3QyxDQUFDLENBQUM4QyxNQUFNLENBQUNDLE1BQU0sQ0FBQztJQUN4RCxDQUFDO0lBQ0ROLE1BQU0sQ0FBQ08sYUFBYSxDQUFDVixLQUFLLENBQUNFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUN4QztBQUNKLENBQUM7QUFFRHZELG1CQUFPLENBQUMsOENBQVksQ0FBQzs7QUFFckI7QUFDQTtBQUNBO0FBQ0EyRCxDQUFDLENBQUMsWUFBVztFQUNULElBQUkxRCxNQUFNLENBQUMrRCxPQUFPLElBQUkvRCxNQUFNLENBQUMrRCxPQUFPLENBQUNDLFNBQVMsRUFBRTtJQUM1Q2hFLE1BQU0sQ0FBQytELE9BQU8sQ0FBQ0MsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUVoRSxNQUFNLENBQUNpRSxRQUFRLENBQUNDLElBQUksQ0FBQztJQUN4RFIsQ0FBQyxDQUFDMUQsTUFBTSxDQUFDLENBQUNtRSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVNDLEtBQUssRUFBRTtNQUNyQztNQUNBO01BQ0FwRSxNQUFNLENBQUMrRCxPQUFPLENBQUNDLFNBQVMsQ0FBQyxFQUFFLEVBQUVLLFFBQVEsQ0FBQ0MsS0FBSyxFQUFFdEUsTUFBTSxDQUFDaUUsUUFBUSxDQUFDQyxJQUFJLENBQUM7TUFDbEU7TUFDQUUsS0FBSyxDQUFDRyxlQUFlLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7RUFDTjtBQUNKLENBQUMsQ0FBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0F2RSxNQUFNLENBQUN3RSxnQkFBZ0IsR0FBQyxVQUFVQyxPQUFPLEVBQUM7RUFDdEMsSUFBSUMsSUFBSSxHQUFHO0lBQ1BDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFZakQsS0FBSyxFQUFDa0QsSUFBSSxFQUFFLENBQ2hDO0VBQ0osQ0FBQztFQUVEbEIsQ0FBQyxDQUFDbUIsTUFBTSxDQUFDSCxJQUFJLEVBQUVELE9BQU8sQ0FBQztFQUV2QmYsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLENBQUNvQixJQUFJLENBQUMsWUFBVztJQUM5QyxJQUFJQyxXQUFXLEdBQUdyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLElBQUkyQyxNQUFNLEdBQUdGLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkN5QyxDQUFDLENBQUMsYUFBYSxHQUFDRSxNQUFNLEdBQUMsR0FBRyxDQUFDLENBQUNvQixJQUFJLENBQUMsT0FBTyxFQUFFRCxXQUFXLENBQUM7RUFDMUQsQ0FBQyxDQUFDO0VBRUZyQixDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQ3VCLE1BQU0sQ0FBQyxPQUFPLENBQUM7RUFDM0N2QixDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQ3dCLElBQUksQ0FBQyxPQUFPLEVBQUMsWUFBVTtJQUMvQyxJQUFJQyxHQUFHLEdBQUd6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQy9CLElBQUltRSxHQUFHLEdBQUcxQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDeUMsQ0FBQyxDQUFDLGFBQWEsR0FBQzBCLEdBQUcsR0FBQyxHQUFHLENBQUMsQ0FBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRUcsR0FBRyxDQUFDO0lBQzNDekIsQ0FBQyxDQUFDLGlCQUFpQixHQUFDMEIsR0FBRyxHQUFDLElBQUksQ0FBQyxDQUFDQyxHQUFHLENBQUMsZUFBZSxHQUFDRixHQUFHLEdBQUMsSUFBSSxDQUFDLENBQUNHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUN2RzdCLENBQUMsQ0FBQyxpQkFBaUIsR0FBQzBCLEdBQUcsR0FBQyxpQkFBaUIsR0FBQ0QsR0FBRyxHQUFDLElBQUksQ0FBQyxDQUFDRyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0ZiLElBQUksQ0FBQ0MsUUFBUSxDQUFDUSxHQUFHLEVBQUNDLEdBQUcsQ0FBQztFQUMxQixDQUFDLENBQUM7QUFDTixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBMUIsQ0FBQyxDQUFDbUIsTUFBTSxDQUFFLElBQUksRUFBRW5CLENBQUMsQ0FBQzhCLEVBQUUsQ0FBQ0MsU0FBUyxDQUFDQyxRQUFRLEVBQUU7RUFDckNDLFFBQVEsRUFBRTtJQUNOQyxHQUFHLEVBQUU7RUFDVCxDQUFDO0VBQ0RDLFVBQVUsRUFBRSxDQUNSLENBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUUsRUFDbEIsQ0FBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUUsQ0FDN0M7RUFDREMsT0FBTyxFQUFDO0lBQ0pDLEdBQUcsRUFBQztNQUNBQyxNQUFNLEVBQUM7UUFDSEMsU0FBUyxFQUFDO01BQ2Q7SUFDSjtFQUNKLENBQUM7RUFDREYsR0FBRyxFQUFFLDZGQUE2RixHQUM5RixHQUFHLEdBQ0g7QUFFUixDQUFFLENBQUM7QUFDSEcsU0FBUyxDQUFDQyxpQkFBaUIsQ0FBQztFQUN4QixHQUFHLEVBQUU7SUFDREMsU0FBUyxFQUFFO0lBQ1g7RUFDSjtBQUNKLENBQUMsQ0FBQzs7QUFHRjtBQUNBQyxLQUFLLENBQUNDLFlBQVksQ0FBQyxLQUFLLENBQUM7QUFDekI1QyxDQUFDLENBQUM4QixFQUFFLENBQUNlLE9BQU8sQ0FBQ2IsUUFBUSxDQUFDYyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztBQUMzQ3hHLE1BQU0sQ0FBQ3lHLGdCQUFnQixHQUFDLFVBQVVDLE1BQU0sRUFBQztFQUNyQyxJQUFJQyxJQUFJLEdBQUdqRCxDQUFDLENBQUNrRCxJQUFJLENBQUNGLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO0VBQzlCLElBQUlFLEtBQUssR0FBRyxDQUFDO0VBQ2IsSUFBSUMsU0FBUyxHQUFHLEtBQUs7RUFDckI7RUFDQSxJQUFHcEQsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUNmLE1BQU0sR0FBRyxDQUFDLEVBQUM7SUFDaENlLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDb0IsSUFBSSxDQUFDLFlBQVU7TUFDakMsSUFBSXBCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ3FELElBQUksQ0FBQyxDQUFDLENBQUM3RSxXQUFXLENBQUMsQ0FBQyxJQUFJeUUsSUFBSSxDQUFDekUsV0FBVyxDQUFDLENBQUMsRUFBRTtRQUNwRDRFLFNBQVMsR0FBRyxJQUFJO1FBQ2hCLE9BQU8sS0FBSztNQUNoQixDQUFDLE1BQUk7UUFDREEsU0FBUyxHQUFHLEtBQUs7TUFDckI7SUFDSixDQUFDLENBQUM7SUFDRixJQUFHQSxTQUFTLEVBQUM7TUFDVCxPQUFPLElBQUk7SUFDZjtJQUNBLE9BQU87TUFDSEUsRUFBRSxFQUFFTixNQUFNLENBQUNDLElBQUk7TUFDZkksSUFBSSxFQUFFTCxNQUFNLENBQUNDLElBQUk7TUFDakJNLE1BQU0sRUFBRTtJQUNaLENBQUM7RUFDTDtFQUNBO0VBQUEsS0FDSTtJQUNBLE9BQU87TUFDSEQsRUFBRSxFQUFFTixNQUFNLENBQUNDLElBQUk7TUFDZkksSUFBSSxFQUFFTCxNQUFNLENBQUNDLElBQUk7TUFDakJNLE1BQU0sRUFBRTtJQUNaLENBQUM7RUFDTDtBQUVKLENBQUM7QUFFRGpILE1BQU0sQ0FBQ2tILGdCQUFnQixHQUFFLFVBQVVDLEdBQUcsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUM7RUFDN0QzRyxLQUFLLENBQUMsSUFBSSxDQUFDO0VBQ1hFLE9BQU8sQ0FBQzBHLEtBQUssQ0FBQ0gsR0FBRyxDQUFDO0VBQ2xCdkcsT0FBTyxDQUFDMEcsS0FBSyxDQUFDRixXQUFXLENBQUM7RUFDMUJ4RyxPQUFPLENBQUMwRyxLQUFLLENBQUNELFdBQVcsQ0FBQzs7RUFFMUI7RUFDQSxJQUFJLENBQUNGLEdBQUcsQ0FBQ0ksWUFBWSxFQUFFO0lBQ25CQyxxQkFBcUIsQ0FBQztNQUFDLFFBQVEsRUFBRTtJQUFvRCxDQUFDLENBQUM7SUFDdkY7RUFDSjs7RUFFQTtFQUNBLElBQUlMLEdBQUcsQ0FBQ0ksWUFBWSxDQUFDRSxNQUFNLEVBQUU7SUFDekI3RyxPQUFPLENBQUMwRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsSUFBRyxTQUFTLElBQUlILEdBQUcsQ0FBQ0ksWUFBWSxFQUFDO01BQzdCRyw0QkFBNEIsQ0FBQ1AsR0FBRyxDQUFDSSxZQUFZLENBQUNFLE1BQU0sQ0FBQztJQUN6RCxDQUFDLE1BQUk7TUFDREQscUJBQXFCLENBQUNMLEdBQUcsQ0FBQ0ksWUFBWSxDQUFDRSxNQUFNLENBQUM7SUFDbEQ7RUFDSjtFQUNBO0VBQUEsS0FDSyxJQUFJTixHQUFHLENBQUNJLFlBQVksQ0FBQ0ksU0FBUyxFQUFFO0lBQ2pDL0csT0FBTyxDQUFDMEcsS0FBSyxDQUFDLGFBQWEsR0FBR0gsR0FBRyxDQUFDSSxZQUFZLENBQUNJLFNBQVMsQ0FBQztJQUN6RHRCLEtBQUssQ0FBQ3VCLE1BQU0sQ0FBQztNQUNUdEQsS0FBSyxFQUFFLGFBQWE7TUFDcEJ1RCxPQUFPLEVBQUUsZ0RBQWdELEdBQ2hELGtDQUFrQyxHQUFHVixHQUFHLENBQUNJLFlBQVksQ0FBQ0ksU0FBUyxHQUFHLHVCQUF1QixHQUN6RixnRUFBZ0U7TUFDekVHLE1BQU0sRUFBRUMsWUFBWSxDQUFDQyxNQUFNO01BQzNCQyxPQUFPLEVBQUU7SUFDYixDQUFDLENBQUM7RUFDTjtFQUNBO0VBQUEsS0FDSyxJQUFJZCxHQUFHLENBQUNXLE1BQU0sSUFBSSxHQUFHLEVBQUU7SUFDeEJsSCxPQUFPLENBQUMwRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7SUFDbENFLHFCQUFxQixDQUFDO01BQUMsUUFBUSxFQUFDO0lBQW1CLENBQUMsQ0FBQztFQUN6RDtFQUNBO0VBQUEsS0FDSztJQUNENUcsT0FBTyxDQUFDMEcsS0FBSyxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDRSxxQkFBcUIsQ0FBQztNQUFDLFFBQVEsRUFBQztJQUFpQixDQUFDLENBQUM7RUFDdkQ7QUFDSixDQUFDO0FBQ0R4SCxNQUFNLENBQUMwSCw0QkFBNEIsR0FBRSxVQUFVRCxNQUFNLEVBQUVTLFNBQVMsRUFBRTtFQUM5RHRILE9BQU8sQ0FBQzBHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztFQUNsQyxJQUFJYSxhQUFhLEdBQUcsRUFBRTtFQUN0QixJQUFJQyxVQUFVLEdBQUcsTUFBTTtFQUN2QnhILE9BQU8sQ0FBQzBHLEtBQUssQ0FBQ0csTUFBTSxDQUFDO0VBQ3JCL0QsQ0FBQyxDQUFDb0IsSUFBSSxDQUFDMkMsTUFBTSxFQUFFLFVBQVVZLEtBQUssRUFBRTNHLEtBQUssRUFBRTtJQUNuQ2QsT0FBTyxDQUFDMEcsS0FBSyxDQUFDNUYsS0FBSyxDQUFDO0lBQ3BCMEcsVUFBVSxHQUFHLE1BQU07SUFDbkJELGFBQWEsR0FBRyxFQUFFO0lBQ2xCLElBQUcsT0FBTyxJQUFJekcsS0FBSyxFQUFDO01BQ2hCMEcsVUFBVSxHQUFDMUcsS0FBSyxDQUFDNEMsS0FBSztJQUMxQjtJQUNBLElBQUcsUUFBUSxJQUFJNUMsS0FBSyxFQUFDO01BQ2pCeUcsYUFBYSxJQUFJLE9BQU8sR0FBR3pHLEtBQUssQ0FBQzRHLE1BQU0sR0FBRyxPQUFPO0lBQ3JEO0lBQ0FqQyxLQUFLLENBQUN1QixNQUFNLENBQUM7TUFDVHRELEtBQUssRUFBRThELFVBQVU7TUFDakJQLE9BQU8sRUFBRU0sYUFBYTtNQUN0QkwsTUFBTSxFQUFFQyxZQUFZLENBQUNDLE1BQU07TUFBSTtNQUMvQkMsT0FBTyxFQUFFO0lBQ2IsQ0FBQyxDQUFDO0VBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNEakksTUFBTSxDQUFDd0gscUJBQXFCLEdBQUcsVUFBVUMsTUFBTSxFQUFFUyxTQUFTLEVBQUU7RUFDeER0SCxPQUFPLENBQUMwRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7RUFDbEMxRyxPQUFPLENBQUMwRyxLQUFLLENBQUNHLE1BQU0sQ0FBQztFQUNyQixJQUFJVSxhQUFhLEdBQUcsRUFBRTtFQUN0QnpFLENBQUMsQ0FBQ29CLElBQUksQ0FBQzJDLE1BQU0sRUFBRSxVQUFVWSxLQUFLLEVBQUUzRyxLQUFLLEVBQUU7SUFDbkN5RyxhQUFhLElBQUksT0FBTyxHQUFHekcsS0FBSyxHQUFHLE9BQU87RUFDOUMsQ0FBQyxDQUFDO0VBRUYyRSxLQUFLLENBQUN1QixNQUFNLENBQUM7SUFDVHRELEtBQUssRUFBRSxPQUFPO0lBQ2R1RCxPQUFPLEVBQUVNLGFBQWE7SUFDdEJMLE1BQU0sRUFBRUMsWUFBWSxDQUFDQyxNQUFNO0lBQUk7SUFDL0JDLE9BQU8sRUFBRTtFQUNiLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRHZFLENBQUMsQ0FBQzZFLFNBQVMsQ0FBQztFQUNSakIsS0FBSyxFQUFDSjtBQUNWLENBQUMsQ0FBQztBQUNGO0FBQ0E7QUFDQTtBQUNBeEQsQ0FBQyxDQUFDOEUsVUFBVSxDQUFDQywwQkFBMEIsR0FBRy9FLENBQUMsQ0FBQzhFLFVBQVUsQ0FBQ0UsaUJBQWlCO0FBQ3hFaEYsQ0FBQyxDQUFDOEUsVUFBVSxDQUFDRSxpQkFBaUIsR0FBRyxVQUFTQyxJQUFJLEVBQUU7RUFDNUNqRixDQUFDLENBQUM4RSxVQUFVLENBQUNDLDBCQUEwQixDQUFDRSxJQUFJLENBQUM7RUFDN0MsSUFBSUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDRixJQUFJLEVBQUUsV0FBVyxDQUFDO0VBQzVDLElBQUlDLFNBQVMsRUFDVEEsU0FBUyxDQUFDRSxLQUFLLENBQUVILElBQUksQ0FBQ3ZGLEtBQUssR0FBR3VGLElBQUksQ0FBQ3ZGLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFLLENBQUMsQ0FBQyxDQUFFO0FBQy9ELENBQUM7O0FBR0Q7QUFDQXBELE1BQU0sQ0FBQytJLG9CQUFvQixHQUFDO0VBQ3hCQyxrQ0FBa0MsRUFBRSxTQUFwQ0Esa0NBQWtDQSxDQUFBLEVBQWMsQ0FBQyxDQUFDO0VBQ2xEQywwQkFBMEIsRUFBRSxTQUE1QkEsMEJBQTBCQSxDQUFZakMsRUFBRSxFQUFDa0MsSUFBSSxFQUFFO0lBQzNDLE9BQU8seUpBQXlKLEdBQzVKLG9DQUFvQyxHQUNwQyxXQUFXO0VBRW5CLENBQUM7RUFDREMseUJBQXlCLEVBQUUsU0FBM0JBLHlCQUF5QkEsQ0FBWUQsSUFBSSxFQUFFO0lBQ3ZDLElBQUk1RSxLQUFLLEdBQUMsUUFBUTtJQUNsQixJQUFHLE9BQU80RSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM1RSxLQUFLLEtBQUcsV0FBVyxFQUFDO01BQ2xDQSxLQUFLLEdBQUM0RSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM1RSxLQUFLO0lBQ3ZCO0lBQ0EsT0FBTyw0SUFBNEksR0FBQ0EsS0FBSyxHQUFDLElBQUksR0FDMUoseUNBQXlDLEdBQ3pDLFdBQVc7RUFFbkIsQ0FBQztFQUNEOEUseUJBQXlCLEVBQUUsU0FBM0JBLHlCQUF5QkEsQ0FBWXBDLEVBQUUsRUFBQ2tDLElBQUksRUFBRTtJQUMxQyxPQUFPLHVMQUF1TCxHQUMxTCxrQ0FBa0MsR0FDbEMsV0FBVztFQUVuQixDQUFDO0VBQ0RHLCtCQUErQixFQUFFLFNBQWpDQSwrQkFBK0JBLENBQVlyQyxFQUFFLEVBQUNrQyxJQUFJLEVBQUU7SUFDaEQsT0FBTywrTEFBK0wsR0FDbE0sd0NBQXdDLEdBQ3hDLFdBQVc7RUFFbkIsQ0FBQztFQUNESSxzQ0FBc0MsRUFBQyxTQUF2Q0Esc0NBQXNDQSxDQUFXSixJQUFJLEVBQUU7SUFDbkR0SSxPQUFPLENBQUNDLEdBQUcsQ0FBQ3FJLElBQUksQ0FBQztFQUNyQixDQUFDO0VBRURLLG9CQUFvQixFQUFDLFNBQXJCQSxvQkFBb0JBLENBQVdMLElBQUksRUFBRTtJQUNqQ3RJLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDcUksSUFBSSxDQUFDO0VBQ3JCO0FBR0osQ0FBQztBQUVELElBQUcsT0FBT00sU0FBUyxLQUFHLFdBQVcsRUFBQztFQUFBLElBQ3hCQSxXQUFTO0lBU1g7QUFDUjtBQUNBO0lBQ1EsU0FBQUMsWUFBYXhJLElBQUksRUFBQ3lJLE9BQU8sRUFBRTtNQUFBQyxlQUFBLE9BQUFGLFdBQUE7TUFYM0I7QUFDUjtBQUNBO0FBQ0E7TUFIUUcsZUFBQSxlQUlPO1FBQ0hDLE1BQU0sRUFBRTtNQUNaLENBQUM7TUFNR25HLENBQUMsQ0FBQ21CLE1BQU0sQ0FBQyxJQUFJLEVBQUU1RCxJQUFJLENBQUM7TUFDcEJ5QyxDQUFDLENBQUNtQixNQUFNLENBQUMsSUFBSSxDQUFDSCxJQUFJLEVBQUVnRixPQUFPLENBQUM7SUFDaEM7SUFBQyxPQUFBSSxZQUFBLENBQUFMLFdBQUE7TUFBQWpJLEdBQUE7TUFBQUUsS0FBQSxFQUVELFNBQUFxSSxPQUFPQSxDQUFFOUksSUFBSSxFQUFDO1FBQ1Z5QyxDQUFDLENBQUNtQixNQUFNLENBQUMsSUFBSSxFQUFFNUQsSUFBSSxDQUFDO01BQ3hCO0lBQUM7TUFBQU8sR0FBQTtNQUFBRSxLQUFBLEVBRUQsU0FBQXNJLE9BQU9BLENBQUMzQixLQUFLLEVBQUM7UUFDVixJQUFHQSxLQUFLLEVBQUM7VUFDTCxPQUFPLElBQUksQ0FBQ0EsS0FBSyxDQUFDO1FBQ3RCLENBQUMsTUFBSTtVQUNELE9BQU8sSUFBSTtRQUNmO01BQ0o7SUFBQztFQUFBO0VBQ0o7RUFDRHJJLE1BQU0sQ0FBQ3dKLFNBQVMsR0FBQ0EsV0FBUztBQUM5QjtBQUdBeEosTUFBTSxDQUFDaUssWUFBWSxHQUFHLFVBQVVQLE9BQU8sRUFBRTtFQUVyQztBQUNKO0FBQ0E7QUFDQTtFQUNJLElBQUloRixJQUFJLEdBQUc7SUFDUHdGLEtBQUssRUFBRSxvQkFBb0I7SUFDM0JqQiwwQkFBMEIsRUFBQyxDQUFDLENBQUM7SUFDN0JFLHlCQUF5QixFQUFDLENBQUMsQ0FBQztJQUM1Qkgsa0NBQWtDLEVBQUMsQ0FBQyxDQUFDO0lBQ3JDbUIscUNBQXFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3hDYixzQ0FBc0MsRUFBQyxDQUFDLENBQUM7SUFDekNDLG9CQUFvQixFQUFDLENBQUMsQ0FBQztJQUN2QmEsR0FBRyxFQUFDLENBQUM7RUFDVCxDQUFDO0VBRUQsSUFBTUMsU0FBUyxHQUFDLENBQUMsQ0FBQztFQUNsQixJQUFJQyxVQUFVLEdBQUM7SUFBQyxLQUFLLEVBQUM7RUFBSSxDQUFDO0VBQzNCLElBQUlDLFFBQVEsR0FBQyxJQUFJO0VBQ2pCLElBQUlDLElBQUksR0FBQyxJQUFJO0VBQ2I7QUFDSjtBQUNBO0VBQ0ksSUFBSSxDQUFDQyxTQUFTLEdBQUcsVUFBVWYsT0FBTyxFQUFFO0lBQ2hDO0lBQ0E5SSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxJQUFJLENBQUM2SixXQUFXLENBQUNDLElBQUksR0FBQyxxQkFBcUIsQ0FBQztJQUN4RGpILENBQUMsQ0FBQ21CLE1BQU0sQ0FBQ0gsSUFBSSxFQUFFMUUsTUFBTSxDQUFDK0ksb0JBQW9CLEVBQUVXLE9BQU8sQ0FBQztFQUN4RCxDQUFDO0VBRUQsSUFBSSxDQUFDa0IsT0FBTyxHQUFDLFVBQVNsQixPQUFPLEVBQUM7SUFDMUJoRyxDQUFDLENBQUNtQixNQUFNLENBQUNILElBQUksRUFBRWdGLE9BQU8sQ0FBQztFQUMzQixDQUFDO0VBRUQsSUFBSSxDQUFDbUIsT0FBTyxHQUFDLFlBQVU7SUFDbkIsT0FBT25HLElBQUk7RUFDZixDQUFDO0VBRUQsSUFBSSxDQUFDdUUsMEJBQTBCLEdBQUMsWUFBVztJQUN2QyxPQUFPdkUsSUFBSSxDQUFDdUUsMEJBQTBCLENBQUN2RyxTQUFTLENBQUM7RUFDckQsQ0FBQztFQUNELElBQUksQ0FBQ3lHLHlCQUF5QixHQUFDLFlBQVc7SUFDdEMsT0FBT3pFLElBQUksQ0FBQ3lFLHlCQUF5QixDQUFDekcsU0FBUyxDQUFDO0VBQ3BELENBQUM7RUFFRCxJQUFJLENBQUMwRyx5QkFBeUIsR0FBQyxZQUFXO0lBQ3RDLE9BQU8xRSxJQUFJLENBQUMwRSx5QkFBeUIsQ0FBQzFHLFNBQVMsQ0FBQztFQUNwRCxDQUFDO0VBQ0QsSUFBSSxDQUFDMkcsK0JBQStCLEdBQUMsWUFBVztJQUM1QyxPQUFPM0UsSUFBSSxDQUFDMkUsK0JBQStCLENBQUMzRyxTQUFTLENBQUM7RUFDMUQsQ0FBQztFQUVELElBQUksQ0FBQzZHLG9CQUFvQixHQUFDLFlBQVc7SUFDakMsT0FBTzdFLElBQUksQ0FBQzZFLG9CQUFvQixDQUFDN0csU0FBUyxDQUFDO0VBQy9DLENBQUM7RUFFRCxJQUFJLENBQUNzRyxrQ0FBa0MsR0FBQyxZQUFXO0lBQy9DLE9BQU90RSxJQUFJLENBQUNzRSxrQ0FBa0MsQ0FBQ3RHLFNBQVMsQ0FBQztFQUM3RCxDQUFDO0VBQ0QsSUFBSSxDQUFDeUgscUNBQXFDLEdBQUMsWUFBVztJQUNsRCxPQUFPekYsSUFBSSxDQUFDeUYscUNBQXFDLENBQUN6SCxTQUFTLENBQUM7RUFDaEUsQ0FBQztFQUVELElBQUksQ0FBQ29JLHFCQUFxQixHQUFDLFVBQVVDLFdBQVcsRUFBQztJQUM3QyxJQUFHLENBQUNBLFdBQVcsRUFBQztNQUNaO0lBQ0o7SUFDQXJILENBQUMsQ0FBQ3FILFdBQVcsR0FBQyxZQUFZLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUN4Q3RILENBQUMsQ0FBQ3FILFdBQVcsR0FBQyxZQUFZLENBQUMsQ0FBQzVHLEVBQUUsQ0FBQyxPQUFPLEVBQUM4RyxHQUFHLENBQUNkLHFDQUFzQyxDQUFDO0VBQ3RGLENBQUM7RUFFRCxJQUFJLENBQUNiLHNDQUFzQyxHQUFDLFlBQVc7SUFDbkQsT0FBTzVFLElBQUksQ0FBQzRFLHNDQUFzQyxDQUFDNUcsU0FBUyxDQUFDO0VBQ2pFLENBQUM7O0VBRUQ7QUFDSjtBQUNBO0FBQ0E7RUFDSSxJQUFJLENBQUN3SSxjQUFjLEdBQUcsWUFBWTtJQUM5QnRLLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDNkQsSUFBSSxDQUFDO0lBRWpCeUcsZUFBZSxDQUFDLENBQUM7RUFDckIsQ0FBQztFQUVELElBQUksQ0FBQ0MsV0FBVyxHQUFHLFVBQVVDLEtBQUssRUFBRTtJQUNoQ2IsSUFBSSxDQUFDRCxRQUFRLEdBQUNjLEtBQUs7RUFDdkIsQ0FBQztFQUVELElBQUksQ0FBQ0MsV0FBVyxHQUFHLFlBQVk7SUFDM0IsT0FBT2QsSUFBSSxDQUFDRCxRQUFRO0VBQ3hCLENBQUM7O0VBRUQ7QUFDSjtBQUNBO0FBQ0E7RUFDSSxJQUFNWSxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBZTtJQUNoQ3ZLLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLHlCQUF5QixDQUFDO0VBQzFDLENBQUM7O0VBRUQ7QUFDSjtBQUNBO0VBQ0ksSUFBSSxDQUFDMEssbUJBQW1CLEdBQUMsVUFBU0MsUUFBUSxFQUFDO0lBQ3ZDOUgsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM0QixXQUFXLENBQUMsVUFBVSxDQUFDO0lBQ2xENUIsQ0FBQyxDQUFDLHVDQUF1QyxHQUFDOEgsUUFBUSxDQUFDLENBQUNqRyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3hFLE9BQU8sSUFBSTtFQUNmLENBQUM7RUFFRCxJQUFJLENBQUNrRyxtQkFBbUIsR0FBQyxZQUFVO0lBQ2pDLE9BQU8vSCxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQ2dJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQ3pLLElBQUksQ0FBQyxNQUFNLENBQUM7RUFDakUsQ0FBQztFQUVELElBQUksQ0FBQzBLLGdDQUFnQyxHQUFDLFlBQVU7SUFDNUMsSUFBR1YsR0FBRyxDQUFDVyxrQkFBa0IsSUFBRWhKLFNBQVMsRUFBRTtNQUNsQ2hDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLHdCQUF3QixDQUFDO01BQ2pDRCxPQUFPLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7TUFDcEJvSyxHQUFHLENBQUNXLGtCQUFrQixDQUFDbkcsU0FBUyxDQUFDb0csS0FBSyxDQUFDQyxLQUFLLENBQUMsQ0FBQztJQUN0RDtFQUVKLENBQUM7RUFDRCxJQUFJLENBQUNDLG9CQUFvQixHQUFDLFlBQVc7SUFDakNuTCxPQUFPLENBQUNDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztJQUNuQyxJQUFHMkosSUFBSSxDQUFDaUIsbUJBQW1CLENBQUMsQ0FBQyxLQUFHLGFBQWEsRUFBQztNQUMxQ2pCLElBQUksQ0FBQ21CLGdDQUFnQyxDQUFDLENBQUM7SUFDM0M7SUFBQztFQUVMLENBQUM7RUFFRCxJQUFJLENBQUNLLG1CQUFtQixHQUFDLFlBQVcsQ0FDcEMsQ0FBQztFQUVELElBQUksQ0FBQ0MsVUFBVSxHQUFDLFlBQVc7SUFDdkJ2SSxDQUFDLENBQUMsb0VBQW9FLENBQUMsQ0FBQ3dCLElBQUksQ0FBQyxPQUFPLEVBQUMsVUFBVWQsS0FBSyxFQUFDO01BQ2pHeEQsT0FBTyxDQUFDQyxHQUFHLENBQUM2QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDMEosSUFBSSxDQUFDO01BQ2hDLElBQUdqSCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUM7UUFDeEJ5QyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQzRCLFdBQVcsQ0FBQyxZQUFZLENBQUM7TUFDckQsQ0FBQyxNQUFJO1FBQ0Q1QixDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQzZCLFFBQVEsQ0FBQyxZQUFZLENBQUM7TUFDbEQ7TUFFQWlGLElBQUksQ0FBQ2UsbUJBQW1CLENBQUM3SCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDMEosSUFBSSxDQUFDO01BQzdDdkcsS0FBSyxDQUFDOEgsY0FBYyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBQ0Z4SSxDQUFDLENBQUMsb0VBQW9FLENBQUMsQ0FBQ3lJLFFBQVEsQ0FBQztNQUM3RXZJLE1BQU0sRUFBQ0YsQ0FBQyxDQUFDLGNBQWMsQ0FBQztNQUN4QjBJLFFBQVEsRUFBQyxLQUFLO01BQ2RDLFNBQVMsRUFBQzdCLElBQUksQ0FBQ3dCLG1CQUFtQjtNQUNsQ00sVUFBVSxFQUFDOUIsSUFBSSxDQUFDdUI7SUFDcEIsQ0FBQyxDQUFDO0lBQ0ZySSxDQUFDLENBQUMsOEVBQThFLENBQUMsQ0FBQ3dCLElBQUksQ0FBQyxPQUFPLEVBQUMsWUFBVTtNQUNyR3NGLElBQUksQ0FBQ21CLGdDQUFnQyxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELElBQUksQ0FBQ1ksZUFBZSxHQUFDLFVBQVUzRyxHQUFHLEVBQUMzRSxJQUFJLEVBQUN1TCxRQUFRLEVBQUM7SUFFN0MsSUFBRyxDQUFDQSxRQUFRLEVBQUM7TUFDVEEsUUFBUSxHQUFDaEMsSUFBSSxDQUFDakIsb0JBQW9CO0lBQ3RDLENBQUMsTUFBSTtNQUNEM0ksT0FBTyxDQUFDQyxHQUFHLENBQUMsY0FBYyxDQUFDO01BQzNCRCxPQUFPLENBQUNDLEdBQUcsQ0FBQzJMLFFBQVEsQ0FBQztJQUN6QjtJQUNBOUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDK0ksSUFBSSxDQUNsQjdHLEdBQUcsRUFBQzNFLElBQUksRUFBQ3VMLFFBQ2IsQ0FBQztFQUNMLENBQUM7RUFDRDtBQUNKO0FBQ0E7RUFDSSxJQUFJLENBQUMvQixTQUFTLENBQUNmLE9BQU8sQ0FBQztBQUMzQixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ExSixNQUFNLENBQUNpTCxHQUFHLEdBQUMsQ0FBQyxDQUFDO0FBQ2J2SCxDQUFDLENBQUNXLFFBQVEsQ0FBQyxDQUFDcUksS0FBSyxDQUFDLFlBQVc7RUFDekI5TCxPQUFPLENBQUNDLEdBQUcsQ0FBQyxXQUFXLENBQUM7RUFDeEI7RUFDQThMLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHLENBQUUsSUFBSSxFQUFFLElBQUksQ0FBRTtFQUM5QjtBQUVKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9hcHAuanM/Y2VkNiJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuL2Jvb3RzdHJhcCcpO1xyXG5cclxuXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vKlxyXG5IZWxwZXIgZnVuY3Rpb25cclxuKi9cclxud2luZG93LmdldE1vbmRheT1mdW5jdGlvbihkYXRlLGRhdGVTdHIpIHtcclxuICAgIGlmKGRhdGVTdHIpe1xyXG4gICAgICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRlU3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGF5ID0gZGF0ZS5nZXREYXkoKSxcclxuICAgICAgICBkaWZmID0gZGF0ZS5nZXREYXRlKCkgLSBkYXkgKyAoZGF5ID09IDAgPyAtNjoxKTsgLy8gYWRqdXN0IHdoZW4gZGF5IGlzIHN1bmRheVxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuc2V0RGF0ZShkaWZmKSk7XHJcbn1cclxud2luZG93LmRlYnVnPWZ1bmN0aW9uICh0eHQpXHJcbntcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc29sZS5sb2codHh0KTtcclxuICAgIH1cclxuICAgIGNhdGNoKGUpe31cclxufTtcclxuXHJcbndpbmRvdy5idWlsZEZvcm1EYXRhPWZ1bmN0aW9uKGZvcm1EYXRhLCBkYXRhLCBwYXJlbnRLZXkpIHtcclxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAhKGRhdGEgaW5zdGFuY2VvZiBEYXRlKSAmJiAhKGRhdGEgaW5zdGFuY2VvZiBGaWxlKSkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgYnVpbGRGb3JtRGF0YShmb3JtRGF0YSwgZGF0YVtrZXldLCBwYXJlbnRLZXkgPyBgJHtwYXJlbnRLZXl9WyR7a2V5fV1gIDoga2V5KTtcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhID09IG51bGwgPyAnJyA6IGRhdGE7XHJcblxyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChwYXJlbnRLZXksIHZhbHVlKTtcclxuICAgIH1cclxufVxyXG5cclxud2luZG93Lmpzb25Ub0Zvcm1EYXRhPWZ1bmN0aW9uKGRhdGEpIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgYnVpbGRGb3JtRGF0YShmb3JtRGF0YSwgZGF0YSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcm1EYXRhO1xyXG59XHJcblxyXG5TdHJpbmcucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGhpcy5zbGljZSgxKVxyXG59XHJcblxyXG53aW5kb3cuYXJyYXlSZW1vdmU9ZnVuY3Rpb24oYXJyLCB2YWx1ZSkge1xyXG5cclxuICAgIHJldHVybiBhcnIuZmlsdGVyKGZ1bmN0aW9uKGVsZSl7XHJcbiAgICAgICAgcmV0dXJuIGVsZSAhPSB2YWx1ZTtcclxuICAgIH0pO1xyXG59XHJcbndpbmRvdy5nZXRSYW5kb21JbnQ9ZnVuY3Rpb24gKG1heD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixtaW49MCkge1xyXG4gICAgZGVidWcobWF4KTtcclxuICAgIGRlYnVnKG1pbik7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcclxufVxyXG5cclxud2luZG93LnNldEltYWdlRnJvbUxvY2FsPWZ1bmN0aW9uKGlucHV0LHRhcmdldEltZ0Nzc1NlbGVjdG9yKSB7XHJcbiAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXNbMF0pIHtcclxuICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgJCh0YXJnZXRJbWdDc3NTZWxlY3RvcikuYXR0cignc3JjJywgZS50YXJnZXQucmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoaW5wdXQuZmlsZXNbMF0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5yZXF1aXJlKCcuL2xhdGluaXNlJyk7XHJcblxyXG4vKlxyXG5kaXNhYmxlIGJhY2sgYnV0dG9uXHJcbiAqL1xyXG4kKGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHdpbmRvdy5oaXN0b3J5ICYmIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSkge1xyXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSgnJywgbnVsbCwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgICQod2luZG93KS5vbigncG9wc3RhdGUnLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICAvLyBhbGVydCgnQmFjayBidXR0b24gd2FzIHByZXNzZWQuJyk7XHJcbiAgICAgICAgICAgIC8vZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICcjJztcclxuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKCcnLCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdtZXZhZ3knKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0pO1xyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLypcclxuaW5pdCBjdXN0b20gcmFkaW8gYnV0dG9uc1xyXG4gKi9cclxud2luZG93LmluaXRSYWRpb0J1dHRvbnM9ZnVuY3Rpb24gKE9wdGlvbnMpe1xyXG4gICAgbGV0IE9wdHMgPSB7XHJcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICh2YWx1ZSxub2RlKSB7XHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgJC5leHRlbmQoT3B0cywgT3B0aW9ucyk7XHJcblxyXG4gICAgJCgnLmN1c3RvbVJhZGlvQnRuR3JvdXAgLmFjdGl2ZScpLmVhY2goZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgbGV0IGFjdGl2ZVZhbHVlID0gJCh0aGlzKS5kYXRhKCd0aXRsZScpO1xyXG4gICAgICAgIGxldCB0YXJnZXQgPSAkKHRoaXMpLmRhdGEoJ3RvZ2dsZScpO1xyXG4gICAgICAgICQoJ2lucHV0W25hbWU9Jyt0YXJnZXQrJ10nKS5wcm9wKCd2YWx1ZScsIGFjdGl2ZVZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgICQoJy5jdXN0b21SYWRpb0J0bkdyb3VwIGEnKS51bmJpbmQoJ2NsaWNrJyk7XHJcbiAgICAkKCcuY3VzdG9tUmFkaW9CdG5Hcm91cCBhJykuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgbGV0IHNlbCA9ICQodGhpcykuZGF0YSgndGl0bGUnKTtcclxuICAgICAgICBsZXQgdG9nID0gJCh0aGlzKS5kYXRhKCd0b2dnbGUnKTtcclxuICAgICAgICAkKCdpbnB1dFtuYW1lPScrdG9nKyddJykucHJvcCgndmFsdWUnLCBzZWwpO1xyXG4gICAgICAgICQoJ2FbZGF0YS10b2dnbGU9XCInK3RvZysnXCJdJykubm90KCdbZGF0YS10aXRsZT1cIicrc2VsKydcIl0nKS5yZW1vdmVDbGFzcygnYWN0aXZlJykuYWRkQ2xhc3MoJ25vdEFjdGl2ZScpO1xyXG4gICAgICAgICQoJ2FbZGF0YS10b2dnbGU9XCInK3RvZysnXCJdW2RhdGEtdGl0bGU9XCInK3NlbCsnXCJdJykucmVtb3ZlQ2xhc3MoJ25vdEFjdGl2ZScpLmFkZENsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICBPcHRzLm9uQ2hhbmdlKHNlbCx0b2cpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAgRGVmYXVsdHNcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiQuZXh0ZW5kKCB0cnVlLCAkLmZuLmRhdGFUYWJsZS5kZWZhdWx0cywge1xyXG4gICAgbGFuZ3VhZ2U6IHtcclxuICAgICAgICB1cmw6ICcvL2Nkbi5kYXRhdGFibGVzLm5ldC9wbHVnLWlucy8xLjEwLjI0L2kxOG4vSHVuZ2FyaWFuLmpzb24nXHJcbiAgICB9LFxyXG4gICAgbGVuZ3RoTWVudTogW1xyXG4gICAgICAgIFsgMTAsIDI1LCA1MCwgLTEgXSxcclxuICAgICAgICBbICcxMCBzb3InLCAnMjUgc29yJywgJzUwIHNvcicsICfDlnNzemVzJyBdXHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczp7XHJcbiAgICAgICAgZG9tOntcclxuICAgICAgICAgICAgYnV0dG9uOntcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTonZmctYnV0dG9uIHVpLWJ1dHRvbiBkYXRhVGFibGVIZWFkZXJCdXR0b25zJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBkb206ICc8XCJmZy10b29sYmFyIHVpLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRsIHVpLWNvcm5lci10clwibEJmcj4nK1xyXG4gICAgICAgICd0JytcclxuICAgICAgICAnPFwiZmctdG9vbGJhciB1aS10b29sYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci1ibCB1aS1jb3JuZXItYnJcImlwPicsXHJcblxyXG59ICk7XHJcbklucHV0bWFzay5leHRlbmREZWZpbml0aW9ucyh7XHJcbiAgICAneCc6IHtcclxuICAgICAgICB2YWxpZGF0b3I6IFwiW1xcLiwtw6HDqcOtw7PDtsWRw7rDoMOow6zDssO5w7zFscOBw4nDjcOTw5bFkMOaw4DDiMOMw5LDmcOcxbBBLVphLXowLTkgXVwiLFxyXG4gICAgICAgIC8vY2FyZGluYWxpdHk6IDFcclxuICAgIH1cclxufSk7XHJcblxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblRvYXN0LmVuYWJsZVRpbWVycyhmYWxzZSk7XHJcbiQuZm4uc2VsZWN0Mi5kZWZhdWx0cy5zZXQoJ2xhbmd1YWdlJywgJ2pwJyk7XHJcbndpbmRvdy5zZWxlY3QyQ3JlYXRlVGFnPWZ1bmN0aW9uIChwYXJhbXMpe1xyXG4gICAgdmFyIHRlcm0gPSAkLnRyaW0ocGFyYW1zLnRlcm0pO1xyXG4gICAgdmFyIGNvdW50ID0gMFxyXG4gICAgdmFyIGV4aXN0c1ZhciA9IGZhbHNlO1xyXG4gICAgLy9jaGVjayBpZiB0aGVyZSBpcyBhbnkgb3B0aW9uIGFscmVhZHlcclxuICAgIGlmKCQoJyNrZXl3b3JkcyBvcHRpb24nKS5sZW5ndGggPiAwKXtcclxuICAgICAgICAkKCcja2V5d29yZHMgb3B0aW9uJykuZWFjaChmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZiAoJCh0aGlzKS50ZXh0KCkudG9VcHBlckNhc2UoKSA9PSB0ZXJtLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGV4aXN0c1ZhciA9IHRydWVcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBleGlzdHNWYXIgPSBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYoZXhpc3RzVmFyKXtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBwYXJhbXMudGVybSxcclxuICAgICAgICAgICAgdGV4dDogcGFyYW1zLnRlcm0sXHJcbiAgICAgICAgICAgIG5ld1RhZzogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vc2luY2Ugc2VsZWN0IGhhcyAwIG9wdGlvbnMsIGFkZCBuZXcgd2l0aG91dCBjb21wYXJpbmdcclxuICAgIGVsc2V7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IHBhcmFtcy50ZXJtLFxyXG4gICAgICAgICAgICB0ZXh0OiBwYXJhbXMudGVybSxcclxuICAgICAgICAgICAgbmV3VGFnOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxud2luZG93LmFqYXhFcnJvckhhbmRsZXI9IGZ1bmN0aW9uICh4aHIsIGFqYXhPcHRpb25zLCB0aHJvd25FcnJvcil7XHJcbiAgICBkZWJ1Zyh0aGlzKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoeGhyKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoYWpheE9wdGlvbnMpO1xyXG4gICAgY29uc29sZS5lcnJvcih0aHJvd25FcnJvcik7XHJcblxyXG4gICAgLy8gQml6dG9uc8OhZ2kgZWxsZW7FkXJ6w6lzIOKAkyBoYSBuaW5jcyByZXNwb25zZUpTT04gKHBsLiBIVE1MIHbDoWxhc3opXHJcbiAgICBpZiAoIXhoci5yZXNwb25zZUpTT04pIHtcclxuICAgICAgICBhamF4RXJyb3JGaWVsZEhhbmRsZXIoeydkZXRhaWwnOiAnVsOhcmF0bGFuIHN6ZXJ2ZXJoaWJhLiBLw6lyasO8ayBwcsOzYsOhbGphIMO6anJhIGvDqXPFkWJiLid9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWTDoWNpw7NzIGhpYsOhayAoNDIyKSDigJMgZXpla2V0IHLDqXN6bGV0ZXNlbiBtZWdqZWxlbsOtdGrDvGtcclxuICAgIGlmICh4aHIucmVzcG9uc2VKU09OLmVycm9ycykge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJkMi0tLS0tLS0tLS0tLS0tLVwiKTtcclxuICAgICAgICBpZihcImpzb25hcGlcIiBpbiB4aHIucmVzcG9uc2VKU09OKXtcclxuICAgICAgICAgICAgYWpheEVycm9yRmllbGRIYW5kbGVySnNvbkFQSSh4aHIucmVzcG9uc2VKU09OLmVycm9ycyk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcih4aHIucmVzcG9uc2VKU09OLmVycm9ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gRWd5ZWRpIHJlZmVyZW5jaWEga8OzZG9zIGhpYmEgKDUwMCwgc3RiLilcclxuICAgIGVsc2UgaWYgKHhoci5yZXNwb25zZUpTT04uZXJyb3JfcmVmKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yX3JlZjogXCIgKyB4aHIucmVzcG9uc2VKU09OLmVycm9yX3JlZik7XHJcbiAgICAgICAgVG9hc3QuY3JlYXRlKHtcclxuICAgICAgICAgICAgdGl0bGU6IFwiU3plcnZlcmhpYmFcIixcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJWw6FyYXRsYW4gaGliYSB0w7ZydMOpbnQgYSBmZWxkb2xnb3rDoXMgc29yw6FuLjxicj5cIiArXHJcbiAgICAgICAgICAgICAgICAgICAgIFwiPHNtYWxsPkhpdmF0a296w6FzaSBrw7NkOiA8c3Ryb25nPlwiICsgeGhyLnJlc3BvbnNlSlNPTi5lcnJvcl9yZWYgKyBcIjwvc3Ryb25nPjwvc21hbGw+PGJyPlwiICtcclxuICAgICAgICAgICAgICAgICAgICAgXCI8c21hbGw+S8OpcmrDvGssIGV6dCBhIGvDs2RvdCBhZGphIG1lZyBhIGhpYmFqZWxlbnTDqXNiZW4uPC9zbWFsbD5cIixcclxuICAgICAgICAgICAgc3RhdHVzOiBUT0FTVF9TVEFUVVMuREFOR0VSLFxyXG4gICAgICAgICAgICB0aW1lb3V0OiAwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyA0MDRcclxuICAgIGVsc2UgaWYgKHhoci5zdGF0dXMgPT0gNDA0KSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcImQzLS0tLS0tLS0tLS0tLS0tXCIpO1xyXG4gICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcih7J2RldGFpbCc6J05pbmNzIGlseWVuIGVsZW0uJ30pO1xyXG4gICAgfVxyXG4gICAgLy8gRWd5w6liIGlzbWVyZXRsZW4gaGliYVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcImQ0LS0tLS0tLS0tLS0tLS0tXCIpO1xyXG4gICAgICAgIGFqYXhFcnJvckZpZWxkSGFuZGxlcih7J2RldGFpbCc6J8OBbHRhbMOhbm9zIGhpYmEuJ30pO1xyXG4gICAgfVxyXG59XHJcbndpbmRvdy5hamF4RXJyb3JGaWVsZEhhbmRsZXJKc29uQVBJPSBmdW5jdGlvbiAoZXJyb3JzLCBjb250YWluZXIpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoXCJkNi0tLS0tLS0tLS0tLS0tLVwiKTtcclxuICAgIGxldCB0b2FzdEJvZHlIdG1sID0gJyc7XHJcbiAgICBsZXQgdG9hc3RUaXRsZSA9ICdIaWJhJztcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JzKTtcclxuICAgICQuZWFjaChlcnJvcnMsIGZ1bmN0aW9uIChpbmRleCwgdmFsdWUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKHZhbHVlKTtcclxuICAgICAgICB0b2FzdFRpdGxlID0gJ0hpYmEnO1xyXG4gICAgICAgIHRvYXN0Qm9keUh0bWwgPSAnJztcclxuICAgICAgICBpZihcInRpdGxlXCIgaW4gdmFsdWUpe1xyXG4gICAgICAgICAgICB0b2FzdFRpdGxlPXZhbHVlLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihcImRldGFpbFwiIGluIHZhbHVlKXtcclxuICAgICAgICAgICAgdG9hc3RCb2R5SHRtbCArPSAnPGRpdj4nICsgdmFsdWUuZGV0YWlsICsgJzxkaXY+JztcclxuICAgICAgICB9XHJcbiAgICAgICAgVG9hc3QuY3JlYXRlKHtcclxuICAgICAgICAgICAgdGl0bGU6IHRvYXN0VGl0bGUsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRvYXN0Qm9keUh0bWwsXHJcbiAgICAgICAgICAgIHN0YXR1czogVE9BU1RfU1RBVFVTLkRBTkdFUiwgICAvLyBTVUNDRVNTICh6w7ZsZClcclxuICAgICAgICAgICAgdGltZW91dDogMTAwMDBcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbndpbmRvdy5hamF4RXJyb3JGaWVsZEhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyb3JzLCBjb250YWluZXIpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoXCJkNS0tLS0tLS0tLS0tLS0tLVwiKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JzKTtcclxuICAgIGxldCB0b2FzdEJvZHlIdG1sID0gJyc7XHJcbiAgICAkLmVhY2goZXJyb3JzLCBmdW5jdGlvbiAoaW5kZXgsIHZhbHVlKSB7XHJcbiAgICAgICAgdG9hc3RCb2R5SHRtbCArPSAnPGRpdj4nICsgdmFsdWUgKyAnPGRpdj4nO1xyXG4gICAgfSk7XHJcblxyXG4gICAgVG9hc3QuY3JlYXRlKHtcclxuICAgICAgICB0aXRsZTogXCJIaWJhIVwiLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRvYXN0Qm9keUh0bWwsXHJcbiAgICAgICAgc3RhdHVzOiBUT0FTVF9TVEFUVVMuREFOR0VSLCAgIC8vIFNVQ0NFU1MgKHrDtmxkKVxyXG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwXHJcbiAgICB9KTtcclxufVxyXG4kLmFqYXhTZXR1cCh7XHJcbiAgICBlcnJvcjphamF4RXJyb3JIYW5kbGVyLFxyXG59KTtcclxuLypcclxuZGF0ZXBpY2tlciBhZnRlclNob3cgZnVuY3Rpb25cclxuICovXHJcbiQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcl9vcmlnaW5hbCA9ICQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcjtcclxuJC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyID0gZnVuY3Rpb24oaW5zdCkge1xyXG4gICAgJC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyX29yaWdpbmFsKGluc3QpO1xyXG4gICAgbGV0IGFmdGVyU2hvdyA9IHRoaXMuX2dldChpbnN0LCAnYWZ0ZXJTaG93Jyk7XHJcbiAgICBpZiAoYWZ0ZXJTaG93KVxyXG4gICAgICAgIGFmdGVyU2hvdy5hcHBseSgoaW5zdC5pbnB1dCA/IGluc3QuaW5wdXRbMF0gOiBudWxsKSk7ICAvLyB0cmlnZ2VyIGN1c3RvbSBjYWxsYmFja1xyXG59XHJcblxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbndpbmRvdy5FbWVncmVuZGVsZXNEZWZhdWx0cz17XHJcbiAgICBkYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrOiBmdW5jdGlvbiAoKSB7fSxcclxuICAgIGRhdGF0YWJsZUFkZFJvd1RyYXNoQnV0dG9uOiBmdW5jdGlvbiAoaWQsYXJncykge1xyXG4gICAgICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kYW5nZXIgYnV0dG9uRGVsZXRlXCIgZGF0YS1idXR0b25UeXBlPVwiZGVsZXRlXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJib3R0b21cIiB0aXRsZT1cIlTDtnJsw6lzXCI+JyArXHJcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzwvYnV0dG9uPidcclxuXHJcbiAgICB9LFxyXG4gICAgZGF0YXRhYmxlQWRkUm93RWRpdEJ1dHRvbjogZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICBsZXQgdGl0bGU9J0FkYXRvayc7XHJcbiAgICAgICAgaWYodHlwZW9mIGFyZ3NbMV0udGl0bGUhPT1cInVuZGVmaW5lZFwiKXtcclxuICAgICAgICAgICAgdGl0bGU9YXJnc1sxXS50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWluZm8gYnV0dG9uRWRpdFwiICBkYXRhLWJ1dHRvblR5cGU9XCJlZGl0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJib3R0b21cIiB0aXRsZT1cIicrdGl0bGUrJ1wiPicgK1xyXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJmYXMgZmEtcGVuY2lsLWFsdFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzwvYnV0dG9uPidcclxuXHJcbiAgICB9LFxyXG4gICAgZGF0YXRhYmxlQWRkUm93Vmlld0J1dHRvbjogZnVuY3Rpb24gKGlkLGFyZ3MpIHtcclxuICAgICAgICByZXR1cm4gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgZGF0YVRhYmxlUm93QnV0dG9uIGJ1dHRvblZpZXdcIiAgZGF0YS1idXR0b25UeXBlPVwidmlld1wiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYm90dG9tXCIgdGl0bGU9XCJNZWd0ZWtpbnRcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiZmFzIGZhLWV5ZVwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzwvYnV0dG9uPidcclxuXHJcbiAgICB9LFxyXG4gICAgZGF0YXRhYmxlQWRkUm93QXR0YWNobWVudEJ1dHRvbjogZnVuY3Rpb24gKGlkLGFyZ3MpIHtcclxuICAgICAgICByZXR1cm4gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1kYXJrIGRhdGFUYWJsZVJvd0J1dHRvbiBidXR0b25BdHRhY2htZW50XCIgIGRhdGEtYnV0dG9uVHlwZT1cImF0dGFjaG1lbnRcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImJvdHRvbVwiIHRpdGxlPVwiQ3NhdG9sbcOhbnlcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiZmFzIGZhLXBhcGVyY2xpcFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzwvYnV0dG9uPidcclxuXHJcbiAgICB9LFxyXG4gICAgZGF0YXRhYmxlQ3VzdG9tSGVhZEJ1dHRvbkNsaWNrQ2FsbEJhY2s6ZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhhcmdzKTtcclxuICAgIH0sXHJcblxyXG4gICAgYWZ0ZXJMb2FkTWFpbkNvbnRlbnQ6ZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhhcmdzKTtcclxuICAgIH0sXHJcblxyXG5cclxufTtcclxuXHJcbmlmKHR5cGVvZiBEYXRhTW9kZWw9PT0ndW5kZWZpbmVkJyl7XHJcbiAgICBjbGFzcyBEYXRhTW9kZWx7XHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiBWYXJpYWJsZXMgYWNjZXNzaWJsZVxyXG4gICAgICAgICAqIGluIHRoZSBjbGFzc1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIE9wdHMgPSB7XHJcbiAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yIChkYXRhLG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgJC5leHRlbmQodGhpcywgZGF0YSk7XHJcbiAgICAgICAgICAgICQuZXh0ZW5kKHRoaXMuT3B0cywgb3B0aW9ucyk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgc2V0RGF0YSAoZGF0YSl7XHJcbiAgICAgICAgICAgICQuZXh0ZW5kKHRoaXMsIGRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0RGF0YShpbmRleCl7XHJcbiAgICAgICAgICAgIGlmKGluZGV4KXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2luZGV4XTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB3aW5kb3cuRGF0YU1vZGVsPURhdGFNb2RlbDtcclxufVxyXG5cclxuXHJcbndpbmRvdy5FbWVncmVuZGVsZXMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG5cclxuICAgIC8qXHJcbiAgICAgKiBWYXJpYWJsZXMgYWNjZXNzaWJsZVxyXG4gICAgICogaW4gdGhlIGNsYXNzXHJcbiAgICAgKi9cclxuICAgIGxldCBPcHRzID0ge1xyXG4gICAgICAgIG15VmFyOiAnRW1lZ3JlbmRlbGVzIHZhbHVlJyxcclxuICAgICAgICBkYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbjp7fSxcclxuICAgICAgICBkYXRhdGFibGVBZGRSb3dFZGl0QnV0dG9uOnt9LFxyXG4gICAgICAgIGRhdGF0YWJsZUFjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2s6e30sXHJcbiAgICAgICAgZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjazp7fSxcclxuICAgICAgICBkYXRhdGFibGVDdXN0b21IZWFkQnV0dG9uQ2xpY2tDYWxsQmFjazp7fSxcclxuICAgICAgICBhZnRlckxvYWRNYWluQ29udGVudDp7fSxcclxuICAgICAgICBVcmw6e30sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IFB1YmxpY1Zhcj17fTtcclxuICAgIGxldCBQdWJsaWNWYXIyPXsnYXNkJzonMjEnfTtcclxuICAgIGxldCBBcGlUb2tlbj1udWxsO1xyXG4gICAgbGV0IHJvb3Q9dGhpcztcclxuICAgIC8qXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICovXHJcbiAgICB0aGlzLmNvbnN0cnVjdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgICAgICAgLy8kLmV4dGVuZChPcHRzLCBvcHRpb25zKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbnN0cnVjdG9yLm5hbWUrJyBjb25zdHJ1Y3RvciBjYWxsZWQnKTtcclxuICAgICAgICAkLmV4dGVuZChPcHRzLCB3aW5kb3cuRW1lZ3JlbmRlbGVzRGVmYXVsdHMsIG9wdGlvbnMpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNldE9wdHM9ZnVuY3Rpb24ob3B0aW9ucyl7XHJcbiAgICAgICAgJC5leHRlbmQoT3B0cywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRPcHRzPWZ1bmN0aW9uKCl7XHJcbiAgICAgICAgcmV0dXJuIE9wdHM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbj1mdW5jdGlvbiAoKXtcclxuICAgICAgICByZXR1cm4gT3B0cy5kYXRhdGFibGVBZGRSb3dUcmFzaEJ1dHRvbihhcmd1bWVudHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhdGFibGVBZGRSb3dFZGl0QnV0dG9uPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzLmRhdGF0YWJsZUFkZFJvd0VkaXRCdXR0b24oYXJndW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGF0YWJsZUFkZFJvd1ZpZXdCdXR0b249ZnVuY3Rpb24gKCl7XHJcbiAgICAgICAgcmV0dXJuIE9wdHMuZGF0YXRhYmxlQWRkUm93Vmlld0J1dHRvbihhcmd1bWVudHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhdGFibGVBZGRSb3dBdHRhY2htZW50QnV0dG9uPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzLmRhdGF0YWJsZUFkZFJvd0F0dGFjaG1lbnRCdXR0b24oYXJndW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFmdGVyTG9hZE1haW5Db250ZW50PWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzLmFmdGVyTG9hZE1haW5Db250ZW50KGFyZ3VtZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhdGFibGVBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzLmRhdGF0YWJsZUFjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2soYXJndW1lbnRzKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjaz1mdW5jdGlvbiAoKXtcclxuICAgICAgICByZXR1cm4gT3B0cy5kYXRhdGFibGVSb3dBY3Rpb25CdXR0b25DbGlja0NhbGxCYWNrKGFyZ3VtZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhdGFibGVBZGRSb3dBY3Rpb249ZnVuY3Rpb24gKENTU1NlbGVjdG9yKXtcclxuICAgICAgICBpZighQ1NTU2VsZWN0b3Ipe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoQ1NTU2VsZWN0b3IrJyB0ciBidXR0b24nKS5vZmYoJ2NsaWNrJyk7XHJcbiAgICAgICAgJChDU1NTZWxlY3RvcisnIHRyIGJ1dHRvbicpLm9uKCdjbGljaycsQVBQLmRhdGF0YWJsZVJvd0FjdGlvbkJ1dHRvbkNsaWNrQ2FsbEJhY2sgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGF0YWJsZUN1c3RvbUhlYWRCdXR0b25DbGlja0NhbGxCYWNrPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIHJldHVybiBPcHRzLmRhdGF0YWJsZUN1c3RvbUhlYWRCdXR0b25DbGlja0NhbGxCYWNrKGFyZ3VtZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICAqIFB1YmxpYyBtZXRob2RcclxuICAgICAqIENhbiBiZSBjYWxsZWQgb3V0c2lkZSBjbGFzc1xyXG4gICAgICovXHJcbiAgICB0aGlzLm15UHVibGljTWV0aG9kID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKE9wdHMpO1xyXG5cclxuICAgICAgICBteVByaXZhdGVNZXRob2QoKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZXRBcGlUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgIHJvb3QuQXBpVG9rZW49dG9rZW47XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZ2V0QXBpVG9rZW4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHJvb3QuQXBpVG9rZW47XHJcbiAgICB9O1xyXG5cclxuICAgIC8qXHJcbiAgICAgKiBQcml2YXRlIG1ldGhvZFxyXG4gICAgICogQ2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBjbGFzc1xyXG4gICAgICovXHJcbiAgICBjb25zdCBteVByaXZhdGVNZXRob2QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2FjY2Vzc2VkIHByaXZhdGUgbWV0aG9kJyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGl0ZW1OYW1lXHJcbiAgICAgKi9cclxuICAgIHRoaXMuc2V0QWN0aXZlTmF2QmFySXRlbT1mdW5jdGlvbihpdGVtTmFtZSl7XHJcbiAgICAgICAgJCgnLnNwZWVkQnV0dG9uTmF2QmFyIGxpJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7XHJcbiAgICAgICAgJCgnLnNwZWVkQnV0dG9uTmF2QmFyIGxpLmljb25ob2xkZXJNb2R1bCcraXRlbU5hbWUpLmFkZENsYXNzKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2V0QWN0aXZlTmF2QmFySXRlbT1mdW5jdGlvbigpe1xyXG4gICAgICByZXR1cm4gJCgnLnNwZWVkQnV0dG9uTmF2QmFyIC5zZWxlY3RlZCcpLmZpbmQoJ2EnKS5kYXRhKCduYW1lJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGVhckFyY2hpdmVNb2R1bGVEYXRhVGFibGVTdGF0ZT1mdW5jdGlvbigpe1xyXG4gICAgICAgIGlmKEFQUC5PcmRlckFyY2hpdmVNb2R1bGUhPXVuZGVmaW5lZCApe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQVBQLk9yZGVyQXJjaGl2ZU1vZHVsZScpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NsZWFyJyk7XHJcbiAgICAgICAgICAgICAgICBBUFAuT3JkZXJBcmNoaXZlTW9kdWxlLmRhdGFUYWJsZS5zdGF0ZS5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLm5hdkJhckl0ZW1CZWZvcmVwb3N0PWZ1bmN0aW9uICgpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCduYXZCYXJJdGVtQmVmb3JlcG9zdCcpO1xyXG4gICAgICAgIGlmKHJvb3QuZ2V0QWN0aXZlTmF2QmFySXRlbSgpIT09J2FjdGl2ZU9yZGVyJyl7XHJcbiAgICAgICAgICAgIHJvb3QuY2xlYXJBcmNoaXZlTW9kdWxlRGF0YVRhYmxlU3RhdGUoKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5hdkJhckl0ZW1BZnRlclBvc3Q9ZnVuY3Rpb24gKCl7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0TmF2QmFyPWZ1bmN0aW9uICgpe1xyXG4gICAgICAgICQoXCIuc3BlZWRCdXR0b25OYXZCYXIgYTpub3QoW2RhdGEtdGFyZ2V0PV9ibGFua10pOm5vdChbZGF0YS1uby1hamF4XSlcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uIChldmVudCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCQodGhpcykuZGF0YSgpLm5hbWUpO1xyXG4gICAgICAgICAgICBpZigkKHRoaXMpLmRhdGEoJ2JpZy1pY29uJykpe1xyXG4gICAgICAgICAgICAgICAgJChcIi5zcGVlZEJ1dHRvbk5hdkJhclwiKS5yZW1vdmVDbGFzcygnc21hbGxpY29ucycpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICQoXCIuc3BlZWRCdXR0b25OYXZCYXJcIikuYWRkQ2xhc3MoJ3NtYWxsaWNvbnMnKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcm9vdC5zZXRBY3RpdmVOYXZCYXJJdGVtKCQodGhpcykuZGF0YSgpLm5hbWUpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICQoXCIuc3BlZWRCdXR0b25OYXZCYXIgYTpub3QoW2RhdGEtdGFyZ2V0PV9ibGFua10pOm5vdChbZGF0YS1uby1hamF4XSlcIikuYWpheGxpbmsoe1xyXG4gICAgICAgICAgICB0YXJnZXQ6JCgnLm1haW5Db250ZW50JyksXHJcbiAgICAgICAgICAgIGFqYXh0eXBlOidHRVQnLFxyXG4gICAgICAgICAgICBhZnRlcnBvc3Q6cm9vdC5uYXZCYXJJdGVtQWZ0ZXJQb3N0LFxyXG4gICAgICAgICAgICBiZWZvcmVwb3N0OnJvb3QubmF2QmFySXRlbUJlZm9yZXBvc3QsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChcIi5zcGVlZEJ1dHRvbk5hdkJhciBhW2RhdGEtdGFyZ2V0PV9ibGFua10sIC5zcGVlZEJ1dHRvbk5hdkJhciBhW2RhdGEtbm8tYWpheF1cIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHJvb3QuY2xlYXJBcmNoaXZlTW9kdWxlRGF0YVRhYmxlU3RhdGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRNYWluQ29udGVudD1mdW5jdGlvbiAodXJsLGRhdGEsY2FsbEJhY2spe1xyXG5cclxuICAgICAgICBpZighY2FsbEJhY2spe1xyXG4gICAgICAgICAgICBjYWxsQmFjaz1yb290LmFmdGVyTG9hZE1haW5Db250ZW50O1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygndmFuIGNhbGxiYWNrJyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNhbGxCYWNrKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJCgnLm1haW5Db250ZW50JykubG9hZChcclxuICAgICAgICAgICAgdXJsLGRhdGEsY2FsbEJhY2tcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgLypcclxuICAgICAqIFBhc3Mgb3B0aW9ucyB3aGVuIGNsYXNzIGluc3RhbnRpYXRlZFxyXG4gICAgICovXHJcbiAgICB0aGlzLmNvbnN0cnVjdChvcHRpb25zKTtcclxufTtcclxuXHJcblxyXG4vKlxyXG4kLmZuLmFqYXhsaW5rID0gZnVuY3Rpb24ob3B0aW9ucyl7XHJcblxyXG59O1xyXG5pbXBvcnQgJy4vYWpheExpbmsnO1xyXG5cclxuKiAqL1xyXG53aW5kb3cuQVBQPXt9O1xyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKXtcclxuICAgIGNvbnNvbGUubG9nKCdyZWFkeSBkb2MnKTtcclxuICAgIC8vJCgnLmRhdGVwaWNrZXInKS5kYXRlcGlja2VyKCk7XHJcbiAgICBNdXN0YWNoZS50YWdzID0gWyAnW1snLCAnXV0nIF07XHJcbiAgICAvLyA9IFsgJzwlJywgJyU+JyBdO1xyXG5cclxufSk7XHJcblxyXG5cclxuXHJcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwid2luZG93IiwiZ2V0TW9uZGF5IiwiZGF0ZSIsImRhdGVTdHIiLCJEYXRlIiwiZGF5IiwiZ2V0RGF5IiwiZGlmZiIsImdldERhdGUiLCJzZXREYXRlIiwiZGVidWciLCJ0eHQiLCJjb25zb2xlIiwibG9nIiwiZSIsImJ1aWxkRm9ybURhdGEiLCJmb3JtRGF0YSIsImRhdGEiLCJwYXJlbnRLZXkiLCJfdHlwZW9mIiwiRmlsZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiY29uY2F0IiwidmFsdWUiLCJhcHBlbmQiLCJqc29uVG9Gb3JtRGF0YSIsIkZvcm1EYXRhIiwiU3RyaW5nIiwicHJvdG90eXBlIiwiY2FwaXRhbGl6ZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJhcnJheVJlbW92ZSIsImFyciIsImZpbHRlciIsImVsZSIsImdldFJhbmRvbUludCIsIm1heCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJtaW4iLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJzZXRJbWFnZUZyb21Mb2NhbCIsImlucHV0IiwidGFyZ2V0SW1nQ3NzU2VsZWN0b3IiLCJmaWxlcyIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCIkIiwiYXR0ciIsInRhcmdldCIsInJlc3VsdCIsInJlYWRBc0RhdGFVUkwiLCJoaXN0b3J5IiwicHVzaFN0YXRlIiwibG9jYXRpb24iLCJocmVmIiwib24iLCJldmVudCIsImRvY3VtZW50IiwidGl0bGUiLCJzdG9wUHJvcGFnYXRpb24iLCJpbml0UmFkaW9CdXR0b25zIiwiT3B0aW9ucyIsIk9wdHMiLCJvbkNoYW5nZSIsIm5vZGUiLCJleHRlbmQiLCJlYWNoIiwiYWN0aXZlVmFsdWUiLCJwcm9wIiwidW5iaW5kIiwiYmluZCIsInNlbCIsInRvZyIsIm5vdCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJmbiIsImRhdGFUYWJsZSIsImRlZmF1bHRzIiwibGFuZ3VhZ2UiLCJ1cmwiLCJsZW5ndGhNZW51IiwiYnV0dG9ucyIsImRvbSIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIklucHV0bWFzayIsImV4dGVuZERlZmluaXRpb25zIiwidmFsaWRhdG9yIiwiVG9hc3QiLCJlbmFibGVUaW1lcnMiLCJzZWxlY3QyIiwic2V0Iiwic2VsZWN0MkNyZWF0ZVRhZyIsInBhcmFtcyIsInRlcm0iLCJ0cmltIiwiY291bnQiLCJleGlzdHNWYXIiLCJ0ZXh0IiwiaWQiLCJuZXdUYWciLCJhamF4RXJyb3JIYW5kbGVyIiwieGhyIiwiYWpheE9wdGlvbnMiLCJ0aHJvd25FcnJvciIsImVycm9yIiwicmVzcG9uc2VKU09OIiwiYWpheEVycm9yRmllbGRIYW5kbGVyIiwiZXJyb3JzIiwiYWpheEVycm9yRmllbGRIYW5kbGVySnNvbkFQSSIsImVycm9yX3JlZiIsImNyZWF0ZSIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJUT0FTVF9TVEFUVVMiLCJEQU5HRVIiLCJ0aW1lb3V0IiwiY29udGFpbmVyIiwidG9hc3RCb2R5SHRtbCIsInRvYXN0VGl0bGUiLCJpbmRleCIsImRldGFpbCIsImFqYXhTZXR1cCIsImRhdGVwaWNrZXIiLCJfdXBkYXRlRGF0ZXBpY2tlcl9vcmlnaW5hbCIsIl91cGRhdGVEYXRlcGlja2VyIiwiaW5zdCIsImFmdGVyU2hvdyIsIl9nZXQiLCJhcHBseSIsIkVtZWdyZW5kZWxlc0RlZmF1bHRzIiwiZGF0YXRhYmxlQWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayIsImRhdGF0YWJsZUFkZFJvd1RyYXNoQnV0dG9uIiwiYXJncyIsImRhdGF0YWJsZUFkZFJvd0VkaXRCdXR0b24iLCJkYXRhdGFibGVBZGRSb3dWaWV3QnV0dG9uIiwiZGF0YXRhYmxlQWRkUm93QXR0YWNobWVudEJ1dHRvbiIsImRhdGF0YWJsZUN1c3RvbUhlYWRCdXR0b25DbGlja0NhbGxCYWNrIiwiYWZ0ZXJMb2FkTWFpbkNvbnRlbnQiLCJEYXRhTW9kZWwiLCJfRGF0YU1vZGVsMiIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydHkiLCJhY3RpdmUiLCJfY3JlYXRlQ2xhc3MiLCJzZXREYXRhIiwiZ2V0RGF0YSIsIkVtZWdyZW5kZWxlcyIsIm15VmFyIiwiZGF0YXRhYmxlUm93QWN0aW9uQnV0dG9uQ2xpY2tDYWxsQmFjayIsIlVybCIsIlB1YmxpY1ZhciIsIlB1YmxpY1ZhcjIiLCJBcGlUb2tlbiIsInJvb3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJzZXRPcHRzIiwiZ2V0T3B0cyIsImRhdGF0YWJsZUFkZFJvd0FjdGlvbiIsIkNTU1NlbGVjdG9yIiwib2ZmIiwiQVBQIiwibXlQdWJsaWNNZXRob2QiLCJteVByaXZhdGVNZXRob2QiLCJzZXRBcGlUb2tlbiIsInRva2VuIiwiZ2V0QXBpVG9rZW4iLCJzZXRBY3RpdmVOYXZCYXJJdGVtIiwiaXRlbU5hbWUiLCJnZXRBY3RpdmVOYXZCYXJJdGVtIiwiZmluZCIsImNsZWFyQXJjaGl2ZU1vZHVsZURhdGFUYWJsZVN0YXRlIiwiT3JkZXJBcmNoaXZlTW9kdWxlIiwic3RhdGUiLCJjbGVhciIsIm5hdkJhckl0ZW1CZWZvcmVwb3N0IiwibmF2QmFySXRlbUFmdGVyUG9zdCIsImluaXROYXZCYXIiLCJwcmV2ZW50RGVmYXVsdCIsImFqYXhsaW5rIiwiYWpheHR5cGUiLCJhZnRlcnBvc3QiLCJiZWZvcmVwb3N0IiwibG9hZE1haW5Db250ZW50IiwiY2FsbEJhY2siLCJsb2FkIiwicmVhZHkiLCJNdXN0YWNoZSIsInRhZ3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/app.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/bootstrap.js" +/*!***********************************!*\ + !*** ./resources/js/bootstrap.js ***! + \***********************************/ +(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +eval("{window._ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n\n/**\r\n * We'll load the axios HTTP library which allows us to easily issue requests\r\n * to our Laravel back-end. This library automatically handles sending the\r\n * CSRF token as a header based on the value of the \"XSRF\" token cookie.\r\n */\n\nwindow.axios = __webpack_require__(/*! axios */ \"./node_modules/axios/dist/browser/axios.cjs\");\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n/**\r\n * Echo exposes an expressive API for subscribing to channels and listening\r\n * for events that are broadcast by Laravel. Echo and event broadcasting\r\n * allows your team to easily build robust real-time web applications.\r\n */\n\n// import Echo from 'laravel-echo';\n\n// window.Pusher = require('pusher-js');\n\n// window.Echo = new Echo({\n// broadcaster: 'pusher',\n// key: process.env.MIX_PUSHER_APP_KEY,\n// cluster: process.env.MIX_PUSHER_APP_CLUSTER,\n// forceTLS: true\n// });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzIiwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLENBQUMsR0FBR0MsbUJBQU8sQ0FBQywrQ0FBUSxDQUFDOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBRixNQUFNLENBQUNHLEtBQUssR0FBR0QsbUJBQU8sQ0FBQywwREFBTyxDQUFDO0FBRS9CRixNQUFNLENBQUNHLEtBQUssQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLENBQUNDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGdCQUFnQjs7QUFFM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzZkZTciXSwic291cmNlc0NvbnRlbnQiOlsid2luZG93Ll8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcclxuXHJcbi8qKlxyXG4gKiBXZSdsbCBsb2FkIHRoZSBheGlvcyBIVFRQIGxpYnJhcnkgd2hpY2ggYWxsb3dzIHVzIHRvIGVhc2lseSBpc3N1ZSByZXF1ZXN0c1xyXG4gKiB0byBvdXIgTGFyYXZlbCBiYWNrLWVuZC4gVGhpcyBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzZW5kaW5nIHRoZVxyXG4gKiBDU1JGIHRva2VuIGFzIGEgaGVhZGVyIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGUgXCJYU1JGXCIgdG9rZW4gY29va2llLlxyXG4gKi9cclxuXHJcbndpbmRvdy5heGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7XHJcblxyXG53aW5kb3cuYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtUmVxdWVzdGVkLVdpdGgnXSA9ICdYTUxIdHRwUmVxdWVzdCc7XHJcblxyXG4vKipcclxuICogRWNobyBleHBvc2VzIGFuIGV4cHJlc3NpdmUgQVBJIGZvciBzdWJzY3JpYmluZyB0byBjaGFubmVscyBhbmQgbGlzdGVuaW5nXHJcbiAqIGZvciBldmVudHMgdGhhdCBhcmUgYnJvYWRjYXN0IGJ5IExhcmF2ZWwuIEVjaG8gYW5kIGV2ZW50IGJyb2FkY2FzdGluZ1xyXG4gKiBhbGxvd3MgeW91ciB0ZWFtIHRvIGVhc2lseSBidWlsZCByb2J1c3QgcmVhbC10aW1lIHdlYiBhcHBsaWNhdGlvbnMuXHJcbiAqL1xyXG5cclxuLy8gaW1wb3J0IEVjaG8gZnJvbSAnbGFyYXZlbC1lY2hvJztcclxuXHJcbi8vIHdpbmRvdy5QdXNoZXIgPSByZXF1aXJlKCdwdXNoZXItanMnKTtcclxuXHJcbi8vIHdpbmRvdy5FY2hvID0gbmV3IEVjaG8oe1xyXG4vLyAgICAgYnJvYWRjYXN0ZXI6ICdwdXNoZXInLFxyXG4vLyAgICAga2V5OiBwcm9jZXNzLmVudi5NSVhfUFVTSEVSX0FQUF9LRVksXHJcbi8vICAgICBjbHVzdGVyOiBwcm9jZXNzLmVudi5NSVhfUFVTSEVSX0FQUF9DTFVTVEVSLFxyXG4vLyAgICAgZm9yY2VUTFM6IHRydWVcclxuLy8gfSk7XHJcbiJdLCJuYW1lcyI6WyJ3aW5kb3ciLCJfIiwicmVxdWlyZSIsImF4aW9zIiwiZGVmYXVsdHMiLCJoZWFkZXJzIiwiY29tbW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n\n}"); + +/***/ }, + +/***/ "./resources/js/latinise.js" +/*!**********************************!*\ + !*** ./resources/js/latinise.js ***! + \**********************************/ +() { + +eval("{var Latinise = {};\nLatinise.latin_map = {\n \"Á\": \"A\",\n \"Ă\": \"A\",\n \"Ắ\": \"A\",\n \"Ặ\": \"A\",\n \"Ằ\": \"A\",\n \"Ẳ\": \"A\",\n \"Ẵ\": \"A\",\n \"Ǎ\": \"A\",\n \"Â\": \"A\",\n \"Ấ\": \"A\",\n \"Ậ\": \"A\",\n \"Ầ\": \"A\",\n \"Ẩ\": \"A\",\n \"Ẫ\": \"A\",\n \"Ä\": \"A\",\n \"Ǟ\": \"A\",\n \"Ȧ\": \"A\",\n \"Ǡ\": \"A\",\n \"Ạ\": \"A\",\n \"Ȁ\": \"A\",\n \"À\": \"A\",\n \"Ả\": \"A\",\n \"Ȃ\": \"A\",\n \"Ā\": \"A\",\n \"Ą\": \"A\",\n \"Å\": \"A\",\n \"Ǻ\": \"A\",\n \"Ḁ\": \"A\",\n \"Ⱥ\": \"A\",\n \"Ã\": \"A\",\n \"Ꜳ\": \"AA\",\n \"Æ\": \"AE\",\n \"Ǽ\": \"AE\",\n \"Ǣ\": \"AE\",\n \"Ꜵ\": \"AO\",\n \"Ꜷ\": \"AU\",\n \"Ꜹ\": \"AV\",\n \"Ꜻ\": \"AV\",\n \"Ꜽ\": \"AY\",\n \"Ḃ\": \"B\",\n \"Ḅ\": \"B\",\n \"Ɓ\": \"B\",\n \"Ḇ\": \"B\",\n \"Ƀ\": \"B\",\n \"Ƃ\": \"B\",\n \"Ć\": \"C\",\n \"Č\": \"C\",\n \"Ç\": \"C\",\n \"Ḉ\": \"C\",\n \"Ĉ\": \"C\",\n \"Ċ\": \"C\",\n \"Ƈ\": \"C\",\n \"Ȼ\": \"C\",\n \"Ď\": \"D\",\n \"Ḑ\": \"D\",\n \"Ḓ\": \"D\",\n \"Ḋ\": \"D\",\n \"Ḍ\": \"D\",\n \"Ɗ\": \"D\",\n \"Ḏ\": \"D\",\n \"Dz\": \"D\",\n \"Dž\": \"D\",\n \"Đ\": \"D\",\n \"Ƌ\": \"D\",\n \"DZ\": \"DZ\",\n \"DŽ\": \"DZ\",\n \"É\": \"E\",\n \"Ĕ\": \"E\",\n \"Ě\": \"E\",\n \"Ȩ\": \"E\",\n \"Ḝ\": \"E\",\n \"Ê\": \"E\",\n \"Ế\": \"E\",\n \"Ệ\": \"E\",\n \"Ề\": \"E\",\n \"Ể\": \"E\",\n \"Ễ\": \"E\",\n \"Ḙ\": \"E\",\n \"Ë\": \"E\",\n \"Ė\": \"E\",\n \"Ẹ\": \"E\",\n \"Ȅ\": \"E\",\n \"È\": \"E\",\n \"Ẻ\": \"E\",\n \"Ȇ\": \"E\",\n \"Ē\": \"E\",\n \"Ḗ\": \"E\",\n \"Ḕ\": \"E\",\n \"Ę\": \"E\",\n \"Ɇ\": \"E\",\n \"Ẽ\": \"E\",\n \"Ḛ\": \"E\",\n \"Ꝫ\": \"ET\",\n \"Ḟ\": \"F\",\n \"Ƒ\": \"F\",\n \"Ǵ\": \"G\",\n \"Ğ\": \"G\",\n \"Ǧ\": \"G\",\n \"Ģ\": \"G\",\n \"Ĝ\": \"G\",\n \"Ġ\": \"G\",\n \"Ɠ\": \"G\",\n \"Ḡ\": \"G\",\n \"Ǥ\": \"G\",\n \"Ḫ\": \"H\",\n \"Ȟ\": \"H\",\n \"Ḩ\": \"H\",\n \"Ĥ\": \"H\",\n \"Ⱨ\": \"H\",\n \"Ḧ\": \"H\",\n \"Ḣ\": \"H\",\n \"Ḥ\": \"H\",\n \"Ħ\": \"H\",\n \"Í\": \"I\",\n \"Ĭ\": \"I\",\n \"Ǐ\": \"I\",\n \"Î\": \"I\",\n \"Ï\": \"I\",\n \"Ḯ\": \"I\",\n \"İ\": \"I\",\n \"Ị\": \"I\",\n \"Ȉ\": \"I\",\n \"Ì\": \"I\",\n \"Ỉ\": \"I\",\n \"Ȋ\": \"I\",\n \"Ī\": \"I\",\n \"Į\": \"I\",\n \"Ɨ\": \"I\",\n \"Ĩ\": \"I\",\n \"Ḭ\": \"I\",\n \"Ꝺ\": \"D\",\n \"Ꝼ\": \"F\",\n \"Ᵹ\": \"G\",\n \"Ꞃ\": \"R\",\n \"Ꞅ\": \"S\",\n \"Ꞇ\": \"T\",\n \"Ꝭ\": \"IS\",\n \"Ĵ\": \"J\",\n \"Ɉ\": \"J\",\n \"Ḱ\": \"K\",\n \"Ǩ\": \"K\",\n \"Ķ\": \"K\",\n \"Ⱪ\": \"K\",\n \"Ꝃ\": \"K\",\n \"Ḳ\": \"K\",\n \"Ƙ\": \"K\",\n \"Ḵ\": \"K\",\n \"Ꝁ\": \"K\",\n \"Ꝅ\": \"K\",\n \"Ĺ\": \"L\",\n \"Ƚ\": \"L\",\n \"Ľ\": \"L\",\n \"Ļ\": \"L\",\n \"Ḽ\": \"L\",\n \"Ḷ\": \"L\",\n \"Ḹ\": \"L\",\n \"Ⱡ\": \"L\",\n \"Ꝉ\": \"L\",\n \"Ḻ\": \"L\",\n \"Ŀ\": \"L\",\n \"Ɫ\": \"L\",\n \"Lj\": \"L\",\n \"Ł\": \"L\",\n \"LJ\": \"LJ\",\n \"Ḿ\": \"M\",\n \"Ṁ\": \"M\",\n \"Ṃ\": \"M\",\n \"Ɱ\": \"M\",\n \"Ń\": \"N\",\n \"Ň\": \"N\",\n \"Ņ\": \"N\",\n \"Ṋ\": \"N\",\n \"Ṅ\": \"N\",\n \"Ṇ\": \"N\",\n \"Ǹ\": \"N\",\n \"Ɲ\": \"N\",\n \"Ṉ\": \"N\",\n \"Ƞ\": \"N\",\n \"Nj\": \"N\",\n \"Ñ\": \"N\",\n \"NJ\": \"NJ\",\n \"Ó\": \"O\",\n \"Ŏ\": \"O\",\n \"Ǒ\": \"O\",\n \"Ô\": \"O\",\n \"Ố\": \"O\",\n \"Ộ\": \"O\",\n \"Ồ\": \"O\",\n \"Ổ\": \"O\",\n \"Ỗ\": \"O\",\n \"Ö\": \"O\",\n \"Ȫ\": \"O\",\n \"Ȯ\": \"O\",\n \"Ȱ\": \"O\",\n \"Ọ\": \"O\",\n \"Ő\": \"O\",\n \"Ȍ\": \"O\",\n \"Ò\": \"O\",\n \"Ỏ\": \"O\",\n \"Ơ\": \"O\",\n \"Ớ\": \"O\",\n \"Ợ\": \"O\",\n \"Ờ\": \"O\",\n \"Ở\": \"O\",\n \"Ỡ\": \"O\",\n \"Ȏ\": \"O\",\n \"Ꝋ\": \"O\",\n \"Ꝍ\": \"O\",\n \"Ō\": \"O\",\n \"Ṓ\": \"O\",\n \"Ṑ\": \"O\",\n \"Ɵ\": \"O\",\n \"Ǫ\": \"O\",\n \"Ǭ\": \"O\",\n \"Ø\": \"O\",\n \"Ǿ\": \"O\",\n \"Õ\": \"O\",\n \"Ṍ\": \"O\",\n \"Ṏ\": \"O\",\n \"Ȭ\": \"O\",\n \"Ƣ\": \"OI\",\n \"Ꝏ\": \"OO\",\n \"Ɛ\": \"E\",\n \"Ɔ\": \"O\",\n \"Ȣ\": \"OU\",\n \"Ṕ\": \"P\",\n \"Ṗ\": \"P\",\n \"Ꝓ\": \"P\",\n \"Ƥ\": \"P\",\n \"Ꝕ\": \"P\",\n \"Ᵽ\": \"P\",\n \"Ꝑ\": \"P\",\n \"Ꝙ\": \"Q\",\n \"Ꝗ\": \"Q\",\n \"Ŕ\": \"R\",\n \"Ř\": \"R\",\n \"Ŗ\": \"R\",\n \"Ṙ\": \"R\",\n \"Ṛ\": \"R\",\n \"Ṝ\": \"R\",\n \"Ȑ\": \"R\",\n \"Ȓ\": \"R\",\n \"Ṟ\": \"R\",\n \"Ɍ\": \"R\",\n \"Ɽ\": \"R\",\n \"Ꜿ\": \"C\",\n \"Ǝ\": \"E\",\n \"Ś\": \"S\",\n \"Ṥ\": \"S\",\n \"Š\": \"S\",\n \"Ṧ\": \"S\",\n \"Ş\": \"S\",\n \"Ŝ\": \"S\",\n \"Ș\": \"S\",\n \"Ṡ\": \"S\",\n \"Ṣ\": \"S\",\n \"Ṩ\": \"S\",\n \"Ť\": \"T\",\n \"Ţ\": \"T\",\n \"Ṱ\": \"T\",\n \"Ț\": \"T\",\n \"Ⱦ\": \"T\",\n \"Ṫ\": \"T\",\n \"Ṭ\": \"T\",\n \"Ƭ\": \"T\",\n \"Ṯ\": \"T\",\n \"Ʈ\": \"T\",\n \"Ŧ\": \"T\",\n \"Ɐ\": \"A\",\n \"Ꞁ\": \"L\",\n \"Ɯ\": \"M\",\n \"Ʌ\": \"V\",\n \"Ꜩ\": \"TZ\",\n \"Ú\": \"U\",\n \"Ŭ\": \"U\",\n \"Ǔ\": \"U\",\n \"Û\": \"U\",\n \"Ṷ\": \"U\",\n \"Ü\": \"U\",\n \"Ǘ\": \"U\",\n \"Ǚ\": \"U\",\n \"Ǜ\": \"U\",\n \"Ǖ\": \"U\",\n \"Ṳ\": \"U\",\n \"Ụ\": \"U\",\n \"Ű\": \"U\",\n \"Ȕ\": \"U\",\n \"Ù\": \"U\",\n \"Ủ\": \"U\",\n \"Ư\": \"U\",\n \"Ứ\": \"U\",\n \"Ự\": \"U\",\n \"Ừ\": \"U\",\n \"Ử\": \"U\",\n \"Ữ\": \"U\",\n \"Ȗ\": \"U\",\n \"Ū\": \"U\",\n \"Ṻ\": \"U\",\n \"Ų\": \"U\",\n \"Ů\": \"U\",\n \"Ũ\": \"U\",\n \"Ṹ\": \"U\",\n \"Ṵ\": \"U\",\n \"Ꝟ\": \"V\",\n \"Ṿ\": \"V\",\n \"Ʋ\": \"V\",\n \"Ṽ\": \"V\",\n \"Ꝡ\": \"VY\",\n \"Ẃ\": \"W\",\n \"Ŵ\": \"W\",\n \"Ẅ\": \"W\",\n \"Ẇ\": \"W\",\n \"Ẉ\": \"W\",\n \"Ẁ\": \"W\",\n \"Ⱳ\": \"W\",\n \"Ẍ\": \"X\",\n \"Ẋ\": \"X\",\n \"Ý\": \"Y\",\n \"Ŷ\": \"Y\",\n \"Ÿ\": \"Y\",\n \"Ẏ\": \"Y\",\n \"Ỵ\": \"Y\",\n \"Ỳ\": \"Y\",\n \"Ƴ\": \"Y\",\n \"Ỷ\": \"Y\",\n \"Ỿ\": \"Y\",\n \"Ȳ\": \"Y\",\n \"Ɏ\": \"Y\",\n \"Ỹ\": \"Y\",\n \"Ź\": \"Z\",\n \"Ž\": \"Z\",\n \"Ẑ\": \"Z\",\n \"Ⱬ\": \"Z\",\n \"Ż\": \"Z\",\n \"Ẓ\": \"Z\",\n \"Ȥ\": \"Z\",\n \"Ẕ\": \"Z\",\n \"Ƶ\": \"Z\",\n \"IJ\": \"IJ\",\n \"Œ\": \"OE\",\n \"ᴀ\": \"A\",\n \"ᴁ\": \"AE\",\n \"ʙ\": \"B\",\n \"ᴃ\": \"B\",\n \"ᴄ\": \"C\",\n \"ᴅ\": \"D\",\n \"ᴇ\": \"E\",\n \"ꜰ\": \"F\",\n \"ɢ\": \"G\",\n \"ʛ\": \"G\",\n \"ʜ\": \"H\",\n \"ɪ\": \"I\",\n \"ʁ\": \"R\",\n \"ᴊ\": \"J\",\n \"ᴋ\": \"K\",\n \"ʟ\": \"L\",\n \"ᴌ\": \"L\",\n \"ᴍ\": \"M\",\n \"ɴ\": \"N\",\n \"ᴏ\": \"O\",\n \"ɶ\": \"OE\",\n \"ᴐ\": \"O\",\n \"ᴕ\": \"OU\",\n \"ᴘ\": \"P\",\n \"ʀ\": \"R\",\n \"ᴎ\": \"N\",\n \"ᴙ\": \"R\",\n \"ꜱ\": \"S\",\n \"ᴛ\": \"T\",\n \"ⱻ\": \"E\",\n \"ᴚ\": \"R\",\n \"ᴜ\": \"U\",\n \"ᴠ\": \"V\",\n \"ᴡ\": \"W\",\n \"ʏ\": \"Y\",\n \"ᴢ\": \"Z\",\n \"á\": \"a\",\n \"ă\": \"a\",\n \"ắ\": \"a\",\n \"ặ\": \"a\",\n \"ằ\": \"a\",\n \"ẳ\": \"a\",\n \"ẵ\": \"a\",\n \"ǎ\": \"a\",\n \"â\": \"a\",\n \"ấ\": \"a\",\n \"ậ\": \"a\",\n \"ầ\": \"a\",\n \"ẩ\": \"a\",\n \"ẫ\": \"a\",\n \"ä\": \"a\",\n \"ǟ\": \"a\",\n \"ȧ\": \"a\",\n \"ǡ\": \"a\",\n \"ạ\": \"a\",\n \"ȁ\": \"a\",\n \"à\": \"a\",\n \"ả\": \"a\",\n \"ȃ\": \"a\",\n \"ā\": \"a\",\n \"ą\": \"a\",\n \"ᶏ\": \"a\",\n \"ẚ\": \"a\",\n \"å\": \"a\",\n \"ǻ\": \"a\",\n \"ḁ\": \"a\",\n \"ⱥ\": \"a\",\n \"ã\": \"a\",\n \"ꜳ\": \"aa\",\n \"æ\": \"ae\",\n \"ǽ\": \"ae\",\n \"ǣ\": \"ae\",\n \"ꜵ\": \"ao\",\n \"ꜷ\": \"au\",\n \"ꜹ\": \"av\",\n \"ꜻ\": \"av\",\n \"ꜽ\": \"ay\",\n \"ḃ\": \"b\",\n \"ḅ\": \"b\",\n \"ɓ\": \"b\",\n \"ḇ\": \"b\",\n \"ᵬ\": \"b\",\n \"ᶀ\": \"b\",\n \"ƀ\": \"b\",\n \"ƃ\": \"b\",\n \"ɵ\": \"o\",\n \"ć\": \"c\",\n \"č\": \"c\",\n \"ç\": \"c\",\n \"ḉ\": \"c\",\n \"ĉ\": \"c\",\n \"ɕ\": \"c\",\n \"ċ\": \"c\",\n \"ƈ\": \"c\",\n \"ȼ\": \"c\",\n \"ď\": \"d\",\n \"ḑ\": \"d\",\n \"ḓ\": \"d\",\n \"ȡ\": \"d\",\n \"ḋ\": \"d\",\n \"ḍ\": \"d\",\n \"ɗ\": \"d\",\n \"ᶑ\": \"d\",\n \"ḏ\": \"d\",\n \"ᵭ\": \"d\",\n \"ᶁ\": \"d\",\n \"đ\": \"d\",\n \"ɖ\": \"d\",\n \"ƌ\": \"d\",\n \"ı\": \"i\",\n \"ȷ\": \"j\",\n \"ɟ\": \"j\",\n \"ʄ\": \"j\",\n \"dz\": \"dz\",\n \"dž\": \"dz\",\n \"é\": \"e\",\n \"ĕ\": \"e\",\n \"ě\": \"e\",\n \"ȩ\": \"e\",\n \"ḝ\": \"e\",\n \"ê\": \"e\",\n \"ế\": \"e\",\n \"ệ\": \"e\",\n \"ề\": \"e\",\n \"ể\": \"e\",\n \"ễ\": \"e\",\n \"ḙ\": \"e\",\n \"ë\": \"e\",\n \"ė\": \"e\",\n \"ẹ\": \"e\",\n \"ȅ\": \"e\",\n \"è\": \"e\",\n \"ẻ\": \"e\",\n \"ȇ\": \"e\",\n \"ē\": \"e\",\n \"ḗ\": \"e\",\n \"ḕ\": \"e\",\n \"ⱸ\": \"e\",\n \"ę\": \"e\",\n \"ᶒ\": \"e\",\n \"ɇ\": \"e\",\n \"ẽ\": \"e\",\n \"ḛ\": \"e\",\n \"ꝫ\": \"et\",\n \"ḟ\": \"f\",\n \"ƒ\": \"f\",\n \"ᵮ\": \"f\",\n \"ᶂ\": \"f\",\n \"ǵ\": \"g\",\n \"ğ\": \"g\",\n \"ǧ\": \"g\",\n \"ģ\": \"g\",\n \"ĝ\": \"g\",\n \"ġ\": \"g\",\n \"ɠ\": \"g\",\n \"ḡ\": \"g\",\n \"ᶃ\": \"g\",\n \"ǥ\": \"g\",\n \"ḫ\": \"h\",\n \"ȟ\": \"h\",\n \"ḩ\": \"h\",\n \"ĥ\": \"h\",\n \"ⱨ\": \"h\",\n \"ḧ\": \"h\",\n \"ḣ\": \"h\",\n \"ḥ\": \"h\",\n \"ɦ\": \"h\",\n \"ẖ\": \"h\",\n \"ħ\": \"h\",\n \"ƕ\": \"hv\",\n \"í\": \"i\",\n \"ĭ\": \"i\",\n \"ǐ\": \"i\",\n \"î\": \"i\",\n \"ï\": \"i\",\n \"ḯ\": \"i\",\n \"ị\": \"i\",\n \"ȉ\": \"i\",\n \"ì\": \"i\",\n \"ỉ\": \"i\",\n \"ȋ\": \"i\",\n \"ī\": \"i\",\n \"į\": \"i\",\n \"ᶖ\": \"i\",\n \"ɨ\": \"i\",\n \"ĩ\": \"i\",\n \"ḭ\": \"i\",\n \"ꝺ\": \"d\",\n \"ꝼ\": \"f\",\n \"ᵹ\": \"g\",\n \"ꞃ\": \"r\",\n \"ꞅ\": \"s\",\n \"ꞇ\": \"t\",\n \"ꝭ\": \"is\",\n \"ǰ\": \"j\",\n \"ĵ\": \"j\",\n \"ʝ\": \"j\",\n \"ɉ\": \"j\",\n \"ḱ\": \"k\",\n \"ǩ\": \"k\",\n \"ķ\": \"k\",\n \"ⱪ\": \"k\",\n \"ꝃ\": \"k\",\n \"ḳ\": \"k\",\n \"ƙ\": \"k\",\n \"ḵ\": \"k\",\n \"ᶄ\": \"k\",\n \"ꝁ\": \"k\",\n \"ꝅ\": \"k\",\n \"ĺ\": \"l\",\n \"ƚ\": \"l\",\n \"ɬ\": \"l\",\n \"ľ\": \"l\",\n \"ļ\": \"l\",\n \"ḽ\": \"l\",\n \"ȴ\": \"l\",\n \"ḷ\": \"l\",\n \"ḹ\": \"l\",\n \"ⱡ\": \"l\",\n \"ꝉ\": \"l\",\n \"ḻ\": \"l\",\n \"ŀ\": \"l\",\n \"ɫ\": \"l\",\n \"ᶅ\": \"l\",\n \"ɭ\": \"l\",\n \"ł\": \"l\",\n \"lj\": \"lj\",\n \"ſ\": \"s\",\n \"ẜ\": \"s\",\n \"ẛ\": \"s\",\n \"ẝ\": \"s\",\n \"ḿ\": \"m\",\n \"ṁ\": \"m\",\n \"ṃ\": \"m\",\n \"ɱ\": \"m\",\n \"ᵯ\": \"m\",\n \"ᶆ\": \"m\",\n \"ń\": \"n\",\n \"ň\": \"n\",\n \"ņ\": \"n\",\n \"ṋ\": \"n\",\n \"ȵ\": \"n\",\n \"ṅ\": \"n\",\n \"ṇ\": \"n\",\n \"ǹ\": \"n\",\n \"ɲ\": \"n\",\n \"ṉ\": \"n\",\n \"ƞ\": \"n\",\n \"ᵰ\": \"n\",\n \"ᶇ\": \"n\",\n \"ɳ\": \"n\",\n \"ñ\": \"n\",\n \"nj\": \"nj\",\n \"ó\": \"o\",\n \"ŏ\": \"o\",\n \"ǒ\": \"o\",\n \"ô\": \"o\",\n \"ố\": \"o\",\n \"ộ\": \"o\",\n \"ồ\": \"o\",\n \"ổ\": \"o\",\n \"ỗ\": \"o\",\n \"ö\": \"o\",\n \"ȫ\": \"o\",\n \"ȯ\": \"o\",\n \"ȱ\": \"o\",\n \"ọ\": \"o\",\n \"ő\": \"o\",\n \"ȍ\": \"o\",\n \"ò\": \"o\",\n \"ỏ\": \"o\",\n \"ơ\": \"o\",\n \"ớ\": \"o\",\n \"ợ\": \"o\",\n \"ờ\": \"o\",\n \"ở\": \"o\",\n \"ỡ\": \"o\",\n \"ȏ\": \"o\",\n \"ꝋ\": \"o\",\n \"ꝍ\": \"o\",\n \"ⱺ\": \"o\",\n \"ō\": \"o\",\n \"ṓ\": \"o\",\n \"ṑ\": \"o\",\n \"ǫ\": \"o\",\n \"ǭ\": \"o\",\n \"ø\": \"o\",\n \"ǿ\": \"o\",\n \"õ\": \"o\",\n \"ṍ\": \"o\",\n \"ṏ\": \"o\",\n \"ȭ\": \"o\",\n \"ƣ\": \"oi\",\n \"ꝏ\": \"oo\",\n \"ɛ\": \"e\",\n \"ᶓ\": \"e\",\n \"ɔ\": \"o\",\n \"ᶗ\": \"o\",\n \"ȣ\": \"ou\",\n \"ṕ\": \"p\",\n \"ṗ\": \"p\",\n \"ꝓ\": \"p\",\n \"ƥ\": \"p\",\n \"ᵱ\": \"p\",\n \"ᶈ\": \"p\",\n \"ꝕ\": \"p\",\n \"ᵽ\": \"p\",\n \"ꝑ\": \"p\",\n \"ꝙ\": \"q\",\n \"ʠ\": \"q\",\n \"ɋ\": \"q\",\n \"ꝗ\": \"q\",\n \"ŕ\": \"r\",\n \"ř\": \"r\",\n \"ŗ\": \"r\",\n \"ṙ\": \"r\",\n \"ṛ\": \"r\",\n \"ṝ\": \"r\",\n \"ȑ\": \"r\",\n \"ɾ\": \"r\",\n \"ᵳ\": \"r\",\n \"ȓ\": \"r\",\n \"ṟ\": \"r\",\n \"ɼ\": \"r\",\n \"ᵲ\": \"r\",\n \"ᶉ\": \"r\",\n \"ɍ\": \"r\",\n \"ɽ\": \"r\",\n \"ↄ\": \"c\",\n \"ꜿ\": \"c\",\n \"ɘ\": \"e\",\n \"ɿ\": \"r\",\n \"ś\": \"s\",\n \"ṥ\": \"s\",\n \"š\": \"s\",\n \"ṧ\": \"s\",\n \"ş\": \"s\",\n \"ŝ\": \"s\",\n \"ș\": \"s\",\n \"ṡ\": \"s\",\n \"ṣ\": \"s\",\n \"ṩ\": \"s\",\n \"ʂ\": \"s\",\n \"ᵴ\": \"s\",\n \"ᶊ\": \"s\",\n \"ȿ\": \"s\",\n \"ɡ\": \"g\",\n \"ᴑ\": \"o\",\n \"ᴓ\": \"o\",\n \"ᴝ\": \"u\",\n \"ť\": \"t\",\n \"ţ\": \"t\",\n \"ṱ\": \"t\",\n \"ț\": \"t\",\n \"ȶ\": \"t\",\n \"ẗ\": \"t\",\n \"ⱦ\": \"t\",\n \"ṫ\": \"t\",\n \"ṭ\": \"t\",\n \"ƭ\": \"t\",\n \"ṯ\": \"t\",\n \"ᵵ\": \"t\",\n \"ƫ\": \"t\",\n \"ʈ\": \"t\",\n \"ŧ\": \"t\",\n \"ᵺ\": \"th\",\n \"ɐ\": \"a\",\n \"ᴂ\": \"ae\",\n \"ǝ\": \"e\",\n \"ᵷ\": \"g\",\n \"ɥ\": \"h\",\n \"ʮ\": \"h\",\n \"ʯ\": \"h\",\n \"ᴉ\": \"i\",\n \"ʞ\": \"k\",\n \"ꞁ\": \"l\",\n \"ɯ\": \"m\",\n \"ɰ\": \"m\",\n \"ᴔ\": \"oe\",\n \"ɹ\": \"r\",\n \"ɻ\": \"r\",\n \"ɺ\": \"r\",\n \"ⱹ\": \"r\",\n \"ʇ\": \"t\",\n \"ʌ\": \"v\",\n \"ʍ\": \"w\",\n \"ʎ\": \"y\",\n \"ꜩ\": \"tz\",\n \"ú\": \"u\",\n \"ŭ\": \"u\",\n \"ǔ\": \"u\",\n \"û\": \"u\",\n \"ṷ\": \"u\",\n \"ü\": \"u\",\n \"ǘ\": \"u\",\n \"ǚ\": \"u\",\n \"ǜ\": \"u\",\n \"ǖ\": \"u\",\n \"ṳ\": \"u\",\n \"ụ\": \"u\",\n \"ű\": \"u\",\n \"ȕ\": \"u\",\n \"ù\": \"u\",\n \"ủ\": \"u\",\n \"ư\": \"u\",\n \"ứ\": \"u\",\n \"ự\": \"u\",\n \"ừ\": \"u\",\n \"ử\": \"u\",\n \"ữ\": \"u\",\n \"ȗ\": \"u\",\n \"ū\": \"u\",\n \"ṻ\": \"u\",\n \"ų\": \"u\",\n \"ᶙ\": \"u\",\n \"ů\": \"u\",\n \"ũ\": \"u\",\n \"ṹ\": \"u\",\n \"ṵ\": \"u\",\n \"ᵫ\": \"ue\",\n \"ꝸ\": \"um\",\n \"ⱴ\": \"v\",\n \"ꝟ\": \"v\",\n \"ṿ\": \"v\",\n \"ʋ\": \"v\",\n \"ᶌ\": \"v\",\n \"ⱱ\": \"v\",\n \"ṽ\": \"v\",\n \"ꝡ\": \"vy\",\n \"ẃ\": \"w\",\n \"ŵ\": \"w\",\n \"ẅ\": \"w\",\n \"ẇ\": \"w\",\n \"ẉ\": \"w\",\n \"ẁ\": \"w\",\n \"ⱳ\": \"w\",\n \"ẘ\": \"w\",\n \"ẍ\": \"x\",\n \"ẋ\": \"x\",\n \"ᶍ\": \"x\",\n \"ý\": \"y\",\n \"ŷ\": \"y\",\n \"ÿ\": \"y\",\n \"ẏ\": \"y\",\n \"ỵ\": \"y\",\n \"ỳ\": \"y\",\n \"ƴ\": \"y\",\n \"ỷ\": \"y\",\n \"ỿ\": \"y\",\n \"ȳ\": \"y\",\n \"ẙ\": \"y\",\n \"ɏ\": \"y\",\n \"ỹ\": \"y\",\n \"ź\": \"z\",\n \"ž\": \"z\",\n \"ẑ\": \"z\",\n \"ʑ\": \"z\",\n \"ⱬ\": \"z\",\n \"ż\": \"z\",\n \"ẓ\": \"z\",\n \"ȥ\": \"z\",\n \"ẕ\": \"z\",\n \"ᵶ\": \"z\",\n \"ᶎ\": \"z\",\n \"ʐ\": \"z\",\n \"ƶ\": \"z\",\n \"ɀ\": \"z\",\n \"ff\": \"ff\",\n \"ffi\": \"ffi\",\n \"ffl\": \"ffl\",\n \"fi\": \"fi\",\n \"fl\": \"fl\",\n \"ij\": \"ij\",\n \"œ\": \"oe\",\n \"st\": \"st\",\n \"ₐ\": \"a\",\n \"ₑ\": \"e\",\n \"ᵢ\": \"i\",\n \"ⱼ\": \"j\",\n \"ₒ\": \"o\",\n \"ᵣ\": \"r\",\n \"ᵤ\": \"u\",\n \"ᵥ\": \"v\",\n \"ₓ\": \"x\"\n};\nString.prototype.latinise = function () {\n return this.replace(/[^A-Za-z0-9\\[\\] ]/g, function (a) {\n return Latinise.latin_map[a] || a;\n });\n};\nString.prototype.latinize = String.prototype.latinise;\nString.prototype.isLatin = function () {\n return this == this.latinise();\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMYXRpbmlzZSIsImxhdGluX21hcCIsIlN0cmluZyIsInByb3RvdHlwZSIsImxhdGluaXNlIiwicmVwbGFjZSIsImEiLCJsYXRpbml6ZSIsImlzTGF0aW4iXSwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2xhdGluaXNlLmpzP2Y5MzgiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IExhdGluaXNlPXt9O0xhdGluaXNlLmxhdGluX21hcD17XCLDgVwiOlwiQVwiLFxyXG4gICAgXCLEglwiOlwiQVwiLFxyXG4gICAgXCLhuq5cIjpcIkFcIixcclxuICAgIFwi4bq2XCI6XCJBXCIsXHJcbiAgICBcIuG6sFwiOlwiQVwiLFxyXG4gICAgXCLhurJcIjpcIkFcIixcclxuICAgIFwi4bq0XCI6XCJBXCIsXHJcbiAgICBcIseNXCI6XCJBXCIsXHJcbiAgICBcIsOCXCI6XCJBXCIsXHJcbiAgICBcIuG6pFwiOlwiQVwiLFxyXG4gICAgXCLhuqxcIjpcIkFcIixcclxuICAgIFwi4bqmXCI6XCJBXCIsXHJcbiAgICBcIuG6qFwiOlwiQVwiLFxyXG4gICAgXCLhuqpcIjpcIkFcIixcclxuICAgIFwiw4RcIjpcIkFcIixcclxuICAgIFwix55cIjpcIkFcIixcclxuICAgIFwiyKZcIjpcIkFcIixcclxuICAgIFwix6BcIjpcIkFcIixcclxuICAgIFwi4bqgXCI6XCJBXCIsXHJcbiAgICBcIsiAXCI6XCJBXCIsXHJcbiAgICBcIsOAXCI6XCJBXCIsXHJcbiAgICBcIuG6olwiOlwiQVwiLFxyXG4gICAgXCLIglwiOlwiQVwiLFxyXG4gICAgXCLEgFwiOlwiQVwiLFxyXG4gICAgXCLEhFwiOlwiQVwiLFxyXG4gICAgXCLDhVwiOlwiQVwiLFxyXG4gICAgXCLHulwiOlwiQVwiLFxyXG4gICAgXCLhuIBcIjpcIkFcIixcclxuICAgIFwiyLpcIjpcIkFcIixcclxuICAgIFwiw4NcIjpcIkFcIixcclxuICAgIFwi6pyyXCI6XCJBQVwiLFxyXG4gICAgXCLDhlwiOlwiQUVcIixcclxuICAgIFwix7xcIjpcIkFFXCIsXHJcbiAgICBcIseiXCI6XCJBRVwiLFxyXG4gICAgXCLqnLRcIjpcIkFPXCIsXHJcbiAgICBcIuqctlwiOlwiQVVcIixcclxuICAgIFwi6py4XCI6XCJBVlwiLFxyXG4gICAgXCLqnLpcIjpcIkFWXCIsXHJcbiAgICBcIuqcvFwiOlwiQVlcIixcclxuICAgIFwi4biCXCI6XCJCXCIsXHJcbiAgICBcIuG4hFwiOlwiQlwiLFxyXG4gICAgXCLGgVwiOlwiQlwiLFxyXG4gICAgXCLhuIZcIjpcIkJcIixcclxuICAgIFwiyYNcIjpcIkJcIixcclxuICAgIFwixoJcIjpcIkJcIixcclxuICAgIFwixIZcIjpcIkNcIixcclxuICAgIFwixIxcIjpcIkNcIixcclxuICAgIFwiw4dcIjpcIkNcIixcclxuICAgIFwi4biIXCI6XCJDXCIsXHJcbiAgICBcIsSIXCI6XCJDXCIsXHJcbiAgICBcIsSKXCI6XCJDXCIsXHJcbiAgICBcIsaHXCI6XCJDXCIsXHJcbiAgICBcIsi7XCI6XCJDXCIsXHJcbiAgICBcIsSOXCI6XCJEXCIsXHJcbiAgICBcIuG4kFwiOlwiRFwiLFxyXG4gICAgXCLhuJJcIjpcIkRcIixcclxuICAgIFwi4biKXCI6XCJEXCIsXHJcbiAgICBcIuG4jFwiOlwiRFwiLFxyXG4gICAgXCLGilwiOlwiRFwiLFxyXG4gICAgXCLhuI5cIjpcIkRcIixcclxuICAgIFwix7JcIjpcIkRcIixcclxuICAgIFwix4VcIjpcIkRcIixcclxuICAgIFwixJBcIjpcIkRcIixcclxuICAgIFwixotcIjpcIkRcIixcclxuICAgIFwix7FcIjpcIkRaXCIsXHJcbiAgICBcIseEXCI6XCJEWlwiLFxyXG4gICAgXCLDiVwiOlwiRVwiLFxyXG4gICAgXCLElFwiOlwiRVwiLFxyXG4gICAgXCLEmlwiOlwiRVwiLFxyXG4gICAgXCLIqFwiOlwiRVwiLFxyXG4gICAgXCLhuJxcIjpcIkVcIixcclxuICAgIFwiw4pcIjpcIkVcIixcclxuICAgIFwi4bq+XCI6XCJFXCIsXHJcbiAgICBcIuG7hlwiOlwiRVwiLFxyXG4gICAgXCLhu4BcIjpcIkVcIixcclxuICAgIFwi4buCXCI6XCJFXCIsXHJcbiAgICBcIuG7hFwiOlwiRVwiLFxyXG4gICAgXCLhuJhcIjpcIkVcIixcclxuICAgIFwiw4tcIjpcIkVcIixcclxuICAgIFwixJZcIjpcIkVcIixcclxuICAgIFwi4bq4XCI6XCJFXCIsXHJcbiAgICBcIsiEXCI6XCJFXCIsXHJcbiAgICBcIsOIXCI6XCJFXCIsXHJcbiAgICBcIuG6ulwiOlwiRVwiLFxyXG4gICAgXCLIhlwiOlwiRVwiLFxyXG4gICAgXCLEklwiOlwiRVwiLFxyXG4gICAgXCLhuJZcIjpcIkVcIixcclxuICAgIFwi4biUXCI6XCJFXCIsXHJcbiAgICBcIsSYXCI6XCJFXCIsXHJcbiAgICBcIsmGXCI6XCJFXCIsXHJcbiAgICBcIuG6vFwiOlwiRVwiLFxyXG4gICAgXCLhuJpcIjpcIkVcIixcclxuICAgIFwi6p2qXCI6XCJFVFwiLFxyXG4gICAgXCLhuJ5cIjpcIkZcIixcclxuICAgIFwixpFcIjpcIkZcIixcclxuICAgIFwix7RcIjpcIkdcIixcclxuICAgIFwixJ5cIjpcIkdcIixcclxuICAgIFwix6ZcIjpcIkdcIixcclxuICAgIFwixKJcIjpcIkdcIixcclxuICAgIFwixJxcIjpcIkdcIixcclxuICAgIFwixKBcIjpcIkdcIixcclxuICAgIFwixpNcIjpcIkdcIixcclxuICAgIFwi4bigXCI6XCJHXCIsXHJcbiAgICBcIsekXCI6XCJHXCIsXHJcbiAgICBcIuG4qlwiOlwiSFwiLFxyXG4gICAgXCLInlwiOlwiSFwiLFxyXG4gICAgXCLhuKhcIjpcIkhcIixcclxuICAgIFwixKRcIjpcIkhcIixcclxuICAgIFwi4rGnXCI6XCJIXCIsXHJcbiAgICBcIuG4plwiOlwiSFwiLFxyXG4gICAgXCLhuKJcIjpcIkhcIixcclxuICAgIFwi4bikXCI6XCJIXCIsXHJcbiAgICBcIsSmXCI6XCJIXCIsXHJcbiAgICBcIsONXCI6XCJJXCIsXHJcbiAgICBcIsSsXCI6XCJJXCIsXHJcbiAgICBcIsePXCI6XCJJXCIsXHJcbiAgICBcIsOOXCI6XCJJXCIsXHJcbiAgICBcIsOPXCI6XCJJXCIsXHJcbiAgICBcIuG4rlwiOlwiSVwiLFxyXG4gICAgXCLEsFwiOlwiSVwiLFxyXG4gICAgXCLhu4pcIjpcIklcIixcclxuICAgIFwiyIhcIjpcIklcIixcclxuICAgIFwiw4xcIjpcIklcIixcclxuICAgIFwi4buIXCI6XCJJXCIsXHJcbiAgICBcIsiKXCI6XCJJXCIsXHJcbiAgICBcIsSqXCI6XCJJXCIsXHJcbiAgICBcIsSuXCI6XCJJXCIsXHJcbiAgICBcIsaXXCI6XCJJXCIsXHJcbiAgICBcIsSoXCI6XCJJXCIsXHJcbiAgICBcIuG4rFwiOlwiSVwiLFxyXG4gICAgXCLqnblcIjpcIkRcIixcclxuICAgIFwi6p27XCI6XCJGXCIsXHJcbiAgICBcIuqdvVwiOlwiR1wiLFxyXG4gICAgXCLqnoJcIjpcIlJcIixcclxuICAgIFwi6p6EXCI6XCJTXCIsXHJcbiAgICBcIuqehlwiOlwiVFwiLFxyXG4gICAgXCLqnaxcIjpcIklTXCIsXHJcbiAgICBcIsS0XCI6XCJKXCIsXHJcbiAgICBcIsmIXCI6XCJKXCIsXHJcbiAgICBcIuG4sFwiOlwiS1wiLFxyXG4gICAgXCLHqFwiOlwiS1wiLFxyXG4gICAgXCLEtlwiOlwiS1wiLFxyXG4gICAgXCLisalcIjpcIktcIixcclxuICAgIFwi6p2CXCI6XCJLXCIsXHJcbiAgICBcIuG4slwiOlwiS1wiLFxyXG4gICAgXCLGmFwiOlwiS1wiLFxyXG4gICAgXCLhuLRcIjpcIktcIixcclxuICAgIFwi6p2AXCI6XCJLXCIsXHJcbiAgICBcIuqdhFwiOlwiS1wiLFxyXG4gICAgXCLEuVwiOlwiTFwiLFxyXG4gICAgXCLIvVwiOlwiTFwiLFxyXG4gICAgXCLEvVwiOlwiTFwiLFxyXG4gICAgXCLEu1wiOlwiTFwiLFxyXG4gICAgXCLhuLxcIjpcIkxcIixcclxuICAgIFwi4bi2XCI6XCJMXCIsXHJcbiAgICBcIuG4uFwiOlwiTFwiLFxyXG4gICAgXCLisaBcIjpcIkxcIixcclxuICAgIFwi6p2IXCI6XCJMXCIsXHJcbiAgICBcIuG4ulwiOlwiTFwiLFxyXG4gICAgXCLEv1wiOlwiTFwiLFxyXG4gICAgXCLisaJcIjpcIkxcIixcclxuICAgIFwix4hcIjpcIkxcIixcclxuICAgIFwixYFcIjpcIkxcIixcclxuICAgIFwix4dcIjpcIkxKXCIsXHJcbiAgICBcIuG4vlwiOlwiTVwiLFxyXG4gICAgXCLhuYBcIjpcIk1cIixcclxuICAgIFwi4bmCXCI6XCJNXCIsXHJcbiAgICBcIuKxrlwiOlwiTVwiLFxyXG4gICAgXCLFg1wiOlwiTlwiLFxyXG4gICAgXCLFh1wiOlwiTlwiLFxyXG4gICAgXCLFhVwiOlwiTlwiLFxyXG4gICAgXCLhuYpcIjpcIk5cIixcclxuICAgIFwi4bmEXCI6XCJOXCIsXHJcbiAgICBcIuG5hlwiOlwiTlwiLFxyXG4gICAgXCLHuFwiOlwiTlwiLFxyXG4gICAgXCLGnVwiOlwiTlwiLFxyXG4gICAgXCLhuYhcIjpcIk5cIixcclxuICAgIFwiyKBcIjpcIk5cIixcclxuICAgIFwix4tcIjpcIk5cIixcclxuICAgIFwiw5FcIjpcIk5cIixcclxuICAgIFwix4pcIjpcIk5KXCIsXHJcbiAgICBcIsOTXCI6XCJPXCIsXHJcbiAgICBcIsWOXCI6XCJPXCIsXHJcbiAgICBcIseRXCI6XCJPXCIsXHJcbiAgICBcIsOUXCI6XCJPXCIsXHJcbiAgICBcIuG7kFwiOlwiT1wiLFxyXG4gICAgXCLhu5hcIjpcIk9cIixcclxuICAgIFwi4buSXCI6XCJPXCIsXHJcbiAgICBcIuG7lFwiOlwiT1wiLFxyXG4gICAgXCLhu5ZcIjpcIk9cIixcclxuICAgIFwiw5ZcIjpcIk9cIixcclxuICAgIFwiyKpcIjpcIk9cIixcclxuICAgIFwiyK5cIjpcIk9cIixcclxuICAgIFwiyLBcIjpcIk9cIixcclxuICAgIFwi4buMXCI6XCJPXCIsXHJcbiAgICBcIsWQXCI6XCJPXCIsXHJcbiAgICBcIsiMXCI6XCJPXCIsXHJcbiAgICBcIsOSXCI6XCJPXCIsXHJcbiAgICBcIuG7jlwiOlwiT1wiLFxyXG4gICAgXCLGoFwiOlwiT1wiLFxyXG4gICAgXCLhu5pcIjpcIk9cIixcclxuICAgIFwi4buiXCI6XCJPXCIsXHJcbiAgICBcIuG7nFwiOlwiT1wiLFxyXG4gICAgXCLhu55cIjpcIk9cIixcclxuICAgIFwi4bugXCI6XCJPXCIsXHJcbiAgICBcIsiOXCI6XCJPXCIsXHJcbiAgICBcIuqdilwiOlwiT1wiLFxyXG4gICAgXCLqnYxcIjpcIk9cIixcclxuICAgIFwixYxcIjpcIk9cIixcclxuICAgIFwi4bmSXCI6XCJPXCIsXHJcbiAgICBcIuG5kFwiOlwiT1wiLFxyXG4gICAgXCLGn1wiOlwiT1wiLFxyXG4gICAgXCLHqlwiOlwiT1wiLFxyXG4gICAgXCLHrFwiOlwiT1wiLFxyXG4gICAgXCLDmFwiOlwiT1wiLFxyXG4gICAgXCLHvlwiOlwiT1wiLFxyXG4gICAgXCLDlVwiOlwiT1wiLFxyXG4gICAgXCLhuYxcIjpcIk9cIixcclxuICAgIFwi4bmOXCI6XCJPXCIsXHJcbiAgICBcIsisXCI6XCJPXCIsXHJcbiAgICBcIsaiXCI6XCJPSVwiLFxyXG4gICAgXCLqnY5cIjpcIk9PXCIsXHJcbiAgICBcIsaQXCI6XCJFXCIsXHJcbiAgICBcIsaGXCI6XCJPXCIsXHJcbiAgICBcIsiiXCI6XCJPVVwiLFxyXG4gICAgXCLhuZRcIjpcIlBcIixcclxuICAgIFwi4bmWXCI6XCJQXCIsXHJcbiAgICBcIuqdklwiOlwiUFwiLFxyXG4gICAgXCLGpFwiOlwiUFwiLFxyXG4gICAgXCLqnZRcIjpcIlBcIixcclxuICAgIFwi4rGjXCI6XCJQXCIsXHJcbiAgICBcIuqdkFwiOlwiUFwiLFxyXG4gICAgXCLqnZhcIjpcIlFcIixcclxuICAgIFwi6p2WXCI6XCJRXCIsXHJcbiAgICBcIsWUXCI6XCJSXCIsXHJcbiAgICBcIsWYXCI6XCJSXCIsXHJcbiAgICBcIsWWXCI6XCJSXCIsXHJcbiAgICBcIuG5mFwiOlwiUlwiLFxyXG4gICAgXCLhuZpcIjpcIlJcIixcclxuICAgIFwi4bmcXCI6XCJSXCIsXHJcbiAgICBcIsiQXCI6XCJSXCIsXHJcbiAgICBcIsiSXCI6XCJSXCIsXHJcbiAgICBcIuG5nlwiOlwiUlwiLFxyXG4gICAgXCLJjFwiOlwiUlwiLFxyXG4gICAgXCLisaRcIjpcIlJcIixcclxuICAgIFwi6py+XCI6XCJDXCIsXHJcbiAgICBcIsaOXCI6XCJFXCIsXHJcbiAgICBcIsWaXCI6XCJTXCIsXHJcbiAgICBcIuG5pFwiOlwiU1wiLFxyXG4gICAgXCLFoFwiOlwiU1wiLFxyXG4gICAgXCLhuaZcIjpcIlNcIixcclxuICAgIFwixZ5cIjpcIlNcIixcclxuICAgIFwixZxcIjpcIlNcIixcclxuICAgIFwiyJhcIjpcIlNcIixcclxuICAgIFwi4bmgXCI6XCJTXCIsXHJcbiAgICBcIuG5olwiOlwiU1wiLFxyXG4gICAgXCLhuahcIjpcIlNcIixcclxuICAgIFwixaRcIjpcIlRcIixcclxuICAgIFwixaJcIjpcIlRcIixcclxuICAgIFwi4bmwXCI6XCJUXCIsXHJcbiAgICBcIsiaXCI6XCJUXCIsXHJcbiAgICBcIsi+XCI6XCJUXCIsXHJcbiAgICBcIuG5qlwiOlwiVFwiLFxyXG4gICAgXCLhuaxcIjpcIlRcIixcclxuICAgIFwixqxcIjpcIlRcIixcclxuICAgIFwi4bmuXCI6XCJUXCIsXHJcbiAgICBcIsauXCI6XCJUXCIsXHJcbiAgICBcIsWmXCI6XCJUXCIsXHJcbiAgICBcIuKxr1wiOlwiQVwiLFxyXG4gICAgXCLqnoBcIjpcIkxcIixcclxuICAgIFwixpxcIjpcIk1cIixcclxuICAgIFwiyYVcIjpcIlZcIixcclxuICAgIFwi6pyoXCI6XCJUWlwiLFxyXG4gICAgXCLDmlwiOlwiVVwiLFxyXG4gICAgXCLFrFwiOlwiVVwiLFxyXG4gICAgXCLHk1wiOlwiVVwiLFxyXG4gICAgXCLDm1wiOlwiVVwiLFxyXG4gICAgXCLhubZcIjpcIlVcIixcclxuICAgIFwiw5xcIjpcIlVcIixcclxuICAgIFwix5dcIjpcIlVcIixcclxuICAgIFwix5lcIjpcIlVcIixcclxuICAgIFwix5tcIjpcIlVcIixcclxuICAgIFwix5VcIjpcIlVcIixcclxuICAgIFwi4bmyXCI6XCJVXCIsXHJcbiAgICBcIuG7pFwiOlwiVVwiLFxyXG4gICAgXCLFsFwiOlwiVVwiLFxyXG4gICAgXCLIlFwiOlwiVVwiLFxyXG4gICAgXCLDmVwiOlwiVVwiLFxyXG4gICAgXCLhu6ZcIjpcIlVcIixcclxuICAgIFwixq9cIjpcIlVcIixcclxuICAgIFwi4buoXCI6XCJVXCIsXHJcbiAgICBcIuG7sFwiOlwiVVwiLFxyXG4gICAgXCLhu6pcIjpcIlVcIixcclxuICAgIFwi4busXCI6XCJVXCIsXHJcbiAgICBcIuG7rlwiOlwiVVwiLFxyXG4gICAgXCLIllwiOlwiVVwiLFxyXG4gICAgXCLFqlwiOlwiVVwiLFxyXG4gICAgXCLhubpcIjpcIlVcIixcclxuICAgIFwixbJcIjpcIlVcIixcclxuICAgIFwixa5cIjpcIlVcIixcclxuICAgIFwixahcIjpcIlVcIixcclxuICAgIFwi4bm4XCI6XCJVXCIsXHJcbiAgICBcIuG5tFwiOlwiVVwiLFxyXG4gICAgXCLqnZ5cIjpcIlZcIixcclxuICAgIFwi4bm+XCI6XCJWXCIsXHJcbiAgICBcIsayXCI6XCJWXCIsXHJcbiAgICBcIuG5vFwiOlwiVlwiLFxyXG4gICAgXCLqnaBcIjpcIlZZXCIsXHJcbiAgICBcIuG6glwiOlwiV1wiLFxyXG4gICAgXCLFtFwiOlwiV1wiLFxyXG4gICAgXCLhuoRcIjpcIldcIixcclxuICAgIFwi4bqGXCI6XCJXXCIsXHJcbiAgICBcIuG6iFwiOlwiV1wiLFxyXG4gICAgXCLhuoBcIjpcIldcIixcclxuICAgIFwi4rGyXCI6XCJXXCIsXHJcbiAgICBcIuG6jFwiOlwiWFwiLFxyXG4gICAgXCLhuopcIjpcIlhcIixcclxuICAgIFwiw51cIjpcIllcIixcclxuICAgIFwixbZcIjpcIllcIixcclxuICAgIFwixbhcIjpcIllcIixcclxuICAgIFwi4bqOXCI6XCJZXCIsXHJcbiAgICBcIuG7tFwiOlwiWVwiLFxyXG4gICAgXCLhu7JcIjpcIllcIixcclxuICAgIFwixrNcIjpcIllcIixcclxuICAgIFwi4bu2XCI6XCJZXCIsXHJcbiAgICBcIuG7vlwiOlwiWVwiLFxyXG4gICAgXCLIslwiOlwiWVwiLFxyXG4gICAgXCLJjlwiOlwiWVwiLFxyXG4gICAgXCLhu7hcIjpcIllcIixcclxuICAgIFwixblcIjpcIlpcIixcclxuICAgIFwixb1cIjpcIlpcIixcclxuICAgIFwi4bqQXCI6XCJaXCIsXHJcbiAgICBcIuKxq1wiOlwiWlwiLFxyXG4gICAgXCLFu1wiOlwiWlwiLFxyXG4gICAgXCLhupJcIjpcIlpcIixcclxuICAgIFwiyKRcIjpcIlpcIixcclxuICAgIFwi4bqUXCI6XCJaXCIsXHJcbiAgICBcIsa1XCI6XCJaXCIsXHJcbiAgICBcIsSyXCI6XCJJSlwiLFxyXG4gICAgXCLFklwiOlwiT0VcIixcclxuICAgIFwi4bSAXCI6XCJBXCIsXHJcbiAgICBcIuG0gVwiOlwiQUVcIixcclxuICAgIFwiyplcIjpcIkJcIixcclxuICAgIFwi4bSDXCI6XCJCXCIsXHJcbiAgICBcIuG0hFwiOlwiQ1wiLFxyXG4gICAgXCLhtIVcIjpcIkRcIixcclxuICAgIFwi4bSHXCI6XCJFXCIsXHJcbiAgICBcIuqcsFwiOlwiRlwiLFxyXG4gICAgXCLJolwiOlwiR1wiLFxyXG4gICAgXCLKm1wiOlwiR1wiLFxyXG4gICAgXCLKnFwiOlwiSFwiLFxyXG4gICAgXCLJqlwiOlwiSVwiLFxyXG4gICAgXCLKgVwiOlwiUlwiLFxyXG4gICAgXCLhtIpcIjpcIkpcIixcclxuICAgIFwi4bSLXCI6XCJLXCIsXHJcbiAgICBcIsqfXCI6XCJMXCIsXHJcbiAgICBcIuG0jFwiOlwiTFwiLFxyXG4gICAgXCLhtI1cIjpcIk1cIixcclxuICAgIFwiybRcIjpcIk5cIixcclxuICAgIFwi4bSPXCI6XCJPXCIsXHJcbiAgICBcIsm2XCI6XCJPRVwiLFxyXG4gICAgXCLhtJBcIjpcIk9cIixcclxuICAgIFwi4bSVXCI6XCJPVVwiLFxyXG4gICAgXCLhtJhcIjpcIlBcIixcclxuICAgIFwiyoBcIjpcIlJcIixcclxuICAgIFwi4bSOXCI6XCJOXCIsXHJcbiAgICBcIuG0mVwiOlwiUlwiLFxyXG4gICAgXCLqnLFcIjpcIlNcIixcclxuICAgIFwi4bSbXCI6XCJUXCIsXHJcbiAgICBcIuKxu1wiOlwiRVwiLFxyXG4gICAgXCLhtJpcIjpcIlJcIixcclxuICAgIFwi4bScXCI6XCJVXCIsXHJcbiAgICBcIuG0oFwiOlwiVlwiLFxyXG4gICAgXCLhtKFcIjpcIldcIixcclxuICAgIFwiyo9cIjpcIllcIixcclxuICAgIFwi4bSiXCI6XCJaXCIsXHJcbiAgICBcIsOhXCI6XCJhXCIsXHJcbiAgICBcIsSDXCI6XCJhXCIsXHJcbiAgICBcIuG6r1wiOlwiYVwiLFxyXG4gICAgXCLhurdcIjpcImFcIixcclxuICAgIFwi4bqxXCI6XCJhXCIsXHJcbiAgICBcIuG6s1wiOlwiYVwiLFxyXG4gICAgXCLhurVcIjpcImFcIixcclxuICAgIFwix45cIjpcImFcIixcclxuICAgIFwiw6JcIjpcImFcIixcclxuICAgIFwi4bqlXCI6XCJhXCIsXHJcbiAgICBcIuG6rVwiOlwiYVwiLFxyXG4gICAgXCLhuqdcIjpcImFcIixcclxuICAgIFwi4bqpXCI6XCJhXCIsXHJcbiAgICBcIuG6q1wiOlwiYVwiLFxyXG4gICAgXCLDpFwiOlwiYVwiLFxyXG4gICAgXCLHn1wiOlwiYVwiLFxyXG4gICAgXCLIp1wiOlwiYVwiLFxyXG4gICAgXCLHoVwiOlwiYVwiLFxyXG4gICAgXCLhuqFcIjpcImFcIixcclxuICAgIFwiyIFcIjpcImFcIixcclxuICAgIFwiw6BcIjpcImFcIixcclxuICAgIFwi4bqjXCI6XCJhXCIsXHJcbiAgICBcIsiDXCI6XCJhXCIsXHJcbiAgICBcIsSBXCI6XCJhXCIsXHJcbiAgICBcIsSFXCI6XCJhXCIsXHJcbiAgICBcIuG2j1wiOlwiYVwiLFxyXG4gICAgXCLhuppcIjpcImFcIixcclxuICAgIFwiw6VcIjpcImFcIixcclxuICAgIFwix7tcIjpcImFcIixcclxuICAgIFwi4biBXCI6XCJhXCIsXHJcbiAgICBcIuKxpVwiOlwiYVwiLFxyXG4gICAgXCLDo1wiOlwiYVwiLFxyXG4gICAgXCLqnLNcIjpcImFhXCIsXHJcbiAgICBcIsOmXCI6XCJhZVwiLFxyXG4gICAgXCLHvVwiOlwiYWVcIixcclxuICAgIFwix6NcIjpcImFlXCIsXHJcbiAgICBcIuqctVwiOlwiYW9cIixcclxuICAgIFwi6py3XCI6XCJhdVwiLFxyXG4gICAgXCLqnLlcIjpcImF2XCIsXHJcbiAgICBcIuqcu1wiOlwiYXZcIixcclxuICAgIFwi6py9XCI6XCJheVwiLFxyXG4gICAgXCLhuINcIjpcImJcIixcclxuICAgIFwi4biFXCI6XCJiXCIsXHJcbiAgICBcIsmTXCI6XCJiXCIsXHJcbiAgICBcIuG4h1wiOlwiYlwiLFxyXG4gICAgXCLhtaxcIjpcImJcIixcclxuICAgIFwi4baAXCI6XCJiXCIsXHJcbiAgICBcIsaAXCI6XCJiXCIsXHJcbiAgICBcIsaDXCI6XCJiXCIsXHJcbiAgICBcIsm1XCI6XCJvXCIsXHJcbiAgICBcIsSHXCI6XCJjXCIsXHJcbiAgICBcIsSNXCI6XCJjXCIsXHJcbiAgICBcIsOnXCI6XCJjXCIsXHJcbiAgICBcIuG4iVwiOlwiY1wiLFxyXG4gICAgXCLEiVwiOlwiY1wiLFxyXG4gICAgXCLJlVwiOlwiY1wiLFxyXG4gICAgXCLEi1wiOlwiY1wiLFxyXG4gICAgXCLGiFwiOlwiY1wiLFxyXG4gICAgXCLIvFwiOlwiY1wiLFxyXG4gICAgXCLEj1wiOlwiZFwiLFxyXG4gICAgXCLhuJFcIjpcImRcIixcclxuICAgIFwi4biTXCI6XCJkXCIsXHJcbiAgICBcIsihXCI6XCJkXCIsXHJcbiAgICBcIuG4i1wiOlwiZFwiLFxyXG4gICAgXCLhuI1cIjpcImRcIixcclxuICAgIFwiyZdcIjpcImRcIixcclxuICAgIFwi4baRXCI6XCJkXCIsXHJcbiAgICBcIuG4j1wiOlwiZFwiLFxyXG4gICAgXCLhta1cIjpcImRcIixcclxuICAgIFwi4baBXCI6XCJkXCIsXHJcbiAgICBcIsSRXCI6XCJkXCIsXHJcbiAgICBcIsmWXCI6XCJkXCIsXHJcbiAgICBcIsaMXCI6XCJkXCIsXHJcbiAgICBcIsSxXCI6XCJpXCIsXHJcbiAgICBcIsi3XCI6XCJqXCIsXHJcbiAgICBcIsmfXCI6XCJqXCIsXHJcbiAgICBcIsqEXCI6XCJqXCIsXHJcbiAgICBcIsezXCI6XCJkelwiLFxyXG4gICAgXCLHhlwiOlwiZHpcIixcclxuICAgIFwiw6lcIjpcImVcIixcclxuICAgIFwixJVcIjpcImVcIixcclxuICAgIFwixJtcIjpcImVcIixcclxuICAgIFwiyKlcIjpcImVcIixcclxuICAgIFwi4bidXCI6XCJlXCIsXHJcbiAgICBcIsOqXCI6XCJlXCIsXHJcbiAgICBcIuG6v1wiOlwiZVwiLFxyXG4gICAgXCLhu4dcIjpcImVcIixcclxuICAgIFwi4buBXCI6XCJlXCIsXHJcbiAgICBcIuG7g1wiOlwiZVwiLFxyXG4gICAgXCLhu4VcIjpcImVcIixcclxuICAgIFwi4biZXCI6XCJlXCIsXHJcbiAgICBcIsOrXCI6XCJlXCIsXHJcbiAgICBcIsSXXCI6XCJlXCIsXHJcbiAgICBcIuG6uVwiOlwiZVwiLFxyXG4gICAgXCLIhVwiOlwiZVwiLFxyXG4gICAgXCLDqFwiOlwiZVwiLFxyXG4gICAgXCLhurtcIjpcImVcIixcclxuICAgIFwiyIdcIjpcImVcIixcclxuICAgIFwixJNcIjpcImVcIixcclxuICAgIFwi4biXXCI6XCJlXCIsXHJcbiAgICBcIuG4lVwiOlwiZVwiLFxyXG4gICAgXCLisbhcIjpcImVcIixcclxuICAgIFwixJlcIjpcImVcIixcclxuICAgIFwi4baSXCI6XCJlXCIsXHJcbiAgICBcIsmHXCI6XCJlXCIsXHJcbiAgICBcIuG6vVwiOlwiZVwiLFxyXG4gICAgXCLhuJtcIjpcImVcIixcclxuICAgIFwi6p2rXCI6XCJldFwiLFxyXG4gICAgXCLhuJ9cIjpcImZcIixcclxuICAgIFwixpJcIjpcImZcIixcclxuICAgIFwi4bWuXCI6XCJmXCIsXHJcbiAgICBcIuG2glwiOlwiZlwiLFxyXG4gICAgXCLHtVwiOlwiZ1wiLFxyXG4gICAgXCLEn1wiOlwiZ1wiLFxyXG4gICAgXCLHp1wiOlwiZ1wiLFxyXG4gICAgXCLEo1wiOlwiZ1wiLFxyXG4gICAgXCLEnVwiOlwiZ1wiLFxyXG4gICAgXCLEoVwiOlwiZ1wiLFxyXG4gICAgXCLJoFwiOlwiZ1wiLFxyXG4gICAgXCLhuKFcIjpcImdcIixcclxuICAgIFwi4baDXCI6XCJnXCIsXHJcbiAgICBcIselXCI6XCJnXCIsXHJcbiAgICBcIuG4q1wiOlwiaFwiLFxyXG4gICAgXCLIn1wiOlwiaFwiLFxyXG4gICAgXCLhuKlcIjpcImhcIixcclxuICAgIFwixKVcIjpcImhcIixcclxuICAgIFwi4rGoXCI6XCJoXCIsXHJcbiAgICBcIuG4p1wiOlwiaFwiLFxyXG4gICAgXCLhuKNcIjpcImhcIixcclxuICAgIFwi4bilXCI6XCJoXCIsXHJcbiAgICBcIsmmXCI6XCJoXCIsXHJcbiAgICBcIuG6llwiOlwiaFwiLFxyXG4gICAgXCLEp1wiOlwiaFwiLFxyXG4gICAgXCLGlVwiOlwiaHZcIixcclxuICAgIFwiw61cIjpcImlcIixcclxuICAgIFwixK1cIjpcImlcIixcclxuICAgIFwix5BcIjpcImlcIixcclxuICAgIFwiw65cIjpcImlcIixcclxuICAgIFwiw69cIjpcImlcIixcclxuICAgIFwi4bivXCI6XCJpXCIsXHJcbiAgICBcIuG7i1wiOlwiaVwiLFxyXG4gICAgXCLIiVwiOlwiaVwiLFxyXG4gICAgXCLDrFwiOlwiaVwiLFxyXG4gICAgXCLhu4lcIjpcImlcIixcclxuICAgIFwiyItcIjpcImlcIixcclxuICAgIFwixKtcIjpcImlcIixcclxuICAgIFwixK9cIjpcImlcIixcclxuICAgIFwi4baWXCI6XCJpXCIsXHJcbiAgICBcIsmoXCI6XCJpXCIsXHJcbiAgICBcIsSpXCI6XCJpXCIsXHJcbiAgICBcIuG4rVwiOlwiaVwiLFxyXG4gICAgXCLqnbpcIjpcImRcIixcclxuICAgIFwi6p28XCI6XCJmXCIsXHJcbiAgICBcIuG1uVwiOlwiZ1wiLFxyXG4gICAgXCLqnoNcIjpcInJcIixcclxuICAgIFwi6p6FXCI6XCJzXCIsXHJcbiAgICBcIuqeh1wiOlwidFwiLFxyXG4gICAgXCLqna1cIjpcImlzXCIsXHJcbiAgICBcIsewXCI6XCJqXCIsXHJcbiAgICBcIsS1XCI6XCJqXCIsXHJcbiAgICBcIsqdXCI6XCJqXCIsXHJcbiAgICBcIsmJXCI6XCJqXCIsXHJcbiAgICBcIuG4sVwiOlwia1wiLFxyXG4gICAgXCLHqVwiOlwia1wiLFxyXG4gICAgXCLEt1wiOlwia1wiLFxyXG4gICAgXCLisapcIjpcImtcIixcclxuICAgIFwi6p2DXCI6XCJrXCIsXHJcbiAgICBcIuG4s1wiOlwia1wiLFxyXG4gICAgXCLGmVwiOlwia1wiLFxyXG4gICAgXCLhuLVcIjpcImtcIixcclxuICAgIFwi4baEXCI6XCJrXCIsXHJcbiAgICBcIuqdgVwiOlwia1wiLFxyXG4gICAgXCLqnYVcIjpcImtcIixcclxuICAgIFwixLpcIjpcImxcIixcclxuICAgIFwixppcIjpcImxcIixcclxuICAgIFwiyaxcIjpcImxcIixcclxuICAgIFwixL5cIjpcImxcIixcclxuICAgIFwixLxcIjpcImxcIixcclxuICAgIFwi4bi9XCI6XCJsXCIsXHJcbiAgICBcIsi0XCI6XCJsXCIsXHJcbiAgICBcIuG4t1wiOlwibFwiLFxyXG4gICAgXCLhuLlcIjpcImxcIixcclxuICAgIFwi4rGhXCI6XCJsXCIsXHJcbiAgICBcIuqdiVwiOlwibFwiLFxyXG4gICAgXCLhuLtcIjpcImxcIixcclxuICAgIFwixYBcIjpcImxcIixcclxuICAgIFwiyatcIjpcImxcIixcclxuICAgIFwi4baFXCI6XCJsXCIsXHJcbiAgICBcIsmtXCI6XCJsXCIsXHJcbiAgICBcIsWCXCI6XCJsXCIsXHJcbiAgICBcIseJXCI6XCJsalwiLFxyXG4gICAgXCLFv1wiOlwic1wiLFxyXG4gICAgXCLhupxcIjpcInNcIixcclxuICAgIFwi4bqbXCI6XCJzXCIsXHJcbiAgICBcIuG6nVwiOlwic1wiLFxyXG4gICAgXCLhuL9cIjpcIm1cIixcclxuICAgIFwi4bmBXCI6XCJtXCIsXHJcbiAgICBcIuG5g1wiOlwibVwiLFxyXG4gICAgXCLJsVwiOlwibVwiLFxyXG4gICAgXCLhta9cIjpcIm1cIixcclxuICAgIFwi4baGXCI6XCJtXCIsXHJcbiAgICBcIsWEXCI6XCJuXCIsXHJcbiAgICBcIsWIXCI6XCJuXCIsXHJcbiAgICBcIsWGXCI6XCJuXCIsXHJcbiAgICBcIuG5i1wiOlwiblwiLFxyXG4gICAgXCLItVwiOlwiblwiLFxyXG4gICAgXCLhuYVcIjpcIm5cIixcclxuICAgIFwi4bmHXCI6XCJuXCIsXHJcbiAgICBcIse5XCI6XCJuXCIsXHJcbiAgICBcIsmyXCI6XCJuXCIsXHJcbiAgICBcIuG5iVwiOlwiblwiLFxyXG4gICAgXCLGnlwiOlwiblwiLFxyXG4gICAgXCLhtbBcIjpcIm5cIixcclxuICAgIFwi4baHXCI6XCJuXCIsXHJcbiAgICBcIsmzXCI6XCJuXCIsXHJcbiAgICBcIsOxXCI6XCJuXCIsXHJcbiAgICBcIseMXCI6XCJualwiLFxyXG4gICAgXCLDs1wiOlwib1wiLFxyXG4gICAgXCLFj1wiOlwib1wiLFxyXG4gICAgXCLHklwiOlwib1wiLFxyXG4gICAgXCLDtFwiOlwib1wiLFxyXG4gICAgXCLhu5FcIjpcIm9cIixcclxuICAgIFwi4buZXCI6XCJvXCIsXHJcbiAgICBcIuG7k1wiOlwib1wiLFxyXG4gICAgXCLhu5VcIjpcIm9cIixcclxuICAgIFwi4buXXCI6XCJvXCIsXHJcbiAgICBcIsO2XCI6XCJvXCIsXHJcbiAgICBcIsirXCI6XCJvXCIsXHJcbiAgICBcIsivXCI6XCJvXCIsXHJcbiAgICBcIsixXCI6XCJvXCIsXHJcbiAgICBcIuG7jVwiOlwib1wiLFxyXG4gICAgXCLFkVwiOlwib1wiLFxyXG4gICAgXCLIjVwiOlwib1wiLFxyXG4gICAgXCLDslwiOlwib1wiLFxyXG4gICAgXCLhu49cIjpcIm9cIixcclxuICAgIFwixqFcIjpcIm9cIixcclxuICAgIFwi4bubXCI6XCJvXCIsXHJcbiAgICBcIuG7o1wiOlwib1wiLFxyXG4gICAgXCLhu51cIjpcIm9cIixcclxuICAgIFwi4bufXCI6XCJvXCIsXHJcbiAgICBcIuG7oVwiOlwib1wiLFxyXG4gICAgXCLIj1wiOlwib1wiLFxyXG4gICAgXCLqnYtcIjpcIm9cIixcclxuICAgIFwi6p2NXCI6XCJvXCIsXHJcbiAgICBcIuKxulwiOlwib1wiLFxyXG4gICAgXCLFjVwiOlwib1wiLFxyXG4gICAgXCLhuZNcIjpcIm9cIixcclxuICAgIFwi4bmRXCI6XCJvXCIsXHJcbiAgICBcIserXCI6XCJvXCIsXHJcbiAgICBcIsetXCI6XCJvXCIsXHJcbiAgICBcIsO4XCI6XCJvXCIsXHJcbiAgICBcIse/XCI6XCJvXCIsXHJcbiAgICBcIsO1XCI6XCJvXCIsXHJcbiAgICBcIuG5jVwiOlwib1wiLFxyXG4gICAgXCLhuY9cIjpcIm9cIixcclxuICAgIFwiyK1cIjpcIm9cIixcclxuICAgIFwixqNcIjpcIm9pXCIsXHJcbiAgICBcIuqdj1wiOlwib29cIixcclxuICAgIFwiyZtcIjpcImVcIixcclxuICAgIFwi4baTXCI6XCJlXCIsXHJcbiAgICBcIsmUXCI6XCJvXCIsXHJcbiAgICBcIuG2l1wiOlwib1wiLFxyXG4gICAgXCLIo1wiOlwib3VcIixcclxuICAgIFwi4bmVXCI6XCJwXCIsXHJcbiAgICBcIuG5l1wiOlwicFwiLFxyXG4gICAgXCLqnZNcIjpcInBcIixcclxuICAgIFwixqVcIjpcInBcIixcclxuICAgIFwi4bWxXCI6XCJwXCIsXHJcbiAgICBcIuG2iFwiOlwicFwiLFxyXG4gICAgXCLqnZVcIjpcInBcIixcclxuICAgIFwi4bW9XCI6XCJwXCIsXHJcbiAgICBcIuqdkVwiOlwicFwiLFxyXG4gICAgXCLqnZlcIjpcInFcIixcclxuICAgIFwiyqBcIjpcInFcIixcclxuICAgIFwiyYtcIjpcInFcIixcclxuICAgIFwi6p2XXCI6XCJxXCIsXHJcbiAgICBcIsWVXCI6XCJyXCIsXHJcbiAgICBcIsWZXCI6XCJyXCIsXHJcbiAgICBcIsWXXCI6XCJyXCIsXHJcbiAgICBcIuG5mVwiOlwiclwiLFxyXG4gICAgXCLhuZtcIjpcInJcIixcclxuICAgIFwi4bmdXCI6XCJyXCIsXHJcbiAgICBcIsiRXCI6XCJyXCIsXHJcbiAgICBcIsm+XCI6XCJyXCIsXHJcbiAgICBcIuG1s1wiOlwiclwiLFxyXG4gICAgXCLIk1wiOlwiclwiLFxyXG4gICAgXCLhuZ9cIjpcInJcIixcclxuICAgIFwiybxcIjpcInJcIixcclxuICAgIFwi4bWyXCI6XCJyXCIsXHJcbiAgICBcIuG2iVwiOlwiclwiLFxyXG4gICAgXCLJjVwiOlwiclwiLFxyXG4gICAgXCLJvVwiOlwiclwiLFxyXG4gICAgXCLihoRcIjpcImNcIixcclxuICAgIFwi6py/XCI6XCJjXCIsXHJcbiAgICBcIsmYXCI6XCJlXCIsXHJcbiAgICBcIsm/XCI6XCJyXCIsXHJcbiAgICBcIsWbXCI6XCJzXCIsXHJcbiAgICBcIuG5pVwiOlwic1wiLFxyXG4gICAgXCLFoVwiOlwic1wiLFxyXG4gICAgXCLhuadcIjpcInNcIixcclxuICAgIFwixZ9cIjpcInNcIixcclxuICAgIFwixZ1cIjpcInNcIixcclxuICAgIFwiyJlcIjpcInNcIixcclxuICAgIFwi4bmhXCI6XCJzXCIsXHJcbiAgICBcIuG5o1wiOlwic1wiLFxyXG4gICAgXCLhualcIjpcInNcIixcclxuICAgIFwiyoJcIjpcInNcIixcclxuICAgIFwi4bW0XCI6XCJzXCIsXHJcbiAgICBcIuG2ilwiOlwic1wiLFxyXG4gICAgXCLIv1wiOlwic1wiLFxyXG4gICAgXCLJoVwiOlwiZ1wiLFxyXG4gICAgXCLhtJFcIjpcIm9cIixcclxuICAgIFwi4bSTXCI6XCJvXCIsXHJcbiAgICBcIuG0nVwiOlwidVwiLFxyXG4gICAgXCLFpVwiOlwidFwiLFxyXG4gICAgXCLFo1wiOlwidFwiLFxyXG4gICAgXCLhubFcIjpcInRcIixcclxuICAgIFwiyJtcIjpcInRcIixcclxuICAgIFwiyLZcIjpcInRcIixcclxuICAgIFwi4bqXXCI6XCJ0XCIsXHJcbiAgICBcIuKxplwiOlwidFwiLFxyXG4gICAgXCLhuatcIjpcInRcIixcclxuICAgIFwi4bmtXCI6XCJ0XCIsXHJcbiAgICBcIsatXCI6XCJ0XCIsXHJcbiAgICBcIuG5r1wiOlwidFwiLFxyXG4gICAgXCLhtbVcIjpcInRcIixcclxuICAgIFwixqtcIjpcInRcIixcclxuICAgIFwiyohcIjpcInRcIixcclxuICAgIFwixadcIjpcInRcIixcclxuICAgIFwi4bW6XCI6XCJ0aFwiLFxyXG4gICAgXCLJkFwiOlwiYVwiLFxyXG4gICAgXCLhtIJcIjpcImFlXCIsXHJcbiAgICBcIsedXCI6XCJlXCIsXHJcbiAgICBcIuG1t1wiOlwiZ1wiLFxyXG4gICAgXCLJpVwiOlwiaFwiLFxyXG4gICAgXCLKrlwiOlwiaFwiLFxyXG4gICAgXCLKr1wiOlwiaFwiLFxyXG4gICAgXCLhtIlcIjpcImlcIixcclxuICAgIFwiyp5cIjpcImtcIixcclxuICAgIFwi6p6BXCI6XCJsXCIsXHJcbiAgICBcIsmvXCI6XCJtXCIsXHJcbiAgICBcIsmwXCI6XCJtXCIsXHJcbiAgICBcIuG0lFwiOlwib2VcIixcclxuICAgIFwiyblcIjpcInJcIixcclxuICAgIFwiybtcIjpcInJcIixcclxuICAgIFwiybpcIjpcInJcIixcclxuICAgIFwi4rG5XCI6XCJyXCIsXHJcbiAgICBcIsqHXCI6XCJ0XCIsXHJcbiAgICBcIsqMXCI6XCJ2XCIsXHJcbiAgICBcIsqNXCI6XCJ3XCIsXHJcbiAgICBcIsqOXCI6XCJ5XCIsXHJcbiAgICBcIuqcqVwiOlwidHpcIixcclxuICAgIFwiw7pcIjpcInVcIixcclxuICAgIFwixa1cIjpcInVcIixcclxuICAgIFwix5RcIjpcInVcIixcclxuICAgIFwiw7tcIjpcInVcIixcclxuICAgIFwi4bm3XCI6XCJ1XCIsXHJcbiAgICBcIsO8XCI6XCJ1XCIsXHJcbiAgICBcIseYXCI6XCJ1XCIsXHJcbiAgICBcIseaXCI6XCJ1XCIsXHJcbiAgICBcIsecXCI6XCJ1XCIsXHJcbiAgICBcIseWXCI6XCJ1XCIsXHJcbiAgICBcIuG5s1wiOlwidVwiLFxyXG4gICAgXCLhu6VcIjpcInVcIixcclxuICAgIFwixbFcIjpcInVcIixcclxuICAgIFwiyJVcIjpcInVcIixcclxuICAgIFwiw7lcIjpcInVcIixcclxuICAgIFwi4bunXCI6XCJ1XCIsXHJcbiAgICBcIsawXCI6XCJ1XCIsXHJcbiAgICBcIuG7qVwiOlwidVwiLFxyXG4gICAgXCLhu7FcIjpcInVcIixcclxuICAgIFwi4burXCI6XCJ1XCIsXHJcbiAgICBcIuG7rVwiOlwidVwiLFxyXG4gICAgXCLhu69cIjpcInVcIixcclxuICAgIFwiyJdcIjpcInVcIixcclxuICAgIFwixatcIjpcInVcIixcclxuICAgIFwi4bm7XCI6XCJ1XCIsXHJcbiAgICBcIsWzXCI6XCJ1XCIsXHJcbiAgICBcIuG2mVwiOlwidVwiLFxyXG4gICAgXCLFr1wiOlwidVwiLFxyXG4gICAgXCLFqVwiOlwidVwiLFxyXG4gICAgXCLhublcIjpcInVcIixcclxuICAgIFwi4bm1XCI6XCJ1XCIsXHJcbiAgICBcIuG1q1wiOlwidWVcIixcclxuICAgIFwi6p24XCI6XCJ1bVwiLFxyXG4gICAgXCLisbRcIjpcInZcIixcclxuICAgIFwi6p2fXCI6XCJ2XCIsXHJcbiAgICBcIuG5v1wiOlwidlwiLFxyXG4gICAgXCLKi1wiOlwidlwiLFxyXG4gICAgXCLhtoxcIjpcInZcIixcclxuICAgIFwi4rGxXCI6XCJ2XCIsXHJcbiAgICBcIuG5vVwiOlwidlwiLFxyXG4gICAgXCLqnaFcIjpcInZ5XCIsXHJcbiAgICBcIuG6g1wiOlwid1wiLFxyXG4gICAgXCLFtVwiOlwid1wiLFxyXG4gICAgXCLhuoVcIjpcIndcIixcclxuICAgIFwi4bqHXCI6XCJ3XCIsXHJcbiAgICBcIuG6iVwiOlwid1wiLFxyXG4gICAgXCLhuoFcIjpcIndcIixcclxuICAgIFwi4rGzXCI6XCJ3XCIsXHJcbiAgICBcIuG6mFwiOlwid1wiLFxyXG4gICAgXCLhuo1cIjpcInhcIixcclxuICAgIFwi4bqLXCI6XCJ4XCIsXHJcbiAgICBcIuG2jVwiOlwieFwiLFxyXG4gICAgXCLDvVwiOlwieVwiLFxyXG4gICAgXCLFt1wiOlwieVwiLFxyXG4gICAgXCLDv1wiOlwieVwiLFxyXG4gICAgXCLhuo9cIjpcInlcIixcclxuICAgIFwi4bu1XCI6XCJ5XCIsXHJcbiAgICBcIuG7s1wiOlwieVwiLFxyXG4gICAgXCLGtFwiOlwieVwiLFxyXG4gICAgXCLhu7dcIjpcInlcIixcclxuICAgIFwi4bu/XCI6XCJ5XCIsXHJcbiAgICBcIsizXCI6XCJ5XCIsXHJcbiAgICBcIuG6mVwiOlwieVwiLFxyXG4gICAgXCLJj1wiOlwieVwiLFxyXG4gICAgXCLhu7lcIjpcInlcIixcclxuICAgIFwixbpcIjpcInpcIixcclxuICAgIFwixb5cIjpcInpcIixcclxuICAgIFwi4bqRXCI6XCJ6XCIsXHJcbiAgICBcIsqRXCI6XCJ6XCIsXHJcbiAgICBcIuKxrFwiOlwielwiLFxyXG4gICAgXCLFvFwiOlwielwiLFxyXG4gICAgXCLhupNcIjpcInpcIixcclxuICAgIFwiyKVcIjpcInpcIixcclxuICAgIFwi4bqVXCI6XCJ6XCIsXHJcbiAgICBcIuG1tlwiOlwielwiLFxyXG4gICAgXCLhto5cIjpcInpcIixcclxuICAgIFwiypBcIjpcInpcIixcclxuICAgIFwixrZcIjpcInpcIixcclxuICAgIFwiyYBcIjpcInpcIixcclxuICAgIFwi76yAXCI6XCJmZlwiLFxyXG4gICAgXCLvrINcIjpcImZmaVwiLFxyXG4gICAgXCLvrIRcIjpcImZmbFwiLFxyXG4gICAgXCLvrIFcIjpcImZpXCIsXHJcbiAgICBcIu+sglwiOlwiZmxcIixcclxuICAgIFwixLNcIjpcImlqXCIsXHJcbiAgICBcIsWTXCI6XCJvZVwiLFxyXG4gICAgXCLvrIZcIjpcInN0XCIsXHJcbiAgICBcIuKCkFwiOlwiYVwiLFxyXG4gICAgXCLigpFcIjpcImVcIixcclxuICAgIFwi4bWiXCI6XCJpXCIsXHJcbiAgICBcIuKxvFwiOlwialwiLFxyXG4gICAgXCLigpJcIjpcIm9cIixcclxuICAgIFwi4bWjXCI6XCJyXCIsXHJcbiAgICBcIuG1pFwiOlwidVwiLFxyXG4gICAgXCLhtaVcIjpcInZcIixcclxuICAgIFwi4oKTXCI6XCJ4XCJ9O1xyXG5TdHJpbmcucHJvdG90eXBlLmxhdGluaXNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwbGFjZSgvW15BLVphLXowLTlcXFtcXF0gXS9nLGZ1bmN0aW9uKGEpe3JldHVybiBMYXRpbmlzZS5sYXRpbl9tYXBbYV18fGF9KX07XHJcblN0cmluZy5wcm90b3R5cGUubGF0aW5pemU9U3RyaW5nLnByb3RvdHlwZS5sYXRpbmlzZTtcclxuU3RyaW5nLnByb3RvdHlwZS5pc0xhdGluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PXRoaXMubGF0aW5pc2UoKX1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxRQUFRLEdBQUMsQ0FBQyxDQUFDO0FBQUNBLFFBQVEsQ0FBQ0MsU0FBUyxHQUFDO0VBQUMsR0FBRyxFQUFDLEdBQUc7RUFDdkMsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLEtBQUs7RUFDVCxHQUFHLEVBQUMsS0FBSztFQUNULEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsSUFBSTtFQUNSLEdBQUcsRUFBQyxJQUFJO0VBQ1IsR0FBRyxFQUFDLElBQUk7RUFDUixHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDLEdBQUc7RUFDUCxHQUFHLEVBQUMsR0FBRztFQUNQLEdBQUcsRUFBQyxHQUFHO0VBQ1AsR0FBRyxFQUFDO0FBQUcsQ0FBQztBQUNaQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsUUFBUSxHQUFDLFlBQVU7RUFBQyxPQUFPLElBQUksQ0FBQ0MsT0FBTyxDQUFDLG9CQUFvQixFQUFDLFVBQVNDLENBQUMsRUFBQztJQUFDLE9BQU9OLFFBQVEsQ0FBQ0MsU0FBUyxDQUFDSyxDQUFDLENBQUMsSUFBRUEsQ0FBQztFQUFBLENBQUMsQ0FBQztBQUFBLENBQUM7QUFDNUhKLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDSSxRQUFRLEdBQUNMLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxRQUFRO0FBQ25ERixNQUFNLENBQUNDLFNBQVMsQ0FBQ0ssT0FBTyxHQUFDLFlBQVU7RUFBQyxPQUFPLElBQUksSUFBRSxJQUFJLENBQUNKLFFBQVEsQ0FBQyxDQUFDO0FBQUEsQ0FBQyIsImlnbm9yZUxpc3QiOltdLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbGF0aW5pc2UuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/latinise.js\n\n}"); + +/***/ }, + +/***/ "./node_modules/base64-js/index.js" +/*!*****************************************!*\ + !*** ./node_modules/base64-js/index.js ***! + \*****************************************/ +(__unused_webpack_module, exports) { + +"use strict"; +eval("{\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaLGtCQUFrQjtBQUNsQixtQkFBbUI7QUFDbkIscUJBQXFCOztBQUVyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsU0FBUztBQUM1QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFjLFNBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkNBQTJDLFVBQVU7QUFDckQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvaW5kZXguanM/Mzc3MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuZXhwb3J0cy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuZXhwb3J0cy50b0J5dGVBcnJheSA9IHRvQnl0ZUFycmF5XG5leHBvcnRzLmZyb21CeXRlQXJyYXkgPSBmcm9tQnl0ZUFycmF5XG5cbnZhciBsb29rdXAgPSBbXVxudmFyIHJldkxvb2t1cCA9IFtdXG52YXIgQXJyID0gdHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnID8gVWludDhBcnJheSA6IEFycmF5XG5cbnZhciBjb2RlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nXG5mb3IgKHZhciBpID0gMCwgbGVuID0gY29kZS5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICBsb29rdXBbaV0gPSBjb2RlW2ldXG4gIHJldkxvb2t1cFtjb2RlLmNoYXJDb2RlQXQoaSldID0gaVxufVxuXG4vLyBTdXBwb3J0IGRlY29kaW5nIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmdzLCBhcyBOb2RlLmpzIGRvZXMuXG4vLyBTZWU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Jhc2U2NCNVUkxfYXBwbGljYXRpb25zXG5yZXZMb29rdXBbJy0nLmNoYXJDb2RlQXQoMCldID0gNjJcbnJldkxvb2t1cFsnXycuY2hhckNvZGVBdCgwKV0gPSA2M1xuXG5mdW5jdGlvbiBnZXRMZW5zIChiNjQpIHtcbiAgdmFyIGxlbiA9IGI2NC5sZW5ndGhcblxuICBpZiAobGVuICUgNCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuICB9XG5cbiAgLy8gVHJpbSBvZmYgZXh0cmEgYnl0ZXMgYWZ0ZXIgcGxhY2Vob2xkZXIgYnl0ZXMgYXJlIGZvdW5kXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JlYXRnYW1taXQvYmFzZTY0LWpzL2lzc3Vlcy80MlxuICB2YXIgdmFsaWRMZW4gPSBiNjQuaW5kZXhPZignPScpXG4gIGlmICh2YWxpZExlbiA9PT0gLTEpIHZhbGlkTGVuID0gbGVuXG5cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IHZhbGlkTGVuID09PSBsZW5cbiAgICA/IDBcbiAgICA6IDQgLSAodmFsaWRMZW4gJSA0KVxuXG4gIHJldHVybiBbdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbl1cbn1cblxuLy8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChiNjQpIHtcbiAgdmFyIGxlbnMgPSBnZXRMZW5zKGI2NClcbiAgdmFyIHZhbGlkTGVuID0gbGVuc1swXVxuICB2YXIgcGxhY2VIb2xkZXJzTGVuID0gbGVuc1sxXVxuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gX2J5dGVMZW5ndGggKGI2NCwgdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbikge1xuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gdG9CeXRlQXJyYXkgKGI2NCkge1xuICB2YXIgdG1wXG4gIHZhciBsZW5zID0gZ2V0TGVucyhiNjQpXG4gIHZhciB2YWxpZExlbiA9IGxlbnNbMF1cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IGxlbnNbMV1cblxuICB2YXIgYXJyID0gbmV3IEFycihfYnl0ZUxlbmd0aChiNjQsIHZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW4pKVxuXG4gIHZhciBjdXJCeXRlID0gMFxuXG4gIC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcbiAgdmFyIGxlbiA9IHBsYWNlSG9sZGVyc0xlbiA+IDBcbiAgICA/IHZhbGlkTGVuIC0gNFxuICAgIDogdmFsaWRMZW5cblxuICB2YXIgaVxuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICB0bXAgPVxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTgpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCAxMikgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildIDw8IDYpIHxcbiAgICAgIHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMyldXG4gICAgYXJyW2N1ckJ5dGUrK10gPSAodG1wID4+IDE2KSAmIDB4RkZcbiAgICBhcnJbY3VyQnl0ZSsrXSA9ICh0bXAgPj4gOCkgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSB0bXAgJiAweEZGXG4gIH1cblxuICBpZiAocGxhY2VIb2xkZXJzTGVuID09PSAyKSB7XG4gICAgdG1wID1cbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDIpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA+PiA0KVxuICAgIGFycltjdXJCeXRlKytdID0gdG1wICYgMHhGRlxuICB9XG5cbiAgaWYgKHBsYWNlSG9sZGVyc0xlbiA9PT0gMSkge1xuICAgIHRtcCA9XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAxMCkgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldIDw8IDQpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA+PiAyKVxuICAgIGFycltjdXJCeXRlKytdID0gKHRtcCA+PiA4KSAmIDB4RkZcbiAgICBhcnJbY3VyQnl0ZSsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcbiAgcmV0dXJuIGxvb2t1cFtudW0gPj4gMTggJiAweDNGXSArXG4gICAgbG9va3VwW251bSA+PiAxMiAmIDB4M0ZdICtcbiAgICBsb29rdXBbbnVtID4+IDYgJiAweDNGXSArXG4gICAgbG9va3VwW251bSAmIDB4M0ZdXG59XG5cbmZ1bmN0aW9uIGVuY29kZUNodW5rICh1aW50OCwgc3RhcnQsIGVuZCkge1xuICB2YXIgdG1wXG4gIHZhciBvdXRwdXQgPSBbXVxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gMykge1xuICAgIHRtcCA9XG4gICAgICAoKHVpbnQ4W2ldIDw8IDE2KSAmIDB4RkYwMDAwKSArXG4gICAgICAoKHVpbnQ4W2kgKyAxXSA8PCA4KSAmIDB4RkYwMCkgK1xuICAgICAgKHVpbnQ4W2kgKyAyXSAmIDB4RkYpXG4gICAgb3V0cHV0LnB1c2godHJpcGxldFRvQmFzZTY0KHRtcCkpXG4gIH1cbiAgcmV0dXJuIG91dHB1dC5qb2luKCcnKVxufVxuXG5mdW5jdGlvbiBmcm9tQnl0ZUFycmF5ICh1aW50OCkge1xuICB2YXIgdG1wXG4gIHZhciBsZW4gPSB1aW50OC5sZW5ndGhcbiAgdmFyIGV4dHJhQnl0ZXMgPSBsZW4gJSAzIC8vIGlmIHdlIGhhdmUgMSBieXRlIGxlZnQsIHBhZCAyIGJ5dGVzXG4gIHZhciBwYXJ0cyA9IFtdXG4gIHZhciBtYXhDaHVua0xlbmd0aCA9IDE2MzgzIC8vIG11c3QgYmUgbXVsdGlwbGUgb2YgM1xuXG4gIC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbjIgPSBsZW4gLSBleHRyYUJ5dGVzOyBpIDwgbGVuMjsgaSArPSBtYXhDaHVua0xlbmd0aCkge1xuICAgIHBhcnRzLnB1c2goZW5jb2RlQ2h1bmsodWludDgsIGksIChpICsgbWF4Q2h1bmtMZW5ndGgpID4gbGVuMiA/IGxlbjIgOiAoaSArIG1heENodW5rTGVuZ3RoKSkpXG4gIH1cblxuICAvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG4gIGlmIChleHRyYUJ5dGVzID09PSAxKSB7XG4gICAgdG1wID0gdWludDhbbGVuIC0gMV1cbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgbG9va3VwW3RtcCA+PiAyXSArXG4gICAgICBsb29rdXBbKHRtcCA8PCA0KSAmIDB4M0ZdICtcbiAgICAgICc9PSdcbiAgICApXG4gIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikge1xuICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArIHVpbnQ4W2xlbiAtIDFdXG4gICAgcGFydHMucHVzaChcbiAgICAgIGxvb2t1cFt0bXAgPj4gMTBdICtcbiAgICAgIGxvb2t1cFsodG1wID4+IDQpICYgMHgzRl0gK1xuICAgICAgbG9va3VwWyh0bXAgPDwgMikgJiAweDNGXSArXG4gICAgICAnPSdcbiAgICApXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/base64-js/index.js\n\n}"); + +/***/ }, + +/***/ "./node_modules/buffer/index.js" +/*!**************************************!*\ + !*** ./node_modules/buffer/index.js ***! + \**************************************/ +(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("{/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = __webpack_require__.g.TYPED_ARRAY_SUPPORT !== undefined\n ? __webpack_require__.g.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVZOztBQUVaLGFBQWEsbUJBQU8sQ0FBQyxvREFBVztBQUNoQyxjQUFjLG1CQUFPLENBQUMsZ0RBQVM7QUFDL0IsY0FBYyxtQkFBTyxDQUFDLGdEQUFTOztBQUUvQixjQUFjO0FBQ2Qsa0JBQWtCO0FBQ2xCLHlCQUF5Qjs7QUFFekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIscUJBQU07QUFDbkMsSUFBSSxxQkFBTTtBQUNWOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjs7QUFFbEI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG9EQUFvRDtBQUN6RTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFVBQVU7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLFlBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSx3Q0FBd0MsU0FBUztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaUJBQWlCO0FBQ2pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYyxpQkFBaUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLFNBQVM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixTQUFTO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixTQUFTO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELEVBQUU7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsa0JBQWtCLFNBQVM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLGVBQWU7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsWUFBWTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLFNBQVM7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3REFBd0QsT0FBTztBQUMvRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0RBQXdELE9BQU87QUFDL0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsbUJBQW1CO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLFFBQVE7QUFDOUI7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsWUFBWTtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnQkFBZ0I7QUFDbEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLFlBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzPzkwMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cDovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5cbid1c2Ugc3RyaWN0J1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlclxuZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5cbi8qKlxuICogSWYgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYDpcbiAqICAgPT09IHRydWUgICAgVXNlIFVpbnQ4QXJyYXkgaW1wbGVtZW50YXRpb24gKGZhc3Rlc3QpXG4gKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpXG4gKlxuICogQnJvd3NlcnMgdGhhdCBzdXBwb3J0IHR5cGVkIGFycmF5cyBhcmUgSUUgMTArLCBGaXJlZm94IDQrLCBDaHJvbWUgNyssIFNhZmFyaSA1LjErLFxuICogT3BlcmEgMTEuNissIGlPUyA0LjIrLlxuICpcbiAqIER1ZSB0byB2YXJpb3VzIGJyb3dzZXIgYnVncywgc29tZXRpbWVzIHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24gd2lsbCBiZSB1c2VkIGV2ZW5cbiAqIHdoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgdHlwZWQgYXJyYXlzLlxuICpcbiAqIE5vdGU6XG4gKlxuICogICAtIEZpcmVmb3ggNC0yOSBsYWNrcyBzdXBwb3J0IGZvciBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcyxcbiAqICAgICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZlxuICogICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleVxuICogZ2V0IHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHNsb3dlciBidXQgYmVoYXZlcyBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQgIT09IHVuZGVmaW5lZFxuICA/IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gIDogdHlwZWRBcnJheVN1cHBvcnQoKVxuXG4vKlxuICogRXhwb3J0IGtNYXhMZW5ndGggYWZ0ZXIgdHlwZWQgYXJyYXkgc3VwcG9ydCBpcyBkZXRlcm1pbmVkLlxuICovXG5leHBvcnRzLmtNYXhMZW5ndGggPSBrTWF4TGVuZ3RoKClcblxuZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQgKCkge1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheSgxKVxuICAgIGFyci5fX3Byb3RvX18gPSB7X19wcm90b19fOiBVaW50OEFycmF5LnByb3RvdHlwZSwgZm9vOiBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9fVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIGFyci5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlciAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChrTWF4TGVuZ3RoKCkgPCBsZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCB0eXBlZCBhcnJheSBsZW5ndGgnKVxuICB9XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgdGhhdC5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzc1xuICAgIGlmICh0aGF0ID09PSBudWxsKSB7XG4gICAgICB0aGF0ID0gbmV3IEJ1ZmZlcihsZW5ndGgpXG4gICAgfVxuICAgIHRoYXQubGVuZ3RoID0gbGVuZ3RoXG4gIH1cblxuICByZXR1cm4gdGhhdFxufVxuXG4vKipcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgaGF2ZSB0aGVpclxuICogcHJvdG90eXBlIGNoYW5nZWQgdG8gYEJ1ZmZlci5wcm90b3R5cGVgLiBGdXJ0aGVybW9yZSwgYEJ1ZmZlcmAgaXMgYSBzdWJjbGFzcyBvZlxuICogYFVpbnQ4QXJyYXlgLCBzbyB0aGUgcmV0dXJuZWQgaW5zdGFuY2VzIHdpbGwgaGF2ZSBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgbWV0aG9kc1xuICogYW5kIHRoZSBgVWludDhBcnJheWAgbWV0aG9kcy4gU3F1YXJlIGJyYWNrZXQgbm90YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgLS0gaXRcbiAqIHJldHVybnMgYSBzaW5nbGUgb2N0ZXQuXG4gKlxuICogVGhlIGBVaW50OEFycmF5YCBwcm90b3R5cGUgcmVtYWlucyB1bm1vZGlmaWVkLlxuICovXG5cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiAhKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZ09yT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhbGxvY1Vuc2FmZSh0aGlzLCBhcmcpXG4gIH1cbiAgcmV0dXJuIGZyb20odGhpcywgYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wb29sU2l6ZSA9IDgxOTIgLy8gbm90IHVzZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvblxuXG4vLyBUT0RPOiBMZWdhY3ksIG5vdCBuZWVkZWQgYW55bW9yZS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgdmVyc2lvbi5cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIChhcnIpIHtcbiAgYXJyLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgcmV0dXJuIGFyclxufVxuXG5mdW5jdGlvbiBmcm9tICh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0KVxuICB9XG5cbiAgcmV0dXJuIGZyb21PYmplY3QodGhhdCwgdmFsdWUpXG59XG5cbi8qKlxuICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gQnVmZmVyKGFyZywgZW5jb2RpbmcpIGJ1dCB0aHJvd3MgYSBUeXBlRXJyb3JcbiAqIGlmIHZhbHVlIGlzIGEgbnVtYmVyLlxuICogQnVmZmVyLmZyb20oc3RyWywgZW5jb2RpbmddKVxuICogQnVmZmVyLmZyb20oYXJyYXkpXG4gKiBCdWZmZXIuZnJvbShidWZmZXIpXG4gKiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlclssIGJ5dGVPZmZzZXRbLCBsZW5ndGhdXSlcbiAqKi9cbkJ1ZmZlci5mcm9tID0gZnVuY3Rpb24gKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGZyb20obnVsbCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gIEJ1ZmZlci5wcm90b3R5cGUuX19wcm90b19fID0gVWludDhBcnJheS5wcm90b3R5cGVcbiAgQnVmZmVyLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXlcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5zcGVjaWVzICYmXG4gICAgICBCdWZmZXJbU3ltYm9sLnNwZWNpZXNdID09PSBCdWZmZXIpIHtcbiAgICAvLyBGaXggc3ViYXJyYXkoKSBpbiBFUzIwMTYuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXIvcHVsbC85N1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIsIFN5bWJvbC5zcGVjaWVzLCB7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2l6ZSAoc2l6ZSkge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH0gZWxzZSBpZiAoc2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG9jICh0aGF0LCBzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIGlmIChzaXplIDw9IDApIHtcbiAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG4gIH1cbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9ubHkgcGF5IGF0dGVudGlvbiB0byBlbmNvZGluZyBpZiBpdCdzIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gcHJldmVudHMgYWNjaWRlbnRhbGx5IHNlbmRpbmcgaW4gYSBudW1iZXIgdGhhdCB3b3VsZFxuICAgIC8vIGJlIGludGVycHJldHRlZCBhcyBhIHN0YXJ0IG9mZnNldC5cbiAgICByZXR1cm4gdHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJ1xuICAgICAgPyBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICAgIDogY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbClcbiAgfVxuICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBmaWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogYWxsb2Moc2l6ZVssIGZpbGxbLCBlbmNvZGluZ11dKVxuICoqL1xuQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIHJldHVybiBhbGxvYyhudWxsLCBzaXplLCBmaWxsLCBlbmNvZGluZylcbn1cblxuZnVuY3Rpb24gYWxsb2NVbnNhZmUgKHRoYXQsIHNpemUpIHtcbiAgYXNzZXJ0U2l6ZShzaXplKVxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUgPCAwID8gMCA6IGNoZWNrZWQoc2l6ZSkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpIHtcbiAgICAgIHRoYXRbaV0gPSAwXG4gICAgfVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogRXF1aXZhbGVudCB0byBCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqICovXG5CdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cbi8qKlxuICogRXF1aXZhbGVudCB0byBTbG93QnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImVuY29kaW5nXCIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpXG4gIH1cblxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG5cbiAgdmFyIGFjdHVhbCA9IHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcblxuICBpZiAoYWN0dWFsICE9PSBsZW5ndGgpIHtcbiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGxcbiAgICAvLyBjYXVzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkIGNoYXJhY3RlciB0byBiZSBpZ25vcmVkLiAoZS5nLlxuICAgIC8vICdhYnh4Y2QnIHdpbGwgYmUgdHJlYXRlZCBhcyAnYWInKVxuICAgIHRoYXQgPSB0aGF0LnNsaWNlKDAsIGFjdHVhbClcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPCAwID8gMCA6IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgYXJyYXkuYnl0ZUxlbmd0aCAvLyB0aGlzIHRocm93cyBpZiBgYXJyYXlgIGlzIG5vdCBhIHZhbGlkIEFycmF5QnVmZmVyXG5cbiAgaWYgKGJ5dGVPZmZzZXQgPCAwIHx8IGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1xcJ29mZnNldFxcJyBpcyBvdXQgb2YgYm91bmRzJylcbiAgfVxuXG4gIGlmIChhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCArIChsZW5ndGggfHwgMCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnbGVuZ3RoXFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGJ5dGVPZmZzZXQgPT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXkpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBhcnJheVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0ID0gZnJvbUFycmF5TGlrZSh0aGF0LCBhcnJheSlcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tT2JqZWN0ICh0aGF0LCBvYmopIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSB7XG4gICAgdmFyIGxlbiA9IGNoZWNrZWQob2JqLmxlbmd0aCkgfCAwXG4gICAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW4pXG5cbiAgICBpZiAodGhhdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGF0XG4gICAgfVxuXG4gICAgb2JqLmNvcHkodGhhdCwgMCwgMCwgbGVuKVxuICAgIHJldHVybiB0aGF0XG4gIH1cblxuICBpZiAob2JqKSB7XG4gICAgaWYgKCh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIG9iai5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgfHwgJ2xlbmd0aCcgaW4gb2JqKSB7XG4gICAgICBpZiAodHlwZW9mIG9iai5sZW5ndGggIT09ICdudW1iZXInIHx8IGlzbmFuKG9iai5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgMClcbiAgICAgIH1cbiAgICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iailcbiAgICB9XG5cbiAgICBpZiAob2JqLnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqLmRhdGEpKSB7XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmouZGF0YSlcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuJylcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGgoKWAgaGVyZSBiZWNhdXNlIHRoYXQgZmFpbHMgd2hlblxuICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLilcbiAgaWYgKGxlbmd0aCA+PSBrTWF4TGVuZ3RoKCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZTogMHgnICsga01heExlbmd0aCgpLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKGxlbmd0aCkge1xuICBpZiAoK2xlbmd0aCAhPSBsZW5ndGgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBlcWVxZXFcbiAgICBsZW5ndGggPSAwXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5hbGxvYygrbGVuZ3RoKVxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IE1hdGgubWluKHgsIHkpOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkge1xuICAgICAgeCA9IGFbaV1cbiAgICAgIHkgPSBiW2ldXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdsYXRpbjEnOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdCAobGlzdCwgbGVuZ3RoKSB7XG4gIGlmICghaXNBcnJheShsaXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gIH1cblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgIHZhciBidWYgPSBsaXN0W2ldXG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJylcbiAgICB9XG4gICAgYnVmLmNvcHkoYnVmZmVyLCBwb3MpXG4gICAgcG9zICs9IGJ1Zi5sZW5ndGhcbiAgfVxuICByZXR1cm4gYnVmZmVyXG59XG5cbmZ1bmN0aW9uIGJ5dGVMZW5ndGggKHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzdHJpbmcpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAoQXJyYXlCdWZmZXIuaXNWaWV3KHN0cmluZykgfHwgc3RyaW5nIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5ieXRlTGVuZ3RoXG4gIH1cbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmdcbiAgfVxuXG4gIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChsZW4gPT09IDApIHJldHVybiAwXG5cbiAgLy8gVXNlIGEgZm9yIGxvb3AgdG8gYXZvaWQgcmVjdXJzaW9uXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxlblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gbGVuICogMlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGxlbiA+Pj4gMVxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoIC8vIGFzc3VtZSB1dGY4XG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcblxuZnVuY3Rpb24gc2xvd1RvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIC8vIE5vIG5lZWQgdG8gdmVyaWZ5IHRoYXQgXCJ0aGlzLmxlbmd0aCA8PSBNQVhfVUlOVDMyXCIgc2luY2UgaXQncyBhIHJlYWQtb25seVxuICAvLyBwcm9wZXJ0eSBvZiBhIHR5cGVkIGFycmF5LlxuXG4gIC8vIFRoaXMgYmVoYXZlcyBuZWl0aGVyIGxpa2UgU3RyaW5nIG5vciBVaW50OEFycmF5IGluIHRoYXQgd2Ugc2V0IHN0YXJ0L2VuZFxuICAvLyB0byB0aGVpciB1cHBlci9sb3dlciBib3VuZHMgaWYgdGhlIHZhbHVlIHBhc3NlZCBpcyBvdXQgb2YgcmFuZ2UuXG4gIC8vIHVuZGVmaW5lZCBpcyBoYW5kbGVkIHNwZWNpYWxseSBhcyBwZXIgRUNNQS0yNjIgNnRoIEVkaXRpb24sXG4gIC8vIFNlY3Rpb24gMTMuMy4zLjcgUnVudGltZSBTZW1hbnRpY3M6IEtleWVkQmluZGluZ0luaXRpYWxpemF0aW9uLlxuICBpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCB8fCBzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICAvLyBSZXR1cm4gZWFybHkgaWYgc3RhcnQgPiB0aGlzLmxlbmd0aC4gRG9uZSBoZXJlIHRvIHByZXZlbnQgcG90ZW50aWFsIHVpbnQzMlxuICAvLyBjb2VyY2lvbiBmYWlsIGJlbG93LlxuICBpZiAoc3RhcnQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgfVxuXG4gIGlmIChlbmQgPD0gMCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gRm9yY2UgY29lcnNpb24gdG8gdWludDMyLiBUaGlzIHdpbGwgYWxzbyBjb2VyY2UgZmFsc2V5L05hTiB2YWx1ZXMgdG8gMC5cbiAgZW5kID4+Pj0gMFxuICBzdGFydCA+Pj49IDBcblxuICBpZiAoZW5kIDw9IHN0YXJ0KSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsYXRpbjFTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIHByb3BlcnR5IGlzIHVzZWQgYnkgYEJ1ZmZlci5pc0J1ZmZlcmAgYW5kIGBpcy1idWZmZXJgIChpbiBTYWZhcmkgNS03KSB0byBkZXRlY3Rcbi8vIEJ1ZmZlciBpbnN0YW5jZXMuXG5CdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlciA9IHRydWVcblxuZnVuY3Rpb24gc3dhcCAoYiwgbiwgbSkge1xuICB2YXIgaSA9IGJbbl1cbiAgYltuXSA9IGJbbV1cbiAgYlttXSA9IGlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMTYgPSBmdW5jdGlvbiBzd2FwMTYgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAxKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDMyID0gZnVuY3Rpb24gc3dhcDMyICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA0ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgMylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgMilcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXA2NCA9IGZ1bmN0aW9uIHN3YXA2NCAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgOCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gOCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDcpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDYpXG4gICAgc3dhcCh0aGlzLCBpICsgMiwgaSArIDUpXG4gICAgc3dhcCh0aGlzLCBpICsgMywgaSArIDQpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgdmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoIHwgMFxuICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gJydcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHJldHVybiB1dGY4U2xpY2UodGhpcywgMCwgbGVuZ3RoKVxuICByZXR1cm4gc2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKHRhcmdldCwgc3RhcnQsIGVuZCwgdGhpc1N0YXJ0LCB0aGlzRW5kKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gdGFyZ2V0ID8gdGFyZ2V0Lmxlbmd0aCA6IDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzU3RhcnQgPSAwXG4gIH1cbiAgaWYgKHRoaXNFbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNFbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPiB0YXJnZXQubGVuZ3RoIHx8IHRoaXNTdGFydCA8IDAgfHwgdGhpc0VuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ291dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQgJiYgc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDFcbiAgfVxuXG4gIHN0YXJ0ID4+Pj0gMFxuICBlbmQgPj4+PSAwXG4gIHRoaXNTdGFydCA+Pj49IDBcbiAgdGhpc0VuZCA+Pj49IDBcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0KSByZXR1cm4gMFxuXG4gIHZhciB4ID0gdGhpc0VuZCAtIHRoaXNTdGFydFxuICB2YXIgeSA9IGVuZCAtIHN0YXJ0XG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuXG4gIHZhciB0aGlzQ29weSA9IHRoaXMuc2xpY2UodGhpc1N0YXJ0LCB0aGlzRW5kKVxuICB2YXIgdGFyZ2V0Q29weSA9IHRhcmdldC5zbGljZShzdGFydCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAodGhpc0NvcHlbaV0gIT09IHRhcmdldENvcHlbaV0pIHtcbiAgICAgIHggPSB0aGlzQ29weVtpXVxuICAgICAgeSA9IHRhcmdldENvcHlbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG4vLyBGaW5kcyBlaXRoZXIgdGhlIGZpcnN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA+PSBgYnl0ZU9mZnNldGAsXG4vLyBPUiB0aGUgbGFzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPD0gYGJ5dGVPZmZzZXRgLlxuLy9cbi8vIEFyZ3VtZW50czpcbi8vIC0gYnVmZmVyIC0gYSBCdWZmZXIgdG8gc2VhcmNoXG4vLyAtIHZhbCAtIGEgc3RyaW5nLCBCdWZmZXIsIG9yIG51bWJlclxuLy8gLSBieXRlT2Zmc2V0IC0gYW4gaW5kZXggaW50byBgYnVmZmVyYDsgd2lsbCBiZSBjbGFtcGVkIHRvIGFuIGludDMyXG4vLyAtIGVuY29kaW5nIC0gYW4gb3B0aW9uYWwgZW5jb2RpbmcsIHJlbGV2YW50IGlzIHZhbCBpcyBhIHN0cmluZ1xuLy8gLSBkaXIgLSB0cnVlIGZvciBpbmRleE9mLCBmYWxzZSBmb3IgbGFzdEluZGV4T2ZcbmZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mIChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikge1xuICAvLyBFbXB0eSBidWZmZXIgbWVhbnMgbm8gbWF0Y2hcbiAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHJldHVybiAtMVxuXG4gIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0XG4gIGlmICh0eXBlb2YgYnl0ZU9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IGJ5dGVPZmZzZXRcbiAgICBieXRlT2Zmc2V0ID0gMFxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSB7XG4gICAgYnl0ZU9mZnNldCA9IDB4N2ZmZmZmZmZcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIHtcbiAgICBieXRlT2Zmc2V0ID0gLTB4ODAwMDAwMDBcbiAgfVxuICBieXRlT2Zmc2V0ID0gK2J5dGVPZmZzZXQgIC8vIENvZXJjZSB0byBOdW1iZXIuXG4gIGlmIChpc05hTihieXRlT2Zmc2V0KSkge1xuICAgIC8vIGJ5dGVPZmZzZXQ6IGl0IGl0J3MgdW5kZWZpbmVkLCBudWxsLCBOYU4sIFwiZm9vXCIsIGV0Yywgc2VhcmNoIHdob2xlIGJ1ZmZlclxuICAgIGJ5dGVPZmZzZXQgPSBkaXIgPyAwIDogKGJ1ZmZlci5sZW5ndGggLSAxKVxuICB9XG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXQ6IG5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCArIGJ5dGVPZmZzZXRcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gYnVmZmVyLmxlbmd0aCkge1xuICAgIGlmIChkaXIpIHJldHVybiAtMVxuICAgIGVsc2UgYnl0ZU9mZnNldCA9IGJ1ZmZlci5sZW5ndGggLSAxXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA8IDApIHtcbiAgICBpZiAoZGlyKSBieXRlT2Zmc2V0ID0gMFxuICAgIGVsc2UgcmV0dXJuIC0xXG4gIH1cblxuICAvLyBOb3JtYWxpemUgdmFsXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIHZhbCA9IEJ1ZmZlci5mcm9tKHZhbCwgZW5jb2RpbmcpXG4gIH1cblxuICAvLyBGaW5hbGx5LCBzZWFyY2ggZWl0aGVyIGluZGV4T2YgKGlmIGRpciBpcyB0cnVlKSBvciBsYXN0SW5kZXhPZlxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZy9idWZmZXIgYWx3YXlzIGZhaWxzXG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMHhGRiAvLyBTZWFyY2ggZm9yIGEgYnl0ZSB2YWx1ZSBbMC0yNTVdXG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmXG4gICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoZGlyKSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIFsgdmFsIF0sIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG5mdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIHZhciBpbmRleFNpemUgPSAxXG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoXG4gIHZhciB2YWxMZW5ndGggPSB2YWwubGVuZ3RoXG5cbiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9IFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgIGlmIChlbmNvZGluZyA9PT0gJ3VjczInIHx8IGVuY29kaW5nID09PSAndWNzLTInIHx8XG4gICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHtcbiAgICAgIGlmIChhcnIubGVuZ3RoIDwgMiB8fCB2YWwubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH1cbiAgICAgIGluZGV4U2l6ZSA9IDJcbiAgICAgIGFyckxlbmd0aCAvPSAyXG4gICAgICB2YWxMZW5ndGggLz0gMlxuICAgICAgYnl0ZU9mZnNldCAvPSAyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZCAoYnVmLCBpKSB7XG4gICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGJ1ZltpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKVxuICAgIH1cbiAgfVxuXG4gIHZhciBpXG4gIGlmIChkaXIpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA8IGFyckxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmVhZChhcnIsIGkpID09PSByZWFkKHZhbCwgZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXgpKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsTGVuZ3RoKSByZXR1cm4gZm91bmRJbmRleCAqIGluZGV4U2l6ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoYnl0ZU9mZnNldCArIHZhbExlbmd0aCA+IGFyckxlbmd0aCkgYnl0ZU9mZnNldCA9IGFyckxlbmd0aCAtIHZhbExlbmd0aFxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgZm91bmQgPSB0cnVlXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbExlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gaVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaW5kZXhPZih2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSAhPT0gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgdHJ1ZSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9IGZ1bmN0aW9uIGxhc3RJbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSlcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuIGlcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGxhdGluMVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQnXG4gICAgKVxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuICB2YXIgcmVzID0gW11cblxuICB2YXIgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgdmFyIGZpcnN0Qnl0ZSA9IGJ1ZltpXVxuICAgIHZhciBjb2RlUG9pbnQgPSBudWxsXG4gICAgdmFyIGJ5dGVzUGVyU2VxdWVuY2UgPSAoZmlyc3RCeXRlID4gMHhFRikgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKSA/IDNcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMlxuICAgICAgOiAxXG5cbiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7XG4gICAgICB2YXIgc2Vjb25kQnl0ZSwgdGhpcmRCeXRlLCBmb3VydGhCeXRlLCB0ZW1wQ29kZVBvaW50XG5cbiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0YpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHhDIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAodGhpcmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RkYgJiYgKHRlbXBDb2RlUG9pbnQgPCAweEQ4MDAgfHwgdGVtcENvZGVQb2ludCA+IDB4REZGRikpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgZm91cnRoQnl0ZSA9IGJ1ZltpICsgM11cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKGZvdXJ0aEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4RkZGRiAmJiB0ZW1wQ29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29kZVBvaW50ID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhXG4gICAgICAvLyByZXBsYWNlbWVudCBjaGFyIChVK0ZGRkQpIGFuZCBhZHZhbmNlIG9ubHkgMSBieXRlXG4gICAgICBjb2RlUG9pbnQgPSAweEZGRkRcbiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPiAweEZGRkYpIHtcbiAgICAgIC8vIGVuY29kZSB0byB1dGYxNiAoc3Vycm9nYXRlIHBhaXIgZGFuY2UpXG4gICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgcmVzLnB1c2goY29kZVBvaW50ID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKVxuICAgICAgY29kZVBvaW50ID0gMHhEQzAwIHwgY29kZVBvaW50ICYgMHgzRkZcbiAgICB9XG5cbiAgICByZXMucHVzaChjb2RlUG9pbnQpXG4gICAgaSArPSBieXRlc1BlclNlcXVlbmNlXG4gIH1cblxuICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcylcbn1cblxuLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoXG4vLyB0aGUgbG93ZXN0IGxpbWl0IGlzIENocm9tZSwgd2l0aCAweDEwMDAwIGFyZ3MuXG4vLyBXZSBnbyAxIG1hZ25pdHVkZSBsZXNzLCBmb3Igc2FmZXR5XG52YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDBcblxuZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5IChjb2RlUG9pbnRzKSB7XG4gIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIHZhciByZXMgPSAnJ1xuICB2YXIgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBsYXRpbjFTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKVxuICAgIG5ld0J1Zi5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgKytpKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiYnVmZmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFID0gZnVuY3Rpb24gd3JpdGVVSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgMik7IGkgPCBqOyArK2kpIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgKytpKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFID0gZnVuY3Rpb24gd3JpdGVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IDBcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpIC0gMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpICsgMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDQsIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgsIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRG91YmxlIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG4gIHJldHVybiBvZmZzZXQgKyA4XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gY29weSh0YXJnZXRCdWZmZXIsIHRhcmdldFN0YXJ0PTAsIHNvdXJjZVN0YXJ0PTAsIHNvdXJjZUVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgJiYgZW5kICE9PSAwKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoXG4gIGlmICghdGFyZ2V0U3RhcnQpIHRhcmdldFN0YXJ0ID0gMFxuICBpZiAoZW5kID4gMCAmJiBlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICAvLyBDb3B5IDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVybiAwXG4gIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIEZhdGFsIGVycm9yIGNvbmRpdGlvbnNcbiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgfVxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlRW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIC8vIEFyZSB3ZSBvb2I/XG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCA8IGVuZCAtIHN0YXJ0KSB7XG4gICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnRcbiAgfVxuXG4gIHZhciBsZW4gPSBlbmQgLSBzdGFydFxuICB2YXIgaVxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQgJiYgc3RhcnQgPCB0YXJnZXRTdGFydCAmJiB0YXJnZXRTdGFydCA8IGVuZCkge1xuICAgIC8vIGRlc2NlbmRpbmcgY29weSBmcm9tIGVuZFxuICAgIGZvciAoaSA9IGxlbiAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIGlmIChsZW4gPCAxMDAwIHx8ICFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIGFzY2VuZGluZyBjb3B5IGZyb20gc3RhcnRcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLFxuICAgICAgdGFyZ2V0U3RhcnRcbiAgICApXG4gIH1cblxuICByZXR1cm4gbGVuXG59XG5cbi8vIFVzYWdlOlxuLy8gICAgYnVmZmVyLmZpbGwobnVtYmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChidWZmZXJbLCBvZmZzZXRbLCBlbmRdXSlcbi8vICAgIGJ1ZmZlci5maWxsKHN0cmluZ1ssIG9mZnNldFssIGVuZF1dWywgZW5jb2RpbmddKVxuQnVmZmVyLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gZmlsbCAodmFsLCBzdGFydCwgZW5kLCBlbmNvZGluZykge1xuICAvLyBIYW5kbGUgc3RyaW5nIGNhc2VzOlxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodHlwZW9mIHN0YXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBzdGFydFxuICAgICAgc3RhcnQgPSAwXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gZW5kXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH1cbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdmFyIGNvZGUgPSB2YWwuY2hhckNvZGVBdCgwKVxuICAgICAgaWYgKGNvZGUgPCAyNTYpIHtcbiAgICAgICAgdmFsID0gY29kZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycgJiYgIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHZhbCA9IHZhbCAmIDI1NVxuICB9XG5cbiAgLy8gSW52YWxpZCByYW5nZXMgYXJlIG5vdCBzZXQgdG8gYSBkZWZhdWx0LCBzbyBjYW4gcmFuZ2UgY2hlY2sgZWFybHkuXG4gIGlmIChzdGFydCA8IDAgfHwgdGhpcy5sZW5ndGggPCBzdGFydCB8fCB0aGlzLmxlbmd0aCA8IGVuZCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdPdXQgb2YgcmFuZ2UgaW5kZXgnKVxuICB9XG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzdGFydCA9IHN0YXJ0ID4+PiAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBlbmQgPj4+IDBcblxuICBpZiAoIXZhbCkgdmFsID0gMFxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICAgIHRoaXNbaV0gPSB2YWxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gQnVmZmVyLmlzQnVmZmVyKHZhbClcbiAgICAgID8gdmFsXG4gICAgICA6IHV0ZjhUb0J5dGVzKG5ldyBCdWZmZXIodmFsLCBlbmNvZGluZykudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gMDsgaSA8IGVuZCAtIHN0YXJ0OyArK2kpIHtcbiAgICAgIHRoaXNbaSArIHN0YXJ0XSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS1aYS16LV9dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKVxuXG4gICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudFxuICAgIGlmIChjb2RlUG9pbnQgPiAweEQ3RkYgJiYgY29kZVBvaW50IDwgMHhFMDAwKSB7XG4gICAgICAvLyBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCFsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIG5vIGxlYWQgeWV0XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YWxpZCBsZWFkXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICBpZiAoY29kZVBvaW50IDwgMHhEQzAwKSB7XG4gICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICBjb2RlUG9pbnQgPSAobGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCkgKyAweDEwMDAwXG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICB9XG5cbiAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gaXNuYW4gKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSB2YWwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zZWxmLWNvbXBhcmVcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/buffer/index.js\n\n}"); + +/***/ }, + +/***/ "./node_modules/ieee754/index.js" +/*!***************************************!*\ + !*** ./node_modules/ieee754/index.js ***! + \***************************************/ +(__unused_webpack_module, exports) { + +eval("{/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsV0FBVzs7QUFFcEI7QUFDQTtBQUNBO0FBQ0EsU0FBUyxXQUFXOztBQUVwQjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTLFdBQVc7O0FBRXBCO0FBQ0E7QUFDQSxTQUFTLFVBQVU7O0FBRW5CO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcz9lYmMxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISBpZWVlNzU0LiBCU0QtMy1DbGF1c2UgTGljZW5zZS4gRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnL29wZW5zb3VyY2U+ICovXG5leHBvcnRzLnJlYWQgPSBmdW5jdGlvbiAoYnVmZmVyLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbVxuICB2YXIgZUxlbiA9IChuQnl0ZXMgKiA4KSAtIG1MZW4gLSAxXG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxXG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMVxuICB2YXIgbkJpdHMgPSAtN1xuICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwXG4gIHZhciBkID0gaXNMRSA/IC0xIDogMVxuICB2YXIgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IChlICogMjU2KSArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIG0gPSBlICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIGUgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IG1MZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgbSA9IChtICogMjU2KSArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGNcbiAgdmFyIGVMZW4gPSAobkJ5dGVzICogOCkgLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIHJ0ID0gKG1MZW4gPT09IDIzID8gTWF0aC5wb3coMiwgLTI0KSAtIE1hdGgucG93KDIsIC03NykgOiAwKVxuICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpXG4gIHZhciBkID0gaXNMRSA/IDEgOiAtMVxuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCAodmFsdWUgPT09IDAgJiYgMSAvIHZhbHVlIDwgMCkgPyAxIDogMFxuXG4gIHZhbHVlID0gTWF0aC5hYnModmFsdWUpXG5cbiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHtcbiAgICBtID0gaXNOYU4odmFsdWUpID8gMSA6IDBcbiAgICBlID0gZU1heFxuICB9IGVsc2Uge1xuICAgIGUgPSBNYXRoLmZsb29yKE1hdGgubG9nKHZhbHVlKSAvIE1hdGguTE4yKVxuICAgIGlmICh2YWx1ZSAqIChjID0gTWF0aC5wb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLVxuICAgICAgYyAqPSAyXG4gICAgfVxuICAgIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgdmFsdWUgKz0gcnQgLyBjXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKVxuICAgIH1cbiAgICBpZiAodmFsdWUgKiBjID49IDIpIHtcbiAgICAgIGUrK1xuICAgICAgYyAvPSAyXG4gICAgfVxuXG4gICAgaWYgKGUgKyBlQmlhcyA+PSBlTWF4KSB7XG4gICAgICBtID0gMFxuICAgICAgZSA9IGVNYXhcbiAgICB9IGVsc2UgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtID0gKCh2YWx1ZSAqIGMpIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IGUgKyBlQmlhc1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gdmFsdWUgKiBNYXRoLnBvdygyLCBlQmlhcyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSAwXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge31cblxuICBlID0gKGUgPDwgbUxlbikgfCBtXG4gIGVMZW4gKz0gbUxlblxuICBmb3IgKDsgZUxlbiA+IDA7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGUgJiAweGZmLCBpICs9IGQsIGUgLz0gMjU2LCBlTGVuIC09IDgpIHt9XG5cbiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ieee754/index.js\n\n}"); + +/***/ }, + +/***/ "./node_modules/isarray/index.js" +/*!***************************************!*\ + !*** ./node_modules/isarray/index.js ***! + \***************************************/ +(module) { + +eval("{var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaXNhcnJheS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pc2FycmF5L2luZGV4LmpzP2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAoYXJyKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGFycikgPT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/isarray/index.js\n\n}"); + +/***/ }, + +/***/ "./node_modules/lodash/lodash.js" +/*!***************************************!*\ + !*** ./node_modules/lodash/lodash.js ***! + \***************************************/ +(module, exports, __webpack_require__) { + +eval("{/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.23';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = true && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n\n // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg\n var index = -1,\n length = path.length;\n\n if (!length) {\n return true;\n }\n\n var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function');\n\n while (++index < length) {\n var key = path[index];\n\n // skip non-string keys (e.g., Symbols, numbers)\n if (typeof key !== 'string') {\n continue;\n }\n\n // Always block \"__proto__\" anywhere in the path if it's not expected\n if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {\n return false;\n }\n\n // Block \"constructor.prototype\" chains\n if (key === 'constructor' &&\n (index + 1) < length &&\n typeof path[index + 1] === 'string' &&\n path[index + 1] === 'prototype') {\n\n // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a')\n if (isRootPrimitive && index === 0) {\n continue;\n }\n\n return false;\n }\n }\n\n var obj = parent(object, path);\n return obj == null || delete obj[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '